diff options
-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 { |