Je dois être fatigué, car je n'arrive pas à transmettre un bête
message en RS232 avec un câble Null Modem.
Côté récepteur (sous linux) j'ai ça :
% set f [open /dev/ttyUSB0 r]
file6
% fconfigure $f -mode 9600,o,7,1 -encoding ascii -translation cr -
blocking 0
% fileevent $f readable {puts "R : [gets $f]"}
Côté émetteur (sous Mac OS X) j'ai ça :
% set f [open /dev/cu.usbserial w]
file14
% fconfigure $f -mode 9600,o,7,1 -encoding ascii -translation cr -
blocking 0
% puts $f toto
% flush $f
% close $f
Et là, curieusement, rien n'apparaît dans mon linux !?!
Pourtant, les données sont bien dans le buffer :
% fconf $f -queue
5 0
% gets $f
toto
Une idée quelqu'un ?
--
David Zolli
Le 08/02/2011 18:55, Kroc a écrit :
> Bonsoir la liste,
>
> Je dois être fatigué, car je n'arrive pas à transmettre un bête
> message en RS232 avec un câble Null Modem.
>
>
> Pourtant, les données sont bien dans le buffer :
> % fconf $f -queue
> 5 0
> % gets $f
> toto
>
> Une idée quelqu'un ?
J'ai le droit de dire une bêtise ?
Et si tu essayais de configurer côté réception en buffering none ? Je
dis cela parce que visiblement tu reçois bien les données mais qu'elles
ne sont pas disposées à "sortir".
--
Amicalement, Vincent Verdon
Bonjour Vincent,
> J'ai le droit de dire une bêtise ?
Bien sûr, j'en dit souvent moi ;^)
> Et si tu essayais de configurer côté réception en buffering none ?
Ca ne change rien :
% fconfigure $f
-blocking 0 -buffering none -buffersize 4096 -encoding binary \
-eofchar {} -translation lf -mode 9600,n,8,1 -xchar { }
% fconfigure $f -queue
5 0
Et côté émetteur, le buffer est vide. :-/
--
David Zolli
La commande fileevent requiert une initialisation de la boucle
évènementielle. Il suffisait simplement d'ajouter un vwait ::pouet à
la fin pour que ça marche.
--
David Zolli
Je n'avais pas pensé à te demander si c'était un script tcl seul ou
lancé avec wish !
--
Amicalement, Vincent Verdon