printf( "Failed to create JSON object\n");
cJSON_Delete(data);
return -1;
+
}
char mac_tmp[18]={0};
memset(mac_tmp,0,18);
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;
uart_send_blocking(ut, data+len_tmp, date_len, 200);
len_tmp+=date_len;
}
+ data_flag = 0;
break; //最后一包
}
//532
}
}
+
+ if(!strcmp(event->valuestring,"get_connect_bt_state")) {
+ printf("获取当前连接蓝牙耳机的状态");
+ send_bt_connect_state();
+ }
if(ack_flag == 1)
{
ack_flag = 0;