Changed some prompt numbers. Added name editor.

Wed, 16 Dec 2015 22:06:11 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 16 Dec 2015 22:06:11 +0100
changeset 461
482bab226340
parent 460
0b2ea0ec165c
child 462
830ae3c3ef98

Changed some prompt numbers. Added name editor.

brewco/prompt.c file | annotate | diff | comparison | revisions
brewco/setup.c file | annotate | diff | comparison | revisions
--- a/brewco/prompt.c	Tue Dec 15 23:14:00 2015 +0100
+++ b/brewco/prompt.c	Wed Dec 16 22:06:11 2015 +0100
@@ -80,9 +80,16 @@
 			break;
 	case 121:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Whirlpool  ");
 			break;
-	case 122:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Hop   xx   ");
+	case 122:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Hopstand 1 ");
+			break;
+	case 123:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Hopstand 2 ");
 			break;
-	case 131:	snprintf(message, Config.lcd_cols + 1, "  Edit brewsystem   ");
+	case 124:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Hopstand 3 ");
+			break;
+	case 125:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Hop   xx   ");
+			break;
+
+	case 131:	snprintf(message, Config.lcd_cols + 1, "    Change Name     ");
 			break;
 	case 132:	snprintf(message, Config.lcd_cols + 1, "   Toggle Yes/No    ");
 			break;
@@ -90,13 +97,16 @@
 			break;
 	case 134:	snprintf(message, Config.lcd_cols + 1, "    Change time     ");
 			break;
-	case 135:	snprintf(message, Config.lcd_cols + 1, "      Edit PID      ");
-			break;
 	case 137:	snprintf(message, Config.lcd_cols + 1, "   Direct/Reverse   ");
 			break;
 	case 138:	snprintf(message, Config.lcd_cols + 1, "  Change parameter  ");
 			break;
-	case 139:       snprintf(message, Config.lcd_cols + 1, "    Edit recipe     ");
+
+	case 191:       snprintf(message, Config.lcd_cols + 1, "    Edit recipe     ");
+			break;
+	case 192:       snprintf(message, Config.lcd_cols + 1, "      Edit PID      ");
+			break;
+	case 193:       snprintf(message, Config.lcd_cols + 1, "  Edit brewsystem   ");
 			break;
 	case 200:	snprintf(message, Config.lcd_cols + 1, text);
 			break;
@@ -184,6 +194,8 @@
 			break;
 	case 416:	snprintf(message, Config.lcd_cols + 1, "add  ---  quit  --- ");
 			break;
+	case 417:	snprintf(message, Config.lcd_cols + 1, " up  dwn  next  ok  ");
+			break;
 			//                                      12345678901234567890
 	default:	snprintf(message, Config.lcd_cols + 1, "   N/A        N/A");
     }
--- a/brewco/setup.c	Tue Dec 15 23:14:00 2015 +0100
+++ b/brewco/setup.c	Wed Dec 16 22:06:11 2015 +0100
@@ -209,6 +209,69 @@
 
 
 
