Salut
Je complète la réponse de RenField :
Quand l'évènement OnEvent se produit, cela veut dire que :
- des données sont arrivées
- un état a changé sur un des signaux (RTS-CTS ...)
ET que le PC a eu le temps de gérer l'appel.
--> Cela ne signifie pas que toutes les données sont arrivées.
Comme pour les Winsocks, à la réception de données, garde-les en mémoire (dans une variable déclarée dans la zône "Déclarations" afin qu'elle garde sa valeur entre deux réceptions) jusqu'à ce que tu sois sûr qu'une trame entière te soit parvenue.
Les trames issues d'une RS232 peuvent avoir plusieurs formats, tout dépend de ce qu'il y a en face.
Alors cette détection peut prendre plusieurs formes :
- Détection d'un vbCr ou vbLf ou vbCrLf (Chr 13, 10 ou 13+10) quand les données représentent des textes ou des données à longueur variables
- Longueur des données lorsque l'émetteur renvoie un format fixe cycliquement
Une fois que tu auras détecté cette fin de trame, tu pourras traiter le contenu de la variable mémoire dans ton programme.
Une trame peut bien sûr être suivie par une autre (ou le début d'une autre), donc pense à supprimer la trame que tu viens de traiter dans ta variable mémoire, et ne pas la vider, sinon, tu risques de perdre les données suivantes.
Vala
Jack,
MVP VBNB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)