столкнулся тут с необходимостью считать црц. в документации :
Контрольная сумма CRC8 по полям Id и Data (без учета маскирования).
Начальное значение: 0xFF (Полином: x 8 +x 5 +x 4 +1 / 0x31 / “CRC-8-Dallas/Maxim”).
методом тыка нашел что команда
#$7D#$C1#$00#$06#$00#$00#$47 дает crc #$31
#$B8#$C1#$00#$06#$00#$00#$47 дает crc #$CD
пробовал разные варианты, последний
- Код: Выделить всё
function TKKM_5200K.CRC3(Data: string): string;
var i,c,j:cardinal;
Value: word;
begin
Value := $FF;
for j := 1 to Length(Data) do
begin
Value := Value xor Ord(Data[j]);
for i := 0 to 8 do
begin
if odd(Value) then
//1Value := (Value shr 1) xor $31
Value:=((Value xor $31) shr 1) or $80
else
Value := (Value shr 1);
end;
end;
result := char(Value);
end;
но результат не тот. может кто сталкивался ?