bonjour;
j'essaye de vérifier si je reçois la bonne trame. par contre je sais pas comment faire pour le nombre d'octets lus vu qu'il fait 1 octet par contre le nombre de mot fait 2 octets
merci d'avance
remarque : nb d'octets lus c'est le Buffer[2] et nombre de mots c'est TxBuf[4] et TxBuf[5]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 SetLength(TxBuf,6); TxBuf[0]:=$01; TxBuf[1]:=$03; TxBuf[2]:=$00; TxBuf[3]:=$03; TxBuf[4]:=$00; TxBuf[5]:=$01; // trame de départ //verification de la trame de lecture setLength(Buffer, 5) ; if Buffer[0] = $01 then begin if Buffer[1] = $03 then begin Buffer[2] := 2 * Txbuf[5] ;// ??? Buffer[3] := Buffer[3]; Buffer[4] := Buffer[4]; crc := CRC16(Buffer, Length(Buffer)); SetLength(Buffer,Length(Buffer)+2); Buffer[5]:=Byte(Crc Shr 8); Buffer[6]:=Byte(Crc); for i:= 0 to Length(Buffer)-1 do k:=k+IntToHex(Buffer[i]); Memo1.Lines.Add( ' checkLecture : ' + k ); end;
Partager