floher
Messages postés1Date d'inscriptionvendredi 14 mars 2008StatutMembreDernière intervention18 mars 2008
-
18 mars 2008 à 10:08
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
18 mars 2008 à 11:20
Bonjour,
Je souhaite communiquer avec un capteur en RS 232 avec VBA. J'ai suivi pas mal de manière de procédés que j'ai trouvé sur le net. J'ai MSCOMM32. J'arive à envoyer les commandes mais lorsque je veut récupérer les données que me renvoit mon capteur il ne m'affiche rien ou l'information incomplète(c'est aléatoire).J'ai l'impression que c'est asynchrone.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 18 mars 2008 à 11:20
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 VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)