logic.rs
use base64::decode;
use image::load_from_memory;
use serialport::prelude::*;
use std::io::BufReader;
use std::time::Duration;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let port_name = "/dev/ttyUSB0";
let baud_rate = 115200;
let settings = SerialPortSettings {
baud_rate,
..Default::default()
};
let mut port = serialport::open_with_settings(port_name, &settings)?;
let mut buffer: Vec<u8> = vec![0; 1024];
loop {
let n = port.read(&mut buffer)?;
let base64_data = String::from_utf8_lossy(&buffer[..n]);
match decode(&base64_data) {
Ok(decoded_data) => {
match load_from_memory(&decoded_data) {
Ok(img) => {
img.show().unwrap();
}
Err(e) => eprintln!("Failed to load image: {}", e),
}
}
Err(e) => eprintln!("Failed to decode Base64: {}", e),
}
std::thread::sleep(Duration::from_secs(5));
}
}