diff --git a/syringefilled.cpp b/syringefilled.cpp index 2612d4747b17b8696c061402f76b043be42e8711..6607d3778f2cd687318e1a8fa6382be85794211f 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 9a5ad672a31ebc3b0069a2ddec4e404e74d0704f..4e4f646177752d9e850e06f7901a7df38ee9c22e 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(); };