| | |
| | | uint16_t u16id[anchor_max_num]; /*u16ID*/ |
| | | }blequeue; |
| | | static char ble_anchor_name[20]="BeeLinker"; |
| | | uint16_t u16ble_id_fen[2]; |
| | | uint16_t u16ble_id_fen[30]; |
| | | uint8_t u16ble_id_fen1[50]; |
| | | 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]; |
| | |
| | | uint16_t rssi=0; |
| | | uint8_t repeat_flag=0; |
| | | uint8_t ble_id_fen[2]; |
| | | if (fields->name != NULL) { |
| | | 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)) |
| | |
| | | blequeue.rssi[blequeue.totalnum]=rssi;//把rssi信息写入队列 |
| | | blequeue.totalnum++; |
| | | } |
| | | } |
| | | } |
| | | // if (fields->uuids16 != NULL) { |
| | | // printf(" uuids16(%scomplete)=", |
| | | // fields->uuids16_is_complete ? "" : "in"); |
| | |
| | | // printf("\n"); |
| | | // } |
| | | |
| | | if (fields->svc_data_uuid16 != NULL) { |
| | | printf(" svc_data_uuid16="); |
| | | print_bytes(fields->svc_data_uuid16, fields->svc_data_uuid16_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) { |
| | |
| | | // print_bytes(fields->mfg_data, fields->mfg_data_len); |
| | | // printf("\n"); |
| | | // } |
| | | } |
| | | // } |
| | | |
| | | } |
| | | // } |
| | | } |