Forum Linux.général Communication via port série

Posté par  .
Étiquettes : aucune
0
5
nov.
2004
Bonjour à tous,

voila j'ai besoin d'envoyer des caractères hexa sur un port série à un videprojecteur pour l'allumer et l'éteindre automatiquement, en fonction la mise en route/ la fermeture d'un pc sous mandrake 10.

Pour cela je dois configuer le port et lui envoyer les codes hexa, la question est comment faire ca de manière simple et efficace.

Merci
Gaetan.
  • # avec cat ?

    Posté par  (site web personnel, Mastodon) . Évalué à 2.

    peut-etre comme ça :

    cat (code hexa) > /dev/tty0

    par exemple
    • [^] # Re: avec cat ?

      Posté par  . Évalué à 3.

      A noter que pour cela il faut ici que « code hexa » soit un fichier. Sinon c'est « echo », mais dans ce cas, il faudra écrire les caractères en octal plutôt qu'en hexa.

      Pour configurer le port série depuis le shell, jette un oeil du coté de stty.
      • [^] # Re: avec cat ?

        Posté par  . Évalué à 2.

        Ah ! Et puis : le port série se trouve sur ttyS0 et pas tty0, qui correspond à la console courante.
      • [^] # Re: avec cat ?

        Posté par  . Évalué à 1.

        et je fais comment pour stocker des codes heaxs dans un fichier ???

        est ce que juste un truc du genre :

        echo \x02 \x50 \x4F \x46 \x03 > test.txt

        fonctionne ??
      • [^] # Re: avec cat ?

        Posté par  . Évalué à 0.

        et je fais comment pour stocker des codes heaxs dans un fichier ???

        est ce que juste un truc du genre :

        echo \x02 \x50 \x4F \x46 \x03 > test.txt

        fonctionne ??
        • [^] # Re: avec cat ?

          Posté par  (site web personnel) . Évalué à 1.

          $ echo -e "\x41\x42\x43\n"

          marche a merveille ... ou 41 42 et 43 sont les codes hexa de A B et C.

          dans ton cas ca deient :

          echo -e "\x02\x50\x4F\x46\x03" > /dev/ttyS0

          pour plus de details sur la syntaxe du echo ... man echo.

          ATTENTION tout doit etre colle ... si tu met des espaces, alers tu enverra le charactere decimale 32 ( espace - ou 0x20 ) sur la ligne ... chose que ton video n aimera pas.
          • [^] # Re: avec cat ?

            Posté par  . Évalué à 2.

            Oui, et dans ce cas il vaut mieux également ajouter l'option "n" pour supprimer le retour à la ligne automatique après un "echo".

            echo -ne "\x02\x50\x4F\x46\x03" > /dev/ttyS0
  • # Programme en C

    Posté par  . Évalué à 2.

    Pour ce probleme tu trouvera ton bonheur, en te faisant un petit programme en C avec l'aide de termios pour configurer ta communication.

    Ensuite les classique open(), close(), read(), write() seront tes amis :-)

    Pour faire des tes tu as minicom mais c'est de l envoie ascii et pas en hexa.
  • # point de depart

    Posté par  . Évalué à 2.

    une saine lecture de
    http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/fr/html-1p(...)

    Les sources d'un programme d'exemple sont fourni, tu le modifie et voila.
  • # Et en Perl?

    Posté par  . Évalué à 3.

    http://search.cpan.org/~cook/Device-SerialPort-1.000002/SerialPort.(...)

    Je n'ai pas testé, je ne sais donc pas comment ca marche mais la doc a l'air assez bien faite.
  • # en python?

    Posté par  . Évalué à 2.

    http://balder.prohosting.com/ibarona/en/python/uspp/uspp_en.html(...)

    Pas testé non plus mais ca a l'air assez simple ...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.