Probleme Classe SerialPort / parityReplace RS232

Résolu
cs_millouzze Messages postés 2 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 17 juin 2008 - 13 juin 2008 à 14:07
cs_millouzze Messages postés 2 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 17 juin 2008 - 17 juin 2008 à 13:42
Bonjour,
je développe une petite application C# utilisant le port série (RS232) avec framework 2.0 sous VS (2005/2008) et je rencontre un petit souci avec un remplacement de caractères. Ma configuration est 8bits/Pas de parité/1 bit de stop/ 9600bps.
Pas de parité donc monport.Parity = System.IO.Ports.Parity.None
Ma trame de bytes envoyée est en Hexa: 02 53 54 41 03 e8 0d soit  <stx> STA <etx> e8 Carriage Return . Le e8 correspond à un checksum, soit un caractère dans la table ASCII.
Le probleme est que le checksum est toujours modifié à la reception par un '?'. Dans le MSDN ParityReplace est censé remplacer les bytes qui ont un problème de parité.

En mettant monport.ParityReplace = ((byte)(0)) ça ne change rien: le caractère '?' remplace tout de même mon checksum.
Quelqu'un a t'il une idée pour m'aider ?

C'est pas moi c'est lui!!!!

1 réponse

cs_millouzze Messages postés 2 Date d'inscription jeudi 14 juin 2007 Statut Membre Dernière intervention 17 juin 2008
17 juin 2008 à 13:42
Bonjour,


Pour le problème avec le port série, je me suis débrouillé comme un grand. La réception/émission utilise l'encodage ASCII sur 7 bits.Comme mon checksum est sur 8 bits, et qu'il etait supérieur à 128, j'avais à chaque fois la modification du checksum par un "?", ce qui n'a rien à voir avec la propriété ParityReplace du port série.

Ouff...plus de peur que de mal!!!

C'est pas moi c'est lui!!!!
3
Rejoignez-nous