I have been working on a project where I need a BLE module or its SOC so that I can scan the BLE beacons around the boards. Also, I need the RSSI value(Received Signal Strength Index) from the advertising beacons packets(although without connecting to the beacons).
Actually,
shows me the chance to avail this.That's why I require your help because if it does then I would be requiring it a lot.
Hi Vinesh,
You can take a look to the client example, and if you look the scanning process, you will found the RSSI value for each device that you scaned. So, you have to look what is the device that you want.
const int8_t rssi = app_correct_rssi(param->adv_rep.rssi);
int app_gap_dev_inq_result_handler(ke_msg_id_t const msgid,
struct gap_dev_inq_result_evt const *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
bool found = false;
const int8_t rssi = app_correct_rssi(param->adv_rep.rssi);
.
.
.
.
/* add the device in the address keeper */
if (!found && (app_env.inq_idx < BLE_CONNECTION_MAX))
{
struct app_adv_data adv_data;
app_env.addr_type[app_env.inq_idx] = param->adv_rep.adv_addr_type;
memcpy(app_env.inq_addr[app_env.inq_idx].addr, param->adv_rep.adv_addr.addr, BD_ADDR_LEN);
QPRINTF("%d. %c %02X%02X%02X%02X%02X%02X",
app_env.inq_idx,
app_env.addr_type[app_env.inq_idx] ? 'R' : 'P',
app_env.inq_addr[app_env.inq_idx].addr[5],
app_env.inq_addr[app_env.inq_idx].addr[4],
app_env.inq_addr[app_env.inq_idx].addr[3],
app_env.inq_addr[app_env.inq_idx].addr[2],
app_env.inq_addr[app_env.inq_idx].addr[1],
app_env.inq_addr[app_env.inq_idx].addr[0]);
QPRINTF("%d ",rssi);
.
.
.
.
return(KE_MSG_CONSUMED);
}
#endif
Hope it helps
Best Regards,
Mario