From 76b2da8ed358f26d9beb6a3fe887c5a84d22b2e3 Mon Sep 17 00:00:00 2001 From: ondra Date: Sun, 30 Jun 2024 16:26:39 +0200 Subject: [PATCH] blbuvzdor --- src/screens/screen_manual_control.c | 40 ++++++++++++----------------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/src/screens/screen_manual_control.c b/src/screens/screen_manual_control.c index e2587bb..5478864 100644 --- a/src/screens/screen_manual_control.c +++ b/src/screens/screen_manual_control.c @@ -4,14 +4,15 @@ #include "app_io.h" #include "lcd.h" -static bool valve1, valve2, valve3, valve4; +static int cur_valve = 0; void screen_manual_control(GuiEvent event) { + int num = 0; switch (event) { case GUI_EVENT_SCREEN_INIT: open_valve(0); // make sure all are closed - valve1 = valve2 = valve3 = valve4 = false; + cur_valve = 0; break; case GUI_EVENT_PAINT: @@ -21,10 +22,10 @@ void screen_manual_control(GuiEvent event) //LcdBuffer_SetCursor(&lcd, 2, 0, CURSOR_BOTH); snprintf(sbuf, sbuf_len, " %s %s %s %s ", - valve1 ? "█1█" : " 1 ", - valve2 ? "█2█" : " 2 ", - valve3 ? "█3█" : " 3 ", - valve4 ? "█4█" : " 4 "); + (cur_valve == 1) ? "█1█" : " 1 ", + (cur_valve == 2) ? "█2█" : " 2 ", + (cur_valve == 3) ? "█3█" : " 3 ", + (cur_valve == 4) ? "█4█" : " 4 "); LcdBuffer_Write(&lcd, 2, 0, sbuf); LcdBuffer_Write(&lcd, 3, 0, "🅳Konec"); @@ -36,32 +37,23 @@ void screen_manual_control(GuiEvent event) break; case GUI_EVENT_KEY_0: - valve1 = valve2 = valve3 = valve4 = false; + cur_valve = 0; open_valve(0); request_paint(); break; case GUI_EVENT_KEY_1: - valve1 = !valve1; - set_one_relay(1, valve1); - request_paint(); - break; - case GUI_EVENT_KEY_2: - valve2 = !valve2; - set_one_relay(2, valve2); - request_paint(); - break; - case GUI_EVENT_KEY_3: - valve3 = !valve3; - set_one_relay(3, valve3); - request_paint(); - break; - case GUI_EVENT_KEY_4: - valve4 = !valve4; - set_one_relay(4, valve4); + num = (int) (event - '0'); + if (cur_valve == num) { + cur_valve = 0; + open_valve(0); + } else { + cur_valve = num; + open_valve(num); + } request_paint(); break;