port com - transmition en binaire plutôt que par caractères [Delphi] - Delphi/Pascal - Programmation
Marsh Posté le 21-08-2007 à 13:04:08
Il est possible que le Tcomport utilise le protocole xon/xoff qui était assez populaire, et qui utilise des caractères spéciaux dont le code est en dessous du code de l'espace. En conséquence, l'envoi de caractères binaires pourrait perturber la gestion du transfert. Dans ce cas, il n'y aurait pas d'autre solution que de convertir le checksum en une petite chaine de caractères normaux.
Marsh Posté le 21-08-2007 à 19:58:00
salut merci pour cette info, si c'est le cas, les boules parceque je n'ai pas le choix, suis obligé de le faire sur un seul caractère (ou octet quoi) la taille du paquet est toujours fixe et j'peut rien faire du coté du recepteur
après je sais pas trop pour le xon/xoff surement oui
si le checksum correspond correspond à: a,A, B ou autres ça roule mais si il correspond à un "." (un point) il peut avoir beaucoup de valeures et effectivement en dessous des caractères normaux
j'essaye d'immiter des programmes qui existent c'est donc fasable mais sont ils fait en delphi ??? et avec le Tcomport???
d'un autre coté j'ai déja reussit à envoyer avec des checksums bidons le recepteur reçoit donc bien le probème ne vient peut être pas de là
j'ai déja comparé mes checksum avec ceux envoyés avec les autres programmes et ils sont tous ok
pas d'autre idées ?
Marsh Posté le 21-08-2007 à 20:59:39
Rahlala j'ai réussi en utilisant:
comport.write(const buffer: non typé ; count:integer)
au lieu de :
comport.writestr(const str:string)...
ce qui évite au passage pas mal de code inutile
ouélé au cas où qu'ça peut servir à d'autres
Marsh Posté le 21-08-2007 à 01:02:15
Salut à tous
j'ai un problème pour envoyer un checksum avec le Tcomport
Quand on envoi ou reçoit avec le composant comport de delphi on envoie et reçoit toujours uniquement des caractères d'après ce que j'ai pu trouver???
j'ai des paquets de donées à envoyer par le port série (en caractères normaux ça ne gène pas) malheureusement le dernier octet de ce paquet est le checksum de chaque octets (en integer ou byte bref) et forcément si je le convertit en char ça donne portnawak donc à chaque fois le paquet est bien envoyé mais pas le checksum...
n'y a-t-il pas une autre façon?