Added a bunch of panel menus

Sun, 10 Aug 2014 23:36:22 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 10 Aug 2014 23:36:22 +0200
changeset 214
37d1eb0e1d66
parent 213
2317b8d644fa
child 215
5ad534c79a22

Added a bunch of panel menus

thermferm/lcd-buffer.c file | annotate | diff | comparison | revisions
thermferm/thermferm.c file | annotate | diff | comparison | revisions
thermferm/thermferm.h file | annotate | diff | comparison | revisions
--- a/thermferm/lcd-buffer.c	Sun Aug 10 21:22:17 2014 +0200
+++ b/thermferm/lcd-buffer.c	Sun Aug 10 23:36:22 2014 +0200
@@ -48,7 +48,7 @@
     int		i = 0;
 
     va_start(va_ptr, format);
-    vsnprintf(buf, Config.lcd_cols * sizeof(char), format, va_ptr);
+    vsnprintf(buf, (Config.lcd_cols + 1) * sizeof(char), format, va_ptr);
     va_end(va_ptr);
 
     /*
--- 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
--- a/thermferm/thermferm.h	Sun Aug 10 21:22:17 2014 +0200
+++ b/thermferm/thermferm.h	Sun Aug 10 23:36:22 2014 +0200
@@ -44,8 +44,31 @@
 #include <pcf8574.h>
 #include <lcd.h>
 
-#define MENU_NONE       0
-#define MENU_TOP        1
+#define MENU_NONE       	0
+#define MENU_TOP_DEFAULT       	1
+#define	MENU_TOP_UNITS		2
+#define	MENU_UNITS		21
+#define MENU_MODE_OFF		211
+#define	MENU_MODE_NONE		212
+#define MENU_NONE_HEAT          2121
+#define MENU_NONE_COOL          2122
+#define MENU_NONE_FAN           2123
+#define MENU_MODE_BEER		213
+#define MENU_BEER_TEMP          2131
+#define MENU_MODE_FRIDGE	214
+#define MENU_FRIDGE_TEMP	2141
+#define MENU_MODE_PROFILE	215
+#define	MENU_PROFILE_SELECT	2151
+#define	MENU_PROFILE_START	2152
+#define	MENU_PROFILE_PAUSE	2153
+#define	MENU_PROFILE_ABORT	2154
+#define	MENU_PROFILE_RESUME	2155
+#define	MENU_PROFILE_GOOFF	2156
+#define	MENU_TOP_SYS		3
+#define	MENU_SYS_HALT		31
+#define	MENU_SYS_REBOOT		32
+#define	MENU_SYS_MASH		33
+#define	MENU_SYS_THERMS		34
 
 
 #endif

mercurial