Bonjour,
Je cherche à débugger une communication entre deux dispositifs. On considère que les deux dispositifs dialoguent en liaison RX/TX.
Je me suis arrangée pour pouvoir récupérer le RX et le TX sous deux ports série au niveau du PC. Imaginons pas exemple sur le port 10 la liaison RX et sur le port 11 la liaison TX. Jusque là aucun soucis.
Ensuite afin de visualiser les échanges, je mets en place une interface via les MFC, qui affiche ce qui est reçu sur les ports. Pour cela, je dispose d'une classe fonctionnelle qui gère les ports série, et j'utilise deux threads : un pour chaque port série. Chaque thread a pour objectif de recevoir des données sur le port série et d'envoyer un message à la fenêtre pour les afficher dans une console.
Ainsi sur la console (editbox) j'affiche par exemple:
RX 0x32 0x10 0x00
TX 0x41
RX 0x12
TX 0x44 0x10
Or, j'ai un problème de synchronisation: les données et RX et TX ne se chevauchent pas correctement.
Par exemple au lieu d'avoir:
TX : 0x12 (commande 1)
RX : 0x34 (réponse 1)
j'ai :
TX : 0x12 (commande 1)
RX : 0x06 (reponse -1)
TX : 0x04 (commande 2)
RX : 0x34 (réponse 1)
Quel pourrait être le problème?
Est ce qu'il faut que les deux threads soient vraiment lancés au même instant?
Est ce un problème de queue de messages?
Y aurait-il d'autres façons de faire que d'utiliser deux threads?
Merci d'avance
Partager