stop_syringe_pump=ESPUI.addControl(ControlType::Button,"Mise en marche","\u26D4",ControlColor::None,status_syringe_pump,[&](Control*sender,intvalue){stop_syringe_pump_callback(sender,value);});
initial_volume_mL=ESPUI.addControl(ControlType::Number,"Volume initial contenu dans la seringue : ","0",ControlColor::None,initial_volume_mL_label,[&](Control*sender,intvalue){initial_volume_mL_callback(sender,value);});
number_max_min(0,500,initial_volume_mL);
volume_exchange_mL_label=ESPUI.addControl(ControlType::Label,"Configuration de l'échange","Volume à échanger en mL",ControlColor::None,initial_volume_mL_label);
volume_exchange_mL=ESPUI.addControl(ControlType::Number,"Configuration de l'échange","0",ControlColor::None,initial_volume_mL_label,[&](Control*sender,intvalue){volume_exchange_mL_callback(sender,value);});
volume_exchange_mL_label=ESPUI.addControl(ControlType::Label,"","Volume à échanger en mL",ControlColor::None,initial_volume_mL_label);
exchange_throughtput_uL_per_min_or_duration_sec_label=ESPUI.addControl(ControlType::Label,"Configuration de l'échange","Débit de l'échange en uL/min",ControlColor::None,initial_volume_mL_label);
exchange_throughtput_uL_per_min_or_duration_sec_label=ESPUI.addControl(ControlType::Label,"","Débit de l'échange en uL/min",ControlColor::None,initial_volume_mL_label);
throughput_or_duration=ESPUI.addControl(ControlType::Button,"Configuration de l'échange","\u21C6",ControlColor::None,initial_volume_mL_label,[&](Control*sender,intvalue){throughput_or_duration_callback(sender,value);});
exchange_throughtput_uL_per_min_or_duration_sec=ESPUI.addControl(ControlType::Number,"Configuration de l'échange","0",ControlColor::None,initial_volume_mL_label,[&](Control*sender,intvalue){exchange_throughtput_uL_per_min_or_duration_sec_callback(sender,value);});
label_push_pull_choice=ESPUI.addControl(ControlType::Label,"Injection ou Aspiration","Injection",ControlColor::None,initial_volume_mL_label);
switch_push_pull_choice=ESPUI.addControl(ControlType::Switcher,"Injection ou Aspiration","Injection",ControlColor::None,initial_volume_mL_label,[&](Control*sender,intvalue){switch_push_pull_choice_callback(sender,value);});
label_remaining_duration_sec=ESPUI.addControl(ControlType::Label,"Caractéristiques de l'échange en cours","Temps restant en sec",ControlColor::None,label_remaining_volume_mL);
PM("Avant la création du contenu de configurations");
//Configurations
//Choice_of_syringe_model
syringe_selection=ESPUI.addControl(ControlType::Select,"Choix de la seringue :","",ControlColor::None,configurations,[&](Control*sender,intvalue){syringe_selection_callback(sender,value);});
syringe_diameter_mm=ESPUI.addControl(ControlType::Label,"Caractéristiques de la seringue : ",syringe_diameter_mm_string.c_str(),ControlColor::None,syringe_volume_mL);
load_syringe_json=ESPUI.addControl(ControlType::Button,"Charger les seringues","\u21BA",ControlColor::None,syringe_selection,[&](Control*sender,intvalue){load_syringe_json_callback(sender,value);});
choose_syringe=ESPUI.addControl(ControlType::Button,"Choisir cette seringue","\u2714",ControlColor::None,syringe_selection,[&](Control*sender,intvalue){choose_syringe_callback(sender,value);});
load_syringe_json=ESPUI.addControl(ControlType::Button,"Charger les seringues","\u2714",ControlColor::None,configurations,[&](Control*sender,intvalue){load_syringe_json_callback(sender,value);});
internal_diameter_mm_new_syringe_label=ESPUI.addControl(ControlType::Label,"Nouvelle seringue","Diamètre interne de la seringue en mm :",ControlColor::None,name_new_syringe_label);
internal_diameter_mm_new_syringe_label=ESPUI.addControl(ControlType::Label,"","Diamètre interne de la seringue en mm :",ControlColor::None,name_new_syringe_label);
internal_diameter_mm_new_syringe=ESPUI.addControl(ControlType::Number,"Diamètre interne de la seringue en mm","5",ControlColor::None,name_new_syringe_label,[&](Control*sender,intvalue){internal_diameter_mm_new_syringe_callback(sender,value);});
total_volume_mL_new_syringe_label=ESPUI.addControl(ControlType::Label,"Nouvelle seringue","Volume total de la seringue en mL :",ControlColor::None,name_new_syringe_label);
total_volume_mL_new_syringe=ESPUI.addControl(ControlType::Number,"Volume total de la seringue en mL","5",ControlColor::None,name_new_syringe_label,[&](Control*sender,intvalue){total_volume_mL_new_syringe_callback(sender,value);});
total_volume_mL_new_syringe_label=ESPUI.addControl(ControlType::Label,"","Volume total de la seringue en mL :",ControlColor::None,name_new_syringe_label);
save_syringe=ESPUI.addControl(ControlType::Button,"Sauvegarder la seringue","\u2714",ControlColor::None,name_new_syringe_label,[&](Control*sender,intvalue){save_syringe_callback(sender,value);});
save_syringe=ESPUI.addControl(ControlType::Button,"Sauvegarder la seringue","\u2714",ControlColor::None,new_syringe,[&](Control*sender,intvalue){save_syringe_callback(sender,value);});
PM("Avant la création du contenu des features");
//Features
syringe_pump_length_mm_value=ESPUI.addControl(ControlType::Number,"Longueur totale du pousse-seringue","50",ControlColor::None,features,[&](Control*sender,intvalue){syringe_pump_length_mm_callback(sender,value);});
lead_screw_pitch_mm=ESPUI.addControl(ControlType::Number,"Avance par tour","0.7",ControlColor::None,features,[&](Control*sender,intvalue){lead_screw_pitch_mm_callback(sender,value);});
clockwise_equals_forward_label=ESPUI.addControl(ControlType::Label,"Sens de rotation du moteur","Horaire = Injection",ControlColor::None,features);
clockwise_equals_forward=ESPUI.addControl(ControlType::Switcher,"Sens de rotation du moteur","Horaire =",ControlColor::None,clockwise_equals_forward_label,[&](Control*sender,intvalue){clockwise_equals_forward_callback(sender,value);});
//Basics
clockwise_equals_forward_label=ESPUI.addControl(ControlType::Label,"Caractéristiques de bases","Sens de rotation du moteur : Horaire = Injection",ControlColor::None,features);
clockwise_equals_forward=ESPUI.addControl(ControlType::Switcher,"","Sens de rotation du moteur : Horaire =",ControlColor::None,clockwise_equals_forward_label,[&](Control*sender,intvalue){clockwise_equals_forward_callback(sender,value);});
ESPUI.updateSwitcher(clockwise_equals_forward,true);//set "Horaire = Injection" at the beginning
microstep_configuration=ESPUI.addControl(ControlType::Number,"Configuration Hardware des microsteps","16",ControlColor::None,features,[&](Control*sender,intvalue){microstep_configuration_callback(sender,value);});
motor_release_label=ESPUI.addControl(ControlType::Label,"","Relachement du moteur : Off",ControlColor::None,clockwise_equals_forward_label);
syringe_pump_length_label=ESPUI.addControl(ControlType::Label,"","Longueur totale du pousse-seringue en mm",ControlColor::None,clockwise_equals_forward_label);
motor_steps_label=ESPUI.addControl(ControlType::Label,"Caractéristiques avancées","Caractéristique du moteur (nombre de pas possibles ?)",ControlColor::None,features);
motor_steps=ESPUI.addControl(ControlType::Number,"Caractéristique du moteur (nombre de pas possibles ?)","2000",ControlColor::None,features,[&](Control*sender,intvalue){motor_steps_callback(sender,value);});
PM("Après toutes les features");
motor_release_label=ESPUI.addControl(ControlType::Label,"Relachement du moteur","Off",ControlColor::None,features);
motor_release=ESPUI.addControl(ControlType::Switcher,"Relachement du moteur","",ControlColor::None,motor_release_label,[&](Control*sender,intvalue){motor_release_callback(sender,value);});