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