添加设置蓝牙广播名字功能
authorp15692025051 <846603105@qq.com>
Mon, 9 Sep 2024 03:20:35 +0000 (11:20 +0800)
committerp15692025051 <846603105@qq.com>
Mon, 9 Sep 2024 03:20:35 +0000 (11:20 +0800)
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/inflash.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/inflash.h
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/user_task.c

index 1a62e22..7acca9e 100644 (file)
@@ -315,17 +315,17 @@ void sp_start_adv(void)
 
         gap_set_advertising_param(&adv_param);
         
-        uint8_t name[ADV_NAME_BT1_LEN] = ADV_NAME_BT1;
+        //uint8_t name[ADV_NAME_BT1_LEN] = ADV_NAME_BT1;
 
-        scan_rsp_data[0] = ADV_NAME_BT1_LEN + 1;
+        scan_rsp_data[0] = strlen(user_data.ble_name) + 1;
         scan_rsp_data[1] = GAP_ADVTYPE_LOCAL_NAME_COMPLETE;
-        memcpy(&scan_rsp_data[2], name, ADV_NAME_BT1_LEN);
+        memcpy(&scan_rsp_data[2], user_data.ble_name, strlen(user_data.ble_name));
         
         // Set advertising data & scan response data
                //co_printf("gap_bond_manager_get_info 3 !!!!!!!!\n");
         gap_set_advertising_data(adv_data, (bond_info.bond_flag == true) ? (sizeof(adv_data) - 7) : sizeof(adv_data));
                //co_printf("gap_bond_manager_get_info 4 !!!!!!!!\n");
-        gap_set_advertising_rsp_data(scan_rsp_data, ADV_NAME_BT1_LEN + 2);
+        gap_set_advertising_rsp_data(scan_rsp_data, strlen(user_data.ble_name) + 2);
         //co_printf("%s\r\n", (bond_info.bond_flag == true) ? "Have bond info" : "Nothing bond info");
     }
     
@@ -347,8 +347,9 @@ void sp_start_adv(void)
 void simple_peripheral_init(void)
 {
        // set local device name
-       uint8_t local_name[ADV_NAME_BT1_LEN] = ADV_NAME_BT1;
-       gap_set_dev_name(local_name, sizeof(local_name));
+       // uint8_t local_name[ADV_NAME_BT1_LEN] = ADV_NAME_BT1;
+       // gap_set_dev_name(local_name, sizeof(local_name));
+       gap_set_dev_name((unsigned char*)user_data.ble_name, strlen(user_data.ble_name));
        gap_set_dev_appearance(GAP_APPEARE_HID_MOUSE);
 
        os_timer_init(&update_param_timer, param_timer_func, NULL);
index 0921657..3cc7e65 100644 (file)
@@ -118,8 +118,12 @@ void user_inflash_init(void)
         strcpy(user_data.official_url,USER_URL);
         memset(user_data.brand,0,sizeof(user_data.brand));
         strcpy((char *)user_data.brand,Brand);
+        strcpy((char *)user_data.ble_name,ADV_NAME_BT1);
+        
         user_data_storage_do(true);
     }
+    if(strlen(user_data.ble_name)>sizeof(user_data.ble_name))
+        strcpy((char *)user_data.ble_name,ADV_NAME_BT1);
     //user_data.url_switch = 1;//客户强行开
     // if (user_data.mouse_mode == WORK_2_4G_MODE)
     // {
index 95e0417..e93f634 100644 (file)
@@ -48,6 +48,7 @@ typedef struct
     uint8_t dongle_mac[MAC_ADDR_LEN];
     uint8_t RVD2[MAC_ADDR_LEN];
     uint8_t brand[SN_MAX_LEN];//Æ·ÅÆ
+    char ble_name[20];
     uint32_t reset_end ;
 } user_data_param_t;
 
index 416cc5b..add4b8b 100644 (file)
@@ -443,6 +443,22 @@ char user_parse_data(char *data)
                                co_printf("set_mouse_mode:%d\r\n",user_data.mouse_mode);
                                ret = 1;
                        }
+                       str_tmp = strstr(cmd_str_tmp,"\"set_ble_name\":\"");
+                       if(str_tmp)
+                       {
+
+                               str_tmp += strlen("\"set_ble_name\":\"");
+                num_buf_len = find_c(str_tmp,'\"');
+                               if(num_buf_len>=sizeof(user_data.ble_name)-1)
+                    num_buf_len = sizeof(user_data.ble_name)-1;
+                               memcpy(user_data.ble_name,str_tmp,num_buf_len);
+                               user_data.ble_name[num_buf_len]=0;
+                               send_buf_len = snprintf(send_buf,SEND_BUF_MAX_LEN,"{\"set_config\":\"1\"}");
+                               hid_cmd_send((unsigned char*)send_buf,send_buf_len);
+                               user_data_storage_do(true);
+                               co_printf("ble_name:%s\r\n",user_data.ble_name);
+                               ret = 1;
+                       }
                        
                }else
                {