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
Nom : Debug-SerialPort-VB.png
Affichages : 108
Taille : 6,2 Ko
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,