You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
zavlaha-kzk/src/screens/screen_manual_control.c

68 lines
1.8 KiB

#include <stdio.h>
#include "app_gui.h"
#include "gui_event.h"
#include "app_io.h"
#include "lcd.h"
static bool valve1, valve2, valve3, valve4;
void screen_manual_control(GuiEvent event)
{
switch (event) {
case GUI_EVENT_SCREEN_INIT:
open_valve(0); // make sure all are closed
valve1 = valve2 = valve3 = valve4 = false;
break;
case GUI_EVENT_PAINT:
LcdBuffer_Write(&lcd, 0, 0, "== MANUÁLNÍ REŽIM ==");
LcdBuffer_Write(&lcd, 1, 0, "1-4 ventil,0 vyp.vše");
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 ");
LcdBuffer_Write(&lcd, 2, 0, sbuf);
LcdBuffer_Write(&lcd, 3, 0, "🅳Konec");
break;
case GUI_EVENT_KEY_D: // CANCEL
open_valve(0);
switch_screen(screen_home, true);
break;
case GUI_EVENT_KEY_0:
valve1 = valve2 = valve3 = valve4 = false;
open_valve(0);
request_paint();
break;
case GUI_EVENT_KEY_1:
valve1 = !valve1;
set_one_relay(1, valve1);
break;
case GUI_EVENT_KEY_2:
valve2 = !valve2;
set_one_relay(2, valve2);
break;
case GUI_EVENT_KEY_3:
valve3 = !valve3;
set_one_relay(3, valve3);
break;
case GUI_EVENT_KEY_4:
valve4 = !valve4;
set_one_relay(4, valve4);
break;
case GUI_EVENT_SCREEN_DEINIT:
open_valve(0); // close all
break;
}
}