Code:
int main()
{
unsigned char data[] = {0x00,0x00,0x14,0x00,0xee,0x18,0x00,0x00,0x10,0x02,0x85,
0x09,0xa0,0x00,0xa1,0x9c,0x0b,0x00,0x00,0x05,0x80,0x00,
0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x15,0x70,
0x16,0x15,0x9c,0x00,0x15,0x70,0x16,0x15,0x9c,0xa0,0x6b,
0x9c,0xc1,0x96,0xe1,0x58,0x00,0x00,0x00,0x64,0x00,0x11,
0x20,0x00,0x0a,0x43,0x41,0x4d,0x50,0x55,0x53,0x2d,0x41,
0x49,0x52,0x01,0x08,0x82,0x84,0x8b,0x0c,0x12,0x96,0x18,
0x24,0x03,0x01,0x06,0x05,0x04,0x05,0x0a,0x00,0x00,0x07,
0x06,0x43,0xb9,0x72,0x01,0x0b,0x1e,0x2a,0x01,0x04,0x30,
0x14,0x01,0x00,0x00,0x0f,0xac,0x02,0x01,0x00,0x00,0x0f,
0xac,0x02,0x01,0x00,0x00,0x0f,0xac,0x01,0x01,0x00,0x32,
0x04,0x30,0x48,0x60,0x6c,0xad,0x0f,0x00,0xa0,0xf8,0x00,
0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x65,0x28,0x4c,
0xdd,0x18,0x00,0x50,0xf2,0x01,0x01,0x00,0x00,0x50,0x41,
0x03,0x67,0x03,0x00,0x50,0xf2,0x02,0x01,0x00,0x00,0x50,
0xf2,0x01,0x00,0x00,0xdd,0x10,0x00,0xa0,0xf8,0x01,0x00,
0x01,0x0c,0x00,0x00,0x00,0x00,0xa0,0xf8,0x65,0xa9,0x0b,
0xab,0x93,0x8e,0x88};
unsigned int len = 191;
unsigned int crc = 0;
//calculate crc of the first byte until 191-4byes.
//because the last 4 bytes are reserved for FCS
//it should give us 0xee03cb23
printf("%02x\n", crc);
return 0;
}
I tried all CRC32, FCS32 and haven't been able to get this "0xee03cb23". This value comes from WireShark so I'm pretty sure about the CRC value.