esp-hal/examples/src/bin/ieee802154_send_broadcast_frame.rs
Dániel Buga 7f8af8a651
Remove prelude (#2845)
* Remove prelude

* Changelog
2024-12-20 10:24:57 +00:00

65 lines
1.8 KiB
Rust

//% CHIPS: esp32c6 esp32h2
//% FEATURES: esp-ieee802154 esp-hal/unstable
#![no_std]
#![no_main]
use esp_backtrace as _;
use esp_hal::{delay::Delay, entry};
use esp_ieee802154::{Config, Frame, Ieee802154};
use esp_println::println;
use ieee802154::mac::{
Address,
FrameContent,
FrameType,
FrameVersion,
Header,
PanId,
ShortAddress,
};
#[entry]
fn main() -> ! {
let peripherals = esp_hal::init(esp_hal::Config::default());
let delay = Delay::new();
let mut ieee802154 = Ieee802154::new(peripherals.IEEE802154, peripherals.RADIO_CLK);
ieee802154.set_config(Config {
channel: 15,
promiscuous: false,
pan_id: Some(0x4242),
short_addr: Some(0x2323),
..Default::default()
});
let mut seq_number = 0u8;
loop {
ieee802154
.transmit(&Frame {
header: Header {
frame_type: FrameType::Data,
frame_pending: false,
ack_request: false,
pan_id_compress: false,
seq_no_suppress: false,
ie_present: false,
version: FrameVersion::Ieee802154_2003,
seq: seq_number,
destination: Some(Address::Short(PanId(0xffff), ShortAddress(0xffff))),
source: None,
auxiliary_security_header: None,
},
content: FrameContent::Data,
payload: heapless::Vec::from_slice(b"Hello World").unwrap(),
footer: [0u8; 2],
})
.ok();
println!("Send frame with sequence number {seq_number}");
delay.delay_millis(1000u32);
seq_number = seq_number.wrapping_add(1);
}
}