unsigned int calcCRC(const char* recvbuf, int datasize)
{
    unsigned int i;
    int j;
    
    unsigned int crc = 0x1D0F;
    for (i = 0;i < datasize;i++)
    {
        crc ^= recvbuf[i] << 8;
        for (j = 0; j < 8; j++)
        {
        if (crc & 0x8000) 
            crc = (crc << 1) ^ 0x1021;
        else
            crc = crc << 1;
        }
    }
    return crc;
}
