1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| procedure TCRCMainForm.CRCMainEditDataChange(Sender: TObject);
Var
Chaine:String;
Data:String;
Value:Byte;
Nb,I:Byte;
begin
If CRCMainEditData.Text<>'' Then
Begin
Try
Chaine:=CRCMainEditData.Text;
Chaine:=Trim(Chaine);
Data:='';
Nb:=0;
While Chaine<>'' Do
Begin
Value:=HexToInt(Copy(Chaine,1,2));
Data:=Data+Chr(Value);
Inc(Nb);
Chaine:=Copy(Chaine,3,Length(Chaine));
Chaine:=Trim(Chaine);
End;
CRCMainLabelCRC.:='CRC = '+IntToHex(CRC16(Data),4);
Chaine:='Modbus = ';
For I := 1 To Nb Do
Chaine:=Chaine+' '+IntToHex(Ord(Data[I]),2);
CRCMainLabelModbus.Caption:=Chaine+' '+
// Trim(CRCMainEditData.Text)+' '+
Copy(IntToHex(CRC16(Data),4),3,2)+' '+
Copy(IntToHex(CRC16(Data),4),1,2);
Except
On E:Exception Do
Begin
CRCMainLabelCRC.Caption:='CRC = ?';
CRCMainLabelModbus.Caption:='Modbus = '+Trim(CRCMainEditData.Text);
End;
End;
End
Else
Begin
CRCMainLabelCRC.Caption:='CRC = ?';
CRCMainLabelModbus.Caption:='Modbus = ?';
End;
end; |
Partager