Reception de trame avec Tcomport
Bonjour
j'utilise le composant Tcomport 3.0 sous Delphi 2005. Merci a vous pour Delphi2005 personnel et merci Nono40 pour l'installation du composant sous D 2005 :)
Je communique avec divers equipements par le port série du PC. Le dialogue est de type "maitre-esclave", l'applicatif PC envoie une trame et l'equipement repond. J'utilise l'évenement OnRxChar pour recuperer les données rentrantes dans le PC.
Les trames recues sont de longueurs variables et ne possedent pas de caratères d'entête ni de fin (TcomDataPacket inutilisable).
Le maximum de caratères recues au declenchement de OnRxChar ("count" renvoyé) est de 8 est ceci quelque soit la vitesse de communication.
Lorsque je reçoi des trames de longueur superieur a 8 je dois attendre "un peu avant" d'aller lire le port avec 'ReadStr' et lui passer un nombre de caratères superieur à 8 , par exemple 'ReadStr(DatasRecues,13)', pour recup ma trame complète. Ceci n'est pas vraiment satisfaisant, si je ne connais pas la longueur de la trame attendue mon bricolage tombe a l'eau.
Y aurait il un paramètre de Tcomport qui me permettrait de recup une trame compète, ou peut on modifier cette valeur de 8 caratères maximum?
Je pensais a quelque chose dans le genre :
Tant que des caratères arrivent dans un intervalle de temps donné (fonction de la vitesse de communication) ils sont considérés comme appartenant à la meme trame et un evenement n'est généré que lorsque l'intervalle de temps sera ecoulé à la suite d'un caratère.
Je ne suis pas persuadé de la clarté de mon post :roll:
Si besoin je reformulerai cela a tête reposée, apres une bonne nuit de sommeil.
Par avance merci, bonne soirée
Amaz