Спасибо, теперь понял.
только вот видимо проблема у меня еще и функции crc16, так как при вычислении КС, ответ приписанный к входным данным, при повторном вычислении, должен возвращать в ответ 0.
Т.е. Вх: F70302640008 КС: 10FD.
А при Вх: F7030264000810FD КС: 00.
Код:
function crc16(data:Byte;crc:WORD):Word;
begin //UpdCrc
crc16:=crctab[((crc shr 8) and 255)] xor (crc SHL 8) XOR data ;
end;
А получается:
Вх: F70302640008 КС: D368
Вх: F70302640008D368 КС: 7EB2
все С# функция выглядит вот так
Код:
unsigned short Crc16(unsigned char * pcBlock, unsigned short len)
{
unsigned short crc = 0xFFFF;
while (len--)
crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ *pcBlock++];
return crc;
может найдутся люди, которые перефразируют ее в Delphi?