From 13e0fafc140c16539691d26afafaca417e7e2fbc Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期四, 16 一月 2025 09:43:45 +0800
Subject: [PATCH] 更新为sdk0.7.0版本

---
 01_SDK/nimble/samples/bluetooth/ble_central/src/misc.c |  169 ++++++++++----------------------------------------------
 1 files changed, 31 insertions(+), 138 deletions(-)

diff --git a/01_SDK/nimble/samples/bluetooth/ble_central/src/misc.c b/01_SDK/nimble/samples/bluetooth/ble_central/src/misc.c
index 91a9d47..c872a3d 100644
--- a/01_SDK/nimble/samples/bluetooth/ble_central/src/misc.c
+++ b/01_SDK/nimble/samples/bluetooth/ble_central/src/misc.c
@@ -98,6 +98,7 @@
                 desc->sec_state.authenticated,
                 desc->sec_state.bonded);
 }
+
 struct queue //结构体类型
 {
 uint8_t totalnum;//基站总数
@@ -109,34 +110,55 @@
 uint8_t uwb_tongxun_flag[anchor_max_num];//与uwb通讯成功失败的标志位
 uint16_t u16id[anchor_max_num]; /*u16ID*/    
 }blequeue;
-static char ble_anchor_name[20]="BeeLinker";
+static char ble_anchor_name[20]="HFGD_XB";
 uint16_t u16ble_id_fen[30];
 uint8_t u16ble_id_fen1[50];