+void editName(char *name, char *text)
+{
+    char	pmpt[81];
+    int		i, x = 0, key, val;
+
+    if (debug)
+	fprintf(stdout, "editName(%s)\n", name);
+
+    prompt(0, NULL);
+    prompt(131, NULL);              /* "    Change Name     " */
+    prompt(417, NULL);              /* " up  dwn  next  ok  " */
+
+    for (;;) {
+	snprintf(pmpt, Config.lcd_cols + 1, "                    ");
+	prompt(200, pmpt);
+#ifdef HAVE_WIRINGPI_H
+	lcdPosition(lcdHandle, x, 1);
+	lcdPutchar(lcdHandle, '*');
+#endif
+        slcdPosition(slcdHandle, x, 1);
+	slcdPutchar(slcdHandle, '*');
+	snprintf(pmpt, Config.lcd_cols + 1, "%s", name);
+	prompt(300, pmpt);
+
+	key = keywait();
+
+	if ((key == KEY_ENTER) || my_shutdown) {
+	    if (debug)
+		fprintf(stdout, "End editName(%s)\n", name);
+	    for (i = strlen(name) -1; i > 1; i--) {
+		if (name[i] != ' ')
+		    break;
+		name[i] = '\0';
+	    }
+	    if (debug)
+		fprintf(stdout, "End editName(%s)\n", name);
+	    return;
+	}
+	if (key == KEY_RETURN) {
+	    if (x < 19)
+		x++;
+	    else
+		x = 0;
+	    if (debug)
+		fprintf(stdout, "editName: strlen=%d x=%d\n", (int)strlen(name) - 1, x);
+	    if (x > ((int)strlen(name) - 1)) {
+		name[x + 1] = '\0';
+		name[x] = ' ';
+	    }
+	}
+	if (key == KEY_UP || key == KEY_DOWN) {
+	    val = name[x];
+	    if ((key == KEY_UP) && (val < 126))
+	    	val++;
+	    if ((key == KEY_DOWN) && (val > 32))
+	    	val--;
+	    name[x] = val;
+	}
+    }
+}
+
+
+
 void editPID(pid_var *pid)
 {
     int		idx = 1, key, val;
@@ -220,7 +283,7 @@
 
     for (;;) {
 	prompt(0, NULL);
-	prompt(135, NULL);
+	prompt(192, NULL);
 
 	if (idx == 1)
 	    prompt(402, NULL);
@@ -511,7 +574,7 @@
 void editUnit(units_list *unit)
 {
     int		idx = 1, key;
-    char	pmpt[81], *uuid;
+    char	pmpt[81], *uuid, *name;
     uLong	ocrc, ncrc;
 
     if (debug)
@@ -524,7 +587,7 @@
     for (;;) {
 
 	prompt(0, NULL);
-	prompt(131, NULL);
+	prompt(193, NULL);
 
 	if (idx == 1)
 	    prompt(402, NULL);
@@ -618,7 +681,13 @@
 
 	if (key == KEY_ENTER) {
 	    switch(idx) {
-		case 1:		// name
+		case 1:		name = calloc(sizeof(char), 21);
+				snprintf(name, 21, unit->name);
+				editName(name, (char *)"Unit name");
+				if (unit->name)
+				    free(unit->name);
+				unit->name = xstrcpy(name);
+				free(name);
 				break;
 		case 2:		uuid = xstrcpy(unit->hlt_sensor.uuid);
 				editSensor(uuid, (char *)"HLT sensor");
@@ -763,7 +832,7 @@
 void editRecipe(a_recipe *recipe)
 {
     int         idx = 1, key;
-    char        pmpt[81];
+    char        pmpt[81], *name;
     uLong       ocrc, ncrc;
 
     if (debug)
@@ -776,7 +845,7 @@
     for (;;) {
 
         prompt(0, NULL);
-        prompt(139, NULL);
+        prompt(191, NULL);
 
         if (idx == 1)
             prompt(402, NULL);
@@ -818,9 +887,21 @@
 
         if (key == KEY_ENTER) {
             switch(idx) {
-                case 1:         // name
+                case 1:         name = calloc(sizeof(char), 21);
+				snprintf(name, 21, recipe->name);
+				editName(name, (char *)"Recipe name");
+				if (recipe->name)
+				    free(recipe->name);
+				recipe->name = xstrcpy(name);
+				free(name);
                                 break;
-		case 2:		// code
+		case 2:		name = calloc(sizeof(char), 21);
+				snprintf(name, 21, recipe->code);
+				editName(name, (char *)"Recipe code");
+				if (recipe->code)
+				    free(recipe->code);
+				recipe->code = xstrcpy(name);
+				free(name);
 				break;
 		case 3:		editInteger(&recipe->boiltime, 60, 240, 5, (char *)"Boil time:", (char *)"mins");
 				break;
@@ -995,7 +1076,7 @@
 	prompt(102, NULL);          /* "     SETUP MENU     " */
 	prompt(221, NULL);          /* "   Select Recipe    " */
 	if (total) {
-	    snprintf(pmpt, Config.lcd_cols + 1, "%s", recipe->name);
+	    snprintf(pmpt, Config.lcd_cols + 1, "%s %s                   ", recipe->code, recipe->name);
 	    prompt(300, pmpt);
 	}
 	if (total == 0)
@@ -1060,7 +1141,7 @@
 	    }
 	    prompt(102, NULL);		/* "     SETUP MENU     " */
 	    prompt(222, NULL);		/* " Select Brewsystem  " */
-	    snprintf(pmpt, Config.lcd_cols + 1, "%s", unit->name);
+	    snprintf(pmpt, Config.lcd_cols + 1, "%s                    ", unit->name);
 	    prompt(300, pmpt);
 	    if (total == 1)
 		prompt(415, NULL);	/* "add  ---  quit  ok  " */

mercurial