esp-hal/examples/src/bin/ieee802154_send_frame.rs
Scott Mabin ba63beb3b2
Move binary logging to sys crate (#2183)
* Move binary logging to sys crate

* make ieee take radio clks by value

* rename wifi-logs to binary-logs and fix compilation

* update sys to use correct size types

* move rtc_clk_xtal_freq_get to esp-hal

* changelogs and migration guide

* s/wifi-logs/sys-logs/g

* activate log features for esp-wifi-sys

* ble log fix c2

* fix logs using latest sys rev

* fix warning
2024-09-19 15:19:54 +00:00

64 lines
1.7 KiB
Rust

//% CHIPS: esp32c6 esp32h2
#![no_std]
#![no_main]
use esp_backtrace as _;
use esp_hal::{delay::Delay, prelude::*};
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(0x2222),
..Default::default()
});
let mut seq_number = 0u8;
loop {
ieee802154
.transmit(&Frame {
header: Header {
frame_type: FrameType::Data,
frame_pending: false,
ack_request: true,
pan_id_compress: false,
seq_no_suppress: false,
ie_present: false,
version: FrameVersion::Ieee802154_2003,
seq: seq_number,
destination: Some(Address::Short(PanId(0x4242), ShortAddress(0x2323))),
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);
}
}