From 35a1f159385651f35f3e8cad7ea696690f611ed6 Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Thu, 5 Dec 2024 21:52:07 +0800 Subject: [PATCH] =?utf8?q?ble=E5=B9=BF=E6=92=AD=E6=9C=BA=E5=88=B6=E4=BC=98?= =?utf8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../ble_service/bleservice/bleService.c | 60 +++++++++++-------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c index f486840be..e735a7055 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleService.c @@ -446,12 +446,13 @@ static void ble_adv_Timer_CallBack(int data) WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble adv need restart , gap_ble_set_adv_param ret %x\n",ret); } - + if(get_ble_connect()==false) + { + ret=gap_ble_start_adv(adv_id); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble adv need restart , gap_ble_start_adv ret %x\n",ret); + } - ret=gap_ble_start_adv(adv_id); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ble adv need restart , gap_ble_start_adv ret %x\n",ret); - } else { @@ -510,6 +511,7 @@ void svr_ble_adv_start_param(void) osStatus_t retTimer; if(ble_adv_timer!=NULL) { + osTimerStop(ble_adv_timer); osTimerDelete(ble_adv_timer); ble_adv_timer = NULL; } @@ -1276,7 +1278,7 @@ static void svr_ble_bt_gatts_characteristic_add_cb(uint8_t server_id, bt_uuid_t bt_uuid_t hid_report_uuid_2ae6 = {0}; bts_data_to_uuid_len2(BLE_ZHIHUI_OTA_ID, &hid_report_uuid_2ae6); -bt_uuid_t chara_uuid_data_2ae7 = {0}; + bt_uuid_t chara_uuid_data_2ae7 = {0}; bts_data_to_uuid_len2(BLE_ZHIHUI_OTA_REPLY_ID, &chara_uuid_data_2ae7); if(ble_gatts_cmp_uuid(uuid, &chara_uuid_data_2ae7)) @@ -1497,16 +1499,16 @@ errcode_t svr_ble_bt_gatts_noyify_zhihui(uint8_t *data, uint16_t data_len)//这 if(ret!=ERRCODE_SUCC) { msleep(50); - ret=gatts_notify_indicate(g_ble_server_id, g_ble_conn_id, &data_info); - if(ret!=ERRCODE_SUCC) - { + ret=gatts_notify_indicate(g_ble_server_id, g_ble_conn_id, &data_info); + if(ret!=ERRCODE_SUCC) + { msleep(100); ret=gatts_notify_indicate(g_ble_server_id, g_ble_conn_id, &data_info); if(ret!=ERRCODE_SUCC) WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gatts_notify_indicate ret:0x%x. serverid:%u,conn_id:%u,handle:%u.data_len:%d", ret, g_ble_server_id, g_ble_conn_id, g_ble_server_handle,data_len); - } + } } return ret; } @@ -1695,15 +1697,15 @@ static void svr_ble_bt_gatts_req_write_cb(uint8_t server_id, uint16_t conn_id, g if(status!=ERRCODE_SUCC) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ota fial "); - //如果存在此文件证明ota出现失败过 + //如果存在此文件证明ota出现失败过 FILE *fp= fopen("/user/updata/Ble_ota_file.txt","ab+"); fwrite("x",1,1,fp); fclose(fp); } - } + } if(Is_App_ble_handle(write_cb_para->handle)) { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," %d %d\r\n",conn_id,write_cb_para->handle); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP," %d %d\r\n",conn_id,write_cb_para->handle); g_ble_conn_id=conn_id; } if(is_alipay_handle(write_cb_para->handle)) @@ -2041,17 +2043,17 @@ static void blesrv_service_check_task(void const *arg) uint16_t server_handle = mail.service_handle; uint32_t msg_len = mail.msg_len; - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"mail.msg_data:%X,g_blesrv_queue:%d ble_recv:%d %d %02X %02X %02X mail.msg_data: %02X %02X %02X\r\n", - mail.msg_data, - g_blesrv_queue, - msg_len, - server_handle, - p_msgbuf[0], - p_msgbuf[1], - p_msgbuf[2], - mail.msg_data[0], - mail.msg_data[1], - mail.msg_data[2]); + // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"mail.msg_data:%X,g_blesrv_queue:%d ble_recv:%d %d %02X %02X %02X mail.msg_data: %02X %02X %02X\r\n", + // mail.msg_data, + // g_blesrv_queue, + // msg_len, + // server_handle, + // p_msgbuf[0], + // p_msgbuf[1], + // p_msgbuf[2], + // mail.msg_data[0], + // mail.msg_data[1], + // mail.msg_data[2]); #if 1 if (server_handle == get_factory_ate_write_handl()) @@ -2085,7 +2087,7 @@ static void blesrv_service_check_task(void const *arg) free(mail.msg_data); mail.msg_data = NULL; } - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"ble_recv:end\r\n"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ble_recv:end\r\n"); } } #define BLESRV_APP_BOARD_MSG_COUNT 50 @@ -2132,6 +2134,7 @@ void send_pair_succ(bd_addr_t *addr) sendParieSuccess(1,addr); } + static uint8_t get_ble_Check_adv_status_falg=0; void Check_ble_adv_status(void) { @@ -2143,16 +2146,21 @@ void Check_ble_adv_status(void) else { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"get_ble_adv_status %s \n", get_ble_adv_status()?"true":"fales"); + if(get_ble_adv_status()==0) { - if(AdverFlag) + get_ble_Check_adv_status_falg++; + if(AdverFlag && get_ble_Check_adv_status_falg>=3) { if(uapi_dev_runtime_get_factory_test_status_flag()) svr_ble_adv_factory_test_start_param(); else svr_ble_adv_start_param(); } - + } + else + { + get_ble_Check_adv_status_falg=0; } } return; -- 2.17.1