use tokio_serial::{DataBits, StopBits, Parity, SerialStream};

#[tokio::main]
async fn main() {
    let mut port = SerialStream::open(&tokio_serial::new("/dev/ttyACM0", 115200).parity(Parity::None).stop_bits(StopBits::One).data_bits(DataBits::Eight)).expect("serial port to open");

    /*
    port.writable().await.expect("writeable to succeed");
    let bytes = port.try_write(b"abcdefg").expect("write to succeed");
    println!("{} bytes written", bytes);

    tokio::time::sleep(std::time::Duration::from_millis(1)).await;
    */

    loop {
        port.readable().await.expect("readable to succeed");
        let mut buf: [u8; 64]= [0; 64];
        if let Ok(_) = port.try_read(&mut buf) {
            println!("{:?}", &buf);
        }
    }
}