From 5f9bc9eafeed17c2bd7b39ff934cd97abbc69d1d Mon Sep 17 00:00:00 2001
From: Robert Hedman <robert.hedman@mac.com>
Date: Thu, 30 Nov 2017 21:51:59 +0100
Subject: [PATCH] added support for direction byte in tracker

---
 src/main.rs | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index ca5cc2e..111be79 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) {
-- 
GitLab