Marko007
Messages postés96Date d'inscriptionmardi 15 mai 2007StatutMembreDernière intervention29 janvier 2009
-
6 juin 2008 à 16:07
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024
-
11 juin 2008 à 10:38
Bonjour,
je dialogue avec un PLC en "RS232 - Cnv RS485". Cela marche nickel sauf que ;o) :
Je reçois par moment des caractères spéciaux type EVTS_08-06-NOTAQC06ß“13;'‰17;Ñ11;þN....
Alors que l'Hyperterminal ne voit pas cela, et ça passe bien selon lui.
Des idées? Couac avec le buffer de réception, variable tableau,... ?
Je travaille en 9600, N , 1, 8 + InBufferSize = 2048, OutBufferSize : 512 :
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 6 juin 2008 à 16:26
Bonjour
Bon, j'ai mis un moment avant d'être sûr que tu es en .NET ("ArrBuffer.Length"), mais en .NET 2+ (ce que je suppose que tu es), il y a System.Io.Ports.SerialPort pour le port COM et là pas besoin de MSComm, essaye déjà de passer par cette classe.
Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Marko007
Messages postés96Date d'inscriptionmardi 15 mai 2007StatutMembreDernière intervention29 janvier 2009 9 juin 2008 à 11:48
Ok, merci pour vos deux réponses.
Je reste avec MSComm (Le programme tourne à 90%), même si cette classe proposée doit être plus simple à mettre en oeuvre.
Néanmoins, je devrai avoir le même soucis avec les caractères... Non ? Je pense que le PLC émet des "crasses" par moment,
car avec un autre soft "view232" (il sniffe en // , le média RS232), celui-ci voit la même chose que ma tâche VB.
Comment éliminer ces caractères non affichables ß"13;'?17;Ñ11;þ à partir de mon buffer (MSComm Buffer IN ou Variable) ?
EN TOUT CAS, l'hyperteminal voit à la place de EVTS_08-06-NOTAQC06ß"13;'?17;Ñ11;þN >> EVTS_08-06-NOTAQC06_168.txt
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 11 juin 2008 à 10:38
Bonjour
Il est possible que le jeu de caractère soit mauvais (d'où des caractères erronés).
Mais pour choisir l'encodage, (sans changer de controle d'accès à la COM), il faudrais que tu retransforme en octet et que tu repasse en String (avec system.Text.Encoding.*.GetString/BetBytes).
Sinon essaye de sniffer en hexa pour voir quels caractères te posent pb, car "ß"13;'?17;Ñ11;þN" ne sont pas des caractères <$20 (qu moins je pense).
Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1