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:?}"), } } }