Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Port série]envoyer des commandes à un afficheur

4 réponses
Avatar
Batman
Bonjour/bonsoir/nuit à tous

je rebondi sur le thread "Espionner un port série"
du Jeudi 7 Octobre 2004 18:18:33
de Youri

Je risque de devoir utiliser (je serais pas faire le développement) une tit
appli qui pilotera un afficheur RS232, style afficheur de caisse

- Je n'ais pas encore cet afficheur
- je crois qu'il "/suffit/" d'envoyer un lot de commande sur le port série

1) ma supposition est-elle correcte ?
2) Comment envois-t-on en ligne de commande des "/infos/" à l'appareil
connecté au port serie

j'ai essayer avec un modem un truc du genre
echo "ati4" > /dev/ttyS0
Mais
- j'ai pas l'impression que la commande à été accepté
- j'ai pas le retour (ce que repond le modem sur ati4 (ex: USR sportser 33.6
.....)


merci d'avance (de comprendre mon charibia, et des reponses éventuelle)

--
Les fautes d'orthographes sont ma signature :-)
pour me répondre en BAL (mode antispam)
http://batman.dyndns.org/V2/Mail/?src=news.free

4 réponses

Avatar
talon
Batman wrote:

j'ai essayer avec un modem un truc du genre
echo "ati4" > /dev/ttyS0
Mais
- j'ai pas l'impression que la commande à été accepté
- j'ai pas le retour (ce que repond le modem sur ati4 (ex: USR sportser 33.6
.....)


J'ai fait ça dans le passé.
Dans un xterm
cat - > /dev/ttyS0

Ici tu tapes tes commandes

Dans un autre

cat < /dev/ttyS0

ici tu observes l'écho.
(de mémoire, c'est probablement à peu prés ça).


--

Michel TALON

Avatar
Nicolas George
Batman wrote in message <4166c157$0$283$:
j'ai essayer avec un modem un truc du genre
echo "ati4" > /dev/ttyS0
Mais
- j'ai pas l'impression que la commande à été accepté


Il se peut qu'il faille faire un stty pour que le device du modem puisse
être ouvert correctement. Tout ceci est encore assez mystérieux pour moi, je
l'avoue.

- j'ai pas le retour (ce que repond le modem sur ati4 (ex: USR sportser 33.6
.....)


Il faut lire sur ce même /dev/ttyS0, ce qui peut éventuellement se faire en
shell avec quelque chose comme :

exec 3<> /dev/ttyS0
echo ATI4 >&3
read line <&3

(attention toutefois, la fonction read du shell peut provoquer des
surprises ; utiliser zsh ou perl est plus sûr)

Mais bien sûr, ça ne marche que si le protocole pour parler au périphérique
est synchrone, à base de question-réponses. Si le modem peut parler
n'importe quand et qu'il faut lire à la volée, il faut un poll(2)/select(2)
ou des threads.

Avatar
Batman

Il se peut qu'il faille faire un stty pour que le device du modem puisse
être ouvert correctement. Tout ceci est encore assez mystérieux pour moi,
je l'avoue.



stty -a</dev/ttyS0
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext ^V;
flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon
-ixoff -iuclc -ixany -imaxbel
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

- j'ai pas le retour (ce que repond le modem sur ati4 (ex: USR sportser
33.6 .....)


Il faut lire sur ce même /dev/ttyS0, ce qui peut éventuellement se faire
en shell avec quelque chose comme :

exec 3<> /dev/ttyS0
echo ATI4 >&3
read line <&3

(attention toutefois, la fonction read du shell peut provoquer des
surprises ; utiliser zsh ou perl est plus sûr)


euhhh, j'ai les voyants TR et CS on (c'est plutôt normal), mais tx et rx
reste allumé tout le temps après envois de la commande (j'ai pris un vieux
USR avec plein de diodes :-D )


Mais bien sûr, ça ne marche que si le protocole pour parler au
périphérique est synchrone, à base de question-réponses. Si le modem peut
parler n'importe quand et qu'il faut lire à la volée, il faut un
poll(2)/select(2) ou des threads.


Ouahh ça se complique (pour moi) mais merci, je vais déjà essayer de
comprendre le exec 3

--
Les fautes d'orthographes sont ma signature :-)
pour me répondre en BAL (mode antispam)
http://batman.dyndns.org/V2/Mail/?src=news.free


Avatar
Batman

J'ai fait ça dans le passé.
Dans un xterm
cat - > /dev/ttyS0

Ici tu tapes tes commandes

Dans un autre

cat < /dev/ttyS0


c'est presque plus ludique que 'cu' :-D
Par contre j'ai le même symptome qu'avec l'astuce de Nicolas (rx tx 'on' en
permanance), dois y avoir un echo en trop (faudra que je regarde la réponse
de stty ptet.

--
Les fautes d'orthographes sont ma signature :-)
pour me répondre en BAL (mode antispam)
http://batman.dyndns.org/V2/Mail/?src=news.free