thermferm/thermferm.c

changeset 214
37d1eb0e1d66
parent 213
2317b8d644fa
child 215
5ad534c79a22
--- a/thermferm/thermferm.c	Sun Aug 10 21:22:17 2014 +0200
+++ b/thermferm/thermferm.c	Sun Aug 10 23:36:22 2014 +0200
@@ -90,6 +90,94 @@
 
 
 
+void go_menu(int menu)
+{
+    mb_lcdClear(lcdHandle);
+    lcdPosition(lcdHandle, 0, 0);
+    setupmenu = menu;
+
+    switch (menu) {
+	case MENU_NONE:		lcd_buf_show();
+				break;
+
+	case MENU_TOP_DEFAULT:	mb_lcdPuts(lcdHandle, "Setup mode.");
+				lcdPosition(lcdHandle, 0, 1);
+				mb_lcdPuts(lcdHandle, "Up&Down = Escape");
+				break;
+
+	case MENU_TOP_UNITS:	mb_lcdPuts(lcdHandle, "Select units");
+				break;
+
+	case MENU_UNITS:	mb_lcdPuts(lcdHandle, "Choose unit:");
+				break;
+
+	case MENU_MODE_OFF:	mb_lcdPuts(lcdHandle, "Set unit OFF");
+				break;
+
+	case MENU_MODE_NONE:	mb_lcdPuts(lcdHandle, "Set unit NONE");
+				break;
+
+	case MENU_NONE_HEAT:	mb_lcdPuts(lcdHandle, "Switch heater");
+				break;
+
+	case MENU_NONE_COOL:	mb_lcdPuts(lcdHandle, "Switch cooler");
+				break;
+
+	case MENU_NONE_FAN:	mb_lcdPuts(lcdHandle, "Switch Fan");
+				break;
+
+	case MENU_MODE_BEER:	mb_lcdPuts(lcdHandle, "Set unit BEER");
+				break;
+
+	case MENU_BEER_TEMP:	mb_lcdPuts(lcdHandle, "Set beer temp");
+				break;
+
+	case MENU_MODE_FRIDGE:	mb_lcdPuts(lcdHandle, "Set unit FRIDGE");
+				break;
+
+	case MENU_FRIDGE_TEMP:	mb_lcdPuts(lcdHandle, "Set fridge temp");
+				break;
+
+	case MENU_MODE_PROFILE:	mb_lcdPuts(lcdHandle, "Set unit PROFILE");
+				break;
+
+	case MENU_PROFILE_SELECT:	mb_lcdPuts(lcdHandle, "Select profile");
+					break;
+	
+	case MENU_PROFILE_START:	mb_lcdPuts(lcdHandle, "Start profile");
+					break;
+	
+	case MENU_PROFILE_PAUSE:	mb_lcdPuts(lcdHandle, "Pause profile");
+					break;
+
+	case MENU_PROFILE_ABORT:	mb_lcdPuts(lcdHandle, "Abort profile");
+					break;
+
+	case MENU_PROFILE_RESUME:	mb_lcdPuts(lcdHandle, "Resume profile");
+					break;
+
+	case MENU_PROFILE_GOOFF:	mb_lcdPuts(lcdHandle, "Set profile OFF");
+					break;
+
+	case MENU_TOP_SYS:	mb_lcdPuts(lcdHandle, "System menu");
+				break;
+
+	case MENU_SYS_HALT:	mb_lcdPuts(lcdHandle, "Halt system");
+				break;
+
+	case MENU_SYS_REBOOT:	mb_lcdPuts(lcdHandle, "Reboot system");
+				break;
+
+	case MENU_SYS_MASH:	mb_lcdPuts(lcdHandle, "Start Mash program");
+				break;
+
+	case MENU_SYS_THERMS:	mb_lcdPuts(lcdHandle, "Start Thermometers");
+				break;
+    }
+}
+
+
+
 #ifdef HAVE_WIRINGPI_H
 void stopLCD(void)
 {
@@ -659,22 +747,75 @@
 	    case MENU_NONE:
 		    	if ((key == KEY_DOWN) || (key == KEY_UP))
 	    		    lcd_buf_step(key);
-			if ((key == KEY_CONFIRM) && (setupmenu == MENU_NONE)) {
-	    		    setupmenu = MENU_TOP;
-			    mb_lcdClear(lcdHandle);
-	    		    lcdPosition(lcdHandle, 0, 0);
-	    		    mb_lcdPuts(lcdHandle, "Setup mode.");
-	    		    lcdPosition(lcdHandle, 0, 1);
-	    		    mb_lcdPuts(lcdHandle, "Up&Down = Escape");
-			}
+			if ((key == KEY_CONFIRM) && (setupmenu == MENU_NONE))
+			    go_menu(MENU_TOP_DEFAULT);
+			break;
+
+	    case MENU_TOP_DEFAULT:
+	    		if (key == KEY_ESCAPE)
+			    go_menu(MENU_NONE);
+			if (key == KEY_DOWN)
+			    go_menu(MENU_TOP_UNITS);
+			if (key == KEY_UP)
+			    go_menu(MENU_TOP_SYS);
+			break;
+
+	    case MENU_TOP_UNITS:
+			if (key == KEY_ESCAPE)
+			    go_menu(MENU_NONE);
+			if (key == KEY_DOWN)
+			    go_menu(MENU_TOP_SYS);
+			if (key == KEY_UP)
+			    go_menu(MENU_TOP_DEFAULT);
+			break;
+
+	    case MENU_TOP_SYS:
+			if (key == KEY_ESCAPE)
+			    go_menu(MENU_NONE);
+			if (key == KEY_DOWN)
+			    go_menu(MENU_TOP_DEFAULT);
+			if (key == KEY_UP)
+			    go_menu(MENU_TOP_UNITS);
+			if (key == KEY_ENTER)
+			    go_menu(MENU_SYS_HALT);
 			break;
 
-	    case MENU_TOP:
-	    		if (key == KEY_ESCAPE) {
-			    setupmenu = MENU_NONE;
-			    lcd_buf_show();
-			}
+	    case MENU_SYS_HALT:
+			if (key == KEY_ESCAPE)
+			    go_menu(MENU_TOP_SYS);
+			if (key == KEY_DOWN)
+			    go_menu(MENU_SYS_REBOOT);
+			if (key == KEY_UP)
+			    go_menu(MENU_SYS_THERMS);
+			break;
+
+	    case MENU_SYS_REBOOT:
+			if (key == KEY_ESCAPE)
+			    go_menu(MENU_TOP_SYS);
+			if (key == KEY_DOWN)
+			    go_menu(MENU_SYS_MASH);
+			if (key == KEY_UP)
+			    go_menu(MENU_SYS_HALT);
 			break;
+
+	    case MENU_SYS_MASH:
+			if (key == KEY_ESCAPE)
+			    go_menu(MENU_TOP_SYS);
+			if (key == KEY_DOWN)
+			    go_menu(MENU_SYS_THERMS);
+			if (key == KEY_UP)
+			    go_menu(MENU_SYS_REBOOT);
+			break;
+
+	    case MENU_SYS_THERMS:
+			if (key == KEY_ESCAPE)
+			    go_menu(MENU_TOP_SYS);
+			if (key == KEY_DOWN)
+			    go_menu(MENU_SYS_HALT);
+			if (key == KEY_UP)
+			    go_menu(MENU_SYS_MASH);
+			break;
+
 	}
 
 #endif

mercurial