parent
							
								
									f9ffe8b366
								
							
						
					
					
						commit
						7e9d9aa9bc
					
				| @ -0,0 +1,66 @@ | ||||
| #include <stdio.h> | ||||
| #include "app_gui.h" | ||||
| #include "gui_event.h" | ||||
| #include "ds_rtc.h" | ||||
| #include "app_io.h" | ||||
| #include "lcd.h" | ||||
| #include "app_config.h" | ||||
| 
 | ||||
| static int value; | ||||
| static int cursor; | ||||
| 
 | ||||
| void screen_delka_zalivky(GuiEvent event) | ||||
| { | ||||
|     char buf[100]; | ||||
| 
 | ||||
|     switch (event) { | ||||
|         case GUI_EVENT_SCREEN_INIT: | ||||
|             value = 0; | ||||
|             cursor = 0; | ||||
|             break; | ||||
| 
 | ||||
|         case GUI_EVENT_PAINT: | ||||
|             LcdBuffer_Write(&lcd, 0, 0, "Zadej základní délku"); | ||||
|             LcdBuffer_Write(&lcd, 1, 0, "zálivky (1 okruh)"); | ||||
| 
 | ||||
|             LcdBuffer_SetCursor(&lcd, 2, cursor, CURSOR_BOTH); | ||||
| 
 | ||||
|             if (cursor > 0) { | ||||
|                 snprintf(buf, 100, "%d s", value); | ||||
|                 LcdBuffer_Write(&lcd, 2, 0, buf); | ||||
|             } else { | ||||
|                 // show orig value
 | ||||
|                 snprintf(buf, 100, "%d s", settings_scratch.circuit_base_time_s); | ||||
|                 LcdBuffer_Write(&lcd, 2, 0, buf); | ||||
|             } | ||||
| 
 | ||||
|             LcdBuffer_Write(&lcd, 3, 0, cursor == 0 ? "🅳Zrušit" : "🅳Zrušit 🅰Uložit"); | ||||
|             break; | ||||
| 
 | ||||
|         case GUI_EVENT_KEY_A: // Confirm
 | ||||
|             if (cursor > 0) { | ||||
|                 settings_scratch.circuit_base_time_s = value; | ||||
|                 switch_screen(screen_settings, false); | ||||
|             } | ||||
|             break; | ||||
| 
 | ||||
|         case GUI_EVENT_KEY_D: // CANCEL
 | ||||
|             switch_screen(screen_settings, false); | ||||
|             break; | ||||
| 
 | ||||
|         default: | ||||
|             if (event >= '0' && event <= '9') { | ||||
|                 int digit = event - '0'; | ||||
|                 int th2 = value * 10 + digit; | ||||
|                 if (th2 <= 10000) { // just some sensible big number that doesn't overflow the LCD row
 | ||||
|                     value = th2; | ||||
|                     if (cursor == 0) { | ||||
|                         // clear the line
 | ||||
|                         LcdBuffer_Write(&lcd, 2, 0, "                    "); | ||||
|                     } | ||||
|                     cursor++; | ||||
|                     request_paint(); | ||||
|                 } | ||||
|             } | ||||
|     } | ||||
| } | ||||
| @ -0,0 +1,80 @@ | ||||
| #include <stdio.h> | ||||
| #include <string.h> | ||||
| #include "app_gui.h" | ||||
| #include "gui_event.h" | ||||
| #include "ds_rtc.h" | ||||
| #include "app_io.h" | ||||
| #include "lcd.h" | ||||
| #include "app_config.h" | ||||
| 
 | ||||
| static uint16_t ratios[CIRCUIT_COUNT]; | ||||
| static int cursor; | ||||
| 
 | ||||
| void screen_kompenzace_tlaku(GuiEvent event) | ||||
| { | ||||
|     char buf[100]; | ||||
| 
 | ||||
|     switch (event) { | ||||
|         case GUI_EVENT_SCREEN_INIT: | ||||
|             cursor = 0; | ||||
|             memcpy(ratios, settings_scratch.circuit_time_percent, sizeof(settings_scratch.circuit_time_percent)); | ||||
|             break; | ||||
| 
 | ||||
|         case GUI_EVENT_PAINT: | ||||
|             LcdBuffer_Write(&lcd, 0, 0, "Relativní čas okruhů"); | ||||
| 
 | ||||
|             snprintf(buf, 100, "1. %3d%%   3. %3d%%", ratios[0], ratios[2]); | ||||
|             LcdBuffer_Write(&lcd, 1, 0, buf); | ||||
|             snprintf(buf, 100, "2. %3d%%   4. %3d%%", ratios[1], ratios[3]); | ||||
|             LcdBuffer_Write(&lcd, 2, 0, buf); | ||||
| 
 | ||||
|             switch (cursor) { | ||||
|                 case 0: | ||||
|                     LcdBuffer_SetCursor(&lcd, 1, 0, CURSOR_BOTH); | ||||
|                     break; | ||||
|                 case 1: | ||||
|                     LcdBuffer_SetCursor(&lcd, 2, 0, CURSOR_BOTH); | ||||
|                     break; | ||||
|                 case 2: | ||||
|                     LcdBuffer_SetCursor(&lcd, 1, 10, CURSOR_BOTH); | ||||
|                     break; | ||||
|                 case 3: | ||||
|                     LcdBuffer_SetCursor(&lcd, 2, 10, CURSOR_BOTH); | ||||
|                     break; | ||||
|             } | ||||
| 
 | ||||
|             LcdBuffer_Write(&lcd, 3, 0, "⊛- ¤+ 🅳Zruš 🅰Ulož"); | ||||
|             break; | ||||
| 
 | ||||
|         case GUI_EVENT_KEY_A: // Confirm
 | ||||
|             memcpy(settings_scratch.circuit_time_percent, ratios, sizeof(settings_scratch.circuit_time_percent)); | ||||
|             switch_screen(screen_settings, false); | ||||
|             break; | ||||
| 
 | ||||
|         case GUI_EVENT_KEY_D: // CANCEL
 | ||||
|             switch_screen(screen_settings, false); | ||||
|             break; | ||||
| 
 | ||||
|         case GUI_EVENT_KEY_1: | ||||
|         case GUI_EVENT_KEY_2: | ||||
|         case GUI_EVENT_KEY_3: | ||||
|         case GUI_EVENT_KEY_4: | ||||
|             cursor = event - '1'; | ||||
|             request_paint(); | ||||
|             break; | ||||
| 
 | ||||
|         case GUI_EVENT_KEY_STAR: | ||||
|             if (ratios[cursor] >= 5) { | ||||
|                 ratios[cursor] -= 5; | ||||
|                 request_paint(); | ||||
|             } | ||||
|             break; | ||||
| 
 | ||||
|         case GUI_EVENT_KEY_HASH: | ||||
|             if (ratios[cursor] < 65535) { | ||||
|                 ratios[cursor] += 5; | ||||
|                 request_paint(); | ||||
|             } | ||||
|             break; | ||||
|     } | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue