小记
今天搞一下cJSON
笔记
cJSON *r=NULL;
char * jsonStr = "{\"semantic\":{\"slots\":{\"name\":\"zhangsan\"}}, \"rc\":0, \"operation\":\"CALL\", \"service\":\"telephone\", \"text\":\"context\"}";
r=cJSON_Parse(jsonStr);
printf("%s\n",cJSON_Print(r));
printf("%s\n", cJSON_PrintUnformatted(r));
cJSON_Print()函数格式化打印cJSON类型对象
输出:
cJSON_PrintUnformatted()函数,无格式化打印cJSON类型对象
输出:
modbus校验位实现(CRC校验)
#include <stdio.h>
int main(void)
{
unsigned short tmp = 0xffff;
unsigned short ret1 = 0;
unsigned char buff[6] = {0};
buff[0] = 0x01;
buff[1] = 0x03;
buff[2] = 0x61;
buff[3] = 0x00;
buff[4] = 0x00;
buff[5] = 0x02;
for(int n = 0; n < 6; n++){/*此处的6 -- 要校验的位数为6个*/
tmp = buff[n] ^ tmp;
for(int i = 0;i < 8;i++){ /*此处的8 -- 指每一个char类型又8bit,每bit都要处理*/
if(tmp & 0x01){
tmp = tmp >> 1;
tmp = tmp ^ 0xa001;
}
else{
tmp = tmp >> 1;
}
}
}
/*CRC校验后的值*/
printf("%X\n",tmp);
/*将CRC校验的高低位对换位置*/
ret1 = tmp >> 8;
ret1 = ret1 | (tmp << 8);
printf("ret: %X\n",ret1);
return 0;
}