临时解决BLE因消息flag不回消息的问题 390/1
authorhcj <1224667075@qq.com>
Thu, 27 Jun 2024 07:09:04 +0000 (15:09 +0800)
committerhcj <1224667075@qq.com>
Thu, 27 Jun 2024 07:09:04 +0000 (15:09 +0800)
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c

index 7752579..075b798 100644 (file)
@@ -4723,7 +4723,7 @@ uint32_t EACH_DATA_LEN=0;//每种数据类型的的长度
 \r
 void Read_JSON_file_buf_send_bin_Data(uint8_t day, uint8_t num,uint16_t id,char *data_item)\r
 {\r
-    sendbigDataBufState = true;//分包同步数据不允许打断\r
+   \r
     char *buf=NULL;\r
     const char *path=NULL;\r
     uint8_t timeBit = 4;//默认是4个字节的时间戳\r
@@ -4756,7 +4756,7 @@ void Read_JSON_file_buf_send_bin_Data(uint8_t day, uint8_t num,uint16_t id,char
         printf("打开文件失败 %s \r\n",path);\r
         if(path)\r
         {\r
-            free(path);\r
+            ym_free(path);\r
             path = NULL;\r
         }\r
        \r
@@ -4775,12 +4775,10 @@ void Read_JSON_file_buf_send_bin_Data(uint8_t day, uint8_t num,uint16_t id,char
     fclose(fp);\r
     if(path)\r
     {\r
-        free(path);\r
+        ym_free(path);\r
         path = NULL;\r
     }\r
     cJSON *heart_data=cJSON_Parse(buf);\r
-    ym_free(buf);\r
-\r
     printf("读文件\r\n");\r
     if(heart_data==NULL)\r
     {\r
@@ -4851,6 +4849,9 @@ void Read_JSON_file_buf_send_bin_Data(uint8_t day, uint8_t num,uint16_t id,char
         ym_free(send_buf);\r
         send_buf = NULL;\r
     }\r
+\r
+    sendbigDataBufState=false;\r
+\r
     cJSON_Delete(heart_data);\r
     \r
 }\r
@@ -4927,6 +4928,7 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
     memcpy(sendBuf+3,&totaldata_pack,4);//总的数据包\r
     memcpy(sendBuf+7,&totaldata_packlen,4);//总的数据包长度\r
     memcpy(sendBuf+11,&pack_count,4);//分包索引号\r
+\r
     memcpy(sendBuf+15,&pack_datalen,2);//分包数据长度\r
 \r
     if(Check_CRC(data,len,crcvalue))\r
@@ -4934,6 +4936,8 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
         bleSendTypeID=cmd-((cmd/256)*256);\r
         // printf("同步第%d天的数据\r\n",data[0]);\r
         int num;\r
+        sendbigDataBufState = true;//分包同步数据不允许打断\r
+\r
         switch (bleSendTypeID)\r
         {\r
             case 0x40://同步心率历史数据\r
@@ -5032,6 +5036,7 @@ void readDevDataBle(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
             default:\r
                 break;\r
         }\r
+        sendbigDataBufState = false;//分包同步数据不允许打断\r
         //sendReadData();\r
     }else{\r
         sendBuf[18] = 0;\r
@@ -6475,7 +6480,7 @@ void bleDataRecv(uint8_t *totalData, uint16_t event_size,uint16_t handle)
     }\r
     if(sendbigDataBufState == true)//正在发送大数据不接收任何app指令下发的数据\r
     {\r
-        printf("sendbigDataBufState :(%d) ",sendbigDataBufState);\r
+        printf("sendbigDataBufState :(%d)",sendbigDataBufState);\r
         return;\r
     }\r
     printf("bleDataRecv handle:%d\r\n",handle); \r
@@ -6514,7 +6519,7 @@ void bleDataRecv(uint8_t *totalData, uint16_t event_size,uint16_t handle)
 \r
 void free_ble_data(void)//以防断开蓝牙没有释放数据类型\r
 {\r
-    return;\r
+   \r
     totalpack = 0;\r
     muiltFlag = 0; \r
     packdataLen = 0;\r
@@ -6522,6 +6527,7 @@ void free_ble_data(void)//以防断开蓝牙没有释放数据类型
     ANCSBigBufFlag = 0;\r
     recvBigDataBufState = false;\r
     sendbigDataBufState = false;\r
+    return;\r
     \r
 }\r
 \r