From e64eafd8698c3e75089a31939c33cc1c876076d6 Mon Sep 17 00:00:00 2001 From: Adrian Marquis Date: Wed, 25 Oct 2023 12:13:17 +0200 Subject: [PATCH] quicksave --- src/main.rs | 28 ++++++++++++++++++++-------- src/webee.rs | 35 +++++++++++++++++++---------------- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/src/main.rs b/src/main.rs index a0ba64e..ba74d9c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -29,16 +29,28 @@ fn main() -> ! { // -------------------------------- - for cmd in [Role, Baudrate, PanId, Channel, TransmitPower, MAC, ZigbeeNetworkKey] { - let command_string = cmd.to_str(); - let response = webee.send_cmd(cmd); + let cmd = ZigbeeNetworkKey; + 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()).void_unwrap(); - } - ufmt::uwriteln!(&mut serial, "").void_unwrap(); + ufmt::uwrite!(&mut serial, "[{}] {}:", response.len(), command_string).void_unwrap(); + for i in 0..response.len() { + // for i in 0..10 { + ufmt::uwrite!(&mut serial, " {:02X}", *response.get(i).unwrap()).void_unwrap(); } + ufmt::uwriteln!(&mut serial, "").void_unwrap(); + + // for cmd in [Role, Baudrate, PanId, Channel, TransmitPower, MAC, ZigbeeNetworkKey] { + // let command_string = cmd.to_str(); + // let response = webee.send_cmd(cmd); + // + // ufmt::uwrite!(&mut serial, "[{}] {}:", response.len(), command_string).void_unwrap(); + // for i in 0..response.len() { + // // for i in 0..10 { + // ufmt::uwrite!(&mut serial, " {:02X}", *response.get(i).unwrap()).void_unwrap(); + // } + // ufmt::uwriteln!(&mut serial, "").void_unwrap(); + // } // -------------------------------- diff --git a/src/webee.rs b/src/webee.rs index 43b19aa..025f596 100644 --- a/src/webee.rs +++ b/src/webee.rs @@ -26,7 +26,7 @@ pub enum SendCmd { AllDataTransmission = 0xB9, MAC = 0xBA, LocalShortAddress = 0xBB, - ZigbeeNetworkKey = 0xBC + ZigbeeNetworkKey = 0xBC, } impl SendCmd where { @@ -45,15 +45,15 @@ impl SendCmd where { } impl - Webee< - USART, - Pin, - Pin - > -where - USART: UsartOps, Pin>, - RX: PinOps, - TX: PinOps +Webee< + USART, + Pin, + Pin +> + where + USART: UsartOps, Pin>, + RX: PinOps, + TX: PinOps { pub fn new(device: USART, rx: Pin, tx: Pin) -> Self { let instance = Self { @@ -69,7 +69,7 @@ where self.webee.write_byte(*byte); } - return self.recv(); + self.recv() } pub fn void_send(&mut self, data: &[u8]) { @@ -78,14 +78,12 @@ where } } - pub fn send_cmd(&mut self, cmd: SendCmd) -> Vec{ + pub fn send_cmd(&mut self, cmd: SendCmd) -> Vec { let frame = [0x5A, 0xAA, cmd as u8]; self.send(&frame) } - pub fn query_parameter(&mut self) { - - } + pub fn query_parameter(&mut self) {} pub fn recv(&mut self) -> Vec { let mut buffer = Vec::new(); @@ -93,11 +91,16 @@ where buffer.push(self.webee.read_byte()).unwrap(); delay_ms(10); + // for i in 0..5 { + // buffer.push(self.webee.read_byte()).unwrap(); + // } + while let Ok(byte) = self.webee.read() { buffer.push(byte).unwrap(); + delay_ms(10); } - return buffer; + buffer } // pub fn vec_to_string(vec: Vec) -> &'static str {