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