//字符串里查找最近一个c字符,返回偏移位置
unsigned int find_c(char *data,char c)
{
- unsigned char count = 0;
- while(data[count])
+ unsigned int count = 0;
+ while(1)
{
if(data[count] == c)
return count;
count++;
- if(count > 65532)
+ // if(count%100 ==1)
+ // FR8012HAQ_LOG("find_c:count:%d",count);
+ if(count > 65532|| data[count] == 0)
return 0;
}
+ return 0;
}
static void fr8012haq_en_gpio_init(void)
{
// FR8012HAQ_LOG("%s\n", (char *)UART4_buf+110);
int print_len_tmp = len ;
FR8012HAQ_LOG("UART4:len:%d ",len);
- FR8012HAQ_LOG("str:%s",UART4_buf);
- FR8012HAQ_LOG("%s",UART4_buf+255-4);
+ my_str_print(UART4_buf,len);//打印
FR8012HAQ_LOG("\n\n");
if(strstr(UART4_buf,"\"cmd\":\"2\""))
{
//unsigned char hrs = 0;
str_tmp += strlen("\"yyl_data\":\"");
- //time
+ FR8012HAQ_LOG("yyl_data1:!!!\n");
unsigned int yyl_data_len = 0;
-
yyl_data_len = find_c(str_tmp,'\"');
+ FR8012HAQ_LOG("yyl_data1.0.0:!!!\n");
if(s_FR8012HAQ_yyl_data!= NULL && s_FR8012HAQ_yyl_data_len ==0)//统一线程释放,避免上层应用释放导致dump
{
+ FR8012HAQ_LOG("yyl_data1.0:!!!\n");
free(s_FR8012HAQ_yyl_data);
s_FR8012HAQ_yyl_data = NULL;
}
if(s_FR8012HAQ_yyl_data == NULL)//第一次用
{
+ FR8012HAQ_LOG("yyl_data1.1:!!!\n");
s_FR8012HAQ_yyl_data = malloc(yyl_data_len);
s_FR8012HAQ_yyl_data_len = 0;
}else
{
+ FR8012HAQ_LOG("yyl_data1.3:!!!\n");
char *s_FR8012HAQ_yyl_data_tmp = malloc(yyl_data_len+s_FR8012HAQ_yyl_data_len);
memcpy(s_FR8012HAQ_yyl_data_tmp,s_FR8012HAQ_yyl_data,s_FR8012HAQ_yyl_data_len);
free(s_FR8012HAQ_yyl_data);
}
if(s_FR8012HAQ_yyl_data)//复制数据
{
+ FR8012HAQ_LOG("yyl_data1.4:!!!\n");
memcpy(&s_FR8012HAQ_yyl_data[s_FR8012HAQ_yyl_data_len],str_tmp,yyl_data_len);
s_FR8012HAQ_yyl_data_len+=yyl_data_len;
}
- FR8012HAQ_LOG("yyl_data:len:%d\n",s_FR8012HAQ_yyl_data_len);
- FR8012HAQ_LOG("yyl_data:");
+ FR8012HAQ_LOG("yyl_data2:len:%d\n",s_FR8012HAQ_yyl_data_len);
+ FR8012HAQ_LOG("yyl_data3:");
my_str_print(s_FR8012HAQ_yyl_data,s_FR8012HAQ_yyl_data_len);//打印
FR8012HAQ_LOG("\n\n");
- FR8012HAQ_LOG("yyl_data:len:%d",s_FR8012HAQ_yyl_data_len);
+
}
}
if(strstr(UART4_buf,"\"cmd\":\"3\""))