use std::collections::HashMap;
use std::thread::sleep;
use etp::Etp;
use etp::peripherals::gpio::{self, GpioPinStatus, Port};
use etp::transport::SerialPortTransport;
use eyre::Result;
use tracing::debug;
fn main() -> Result<()> {
tracing::subscriber::set_global_default(
tracing_subscriber::fmt()
.with_max_level(tracing::Level::DEBUG)
.finish(),
)?;
tracing::info!("ETP Tool started");
debug!("Initializing ETP...");
let mut etp = Etp::new(SerialPortTransport::new("/dev/ttyUSB0".to_owned(), 115200)?)?;
debug!("ETP initialized");
debug!("{:?}", etp.get_fw_info()?);
debug!("{:?}", etp.gpio_get_info()?);
debug!(
"{:?}",
etp.gpio_init(vec![
gpio::GpioPinConfig {
pin_number: 9,
port: None,
mode: gpio::GpioMode::Input,
pin_type: Some(gpio::GpioType::PullDown),
interrupt_mode: None,
},
gpio::GpioPinConfig {
pin_number: 10,
port: None,
mode: gpio::GpioMode::Input,
pin_type: Some(gpio::GpioType::PullDown),
interrupt_mode: None,
},
gpio::GpioPinConfig {
pin_number: 8,
port: None,
mode: gpio::GpioMode::Output,
pin_type: None,
interrupt_mode: None,
},
],)?
);
for _ in 0..5 {
let port: Port = None;
let pins: Vec<gpio::Pin> = vec![9, 10];
debug!("{:?}", etp.gpio_read(port, pins)?);
debug!(
"{:?}",
etp.gpio_write(HashMap::from([((None, 8), GpioPinStatus::Low)]))?
);
sleep(std::time::Duration::from_secs(1));
debug!(
"{:?}",
etp.gpio_write(HashMap::from([((None, 8), GpioPinStatus::High)]))?
);
sleep(std::time::Duration::from_secs(1));
}
Ok(())
}