From 74c8f1318dcd9c561bcf732b074138323df2b7c1 Mon Sep 17 00:00:00 2001
From: Malaurie Bernard <mbernard@kinouby>
Date: Tue, 4 Jul 2023 14:23:29 +0200
Subject: [PATCH] Implementation of the method run_from_emergency and change
 manage_emergency to take it into account.

---
 syringefilled.cpp | 25 ++++++++++++++++++++-----
 syringefilled.h   |  5 ++---
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/syringefilled.cpp b/syringefilled.cpp
index 2612d47..6607d37 100644
--- a/syringefilled.cpp
+++ b/syringefilled.cpp
@@ -179,21 +179,20 @@ void SyringeFilled::manage_emergency (bool pressed, bool at_zero)
 {
     if (pressed)  //if the limit switch is pressed
     {
+        set_emergency(true);
         if (at_zero) //if we are at te initialisation place
         {
-            Serial.printf("EMERGENCY: running away slowly\n");
-            setSpeedMmPerSec(-1);
-            resetPosition();
-            moveToMm(syringe_pump_length_mm);
+            run_from_emergency()
         }
         else
         {
-          Serial.printf("EMERGENCY: Pressed by someone\n");
+            Serial.printf("EMERGENCY: Pressed by someone\n");
         }
 
     }
     else
     {
+        set_emergency(false);
         Serial.printf("EMERGENCY: released\n");
         stayHere();
         resetPosition();  //zero is here again
@@ -202,3 +201,19 @@ void SyringeFilled::manage_emergency (bool pressed, bool at_zero)
 }
 
 
+void SyringeFilled::run_from_emergency()
+/***
+-Argument : /
+-Return   : /
+-Action   : Move the pump sloowly until the limit switch is released
+***/
+{
+if (get_emergency())
+    {
+        Serial.printf("EMERGENCY: running away slowly\n");
+        setSpeedMmPerSec(-1);
+        resetPosition();
+        moveToMm(syringe_pump_length_mm);
+    }
+
+}
\ No newline at end of file
diff --git a/syringefilled.h b/syringefilled.h
index 9a5ad67..4e4f646 100644
--- a/syringefilled.h
+++ b/syringefilled.h
@@ -48,7 +48,7 @@ class SyringeFilled : public Motor
     void set_push(bool push);
     void set_id_syringe(Syringe* id_syringe);
     void set_screw_thread_mm(float screw_thread_mm);
-    void set_clockwise_equals_forward(bool clockwise_equals_forward);
+    void set_clockwise_equals_push(bool clockwise_equals_push);
     void set_emergency(bool emergency);
 
 
@@ -83,8 +83,7 @@ class SyringeFilled : public Motor
     bool check_configuration(); //a implementer
     void show_configuration(); //a implementer
     float distance_to_volume(float distance, Syringe* id_syringe); //a implementer
-    //set_emergency ?  emergency() ? =ajouter un membre emergency
-    //runfromEmergency ?
+    void run_from_emergency();
 
 };
 
-- 
GitLab