修复蓝牙释放,异步进程释放可能死机 1119/1 1119/head
authorhcj <1224667075@qq.com>
Tue, 8 Oct 2024 01:48:44 +0000 (09:48 +0800)
committerhcj <1224667075@qq.com>
Tue, 8 Oct 2024 01:48:44 +0000 (09:48 +0800)
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c

index 7e2ee1f..f1edce5 100644 (file)
@@ -8520,6 +8520,14 @@ void bleDataRecv(uint8_t *totalData, uint16_t event_size,uint16_t handle)
 }\r
 \r
 void free_ble_data(void)//以防断开蓝牙没有释放数据类型\r
+{\r
+    blesrv_service_recv_msg_handler(0xff,(uint8_t*)"clean",6);\r
+    return;\r
+    \r
+}\r
+\r
+\r
+void free_ble_data_Event(void)//以防断开蓝牙没有释放数据类型\r
 {\r
    \r
     totalpack = 0;\r
@@ -8549,6 +8557,12 @@ void free_ble_data(void)//以防断开蓝牙没有释放数据类型
 void revBleOldData(uint8_t *buf, uint16_t event_size,uint16_t handle)//每包的数据大小\r
 {\r
     printf("handle :%d %s event_size %d\r\n",handle,getHandlname(handle),event_size);\r
+    if(handle==0xff)\r
+    {\r
+        free_ble_data_Event();\r
+        return;\r
+    }\r
+\r
     bleDataRecv(buf,event_size,handle);\r
 }\r
 #endif\r
index f441755..f0a03b5 100644 (file)
@@ -411,6 +411,7 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
             svr_ble_adv_start();\r
             Bleconnect = GAP_BLE_STATE_DISCONNECTED;//蓝牙已断开\r
             ble_disconnect_ok();\r
+\r
             free_ble_data(); \r
 \r
             if(get_ble_pair())\r
@@ -1597,6 +1598,7 @@ void blesrv_service_recv_msg_handler(uint16_t srv_handle, uint8_t * msg_data, ui
     blesrv_mail.service_handle = srv_handle;\r
     blesrv_mail.msg_len = msg_len;\r
     blesrv_mail.msg_data = (uint8_t*)malloc(msg_len);\r
+    \r
     if(blesrv_mail.msg_data==NULL)\r
     {\r
         return ;\r