J'ai un programme qui envoie des commandes ASCII à un périphérique via un port série. Le programme est une démo et ne fait pas ce que je veux. J'essaye juste de faire en sorte que l'appareil réponde en C# et je ne reçois rien en retour. tous les paramètres du port série sont corrects. J'envoie exactement le même message que le logiciel de démonstration.C# problème de protocole ascii
//e.g message <STX>ABC<EOT>
byte[] msg = new byte[5];
msg[0] = 0x02;
msg[1] = 0x41;
msg[2] = 0x42;
msg[3] = 0x43;
msg[4] = 0x04;
comport.write(msg, 0,msg.length)
le périphérique est un moniteur. Le code était seulement un exemple. il n'y a pas un battement de coeur juste une réponse pour un message correct envoyé ou un message d'erreur. les paramètres sont standard 9600-8-N-1. "trombone entre les broches 2 et 3 (TX et RX)." Oui, je sais que le câble fonctionne parce que c'est le même que celui utilisé avec le logiciel du produit qui fonctionne. et je récupère ce que j'envoie. J'ai utilisé un programme de com virtuel et tout semble aller bien. "6 octets mais en initialisant seulement le premier 5." faute de frappe.
les propriétés SerialPort.DtrEnable et RtsEnable à true. sont activés par défaut dans C#. J'ai essayé le terminal hyper et je n'ai pas de réponse non plus. J'ai envoyé \ r et \ n sans aucune chance.
Trop vague. Quel est l'appareil? Quelle est la source de la démo? L'appareil possède-t-il des voyants d'état ou d'autres indicateurs de ce type pour signaler qu'il reçoit l'entrée que vous pensez lui envoyer? Etc. – jason
Quel est l'appareil? Quel est le protocole exactement? Qu'est-ce qui est supposé être retourné? Que dit la documentation de l'appareil? En d'autres termes, besoin de plus d'informations. –
Ceci ne contient aucune information pouvant aider à diagnostiquer le problème ... Quel est le type de 'comport' et comment a-t-il été initialisé? Comment savez-vous que les paramètres du port série sont corrects? –