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_advertise.rs | 59 +++++++++++++++------------------------ 1 file changed, 22 insertions(+), 37 deletions(-) (limited to 'examples/src/bin/ble_advertise.rs') diff --git a/examples/src/bin/ble_advertise.rs b/examples/src/bin/ble_advertise.rs index 31804b3..685be91 100644 --- a/examples/src/bin/ble_advertise.rs +++ b/examples/src/bin/ble_advertise.rs @@ -7,44 +7,18 @@ mod example_common; use core::mem; -use cortex_m_rt::entry; -use defmt::{info, unreachable, *}; -use embassy_executor::executor::Executor; -use embassy_util::Forever; +use defmt::{info, *}; +use embassy_executor::Spawner; use nrf_softdevice::ble::peripheral; 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 bluetooth_task(sd: &'static Softdevice) { - #[rustfmt::skip] - let adv_data = &[ - 0x02, 0x01, raw::BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE as u8, - 0x03, 0x03, 0x09, 0x18, - 0x0a, 0x09, b'H', b'e', b'l', b'l', b'o', b'R', b'u', b's', b't', - ]; - #[rustfmt::skip] - let scan_data = &[ - 0x03, 0x03, 0x09, 0x18, - ]; - - let mut config = peripheral::Config::default(); - config.interval = 50; - let adv = peripheral::NonconnectableAdvertisement::ScannableUndirected { adv_data, scan_data }; - unwrap!(peripheral::advertise(sd, adv, &config).await); - - // advertise never returns - unreachable!(); -} - -#[entry] -fn main() -> ! { +#[embassy_executor::main] +async fn main(spawner: Spawner) { info!("Hello World!"); let config = nrf_softdevice::Config { @@ -78,10 +52,21 @@ fn main() -> ! { }; let sd = Softdevice::enable(&config); + unwrap!(spawner.spawn(softdevice_task(sd))); - let executor = EXECUTOR.put(Executor::new()); - executor.run(move |spawner| { - unwrap!(spawner.spawn(softdevice_task(sd))); - unwrap!(spawner.spawn(bluetooth_task(sd))); - }); + #[rustfmt::skip] + let adv_data = &[ + 0x02, 0x01, raw::BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE as u8, + 0x03, 0x03, 0x09, 0x18, + 0x0a, 0x09, b'H', b'e', b'l', b'l', b'o', b'R', b'u', b's', b't', + ]; + #[rustfmt::skip] + let scan_data = &[ + 0x03, 0x03, 0x09, 0x18, + ]; + + let mut config = peripheral::Config::default(); + config.interval = 50; + let adv = peripheral::NonconnectableAdvertisement::ScannableUndirected { adv_data, scan_data }; + unwrap!(peripheral::advertise(sd, adv, &config).await); } -- cgit v1.2.3