From 36d14808e2019556d502105081bd36f80aba06c0 Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Mon, 22 Aug 2022 19:53:17 +0200 Subject: Update Embassy. --- examples/src/bin/ble_scan.rs | 92 +++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 52 deletions(-) (limited to 'examples/src/bin/ble_scan.rs') diff --git a/examples/src/bin/ble_scan.rs b/examples/src/bin/ble_scan.rs index 7c33c31..e1f6698 100644 --- a/examples/src/bin/ble_scan.rs +++ b/examples/src/bin/ble_scan.rs @@ -7,22 +7,53 @@ mod example_common; use core::{mem, slice}; -use cortex_m_rt::entry; use defmt::*; -use embassy_executor::executor::Executor; -use embassy_util::Forever; +use embassy_executor::Spawner; use nrf_softdevice::ble::central; use nrf_softdevice::{raw, Softdevice}; -static EXECUTOR: Forever = Forever::new(); - #[embassy_executor::task] -async fn softdevice_task(sd: &'static Softdevice) { - sd.run().await; +async fn softdevice_task(sd: &'static Softdevice) -> ! { + sd.run().await } -#[embassy_executor::task] -async fn ble_task(sd: &'static Softdevice) { +#[embassy_executor::main] +async fn main(spawner: Spawner) { + info!("Hello World!"); + + let config = nrf_softdevice::Config { + clock: Some(raw::nrf_clock_lf_cfg_t { + source: raw::NRF_CLOCK_LF_SRC_RC as u8, + rc_ctiv: 4, + rc_temp_ctiv: 2, + accuracy: 7, + }), + conn_gap: Some(raw::ble_gap_conn_cfg_t { + conn_count: 6, + event_length: 6, + }), + conn_gatt: Some(raw::ble_gatt_conn_cfg_t { att_mtu: 128 }), + gatts_attr_tab_size: Some(raw::ble_gatts_cfg_attr_tab_size_t { attr_tab_size: 32768 }), + gap_role_count: Some(raw::ble_gap_cfg_role_count_t { + adv_set_count: 1, + periph_role_count: 3, + central_role_count: 3, + central_sec_count: 0, + _bitfield_1: raw::ble_gap_cfg_role_count_t::new_bitfield_1(0), + }), + gap_device_name: Some(raw::ble_gap_cfg_device_name_t { + p_value: b"HelloRust" as *const u8 as _, + current_len: 9, + max_len: 9, + write_perm: unsafe { mem::zeroed() }, + _bitfield_1: raw::ble_gap_cfg_device_name_t::new_bitfield_1(raw::BLE_GATTS_VLOC_STACK as u8), + }), + ..Default::default() + }; + + let sd = Softdevice::enable(&config); + unwrap!(spawner.spawn(softdevice_task(sd))); + let config = central::ScanConfig::default(); let res = central::scan(sd, &config, |params| unsafe { info!("AdvReport!"); @@ -63,46 +94,3 @@ async fn ble_task(sd: &'static Softdevice) { unwrap!(res); info!("Scan returned"); } - -#[entry] -fn main() -> ! { - info!("Hello World!"); - - let config = nrf_softdevice::Config { - clock: Some(raw::nrf_clock_lf_cfg_t { - source: raw::NRF_CLOCK_LF_SRC_RC as u8, - rc_ctiv: 4, - rc_temp_ctiv: 2, - accuracy: 7, - }), - conn_gap: Some(raw::ble_gap_conn_cfg_t { - conn_count: 6, - event_length: 6, - }), - conn_gatt: Some(raw::ble_gatt_conn_cfg_t { att_mtu: 128 }), - gatts_attr_tab_size: Some(raw::ble_gatts_cfg_attr_tab_size_t { attr_tab_size: 32768 }), - gap_role_count: Some(raw::ble_gap_cfg_role_count_t { - adv_set_count: 1, - periph_role_count: 3, - central_role_count: 3, - central_sec_count: 0, - _bitfield_1: raw::ble_gap_cfg_role_count_t::new_bitfield_1(0), - }), - gap_device_name: Some(raw::ble_gap_cfg_device_name_t { - p_value: b"HelloRust" as *const u8 as _, - current_len: 9, - max_len: 9, - write_perm: unsafe { mem::zeroed() }, - _bitfield_1: raw::ble_gap_cfg_device_name_t::new_bitfield_1(raw::BLE_GATTS_VLOC_STACK as u8), - }), - ..Default::default() - }; - - let sd = Softdevice::enable(&config); - - let executor = EXECUTOR.put(Executor::new()); - executor.run(move |spawner| { - unwrap!(spawner.spawn(softdevice_task(sd))); - unwrap!(spawner.spawn(ble_task(sd))); - }); -} -- cgit v1.2.3