Цитата
Name : "X-25"
Width : 16
Poly : 1021
Init : FFFF
RefIn : True
RefOut : True
XorOut : FFFF
Check : 906E
(здесь я не догоняю что есть RefIn, RefOut и Check)Width : 16
Poly : 1021
Init : FFFF
RefIn : True
RefOut : True
XorOut : FFFF
Check : 906E
Прогоняю через функцию...
Код
unsigned short Crc16(unsigned char *pcBlock, unsigned short len)
{
unsigned short crc = 0xFFFF;
unsigned char i;
while (len--)
{
crc ^= *pcBlock++ << 8;
for (i = 0; i < 8; i++)
crc = crc & 0x8000 ? (crc << 1) ^ 0x1021 : crc << 1;
}
return crc ^ 0xFFFF;
}
...следующий пакет...{
unsigned short crc = 0xFFFF;
unsigned char i;
while (len--)
{
crc ^= *pcBlock++ << 8;
for (i = 0; i < 8; i++)
crc = crc & 0x8000 ? (crc << 1) ^ 0x1021 : crc << 1;
}
return crc ^ 0xFFFF;
}
Цитата
FF03C021010300190206000A0000070208020506BC62123F0305C22305
...у которого CRC должен быть EEF1, но я получаю E3E2.О, гуру L2P, подскажите где я на грабли наступаю.
П.С. Забить на пипипи и взять "нормальный" модем с уже реализованным стеком TCP/IP не предлагать.