This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

rssi value of multiple phones trying to connect to a single peripheral

Dear Sir,

I was trying to implement the following scenario.

Multiple phones initiate the connect request to a single peripheral.

On peripheral search for the phone with highest rssi( among phones trying to connect).

Is it possible to know the rssi value only after establishing a valid connection?

Is it possible to know the rssi value of the phone who initiated a connect to the peripheral?

Is it possible for a single peeripheral  to manage multiple connect request at the same time?

Or iis it only capable of handling only one connection at a time?

with regards,

Geetha

Parents
  • Hi,

    Is it possible to know the rssi value only after establishing a valid connection?

    You can start measuring RSSI after a peer has connected. You first have to call sd_ble_gap_rssi_start(), an then you can  subsequently either get events for the RSSI or obtain the RSSI by calling sd_ble_gap_rssi_get().

    Is it possible to know the rssi value of the phone who initiated a connect to the peripheral?

     The peripheral cannot normally get the RSSI from the central/scanner before a valid connection has been established. However, if the peripheral has scan response data and the central does active scanning, you may get a BLE_GAP_EVT_SCAN_REQ_REPORT event. If so, the ble_gap_evt_scan_req_report_t contains the RSSI. Please note that this event has low priority, so the application may not get any event from the SoftDevice even if it has received a scan request (and replied with a scan response).

    Is it possible for a single peeripheral  to manage multiple connect request at the same time?

     No. The SoftDevice can maintain multiple connections simultaneously, but it can only have one advertiser at the same time.

    Or iis it only capable of handling only one connection at a time?

     The SoftDevice can maintain multiple connections at the same time, even though it can only have a single advertiser instance. If one peripheral connects, then it can re-start advertising so that another peripheral can connect (and so on).

Reply
  • Hi,

    Is it possible to know the rssi value only after establishing a valid connection?

    You can start measuring RSSI after a peer has connected. You first have to call sd_ble_gap_rssi_start(), an then you can  subsequently either get events for the RSSI or obtain the RSSI by calling sd_ble_gap_rssi_get().

    Is it possible to know the rssi value of the phone who initiated a connect to the peripheral?

     The peripheral cannot normally get the RSSI from the central/scanner before a valid connection has been established. However, if the peripheral has scan response data and the central does active scanning, you may get a BLE_GAP_EVT_SCAN_REQ_REPORT event. If so, the ble_gap_evt_scan_req_report_t contains the RSSI. Please note that this event has low priority, so the application may not get any event from the SoftDevice even if it has received a scan request (and replied with a scan response).

    Is it possible for a single peeripheral  to manage multiple connect request at the same time?

     No. The SoftDevice can maintain multiple connections simultaneously, but it can only have one advertiser at the same time.

    Or iis it only capable of handling only one connection at a time?

     The SoftDevice can maintain multiple connections at the same time, even though it can only have a single advertiser instance. If one peripheral connects, then it can re-start advertising so that another peripheral can connect (and so on).

Children
Related