change MacAddress to a union instead of an enum
This commit is contained in:
parent
d5a4457b5e
commit
eccd2ecebf
7 changed files with 168 additions and 96 deletions
examples/stm32wb/src/bin
|
@ -66,7 +66,7 @@ async fn main(spawner: Spawner) {
|
|||
|
||||
info!("resetting");
|
||||
mbox.mac_subsystem
|
||||
.send_command(ResetRequest { set_default_pib: true })
|
||||
.send_command(&ResetRequest { set_default_pib: true })
|
||||
.await
|
||||
.unwrap();
|
||||
let evt = mbox.mac_subsystem.read().await;
|
||||
|
@ -75,7 +75,7 @@ async fn main(spawner: Spawner) {
|
|||
info!("setting extended address");
|
||||
let extended_address: u64 = 0xACDE480000000001;
|
||||
mbox.mac_subsystem
|
||||
.send_command(SetRequest {
|
||||
.send_command(&SetRequest {
|
||||
pib_attribute_ptr: &extended_address as *const _ as *const u8,
|
||||
pib_attribute: PibId::ExtendedAddress,
|
||||
})
|
||||
|
@ -87,7 +87,7 @@ async fn main(spawner: Spawner) {
|
|||
info!("setting short address");
|
||||
let short_address: u16 = 0x1122;
|
||||
mbox.mac_subsystem
|
||||
.send_command(SetRequest {
|
||||
.send_command(&SetRequest {
|
||||
pib_attribute_ptr: &short_address as *const _ as *const u8,
|
||||
pib_attribute: PibId::ShortAddress,
|
||||
})
|
||||
|
@ -99,7 +99,7 @@ async fn main(spawner: Spawner) {
|
|||
info!("setting association permit");
|
||||
let association_permit: bool = true;
|
||||
mbox.mac_subsystem
|
||||
.send_command(SetRequest {
|
||||
.send_command(&SetRequest {
|
||||
pib_attribute_ptr: &association_permit as *const _ as *const u8,
|
||||
pib_attribute: PibId::AssociationPermit,
|
||||
})
|
||||
|
@ -111,7 +111,7 @@ async fn main(spawner: Spawner) {
|
|||
info!("setting TX power");
|
||||
let transmit_power: i8 = 2;
|
||||
mbox.mac_subsystem
|
||||
.send_command(SetRequest {
|
||||
.send_command(&SetRequest {
|
||||
pib_attribute_ptr: &transmit_power as *const _ as *const u8,
|
||||
pib_attribute: PibId::TransmitPower,
|
||||
})
|
||||
|
@ -122,7 +122,8 @@ async fn main(spawner: Spawner) {
|
|||
|
||||
info!("starting FFD device");
|
||||
mbox.mac_subsystem
|
||||
.send_command(StartRequest {
|
||||
.send_command(&StartRequest {
|
||||
pan_id: [0xAA, 0x1A],
|
||||
channel_number: MacChannel::Channel16,
|
||||
beacon_order: 0x0F,
|
||||
superframe_order: 0x0F,
|
||||
|
@ -138,7 +139,7 @@ async fn main(spawner: Spawner) {
|
|||
info!("setting RX on when idle");
|
||||
let rx_on_while_idle: bool = true;
|
||||
mbox.mac_subsystem
|
||||
.send_command(SetRequest {
|
||||
.send_command(&SetRequest {
|
||||
pib_attribute_ptr: &rx_on_while_idle as *const _ as *const u8,
|
||||
pib_attribute: PibId::RxOnWhenIdle,
|
||||
})
|
||||
|
@ -151,7 +152,4 @@ async fn main(spawner: Spawner) {
|
|||
let evt = mbox.mac_subsystem.read().await;
|
||||
defmt::info!("{:#x}", evt);
|
||||
}
|
||||
|
||||
info!("Test OK");
|
||||
cortex_m::asm::bkpt();
|
||||
}
|
||||
|
|
|
@ -6,7 +6,8 @@ use defmt::*;
|
|||
use embassy_executor::Spawner;
|
||||
use embassy_stm32::bind_interrupts;
|
||||
use embassy_stm32::ipcc::{Config, ReceiveInterruptHandler, TransmitInterruptHandler};
|
||||
use embassy_stm32_wpan::sub::mac::commands::{AssociateRequest, ResetRequest, SetRequest, StartRequest};
|
||||
use embassy_stm32_wpan::sub::mac::commands::{AssociateRequest, GetRequest, ResetRequest, SetRequest};
|
||||
use embassy_stm32_wpan::sub::mac::event::MacEvent;
|
||||
use embassy_stm32_wpan::sub::mac::typedefs::{
|
||||
AddressMode, Capabilities, KeyIdMode, MacAddress, MacChannel, PibId, SecurityLevel,
|
||||
};
|
||||
|
@ -67,52 +68,75 @@ async fn main(spawner: Spawner) {
|
|||
info!("initialized mac: {}", result);
|
||||
|
||||
info!("resetting");
|
||||
let response = mbox
|
||||
.mac_subsystem
|
||||
.send_command(ResetRequest { set_default_pib: true })
|
||||
.await;
|
||||
info!("{}", response);
|
||||
mbox.mac_subsystem
|
||||
.send_command(&ResetRequest { set_default_pib: true })
|
||||
.await
|
||||
.unwrap();
|
||||
let evt = mbox.mac_subsystem.read().await;
|
||||
info!("{:#x}", evt);
|
||||
|
||||
info!("setting extended address");
|
||||
let extended_address: u64 = 0xACDE480000000002;
|
||||
let response = mbox
|
||||
.mac_subsystem
|
||||
.send_command(SetRequest {
|
||||
mbox.mac_subsystem
|
||||
.send_command(&SetRequest {
|
||||
pib_attribute_ptr: &extended_address as *const _ as *const u8,
|
||||
pib_attribute: PibId::ExtendedAddress,
|
||||
})
|
||||
.await;
|
||||
info!("{}", response);
|
||||
.await
|
||||
.unwrap();
|
||||
let evt = mbox.mac_subsystem.read().await;
|
||||
info!("{:#x}", evt);
|
||||
|
||||
info!("getting extended address");
|
||||
mbox.mac_subsystem
|
||||
.send_command(&GetRequest {
|
||||
pib_attribute: PibId::ExtendedAddress,
|
||||
})
|
||||
.await
|
||||
.unwrap();
|
||||
let evt = mbox.mac_subsystem.read().await;
|
||||
info!("{:#x}", evt);
|
||||
|
||||
if let Ok(MacEvent::MlmeGetCnf(evt)) = evt {
|
||||
if evt.pib_attribute_value_len == 8 {
|
||||
let value = unsafe { core::ptr::read_unaligned(evt.pib_attribute_value_ptr as *const u64) };
|
||||
|
||||
info!("value {:#x}", value)
|
||||
}
|
||||
}
|
||||
|
||||
info!("assocation request");
|
||||
let response = mbox
|
||||
.mac_subsystem
|
||||
.send_command(AssociateRequest {
|
||||
channel_number: MacChannel::Channel16,
|
||||
channel_page: 0,
|
||||
coord_addr_mode: AddressMode::Short,
|
||||
coord_address: MacAddress::Short([0x22, 0x11]),
|
||||
capability_information: Capabilities::ALLOCATE_ADDRESS,
|
||||
coord_pan_id: [0xAA, 0x1A],
|
||||
security_level: SecurityLevel::Unsecure,
|
||||
key_id_mode: KeyIdMode::Implicite,
|
||||
key_source: [0; 8],
|
||||
key_index: 0,
|
||||
})
|
||||
.await;
|
||||
info!("{}", response);
|
||||
let a = AssociateRequest {
|
||||
channel_number: MacChannel::Channel16,
|
||||
channel_page: 0,
|
||||
coord_addr_mode: AddressMode::Short,
|
||||
coord_address: MacAddress { short: [34, 17] },
|
||||
capability_information: Capabilities::ALLOCATE_ADDRESS,
|
||||
coord_pan_id: [0xAA, 0x1A],
|
||||
security_level: SecurityLevel::Unsecure,
|
||||
key_id_mode: KeyIdMode::Implicite,
|
||||
key_source: [0; 8],
|
||||
key_index: 152,
|
||||
};
|
||||
info!("{}", a);
|
||||
mbox.mac_subsystem.send_command(&a).await.unwrap();
|
||||
let evt = mbox.mac_subsystem.read().await;
|
||||
info!("{:#x}", evt);
|
||||
|
||||
info!("setting short address");
|
||||
let short: u64 = 0xACDE480000000002;
|
||||
let response = mbox
|
||||
.mac_subsystem
|
||||
.send_command(SetRequest {
|
||||
mbox.mac_subsystem
|
||||
.send_command(&SetRequest {
|
||||
pib_attribute_ptr: &short as *const _ as *const u8,
|
||||
pib_attribute: PibId::ShortAddress,
|
||||
})
|
||||
.await;
|
||||
info!("{}", response);
|
||||
.await
|
||||
.unwrap();
|
||||
let evt = mbox.mac_subsystem.read().await;
|
||||
info!("{:#x}", evt);
|
||||
|
||||
info!("Test OK");
|
||||
cortex_m::asm::bkpt();
|
||||
loop {
|
||||
let evt = mbox.mac_subsystem.read().await;
|
||||
info!("{:#x}", evt);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue