Merge #1119 into sdk602patch0626 from refs/changes/1119/head
author胡传军 <1224667075@qq.com>
Tue, 8 Oct 2024 02:46:22 +0000 (02:46 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Tue, 8 Oct 2024 02:46:22 +0000 (02:46 +0000)
修复蓝牙释放,异步进程释放可能死机

* refs/changes/1119/head: (1 commits squashed)

  - 修复蓝牙释放,异步进程释放可能死机

Signed-off-by: aliyun8003852482 <1224667075@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1119
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