use std::io::Write;
use std::time::Duration;
use std::{io, thread};
fn main() {
let port_name = &serialport::available_ports().expect("No serial port")[0].port_name;
let mut port = serialport::new(port_name, 9600)
.open()
.expect("Failed to open serial port");
let mut clone = port.try_clone().expect("Failed to clone");
thread::spawn(move || loop {
clone
.write_all(&[5, 6, 7, 8])
.expect("Failed to write to serial port");
thread::sleep(Duration::from_millis(1000));
});
let mut buffer: [u8; 1] = [0; 1];
loop {
match port.read(&mut buffer) {
Ok(bytes) => {
if bytes == 1 {
println!("Received: {:?}", buffer);
}
}
Err(ref e) if e.kind() == io::ErrorKind::TimedOut => (),
Err(e) => eprintln!("{:?}", e),
}
}
}