Code style
This commit is contained in:
parent
e5e1d7cede
commit
392675dd47
@ -20,6 +20,62 @@ use embassy_nrf::twim;
|
|||||||
use embassy_nrf::{bind_interrupts, peripherals};
|
use embassy_nrf::{bind_interrupts, peripherals};
|
||||||
use {defmt_rtt as _, panic_probe as _};
|
use {defmt_rtt as _, panic_probe as _};
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// BLE code
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#[nrf_softdevice::gatt_service(uuid = "181a")]
|
||||||
|
struct EnvironmentalService {
|
||||||
|
#[characteristic(uuid = "2a6e", read, notify)]
|
||||||
|
temperature: u32,
|
||||||
|
#[characteristic(uuid = "2a6f", read, notify)]
|
||||||
|
humidity: u32,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[nrf_softdevice::gatt_server]
|
||||||
|
struct Server {
|
||||||
|
bas: EnvironmentalService,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[embassy_executor::task]
|
||||||
|
async fn softdevice_task(sd: &'static Softdevice) -> ! {
|
||||||
|
sd.run().await
|
||||||
|
}
|
||||||
|
|
||||||
|
#[embassy_executor::task]
|
||||||
|
async fn ble_task(sd: &'static Softdevice, server: &'static Server) {
|
||||||
|
static ADV_DATA: LegacyAdvertisementPayload = LegacyAdvertisementBuilder::new()
|
||||||
|
.flags(&[Flag::GeneralDiscovery, Flag::LE_Only])
|
||||||
|
.services_16(ServiceList::Complete, &[ServiceUuid16::BATTERY])
|
||||||
|
.full_name("CommonSense")
|
||||||
|
.build();
|
||||||
|
|
||||||
|
static SCAN_DATA: LegacyAdvertisementPayload = LegacyAdvertisementBuilder::new()
|
||||||
|
.services_128(
|
||||||
|
ServiceList::Complete,
|
||||||
|
&[0x9e7312e0_2354_11eb_9f10_fbc30a62cf38_u128.to_le_bytes()],
|
||||||
|
)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
loop {
|
||||||
|
info!("Creating config");
|
||||||
|
let config = peripheral::Config::default();
|
||||||
|
info!("Creating adv object");
|
||||||
|
let adv = peripheral::ConnectableAdvertisement::ScannableUndirected {
|
||||||
|
adv_data: &ADV_DATA,
|
||||||
|
scan_data: &SCAN_DATA,
|
||||||
|
};
|
||||||
|
|
||||||
|
let conn = unwrap!(peripheral::advertise_connectable(sd, adv, &config).await);
|
||||||
|
|
||||||
|
let _e = gatt_server::run(&conn, server, |_| {}).await;
|
||||||
|
|
||||||
|
Timer::after_secs(10).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Sensing code
|
// Sensing code
|
||||||
@ -78,72 +134,6 @@ async fn measurement_task(mut sensor: TempHumiditySensor, server: &'static Serve
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// BLE code
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#[nrf_softdevice::gatt_service(uuid = "181a")]
|
|
||||||
struct EnvironmentalService {
|
|
||||||
#[characteristic(uuid = "2a6e", read, notify)]
|
|
||||||
temperature: u32,
|
|
||||||
#[characteristic(uuid = "2a6f", read, notify)]
|
|
||||||
humidity: u32,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[nrf_softdevice::gatt_server]
|
|
||||||
struct Server {
|
|
||||||
bas: EnvironmentalService,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[embassy_executor::task]
|
|
||||||
async fn softdevice_task(sd: &'static Softdevice) -> ! {
|
|
||||||
sd.run().await
|
|
||||||
}
|
|
||||||
|
|
||||||
#[embassy_executor::task]
|
|
||||||
async fn ble_task(sd: &'static Softdevice, server: &'static Server) {
|
|
||||||
static ADV_DATA: LegacyAdvertisementPayload = LegacyAdvertisementBuilder::new()
|
|
||||||
.flags(&[Flag::GeneralDiscovery, Flag::LE_Only])
|
|
||||||
.services_16(ServiceList::Complete, &[ServiceUuid16::BATTERY])
|
|
||||||
.full_name("CommonSense")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
static SCAN_DATA: LegacyAdvertisementPayload = LegacyAdvertisementBuilder::new()
|
|
||||||
.services_128(
|
|
||||||
ServiceList::Complete,
|
|
||||||
&[0x9e7312e0_2354_11eb_9f10_fbc30a62cf38_u128.to_le_bytes()],
|
|
||||||
)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
loop {
|
|
||||||
info!("Creating config");
|
|
||||||
let config = peripheral::Config::default();
|
|
||||||
info!("Creating adv object");
|
|
||||||
let adv = peripheral::ConnectableAdvertisement::ScannableUndirected {
|
|
||||||
adv_data: &ADV_DATA,
|
|
||||||
scan_data: &SCAN_DATA,
|
|
||||||
};
|
|
||||||
|
|
||||||
let conn = unwrap!(peripheral::advertise_connectable(sd, adv, &config).await);
|
|
||||||
|
|
||||||
let _e = gatt_server::run(&conn, server, |e| match e {
|
|
||||||
ServerEvent::Bas(e) => match e {
|
|
||||||
EnvironmentalServiceEvent::HumidityCccdWrite { notifications } => {
|
|
||||||
info!("humidity notifications: {}", notifications)
|
|
||||||
}
|
|
||||||
EnvironmentalServiceEvent::TemperatureCccdWrite { notifications } => {
|
|
||||||
info!("temperature notifications: {}", notifications)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
.await;
|
|
||||||
|
|
||||||
Timer::after_secs(10).await;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Main code
|
// Main code
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user