\r
void send_big_data(uint8_t flag, char *data, int datalen, int total, uint32_t Packet_id, uint32_t packet_total, uint8_t type_id, uint8_t type)\r
{\r
- uint8_t *buf = malloc(17 + datalen + 1); // 动态分配内存空间,防止堆栈溢出\r
+ // 动态分配内存空间,防止堆栈溢出\r
+ uint8_t *buf = malloc(17 + datalen + 1); \r
if (buf == NULL) {\r
printf("内存分配失败\n");\r
return;\r
}\r
\r
- buf[0] = 0x72;\r
- buf[1] = type;\r
- buf[2] = type_id;\r
- memcpy(buf + 3, &packet_total, 4);\r
- memcpy(buf + 7, &total, 4);\r
- memcpy(buf + 11, &Packet_id, 4);\r
- memcpy(buf + 15, &datalen, 2);\r
+ // 设置消息头部信息\r
+ buf[0] = 0x72; // 消息头\r
+ buf[1] = type; // 类型\r
+ buf[2] = type_id; // 类型ID\r
+ memcpy(buf + 3, &packet_total, 4); // 总包数\r
+ memcpy(buf + 7, &total, 4); // 总数据长度\r
+ memcpy(buf + 11, &Packet_id, 4); // 数据包ID\r
+ memcpy(buf + 15, &datalen, 2); // 数据长度\r
\r
+ // 处理数据和计算CRC\r
if (data == NULL) {\r
- data = "\0";\r
- buf[17 + datalen] = Calculate_CRC_Big((uint8_t *)data, datalen);\r
+ data = "\0"; // 数据为空时处理\r
+ buf[17 + datalen] = Calculate_CRC_Big((uint8_t *)data, datalen); // 计算CRC\r
} else {\r
- memcpy(buf + 17, data, datalen);\r
- buf[17 + datalen] = Calculate_CRC_Big((uint8_t *)data, datalen);\r
+ memcpy(buf + 17, data, datalen); // 复制数据到缓冲区\r
+ buf[17 + datalen] = Calculate_CRC_Big((uint8_t *)data, datalen); // 计算CRC\r
}\r
\r
+ // 根据标志位选择发送数据的方式\r
if (flag) {\r
- sendDataNow(buf, 17 + datalen + 1);\r
+ sendDataNow(buf, 17 + datalen + 1); // 直接发送数据\r
} else {\r
- sendBleData(buf, 17 + datalen + 1);\r
+ sendBleData(buf, 17 + datalen + 1); // 使用BLE发送数据\r
}\r
\r
free(buf); // 释放内存空间\r
{\r
send_big_data(1,NULL,1,1,1,1,id,1);\r
sendbigDataBufState = false;//分包同步数据不允许打断\r
+ free(buf);\r
return;\r
}\r
\r
{\r
send_big_data(1,NULL,1,1,1,1,id,1);\r
printf("打开文件失败%s\r\n",path);\r
+ free(buf);\r
sendbigDataBufState = false;//分包同步数据不允许打断\r
return;\r
}\r
}\r
else\r
{\r
- packet_total=item_num/num+1;\r
+ packet_total=item_num/num+1;\r
}\r
for(int i=0;i<item_num;i++)\r
{\r
cJSON * heart_data_item=cJSON_GetArrayItem(heart_data_list,i);\r
uint32 timestamp=cJSON_GetObjectItem(heart_data_item,"timestamp")->valueint;\r
- uint8_t vale=cJSON_GetObjectItem(heart_data_item,"heart_value")->valueint;\r
- printf("heart_value :%d\r\n",vale);\r
+ uint8_t value=cJSON_GetObjectItem(heart_data_item,"heart_value")->valueint;\r
+ printf("heart_value :%d\r\n",value);\r
printf("timestamp :%d\r\n",timestamp);\r
memcpy(send_buf+send_len,×tamp,4);\r
send_len+=4;\r
- memcpy(send_buf+send_len,&vale,single_data_len);\r
- send_len+=single_data_len;\r
+ memcpy(send_buf+send_len,&value,1);\r
+ send_len+=1;\r
\r
if(((i+1)%num==0 && i!=0) || (item_num-1==i))\r
{\r