Lire une valeur codée sur deux octets sur RS232

Résolu
aymen81 Messages postés 6 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 19 janvier 2006 - 16 déc. 2005 à 14:29
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 - 16 déc. 2005 à 15:51
comment lire une valeur codée sur 2 octets et qui commence par une lettre sur le port serie en delphi . par exp T4150 envoyée par un microcontrolleur.

2 réponses

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
16 déc. 2005 à 15:19
je ne comprends pas très bien ta question

il faut que tu es mis un composant dans ton projet (TComport ou autre)
ou une DLL et après ouverture du port tu le lis (par exemple
readstr(buffer,count))

S'il s'agit d'une chaine de caractères qui commence toujours par
une lettre il te suffit de copier la fin de la chaine et de la
convertir.

resultat:=copy(buffer,2,length(buuffer));

valeur:=strtoint(resultat);



Si ce n'est pas ce que tu cherche précise ta question



@+

jlen
3
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
16 déc. 2005 à 15:51
un petite chose si tes données sont codées ainsi:

un caractère + une valeur binaire su 2 octets le plus simple est de
recevoir la totalité comme une chaine de caractères et ensuite de faire
un transtypage sur la valeur numérique

Dans ton exemple la chaine aura une longueur de 3 octets

si buffer contient la chaine:

var valeur:^smallint; (ou^word si jamais négatif);



valeur:=@buffer[2];// on pointe sur le début de la valeur;

ShowMessage('Ceci est la valeur' + inttistr(valeur^));

si tu veux plus d'exemple vas voir ma source

PILOTAGE 4 AXES POUR MOTEURS PAS A PAS + 4 SERVOS ...

en particulier dans le timer "scanner" ou on lit des données arriavnt
de façon aléatoire tu peux aussi regarder dans la fonction
"LectureCompteur"(actionlist:"utilitaire")

@+

jlen
0
Rejoignez-nous