summaryrefslogtreecommitdiff
path: root/nrf-softdevice/src/ble/peripheral.rs
diff options
context:
space:
mode:
Diffstat (limited to 'nrf-softdevice/src/ble/peripheral.rs')
-rw-r--r--nrf-softdevice/src/ble/peripheral.rs95
1 files changed, 33 insertions, 62 deletions
diff --git a/nrf-softdevice/src/ble/peripheral.rs b/nrf-softdevice/src/ble/peripheral.rs
index 5c8ee41..f5edc2a 100644
--- a/nrf-softdevice/src/ble/peripheral.rs
+++ b/nrf-softdevice/src/ble/peripheral.rs
@@ -1,13 +1,10 @@
//! Bluetooth Peripheral operations. Peripheral devices emit advertisements, and optionally accept connections from Central devices.
-use core::mem;
-use core::ptr;
+use core::{mem, ptr};
use crate::ble::*;
-use crate::raw;
-use crate::util::get_union_field;
-use crate::util::{OnDrop, Portal};
-use crate::{RawError, Softdevice};
+use crate::util::{get_union_field, OnDrop, Portal};
+use crate::{raw, RawError, Softdevice};
struct RawAdvertisement<'a> {
kind: u8,
@@ -40,10 +37,7 @@ pub enum ConnectableAdvertisement<'a> {
impl<'a> From<ConnectableAdvertisement<'a>> for RawAdvertisement<'a> {
fn from(val: ConnectableAdvertisement<'a>) -> RawAdvertisement<'a> {
match val {
- ConnectableAdvertisement::ScannableUndirected {
- adv_data,
- scan_data,
- } => RawAdvertisement {
+ ConnectableAdvertisement::ScannableUndirected { adv_data, scan_data } => RawAdvertisement {
kind: raw::BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED as u8,
adv_data: Some(adv_data),
scan_data: Some(scan_data),
@@ -53,30 +47,23 @@ impl<'a> From<ConnectableAdvertisement<'a>> for RawAdvertisement<'a> {
adv_data: None,
scan_data: Some(scan_data),
},
- ConnectableAdvertisement::NonscannableDirectedHighDuty { scan_data } => {
- RawAdvertisement {
- kind: raw::BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED_HIGH_DUTY_CYCLE
- as u8,
- adv_data: None,
- scan_data: Some(scan_data),
- }
- }
+ ConnectableAdvertisement::NonscannableDirectedHighDuty { scan_data } => RawAdvertisement {
+ kind: raw::BLE_GAP_ADV_TYPE_CONNECTABLE_NONSCANNABLE_DIRECTED_HIGH_DUTY_CYCLE as u8,
+ adv_data: None,
+ scan_data: Some(scan_data),
+ },
#[cfg(any(feature = "s132", feature = "s140"))]
- ConnectableAdvertisement::ExtendedNonscannableUndirected { adv_data } => {
- RawAdvertisement {
- kind: raw::BLE_GAP_ADV_TYPE_EXTENDED_CONNECTABLE_NONSCANNABLE_UNDIRECTED as u8,
- adv_data: Some(adv_data),
- scan_data: None,
- }
- }
+ ConnectableAdvertisement::ExtendedNonscannableUndirected { adv_data } => RawAdvertisement {
+ kind: raw::BLE_GAP_ADV_TYPE_EXTENDED_CONNECTABLE_NONSCANNABLE_UNDIRECTED as u8,
+ adv_data: Some(adv_data),
+ scan_data: None,
+ },
#[cfg(any(feature = "s132", feature = "s140"))]
- ConnectableAdvertisement::ExtendedNonscannableDirected { adv_data } => {
- RawAdvertisement {
- kind: raw::BLE_GAP_ADV_TYPE_EXTENDED_CONNECTABLE_NONSCANNABLE_DIRECTED as u8,
- adv_data: Some(adv_data),
- scan_data: None,
- }
- }
+ ConnectableAdvertisement::ExtendedNonscannableDirected { adv_data } => RawAdvertisement {
+ kind: raw::BLE_GAP_ADV_TYPE_EXTENDED_CONNECTABLE_NONSCANNABLE_DIRECTED as u8,
+ adv_data: Some(adv_data),
+ scan_data: None,
+ },
}
}
}
@@ -114,10 +101,7 @@ pub enum NonconnectableAdvertisement<'a> {
impl<'a> From<NonconnectableAdvertisement<'a>> for RawAdvertisement<'a> {
fn from(val: NonconnectableAdvertisement<'a>) -> RawAdvertisement<'a> {
match val {
- NonconnectableAdvertisement::ScannableUndirected {
- adv_data,
- scan_data,
- } => RawAdvertisement {
+ NonconnectableAdvertisement::ScannableUndirected { adv_data, scan_data } => RawAdvertisement {
kind: raw::BLE_GAP_ADV_TYPE_NONCONNECTABLE_SCANNABLE_UNDIRECTED as _,
adv_data: Some(adv_data),
scan_data: Some(scan_data),
@@ -128,40 +112,29 @@ impl<'a> From<NonconnectableAdvertisement<'a>> for RawAdvertisement<'a> {
scan_data: None,
},
#[cfg(any(feature = "s132", feature = "s140"))]
- NonconnectableAdvertisement::ExtendedScannableUndirected {
- adv_data,
- scan_data,
- } => RawAdvertisement {
+ NonconnectableAdvertisement::ExtendedScannableUndirected { adv_data, scan_data } => RawAdvertisement {
kind: raw::BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_SCANNABLE_UNDIRECTED as _,
adv_data: Some(adv_data),
scan_data: Some(scan_data),
},
#[cfg(any(feature = "s132", feature = "s140"))]
- NonconnectableAdvertisement::ExtendedScannableDirected {
- adv_data,
- scan_data,
- } => RawAdvertisement {
+ NonconnectableAdvertisement::ExtendedScannableDirected { adv_data, scan_data } => RawAdvertisement {
kind: raw::BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_SCANNABLE_DIRECTED as _,
adv_data: Some(adv_data),
scan_data: Some(scan_data),
},
#[cfg(any(feature = "s132", feature = "s140"))]
- NonconnectableAdvertisement::ExtendedNonscannableUndirected { adv_data } => {
- RawAdvertisement {
- kind: raw::BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED
- as _,
- adv_data: Some(adv_data),
- scan_data: None,
- }
- }
+ NonconnectableAdvertisement::ExtendedNonscannableUndirected { adv_data } => RawAdvertisement {
+ kind: raw::BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED as _,
+ adv_data: Some(adv_data),
+ scan_data: None,
+ },
#[cfg(any(feature = "s132", feature = "s140"))]
- NonconnectableAdvertisement::ExtendedNonscannableDirected { adv_data } => {
- RawAdvertisement {
- kind: raw::BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_DIRECTED as _,
- adv_data: Some(adv_data),
- scan_data: None,
- }
- }
+ NonconnectableAdvertisement::ExtendedNonscannableDirected { adv_data } => RawAdvertisement {
+ kind: raw::BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_DIRECTED as _,
+ adv_data: Some(adv_data),
+ scan_data: None,
+ },
}
}
}
@@ -213,9 +186,7 @@ fn start_adv(adv: RawAdvertisement<'_>, config: &Config) -> Result<(), Advertise
scan_rsp_data: map_data(adv.scan_data),
};
- let ret = unsafe {
- raw::sd_ble_gap_adv_set_configure(&mut ADV_HANDLE as _, &datas as _, &adv_params as _)
- };
+ let ret = unsafe { raw::sd_ble_gap_adv_set_configure(&mut ADV_HANDLE as _, &datas as _, &adv_params as _) };
RawError::convert(ret).map_err(|err| {
warn!("sd_ble_gap_adv_set_configure err {:?}", err);
err