#![no_std] #![no_main] mod webee; use core::fmt::Debug; use webee::Webee; use arduino_hal::Peripherals; use arduino_hal::port::PinOps; use arduino_hal::prelude::*; use arduino_hal::usart::UsartOps; use ufmt::uDisplay; use panic_halt as _; use crate::webee::SendCmd::{Baudrate, Channel, MAC, PanId, Role, TransmitPower}; #[arduino_hal::entry] fn main() -> ! { let dp = Peripherals::take().unwrap(); let pins = arduino_hal::pins!(dp); let _status = pins.d13.into_output(); let webee_rx = pins.d2.forget_imode(); let mut serial = arduino_hal::default_serial!(dp, pins, 57600); let mut webee = Webee::new( dp.USART1, pins.d19.forget_imode(), pins.d18.into_output(), ); ufmt::uwriteln!(&mut serial, "Webee initialized.").void_unwrap(); // -------------------------------- for mut cmd in [Role, PanId, Channel, Baudrate, TransmitPower, MAC] { let command_string = cmd.to_str(); let response = webee.send_cmd(cmd); ufmt::uwrite!(&mut serial, "{}:", command_string).void_unwrap(); for i in 0..response.len() { ufmt::uwrite!(&mut serial, " {:02X}", *response.get(i).unwrap()); } ufmt::uwriteln!(&mut serial, ""); } // -------------------------------- loop { let b = nb::block!(serial.read()).void_unwrap(); ufmt::uwriteln!(&mut serial, "Got {:X}!", b).void_unwrap(); } }