Wed, 16 Dec 2015 22:06:11 +0100
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 " */