diff --git a/web.cpp b/web.cpp index b639b2aad04e926d29d2c0366576949e2ee24656..34939e4245c73f9f5dbed3c88a389cb13aa7e5bf 100644 --- a/web.cpp +++ b/web.cpp @@ -38,19 +38,12 @@ void web_setup () ESPUI.addControl(ControlType::Separator, "", "", ControlColor::None); - //Remaning_volume - label_remaining_volume_mL = ESPUI.label("Volume restant en mL", ControlColor::None, "Volume restant en mL"); - - remaining_volume_mL = ESPUI.addControl(ControlType::Slider, "Distance", "0", ControlColor::None, label_remaining_volume_mL, remaining_volume_mL_callback, (void*)19); - - ESPUI.sliderContinuous = true; - - //Volume_exchange_wanted - volume_exchange_mL_label = ESPUI.addControl(ControlType::Label, "Caractéristiques de l'échange", "Volume à échanger en mL", ControlColor::None); - volume_exchange_mL = ESPUI.addControl(ControlType::Number,"Caractéristiques de l'échange", "", ControlColor::None, volume_exchange_mL_label, volume_exchange_mL_callback, (void*)19); + //Exchange_values_wanted + volume_exchange_mL_label = ESPUI.addControl(ControlType::Label, "Configuration de l'échange", "Volume à échanger en mL", ControlColor::None); + volume_exchange_mL = ESPUI.addControl(ControlType::Number,"Configuration de l'échange", "", ControlColor::None, volume_exchange_mL_label, volume_exchange_mL_callback, (void*)19); - exchange_throughtput_uL_per_sec_label = ESPUI.addControl(ControlType::Label, "Caractéristiques de l'échange", "Débit de l'échange en uL/sec", ControlColor::None, volume_exchange_mL_label); - exchange_throughtput_uL_per_sec = ESPUI.addControl(ControlType::Number,"Caractéristiques de l'échange", "", ControlColor::None, volume_exchange_mL_label, exchange_throughtput_uL_per_sec_callback, (void*)19); + exchange_throughtput_uL_per_sec_label = ESPUI.addControl(ControlType::Label, "Configuration de l'échange", "Débit de l'échange en uL/sec", ControlColor::None, volume_exchange_mL_label); + exchange_throughtput_uL_per_sec = ESPUI.addControl(ControlType::Number,"Configuration de l'échange", "", ControlColor::None, volume_exchange_mL_label, exchange_throughtput_uL_per_sec_callback, (void*)19); label_push_pull_choice = ESPUI.addControl(ControlType::Label, "Injection ou Aspiration", "Injection", ControlColor::None, volume_exchange_mL_label); @@ -61,6 +54,17 @@ void web_setup () start_exchange = ESPUI.addControl(ControlType::Button, "Start exchange", "\xF0\x9F\x8F\x81", ControlColor::None, volume_exchange_mL_label, start_exchange_callback, (void*)19); + //Remaning_values + label_remaining_volume_mL = ESPUI.label("Caractéristiques de l'échange en cours", ControlColor::None, "Volume restant en mL"); + remaining_volume_mL = ESPUI.addControl(ControlType::Slider, "Volume", "0", ControlColor::None, label_remaining_volume_mL, remaining_volume_mL_callback, (void*)19); + label_remaining_time_sec = ESPUI.addControl( ControlType::Label, "Caractéristiques de l'échange en cours", "Temps restant en sec", ControlColor::None, label_remaining_volume_mL); + remaining_time_sec = ESPUI.addControl(ControlType::Slider, "Temps", "0", ControlColor::None, label_remaining_volume_mL, remaining_time_sec_callback, (void*)19); + + + + ESPUI.sliderContinuous = true; + + //Configurations //Choice_of_syringe_model @@ -73,9 +77,10 @@ void web_setup () syringe_volume_mL =ESPUI.addControl( ControlType::Label, "Caractéristiques de la seringue : ", syringe_volume_mL_string.c_str() , ControlColor::None, configurations); syringe_diameter_mm_value = 5; - syringe_diameter_mm_string = "internal diameter : " + std::to_string(syringe_volume_mL_value) + "mm"; + syringe_diameter_mm_string = "internal diameter : " + std::to_string(syringe_diameter_mm_value) + "mm"; syringe_diameter_mm =ESPUI.addControl( ControlType::Label, "Caractéristiques de la seringue : ", syringe_diameter_mm_string.c_str(), ControlColor::None, syringe_volume_mL); + syringe_initial_volume_mL_label =ESPUI.addControl( ControlType::Label, "Caractéristiques de la seringue : ", "Volume initial contenu dans la seringue : ", ControlColor::None, syringe_volume_mL); syringe_initial_volume_mL = ESPUI.addControl( ControlType::Number, "Volume initial contenu dans la seringue : ", "0", ControlColor::None, syringe_volume_mL, syringe_initial_volume_mL_callback, (void*)19); choose_syringe = ESPUI.addControl(ControlType::Button, "Choisir cette seringue", "\u2714", ControlColor::None, syringe_selection, choose_syringe_callback, (void*)19); @@ -375,6 +380,18 @@ void remaining_volume_mL_callback (Control* sender, int value, void* param) ESPUI.updateSlider(remaining_volume_mL, syringe_filled.get_remaining_volume_mL()); } + +void remaining_time_sec_callback (Control* sender, int value, void* param) +/*** +-Argument : Pointer to the controller calling the function, integer according to the controller type. +-Return : / +-Action : Linking the display with the current time remaining for the exchange. +***/ +{ + float remaining_time_sec_value = syringe_filled.get_remaining_volume_mL()/syringe_filled.get_exchange_throughput_uL_per_sec(); + ESPUI.updateSlider(remaining_time_sec, remaining_time_sec_value); +} + void start_exchange_callback (Control* sender, int value, void* param) { syringe_pump_on(); @@ -411,12 +428,9 @@ void choose_syringe_callback (Control* sender, int value, void* param) //syringe_diameter_mm_value = 1; //Mettre la valeur associé au nom choisit du select syringe_diameter_mm_value = syringe.get_syringe_database()[select_value]["internal_diameter_mm"]; - syringe_diameter_mm_string = "internal diameter : " + std::to_string(syringe_volume_mL_value) + "mm"; + syringe_diameter_mm_string = "internal diameter : " + std::to_string(syringe_diameter_mm_value) + "mm"; ESPUI.print(syringe_diameter_mm, syringe_diameter_mm_string.c_str()); - - - break; case B_UP: @@ -704,6 +718,9 @@ void set_init_style() style (label_remaining_volume_mL, 3); style (remaining_volume_mL, 3); + style (label_remaining_time_sec, 3); + style (remaining_time_sec, 3); + //configurations @@ -720,6 +737,9 @@ void set_init_style() style (total_volume_mL_new_syringe_label, 3); style (add_syringe_label, 3); + style (syringe_initial_volume_mL, 3); + style (syringe_initial_volume_mL_label, 3); + diff --git a/web.h b/web.h index 2a329f07a1dea1f695b370d5d8f9f7abcbc65ce9..0795bddb377dba8865b2e44925c3b11aca5ba000 100644 --- a/web.h +++ b/web.h @@ -29,12 +29,11 @@ uint16_t calibration, fast_backward, fast_forward, slow_backward, slow_forward; uint16_t volume_exchange_mL_label, volume_exchange_mL, exchange_throughtput_uL_per_sec_label, exchange_throughtput_uL_per_sec, label_push_pull_choice, switch_push_pull_choice, start_exchange; -uint16_t label_remaining_volume_mL; - -uint16_t remaining_volume_mL; +uint16_t label_remaining_volume_mL, label_remaining_time_sec; +uint16_t remaining_volume_mL, remaining_time_sec; //Configurations -uint16_t syringe_selection, syringe_ref, syringe_brand, syringe_volume_mL, syringe_diameter_mm, syringe_initial_volume_mL, choose_syringe; +uint16_t syringe_selection, syringe_ref, syringe_brand, syringe_volume_mL, syringe_diameter_mm, syringe_initial_volume_mL_label, syringe_initial_volume_mL, choose_syringe; float syringe_volume_mL_value, syringe_diameter_mm_value; @@ -93,6 +92,7 @@ void volume_exchange_mL_callback (Control* sender, int value, void* param); void exchange_throughtput_uL_per_sec_callback (Control* sender, int value, void* param); void switch_push_pull_choice_callback (Control* sender, int value, void* param); void remaining_volume_mL_callback (Control* sender, int value, void* param); +void remaining_time_sec_callback (Control* sender, int value, void* param); void start_exchange_callback (Control* sender, int value, void* param); //Configurations