+uint16_t rssidata;
+uint8_t a;
 void print_adv_fields(const struct ble_hs_adv_fields *fields,const struct ble_gap_disc_desc *disc)
 {
     char s[BLE_HS_ADV_MAX_SZ];
+    char mac[100];
     const uint8_t *u8p;
     int i;
     uint16_t ble_id=0;
     uint16_t    rssi=0;
     uint8_t repeat_flag=0;
     uint8_t ble_id_fen[2];
+    
     if (fields->name != NULL) 
         {
         assert(fields->name_len < sizeof s - 1);
         memcpy(s, fields->name, fields->name_len);
+          
         if(!memcmp(s,ble_anchor_name,fields->name_len))
         {
-        s[fields->name_len] = '\0';
-        printf("    name(complete)=%s\n",
+//        memcpy(mac, fields->public_tgt_addr, fields->num_public_tgt_addrs);  
+//        s[fields->name_len] = '\0';
+//        printf("    name(complete)=%s\n",
+//                     s);
+ /*测试模式       
+        rssidata=rssidata+abs(disc->rssi);
+            a++;
+            if(a==10)
+            {
+                printf("    name(complete)=%s\n",
                      s);
-        printf("RSSI:%d\r\n",disc->rssi);
-            ble_id_fen[0]=fields->svc_data_uuid16[1];
-            ble_id_fen[1]=fields->svc_data_uuid16[0];
-            u16ble_id_fen[0]=fields->svc_data_uuid16[1];
-            u16ble_id_fen[1]=fields->svc_data_uuid16[0];
+            printf("RSSI:%d\r\n",rssidata/10);
+                a=0;
+                rssidata=0;
+            }
+ */           
+//        printf("\n");
+//            uart_data_send(&UART0_OBJ, mac,fields->num_public_tgt_addrs);
+//            printf("\n");
+//            memset(mac,0,100);
+//            ble_id_fen[0]=fields->svc_data_uuid16[1];
+//            ble_id_fen[1]=fields->svc_data_uuid16[0];
+//            u16ble_id_fen[0]=fields->svc_data_uuid16[1];
+//            u16ble_id_fen[1]=fields->svc_data_uuid16[0];
             
-             memcpy(&ble_id,ble_id_fen,2);//从扫描的数据中拿出id
+             memcpy(&ble_id,&disc->addr.val[0],2);//从扫描的数据中拿出id
              rssi=abs(disc->rssi);
 			 for(i=0;i<anchor_max_num;i++) //校验结构体中是否已经有id信息
 			 {
@@ -163,134 +185,5 @@
              }    
           }
       }
-//        if (fields->uuids16 != NULL) {
-//        printf("    uuids16(%scomplete)=",
-//                    fields->uuids16_is_complete ? "" : "in");
-//        for (i = 0; i < fields->num_uuids16; i++) {
-//            print_uuid(&fields->uuids16[i].u);
-//            printf(" ");
-//        }
-//        printf("\n");
-//    }
-
-//    if (fields->uuids32 != NULL) {
-//        printf("    uuids32(%scomplete)=",
-//                    fields->uuids32_is_complete ? "" : "in");
-//        for (i = 0; i < fields->num_uuids32; i++) {
-//            print_uuid(&fields->uuids32[i].u);
-//            printf(" ");
-//        }
-//        printf("\n");
-//    }
-
-//    if (fields->uuids128 != NULL) {
-//        printf("    uuids128(%scomplete)=",
-//                    fields->uuids128_is_complete ? "" : "in");
-//        for (i = 0; i < fields->num_uuids128; i++) {
-//            print_uuid(&fields->uuids128[i].u);
-//            printf(" ");
-//        }
-//        printf("\n");
-//    }
-
-
-//    if (fields->tx_pwr_lvl_is_present) {
-//        printf("    tx_pwr_lvl=%d\n", fields->tx_pwr_lvl);
-//    }
-
-//    if (fields->slave_itvl_range != NULL) {
-//        printf("    slave_itvl_range=");
-//        print_bytes(fields->slave_itvl_range, BLE_HS_ADV_SLAVE_ITVL_RANGE_LEN);
-//        printf("\n");
-//    }
-
-    if (fields->mfg_data != NULL) {
-        if(fields->mfg_data_len==26-1&&fields->mfg_data[20]==0x4e&&fields->mfg_data[21]==0x64)
-        {
-//            s[fields->name_len] = '\0';
-//            printf("    name(complete)=%s\n",
-//                         s);
-//            printf("RSSI:%d\r\n",disc->rssi);
-            ble_id_fen[0]=fields->mfg_data[23];
-            ble_id_fen[1]=fields->mfg_data[22];
-            u16ble_id_fen[0]=fields->mfg_data[23];
-            u16ble_id_fen[1]=fields->mfg_data[22];
-            
-            memcpy(u16ble_id_fen1, fields->mfg_data, fields->mfg_data_len);
-            
-             memcpy(&ble_id,ble_id_fen,2);//从扫描的数据中拿出id
-             rssi=abs(disc->rssi);
-			 for(i=0;i<anchor_max_num;i++) //校验结构体中是否已经有id信息
-			 {
-			 if(ble_id==blequeue.id[i])
-					{
-						repeat_flag=1;//已经有id信息
-                        break;
-					}
-			 }
-             if(repeat_flag==1)
-             {
-             blequeue.id[i]=ble_id;
-             blequeue.rssi[i]=rssi;
-             blequeue.u16id[2*i]=u16ble_id_fen[0];
-             blequeue.u16id[2*i+1]=u16ble_id_fen[1];
-             }
-             if(repeat_flag==0)
-             {
-             blequeue.id[blequeue.totalnum]=ble_id;//把id信息写入队列
-             blequeue.u16id[2*blequeue.totalnum]=u16ble_id_fen[0];
-             blequeue.u16id[2*blequeue.totalnum+1]=u16ble_id_fen[1];
-             blequeue.rssi[blequeue.totalnum]=rssi;//把rssi信息写入队列
-             blequeue.totalnum++;
-             } 
-        }
-//        printf("    svc_data_uuid16=");
-//        print_bytes(fields->svc_data_uuid16, fields->svc_data_uuid16_len);
-//        printf("\n");
-    }
-
-//    if (fields->public_tgt_addr != NULL) {
-//        printf("    public_tgt_addr=");
-//        u8p = fields->public_tgt_addr;
-//        for (i = 0; i < fields->num_public_tgt_addrs; i++) {
-//            printf("public_tgt_addr=%s ", addr_str(u8p));
-//            u8p += BLE_HS_ADV_PUBLIC_TGT_ADDR_ENTRY_LEN;
-//        }
-//        printf("\n");
-//    }
-
-//    if (fields->appearance_is_present) {
-//        printf("    appearance=0x%04x\n", fields->appearance);
-//    }
-
-//    if (fields->adv_itvl_is_present) {
-//        printf("    adv_itvl=0x%04x\n", fields->adv_itvl);
-//    }
-
-//    if (fields->svc_data_uuid32 != NULL) {
-//        printf("    svc_data_uuid32=");
-//        print_bytes(fields->svc_data_uuid32, fields->svc_data_uuid32_len);
-//        printf("\n");
-//    }
-
-//    if (fields->svc_data_uuid128 != NULL) {
-//        printf("    svc_data_uuid128=");
-//        print_bytes(fields->svc_data_uuid128, fields->svc_data_uuid128_len);
-//        printf("\n");
-//    }
-
-//    if (fields->uri != NULL) {
-//        printf("    uri=");
-//        print_bytes(fields->uri, fields->uri_len);
-//        printf("\n");
-//    }
-
-//    if (fields->mfg_data != NULL) {
-//        printf("    mfg_data=");
-//        print_bytes(fields->mfg_data, fields->mfg_data_len);
-//        printf("\n");
-//    }
-//        }
         
-//    }
 }

--
Gitblit v1.9.3