From 0bac886604bf82bd0fdd8c9a17c21f4be928899d Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Thu, 3 Dec 2020 00:50:11 +0100 Subject: Add get/set address --- nrf-softdevice/src/ble/mod.rs | 21 +++++++++++++++++++++ nrf-softdevice/src/ble/types.rs | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) 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 { -- cgit v1.2.3