acid/firmware2/src/console.rs

38 lines
1.1 KiB
Rust
Raw Normal View History

use esp_hal::{Async, uart::UartRx};
use log::{debug, info, error};
pub async fn run_console(mut uart_rx: UartRx<'_, Async>) {
let mut buf = [0_u8; 32];
info!("Debugging console opened.");
loop {
use log::warn;
let len = match uart_rx.read_async(&mut buf[..]).await {
Ok(len) => len,
Err(error) => {
error!("Failed to read from the alt UART port: {error:?}");
continue;
}
};
let mut read_data = match str::from_utf8(&buf[0..len]) {
Ok(utf8) => utf8,
Err(error) => {
error!("Failed to parse data from the UART port as UTF-8: {error:?}");
continue;
}
};
debug!("Read from alt UART: {read_data:?}");
match read_data.trim() {
"reset" | "reboot" | "rst" | "r" => {
info!("Performing software reset.");
esp_hal::system::software_reset();
}
_ => warn!("Command not recognized: {read_data:?}"),
}
}
}