From e0781317a243b85e4758b01094c326127e922377 Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 21 Sep 2023 18:02:27 +0200 Subject: [PATCH] volume delivered reset button --- Core/Src/PSE_unit_edit_screen.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/Core/Src/PSE_unit_edit_screen.c b/Core/Src/PSE_unit_edit_screen.c index 19b05e0..fa1809e 100644 --- a/Core/Src/PSE_unit_edit_screen.c +++ b/Core/Src/PSE_unit_edit_screen.c @@ -5,7 +5,6 @@ * Author: leo */ -#include #include #include @@ -95,7 +94,8 @@ lv_obj_t* volume_widget_label; static void update_volume(keypad_data* data){ pse_unit* unit = data->user_data; unit->set_volume = data->value; - lv_label_set_text_fmt(volume_widget_label, "Volume : \n%lu.%lu\nmL", unit->set_volume / 1000, unit->set_volume % 1000); + lv_label_set_text_fmt(volume_widget_label, "Volume : \n%u.%03u/\n%u.%03u\nmL", unit->volume / 1000, unit->volume % 1000, unit->set_volume / 1000, unit->set_volume % 1000); + // lv_label_set_text_fmt(volume_widget_label, "Volume : \n%lu.%lu\nmL", unit->set_volume / 1000, unit->set_volume % 1000); } static void volume_edit_handler(lv_event_t* e){ lv_event_code_t code = lv_event_get_code(e); @@ -110,6 +110,16 @@ static void volume_edit_handler(lv_event_t* e){ Keypad_screen_launch(&kp_data); } } +static void volume_readout_reset_handler(lv_event_t* e){ + lv_event_code_t code = lv_event_get_code(e); + + if(code == LV_EVENT_CLICKED){ + c_pse_unit->start_pos = c_pse_unit->stepper_status->steps_counter; + pse_unit_compute_volume_delivered(c_pse_unit); + lv_label_set_text_fmt(volume_widget_label, "Volume : \n%u.%03u/\n%u.%03u\nmL", c_pse_unit->volume / 1000, c_pse_unit->volume % 1000, c_pse_unit->set_volume / 1000, c_pse_unit->set_volume % 1000); + } +} + static lv_obj_t* volume_widget(lv_obj_t* parent, pse_unit* unit){ // The main container lv_obj_t* cont = lv_obj_create(parent); @@ -120,9 +130,20 @@ static lv_obj_t* volume_widget(lv_obj_t* parent, pse_unit* unit){ // volume setting lv_obj_t* vol = lv_label_create(cont); lv_obj_set_width(vol, lv_pct(100)); - lv_obj_set_flex_grow(vol, 1); - lv_label_set_text_fmt(vol, "Volume : \n%lu.%lu\nmL", unit->set_volume / 1000, unit->set_volume % 1000); + lv_obj_set_flex_grow(vol, 2); + lv_label_set_text_fmt(vol, "Volume : \n%u.%03u/\n%u.%03u\nmL", unit->volume / 1000, unit->volume % 1000, unit->set_volume / 1000, unit->set_volume % 1000); volume_widget_label = vol; + + // volume delivered reset button + lv_obj_t* vol_reset = lv_btn_create(cont); + lv_obj_set_width(vol_reset, lv_pct(100)); + lv_obj_add_event_cb(vol_reset, volume_readout_reset_handler, LV_EVENT_ALL, NULL); + lv_obj_set_flex_grow(vol_reset, 1); + + lv_obj_t* vol_reset_label = lv_label_create(vol_reset); + lv_obj_center(vol_reset_label); + lv_label_set_text(vol_reset_label, LV_SYMBOL_REFRESH); + return cont; }