Leucistic
Messages postés61Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention16 juin 2012
-
14 août 2008 à 15:07
Leucistic
Messages postés61Date d'inscriptionmercredi 24 septembre 2008StatutMembreDernière intervention16 juin 2012
-
18 août 2008 à 08:57
Bonjour,
Je suis en train de réaliser une appli qui envoie une trame RS232 a une machine. Cette derniere renvoie ensuite un acknowledgement ou un non acknowledgement afin de savoir l'etat de la reception de la trame.
Mon problème est que je n'arrive pas à communiquer avec cette machine.
J'ai envoyé une trame à la main depuis COM1 de mon pc, et la machine entend, et me repond.
J'ai envoyé une trame avec mon appli depuis COM1, vers un autre pc, et la trame est bonne.
J'ai recu une trame avec mon appli, depuis un autre pc, vers COM1 de mon pc, je recois bien.
Mais lorsque je décide d'envoyer depuis le COM1 de mon pc (via mon appli), la trame à la machine, cette derniere ne répond pas.
J'en conclus donc que c'est ma configuration du port com coté appli qui n'est pas bonne, mais je ne comprends pas pourquoi, y a-t-il des paramètres ou une méthodes qui est mal implémentée ?
Voici les parametres de communication sur la machine :
1 bit de start, 8 bit de données, 1 bit de parité, 1 bit de stop.
Odd parity
Voici le code de l'init du port :
public SerialPort portCom = new SerialPort();
portCom.PortName = "COM1";
portCom.BaudRate = 38400;
portCom.DataBits = 8;
portCom.HandShake = HandShake.None;
portCom.StopBits = StopBits.One;
portCom.Parity = Parity.Odd;
Voici le code pour l'envoi et la reception :
byte[] bSequence = {0x20, 0x00, 0x20};
byte[] bRetour = { 0, 0, 0, 0 };
portCom.Write(bSequence, 0, 3);
int nbBytesToRead = portCom.BytesToRead;
portCom.Read(bRetour, 0, 4);
L'ouverture de l'esprit n'est pas une fracture du crâne