Hi michaelbrudevold,
You are correct about the behavior you are seeing. The RSSI is valid only after the first packet was received in connection (on data channels). The Gap_ReadRssi API should not and does not wait for the first connection to happen as it may never happen due to supervision timeout being triggered before the connection was established. Regarding the returned value ('0' instead of '127'). We will fix this in the next release, so, API will return the expected 127.
About your questions:
- How soon after a connection can I expect RSSI readings to become valid? It must wait for the first connection event to be able to get a valid RSSI.
- And are they updated every connection event? Yes, the RSSI is obtained at every valid received packet.
- Any chance there can be an API to automatically produce gConnEvtRssiRead_c events when RSSI is updated? We don't support such feature.
Please, mark this question as answered if above information resolved your questions.
Thanks and best regards,
Miguel