OVH Cloud OVH Cloud

codeset pour le port serie ttyb

1 réponse
Avatar
bui
Bonjour,

j'ai un pb qui m'embete depuis qqs semaines:
J'ai un petit programme C qui ecrit
sur le port serie d'une machine Sun.

J'ai 2 resultats differents selon que ce programme
tourne sur SunUltra SunOS 5.5.1
ou SunFire Solaris 5.8

Sur SunUltra les donnees arrivent correctement
alors que sur SunFire, la sequence 0x02 0x00 0x0A
est convertie en 0x02 0x0D 0x0A.

Je ne veux pas qu'il interprete les CR LF !
J'ai pourtant bien precise dans mon programme
qu'il faut ouvrir le port en mode RAW ou BINARY.

Quand je fais stty -a < /dev/ttyb, je vois une seule
difference entre les 2 machines. Il s'agit du codeset.

Est-ce qu'un codeset inadequat peut faire en sorte
que les donnees envoyees vers ttyb soient modifiees ?

Sur Sunultra (c'est OK):
speed 9600 baud;
rows = 0; columns = 0; ypixels = 0; xpixels = 0;
eucw 1:0:0:0, scrw 1:0:0:0
min = 1; time = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>;
eof = ^a; eol = <undef>; eol2 = <undef>; swtch = <undef>;
start = <undef>; stop = <undef>; susp = <undef>; dsusp = <undef>;
rprnt = <undef>; flush = <undef>; werase = <undef>; lnext = <undef>;
-parenb -parodd cs8 -cstopb -hupcl cread clocal -loblk -crtscts
-crtsxoff -parext
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -iucl
c
-ixon -ixany -ixoff imaxbel
-isig -icanon -xcase -echo -echoe echok -echonl -noflsh
-tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten
-opost -olcuc -onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3

Sur Sunfire (c'est KO):
speed 9600 baud;
rows = 0; columns = 0; ypixels = 0; xpixels = 0;
csdata ?
eucw 1:0:0:0, scrw 1:0:0:0
min = 1; time = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>;
eof = ^a; eol = <undef>; eol2 = <undef>; swtch = <undef>;
start = <undef>; stop = <undef>; susp = <undef>; dsusp = <undef>;
rprnt = <undef>; flush = <undef>; werase = <undef>; lnext = <undef>;
-parenb -parodd cs8 -cstopb -hupcl cread clocal -loblk -crtscts -crtsxof
f -parext
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -iucl
c
-ixon -ixany -ixoff imaxbel
-isig -icanon -xcase -echo -echoe echok -echonl -noflsh
-tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten
-opost -olcuc -onlcr -ocrnl -onocr -onlret -ofill -ofdel tab3


Merci pour votre aide

bui


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Article poste via Voila News - http://www.news.voila.fr
Le : Thu Oct 16 17:46:25 2003 depuis l'IP : host.197.108.41.213.rev.coltfrance.com [VIP 645638778658]

1 réponse

Avatar
Antoine Bellot
bui a écrit:

Est-ce qu'un codeset inadequat peut faire en sorte
que les donnees envoyees vers ttyb soient modifiees ?


Puisque personne ne se lance, mon avis à deux balles :

Le fait qu'eol et eol2 soient non-explicitement définis a peut être une
incidence ?
"0x02; 0x00" est peut-être défini comme un caractère de contrôle dans le
contexte poussant le flux ?

Mais bon, hein... j'y connais rien...

--
Antoine Bellot