7,762
社区成员
发帖
与我相关
我的任务
分享
/*-------------------------------------------*/
// Summary:判断校验位是否正确
// Parameter:
// (char*)buf -> 报文段(在0ah与0dh之间的片段)
// Return: SUM_OK(0): The sum check is succeed.
// SUM_ERR(1):The sum check is fail.
/*-------------------------------------------*/
int CSocketManager::SumCheck(unsigned char *buf)
{
unsigned char sum = 0;
unsigned char rx_sum;
int i;
int len = strlen((char*)buf);
rx_sum = ((buf[len-2] << 4) & 0xf0) + (buf[len-1] & 0x0f);
for( i = 0 ; i < len-2 ; i++)
{
sum += buf[i];
}
if(sum != rx_sum) return SUM_ERR;
return SUM_OK;
}