diff options
author | Dario Nieuwenhuis <dirbaio@dirbaio.net> | 2022-05-13 00:36:26 +0200 |
---|---|---|
committer | Dario Nieuwenhuis <dirbaio@dirbaio.net> | 2022-05-13 00:36:26 +0200 |
commit | 19543694bbe7d1489bd5fc21506388f7e69e1f6e (patch) | |
tree | e43d6989abab8f452843731432e45bdf388a76a8 /nrf-softdevice/src/ble/gap.rs | |
parent | f5d1a270e32c54c6f5963be3a7ce482a601914c9 (diff) | |
download | nrf-softdevice-19543694bbe7d1489bd5fc21506388f7e69e1f6e.zip |
Add conn RSSI measurement.
Diffstat (limited to 'nrf-softdevice/src/ble/gap.rs')
-rw-r--r-- | nrf-softdevice/src/ble/gap.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/nrf-softdevice/src/ble/gap.rs b/nrf-softdevice/src/ble/gap.rs index 7b6fca5..c01b6ae 100644 --- a/nrf-softdevice/src/ble/gap.rs +++ b/nrf-softdevice/src/ble/gap.rs @@ -159,6 +159,16 @@ pub(crate) unsafe fn on_evt(ble_evt: *const raw::ble_evt_t) { effective_params.max_tx_time_us, ); } + #[cfg(feature = "ble-rssi")] + raw::BLE_GAP_EVTS_BLE_GAP_EVT_RSSI_CHANGED => { + let new_rssi = gap_evt.params.rssi_changed.rssi; + connection::with_state_by_conn_handle(gap_evt.conn_handle, |state| { + state.rssi = match state.rssi { + None => Some(new_rssi), + Some(old_rssi) => Some((((old_rssi as i16) * 7 + (new_rssi as i16)) / 8) as i8), + }; + }); + } _ => {} } } |