From 05df50e7841581820da5ccb99ee7cae46a5e9a76 Mon Sep 17 00:00:00 2001
From: Sebi <pape@vr.rwth-aachen.de>
Date: Mon, 13 Jan 2020 15:39:32 +0100
Subject: [PATCH] Added Timeout and store result in Microseconds

---
 MotionToPhotonMeter.ino | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/MotionToPhotonMeter.ino b/MotionToPhotonMeter.ino
index d37beac..261d6c8 100644
--- a/MotionToPhotonMeter.ino
+++ b/MotionToPhotonMeter.ino
@@ -31,6 +31,7 @@ int zeroValueForServo = 0;
 unsigned int deflection = 10;
 long startTime = -1;
 int triggerValue = 2500;
+#define Timeout 10000000L
 unsigned int requested_measurements = -1;
 Status current_status = Status::Ready;
 InternalStatus current_internal_status = InternalStatus::NotZeroed;
@@ -69,7 +70,7 @@ void core1( void * pvParameters ){
 
 		if(current_internal_status == InternalStatus::Stopping
 			&& getPhotoDiodeReading() < triggerValue){
-				result_buffer[result_number] = (micros() - startTime)/1000.0;
+				result_buffer[result_number] = micros() - startTime;
 				Serial.println("Time: " + String(result_buffer[result_number]));
 				result_number++;
 				current_internal_status = InternalStatus::NotZeroed;
@@ -80,6 +81,11 @@ void core1( void * pvParameters ){
 					requested_measurements = -1;
 				}
 		}
+
+		// Timeout
+		if(current_internal_status == InternalStatus::Stopping && (micros() - startTime) > Timeout){
+			current_internal_status = InternalStatus::NotZeroed;
+		}
 	}
 }
 
-- 
GitLab