From 47238a29c1f65955024885feed62faed636cb9bb Mon Sep 17 00:00:00 2001 From: Robert Hedman <robert.hedman@mac.com> Date: Wed, 13 Dec 2017 12:47:45 +0100 Subject: [PATCH] Fixed missing endOfMessage case in controller --- src/main.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 01ee19c..39f787d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -23,9 +23,12 @@ use serial::prelude::*; //lidar const LIDAR_ADDRESS: &str = "127.0.0.1:8080"; -const COUNTER_SERIAL_PORT: &str = "/dev/cu.usbmodem1422"; const LIDAR_BUF_SIZE: usize = 4096; +//Arduinos +const COUNTER_SERIAL_PORT: &str = "/dev/cu.usbmodem1422"; +const DRIVER_SERIAL_PORT: &str = "/dev/cu.usbmodem1423"; + //controller const REMOTE_OPERATOR_ADDRESS: &str = "10.9.0.3:30000"; // remember to double check port! const CONTROLLER_SAMPLING_TIME: u32 = 200; //ms @@ -89,7 +92,7 @@ fn main() { // get controller input (We expect to set soloMode here.) for r in stream.try_clone().expect("stream clone failed").bytes() { match r { - Ok(b) => { // TODO Add case if EOM is missing + Ok(b) => { if b == 250 && !recording { //println!("Server found start of message"); message[received_bytes] = b; @@ -117,7 +120,11 @@ fn main() { }, Err(_) => {}, //TODO - } + } + if received_bytes > message_len && recording { // EOM is missing! + received_bytes = 0; + recording = false; + } } -- GitLab