etp 0.0.1-alpha

Embedded Tester Library (ETP). Control embedded devices from host!
Documentation
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,
            },
        ],)?
    );

    // Repeat 5 times
    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(())
}