diff options
author | Dario Nieuwenhuis <dirbaio@dirbaio.net> | 2020-12-03 00:50:11 +0100 |
---|---|---|
committer | Dario Nieuwenhuis <dirbaio@dirbaio.net> | 2020-12-03 00:50:11 +0100 |
commit | 0bac886604bf82bd0fdd8c9a17c21f4be928899d (patch) | |
tree | b7c49836e0035db63a79430af625a596643d6981 | |
parent | 2093f31378b7c51260dc830752ad5befb628441e (diff) | |
download | nrf-softdevice-0bac886604bf82bd0fdd8c9a17c21f4be928899d.zip |
Add get/set address
-rw-r--r-- | nrf-softdevice/src/ble/mod.rs | 21 | ||||
-rw-r--r-- | nrf-softdevice/src/ble/types.rs | 2 |
2 files changed, 22 insertions, 1 deletions
diff --git a/nrf-softdevice/src/ble/mod.rs b/nrf-softdevice/src/ble/mod.rs index 1dc6164..f6b593c 100644 --- a/nrf-softdevice/src/ble/mod.rs +++ b/nrf-softdevice/src/ble/mod.rs @@ -23,3 +23,24 @@ pub mod gatt_server; #[cfg(feature = "ble-l2cap")] pub mod l2cap; + +use core::mem; + +use crate::util::*; +use crate::{raw, RawError, Softdevice}; + +pub fn get_address(sd: &Softdevice) -> Address { + unsafe { + let mut addr: raw::ble_gap_addr_t = mem::zeroed(); + let ret = raw::sd_ble_gap_addr_get(&mut addr); + unwrap!(RawError::convert(ret), "sd_ble_gap_addr_get"); + Address { inner: addr } + } +} + +pub fn set_address(sd: &Softdevice, addr: &Address) { + unsafe { + let ret = raw::sd_ble_gap_addr_set(&addr.inner); + unwrap!(RawError::convert(ret), "sd_ble_gap_addr_set"); + } +} diff --git a/nrf-softdevice/src/ble/types.rs b/nrf-softdevice/src/ble/types.rs index ab0069d..17f3d41 100644 --- a/nrf-softdevice/src/ble/types.rs +++ b/nrf-softdevice/src/ble/types.rs @@ -85,7 +85,7 @@ impl Role { #[repr(transparent)] pub struct Address { - inner: raw::ble_gap_addr_t, + pub(crate) inner: raw::ble_gap_addr_t, } impl Address { |