diff --git a/src/main.rs b/src/main.rs index ca5cc2e521988c43d7a61a446d5d186e486936af..111be79b15c5ce6ac4c6ea5d36fbe77d0a0cd436 100644 --- a/src/main.rs +++ b/src/main.rs @@ -106,7 +106,7 @@ fn main() { let tracker = thread::spawn(move || { println!("Tracker started."); - let mut serial_buf: [u8; 8] = [0; 8]; + let mut serial_buf: [u8; 10] = [0; 10]; let mut port = serial::open(&COUNTER_SERIAL_PORT).unwrap(); interact(&mut port).unwrap(); @@ -118,8 +118,8 @@ fn main() { // get encoder data from arduino and update local variables match port.read_exact(&mut serial_buf){ Ok(_) => { - let l_speed: f32 = tick_to_speed( ( ((serial_buf[0] as u32) << 24) + ((serial_buf[1] as u32) << 16) + ((serial_buf[2] as u32) << 8) + (serial_buf[3] as u32) ) as i32); - let r_speed: f32 = tick_to_speed( ( ((serial_buf[4] as u32) << 24) + ((serial_buf[5] as u32) << 16) + ((serial_buf[6] as u32) << 8) + (serial_buf[7] as u32) ) as i32); + let l_speed: f32 = tick_to_speed( serial_buf[0], ( ((serial_buf[1] as u32) << 24) + ((serial_buf[2] as u32) << 16) + ((serial_buf[3] as u32) << 8) + (serial_buf[4] as u32) ) as i32); + let r_speed: f32 = tick_to_speed( serial_buf[5], ( ((serial_buf[6] as u32) << 24) + ((serial_buf[7] as u32) << 16) + ((serial_buf[8] as u32) << 8) + (serial_buf[9] as u32) ) as i32); pos.2 = update_state(&pos, l_tick, r_tick); print!("L: {}, ", pos.0); println!("R: {}", pos.1); @@ -271,7 +271,7 @@ const FREQ_TO_OMEGA: f32 = 0.0002; const WHEEL_RADIUS: f32 = 30.0; //cm */ -fn tick_to_speed(tick: i32) -> f32 { +fn tick_to_speed(dir: u8, tick: i32) -> f32 { tick/10.0 } fn update_state(pos: &(f32,f32,f32), l_speed: f32, r_speed: f32) {