35 lines
1 KiB
Rust
35 lines
1 KiB
Rust
use std::{
|
|
io::{self, Write},
|
|
time::Duration,
|
|
};
|
|
|
|
fn main() {
|
|
let port_name = "/dev/serial0";
|
|
let baud_rate = 9600;
|
|
|
|
let port = serialport::new(port_name, baud_rate)
|
|
.timeout(Duration::from_millis(100))
|
|
.open();
|
|
|
|
match port {
|
|
Ok(mut port) => {
|
|
let mut serial_buf: Vec<u8> = vec![0; 1000];
|
|
println!("Receiving data on {} at {} baud:", &port_name, &baud_rate);
|
|
loop {
|
|
match port.read(serial_buf.as_mut_slice()) {
|
|
Ok(t) => io::stdout().write_all(&serial_buf[..t]).unwrap(),
|
|
Err(ref e) if e.kind() == io::ErrorKind::TimedOut => (),
|
|
Err(e) => {
|
|
eprintln!("Failed to read \"{}\". Error: {}", port_name, e);
|
|
::std::process::exit(1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Err(e) => {
|
|
eprintln!("Failed to open \"{}\". Error: {}", port_name, e);
|
|
::std::process::exit(1);
|
|
}
|
|
}
|
|
}
|