From: dxy <1731678236qq.com> Date: Fri, 15 Aug 2025 01:34:22 +0000 (+0800) Subject: 优化扫描列表上传 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=0280ae32fd44e3bf1ca565e0b7b21348f50fcd4d;p=mirrors%2F7PIN_V1_5_Jl_SDK.git 优化扫描列表上传 --- diff --git a/2.code/1.sdk/apps/BK_app/BK_drive/bk_uart.c b/2.code/1.sdk/apps/BK_app/BK_drive/bk_uart.c index 9be46c2..ac3a9a1 100644 --- a/2.code/1.sdk/apps/BK_app/BK_drive/bk_uart.c +++ b/2.code/1.sdk/apps/BK_app/BK_drive/bk_uart.c @@ -326,6 +326,7 @@ int uart_send_single_bt_mac(u8 *name,u8 *mac,u8 connect) printf( "Failed to create JSON object\n"); cJSON_Delete(data); return -1; + } char mac_tmp[18]={0}; memset(mac_tmp,0,18); @@ -353,6 +354,73 @@ int uart_send_single_bt_mac(u8 *name,u8 *mac,u8 connect) cJSON_Delete(root); return 0; } +extern char userremote_name[32]; //当前连接或者断开的蓝牙名称 +extern u8 bt_conn_addr[6];//蓝牙连接成功的地址 +extern u8 bt_connect; +void send_bt_connect_state(void){ + cJSON *root = cJSON_CreateObject(); + if (root == NULL) { + printf( "Failed to create JSON object\n"); + return; + } + // 添加字符串字段 "event" + + cJSON_AddStringToObject(root, "event", "need_send_bt_connect_list"); + cJSON *data = cJSON_CreateObject(); + if (data == NULL) { + printf( "Failed to create JSON object\n"); + cJSON_Delete(data); + return; + } + char mac_tmp[18]={0}; + memset(mac_tmp,0,18); + if(memcmp(bt_conn_addr,"\0\0\0\0\0\0",6) != 0){ + sprintf((char *)mac_tmp,"%02X:%02X:%02X:%02X:%02X:%02X",bt_conn_addr[5],bt_conn_addr[4],bt_conn_addr[3],bt_conn_addr[2],bt_conn_addr[1],bt_conn_addr[0]); + + cJSON_AddStringToObject(data, "name", (char *)userremote_name); + cJSON_AddStringToObject(data, "mac", (char *)mac_tmp); + if(bt_connect == 1){ + cJSON_AddStringToObject(data, "state", "connecting"); + } + else if (bt_connect == 2) + { + cJSON_AddStringToObject(data, "state", "connected"); + }else{ + cJSON_AddStringToObject(data, "state", "disconnected"); + } + cJSON_AddItemToObject(root, "data", data); + + char *json_string = cJSON_Print(root); + if (json_string == NULL) { + + printf( "Failed to print JSON\n"); + + cJSON_Delete(root); + return; + } + printf("JSON数据1: %s\n", json_string); + uart_send_blocking(ut, json_string, strlen(json_string), 20); + // 释放内存 + cJSON_free(json_string); + cJSON_Delete(root); + }else{ + cJSON_AddStringToObject(data, "None",""); + cJSON_AddItemToObject(root, "data", data); + + char *json_string = cJSON_Print(root); + if (json_string == NULL) { + printf( "Failed to print JSON\n"); + cJSON_Delete(root); + return; + } + + printf("JSON数据2: %s\n", json_string); + uart_send_blocking(ut, json_string, strlen(json_string), 20); + // 释放内存 + cJSON_free(json_string); + cJSON_Delete(root); + } +} int uart_send_bt_list(u8 *data) { u16 len_tmp = 0; @@ -373,6 +441,7 @@ int uart_send_bt_list(u8 *data) uart_send_blocking(ut, data+len_tmp, date_len, 200); len_tmp+=date_len; } + data_flag = 0; break; //最后一包 } //532 @@ -563,6 +632,11 @@ int parse_uart_data(char *json_string) } } + + if(!strcmp(event->valuestring,"get_connect_bt_state")) { + printf("获取当前连接蓝牙耳机的状态"); + send_bt_connect_state(); + } if(ack_flag == 1) { ack_flag = 0; diff --git a/2.code/1.sdk/apps/common/third_party_profile/jieli/trans_data_demo/le_trans_data.c b/2.code/1.sdk/apps/common/third_party_profile/jieli/trans_data_demo/le_trans_data.c index 1254e54..e44a089 100644 --- a/2.code/1.sdk/apps/common/third_party_profile/jieli/trans_data_demo/le_trans_data.c +++ b/2.code/1.sdk/apps/common/third_party_profile/jieli/trans_data_demo/le_trans_data.c @@ -230,6 +230,7 @@ void start_scan_bt(void){ if (bt_connect) { //搜索前断开已连接得蓝牙耳机 user_emitter_cmd_prepare(USER_CTRL_DISCONNECTION_HCI, 0, NULL); } + scan_state = 1; bt_emitter_start_search_device(); //开始扫描 } void set_adv_imei(char *imei){ @@ -237,9 +238,7 @@ void set_adv_imei(char *imei){ bt_ble_init(); } void stop_scan_bt(void){ - - bt_emitter_stop_search_device();//停止扫描 - scan_state=0; + bt_emitter_stop_search_device();//停止扫描 } ///ble回复扫描耳机列表 void bt_scan_list(void) //扫描完成发送设备列表->小程序 @@ -248,6 +247,7 @@ void bt_scan_list(void) //扫描完成发送设备列表->小程序 { return; } + scan_state=0; printf("scan_state:%d",scan_state); // if(!scan_state){ // return; @@ -431,6 +431,7 @@ void connect_bt(char *json_data,u8 conect){ } } } + extern u8 get_total_connect_dev(void); //------------------------------------------------------ //ANCS diff --git a/2.code/1.sdk/apps/watch/task_manager/bt/bt_event_fun.c b/2.code/1.sdk/apps/watch/task_manager/bt/bt_event_fun.c index c33a6f7..6412835 100644 --- a/2.code/1.sdk/apps/watch/task_manager/bt/bt_event_fun.c +++ b/2.code/1.sdk/apps/watch/task_manager/bt/bt_event_fun.c @@ -1448,7 +1448,8 @@ void bt_status_connect_background(struct bt_event *bt) /*----------------------------------------------------------------------------*/ void bt_status_disconnect(struct bt_event *bt) { - bt_connect = BT_CONN_STATE_INIT; + bt_connect = BT_CONN_STATE_INIT; + uart_send_single_bt_mac(userremote_name,bt_conn_addr,0); sys_auto_sniff_controle(0, NULL); __this->call_flag = 0; /* log_info("BT_STATUS_DISCONNECT\n"); */