Bonjour
Je suis en train de faire une application qui s'interface avec un équipement via un antique port série RS232.
L'émetteur envoie des messages binaires ayant un header et une payload.
La contrainte que je rencontre est que le PC doit répondre à l'émetteur en respectant des timeout assez contraints en envoyant deux types de messages :
- un ACK qu'on doit envoyer avant 200 ms après validation du Checksum du message
- un ACCEPT qu'on doit envoyer avant 600 ms après validation de la payload
J'utilise la gestion des événements série sur détection d'un caractère présent et la communication se fait à 9600 bauds.
Visiblement, mon PC ne réponds pas à l'émetteur dans les 200ms prévues et parfois visiblement non plus dans les 600ms, ce qui génère des retransmissions puis une coupure de la communication de la part de l'émetteur.
Remarque : je fais l'exécution soit en mode debug soit en lançant le programme généré, et j'ai des comportements un peu différents.
Question : avant que je ne regarde ailleurs ou que je ne cherche des causes physiques (câble, etc ...), est-ce que Windev pourrait être en cause. Je ne connais bien les performances de Windev dans ces cas contraints ... et je crains que le framework ne génère un overhead de traitement et soit la cause de la latence.
Quel est votre avis ?
[EDIT] j'ai oublié de préciser que la RS232 n'est pas reçue sur un port COM habituel (on n'en trouve plus surtout sur les PC portables), mais via un convertisseur RS232-USB basé sur le chipset PROLIFIC et intégré dans un cable PLUGABLE. Ceci pourrait être également la cause de la latence ....
Partager