Lire une valeur codée sur deux octets sur RS232 [Résolu]

Signaler
Messages postés
6
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
19 janvier 2006
-
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
-
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

Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
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
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
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