diff --git a/common/src/lib.rs b/common/src/lib.rs index 209b243..4f4c70d 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -1,7 +1,8 @@ #![no_std] +use serde::Serialize; use serde::Deserialize; -#[derive(Deserialize, Default)] +#[derive(Serialize, Deserialize, Default)] pub struct Command { pub left: f32, pub right: f32, diff --git a/converter/Cargo.toml b/converter/Cargo.toml index 602e7e3..4720303 100644 --- a/converter/Cargo.toml +++ b/converter/Cargo.toml @@ -4,3 +4,7 @@ version = "0.1.0" edition = "2024" [dependencies] +serialport = "4.7.2" +postcard = "1.1.2" +common = { path = "../common" } +heapless = "0.7.17" diff --git a/converter/src/main.rs b/converter/src/main.rs index e7a11a9..553c027 100644 --- a/converter/src/main.rs +++ b/converter/src/main.rs @@ -1,3 +1,23 @@ +use std::{thread::sleep, time::Duration}; + +use common::Command; +use postcard::to_vec_cobs; +use heapless::Vec; + fn main() { - println!("Hello, world!"); + let mut port = serialport::new("/dev/ttyACM0", 1152000) + .open().expect("port missing"); + println!("port open"); + + let command = Command { left: 0.0, right: 0.7 }; + + let encoded: Vec = to_vec_cobs(&command).unwrap(); + + loop { + port.write(&encoded).expect("port write fail"); + println!("sending"); + + sleep(Duration::from_millis(200)); + + } }