Hello, we are trying to implement a system where multiple central devices (based on nRF52833) act as a central. These are distributed in building access ways and doors etc. As part of the functionality we need, they will have a have a sub process that schedules them to send out an advertising packet periodically (every few seconds).
A peripheral device in the area would be able to move. It's initial functionality would be to scan the advertising channels, detect the advertising packets from these multiple centrals, order the list based on RSSI of advertising packets it detects then, and then send a ADV_DIRECT_IND to the central device it considers the closest (based on RSSI). No connections are made to this point.
Initially this may sound like the roles of central and peripheral are reversed however, after the initial contact the central device does act as central and the peripheral does act as peripheral. But these is definitely a mix of functionality (this is just a way of selecting the preferred device..
There are several concerns with the first being whether the SDK makes a distinction between the central and peripheral and prevents this cross functionality (can it be merged). The other is whether an RSSI value can be produced at the peripheral for each advertising packet it receives. There are some cases in devzone about this first point. Case 238689 is one which looks similar however the iBeacons used are peripherals and the nRF52 observer looks to be central (opposite to what we have)
On the RSSI question we seek clarity. If this code below were executed on our peripheral node (as a result of receiving an advertising packet) would the RSSI value returned be the RSSI from that received advertising packet (and not some average value)? So each packet would have a unique RSSI (no connections have been made at that stage)
case BLE_GAP_EVT_ADV_REPORT:
rssi_value = p_ble_evt->evt.gap_evt.params.adv_report.rssi;
appreciate any feedback
adrian