1 pièce(s) jointe(s)
Trame serial port arrive en 3 interruptions
Bonjour,
Je souhaiterais un éclaircissement sur un comportement du serial port.
J'ai une communication série entre un microcontrôleur et mon application. Mon application travaille avec événement quand des données son reçues. Il y a un échange de quelques milliers de trames pendant quelques minutes (c'est pour un bootloader). Tout se passe bien durant quelques centaines de trames et à un moment je constate que la trame reçue par mon application se fait en 3 interruptions.
La trame fait 8 octets : 02 08 01 08 02 A0 1A 03 (le premier octet est toujours 02 et le dernier toujours 03, le deuxième c'est la longueur de la trame)
En temps normal je reçois bien un paquet de 8 octets mais à un moment donné je reçois un premier paquet de 7 octets : 02 08 01 08 02 A0 1A
Le coup d'après j'ai un événement avec 0 octets dedans.
Le coup d'après je reçois le dernier octets : 03
J'ai une fenêtre de debug :
1ère ligne : la raison de l'erreur
2ème ligne : les octets reçus
3ème ligne : le nombre d'octets reçu (xxxxx.BytesToRead methode)
4ème ligne : le nombre d'octet lu (valeure retournée par xxxx.Read methode)
Voici la fenêtre de debug
Pièce jointe 239872
Le problème se répète 3 fois car mon microcontrôleur essaie 3 fois avant d'abandonner la communication.
Vous allez me dire que si la trame n'est pas complète, il n'y a qu'à attendre que le reste arrive vu que l'on connait la longueur de la trame, c'est ce que je vais faire mais j'aimerais savoir si ce comportement est normal ou pas ?
Par ailleurs j'ai checké mes trames à l'oscilloscope, je ne vois pas de latence par rapport au dernier octets qui expliquerai plusieurs interruptions, les 8 octets se suivent bien.
Sam,