#include "tinycrc.h" /* CRC16 */ uint16_t tinycrc_crc16(const uint8_t *data, uint16_t size) { unsigned char x; unsigned short crc = 0xFFFF; if (data == nullptr) { return 0; } for (int index = 0 ; index < size ; ++index) { x = crc >> 8 ^ *data++; x ^= x>>4; crc = (crc << 8) ^ ((unsigned short)(x << 12)) ^ ((unsigned short)(x <<5)) ^ ((unsigned short)x); } return crc & 0xFFFF; }