--- a/brewco/brewco.c Sat Nov 28 20:15:38 2015 +0100 +++ b/brewco/brewco.c Sat Nov 28 21:00:29 2015 +0100 @@ -31,6 +31,9 @@ #include "devices.h" #include "keyboard.h" #include "simulator.h" +#include "prompt.h" +#include "setup.h" + int my_shutdown = FALSE; @@ -81,208 +84,6 @@ -void prompt(int index) -{ - char message[81]; - int line; - - switch (index) { - case 0: -#ifdef HAVE_WIRINGPI_H - piLock(LOCK_LCD); - lcdClear(lcdHandle); -#endif - slcdClear(slcdHandle); -#ifdef HAVE_WIRINGPI_H - piUnlock(LOCK_LCD); -#endif - return; - case 101: snprintf(message, Config.lcd_cols + 1, " Brewco %s ", VERSION); - break; - case 102: snprintf(message, Config.lcd_cols + 1, " SETUP MENU "); - break; - case 103: snprintf(message, Config.lcd_cols + 1, " AUTOMATIC MODE "); - break; - case 104: snprintf(message, Config.lcd_cols + 1, " MANUAL MODE "); - break; - case 111: snprintf(message, Config.lcd_cols + 1, "AUTO --> Mash In "); - break; - case 112: snprintf(message, Config.lcd_cols + 1, "AUTO --> Fitasi "); - break; - case 113: snprintf(message, Config.lcd_cols + 1, "AUTO --> Glucanasi "); - break; - case 114: snprintf(message, Config.lcd_cols + 1, "AUTO --> Proteasi "); - break; - case 115: snprintf(message, Config.lcd_cols + 1, "AUTO --> B-amilasi "); - break; - case 116: snprintf(message, Config.lcd_cols + 1, "AUTO --> A-amilasi 1"); - break; - case 117: snprintf(message, Config.lcd_cols + 1, "AUTO --> A-amilasi 2"); - break; - case 118: snprintf(message, Config.lcd_cols + 1, "AUTO --> Mash Out "); - break; - case 121: snprintf(message, Config.lcd_cols + 1, "AUTO --> Hop xx "); - break; - case 202: snprintf(message, Config.lcd_cols + 1, " Manage Recipes "); - break; - case 203: snprintf(message, Config.lcd_cols + 1, " Manage Brewsystems "); - break; - case 204: snprintf(message, Config.lcd_cols + 1, " Manage Simulator "); - break; - case 205: snprintf(message, Config.lcd_cols + 1, " System parameters "); - break; - case 206: snprintf(message, Config.lcd_cols + 1, " Set Automation "); - break; - case 207: snprintf(message, Config.lcd_cols + 1, " Delay start? "); - break; - case 208: snprintf(message, Config.lcd_cols + 1, " Resume Process "); - break; - case 209: snprintf(message, Config.lcd_cols + 1, " Water Added? "); - break; - case 210: snprintf(message, Config.lcd_cols + 1, " Pump Prime "); - break; - case 211: snprintf(message, Config.lcd_cols + 1, " Setting Delay "); - break; - case 212: snprintf(message, Config.lcd_cols + 1, " To be started in "); - break; - case 213: snprintf(message, Config.lcd_cols + 1, " Iodine test "); - break; - case 214: snprintf(message, Config.lcd_cols + 1, " START COOLING "); - break; - case 215: snprintf(message, Config.lcd_cols + 1, " WHIRLPOOL "); - break; - case 216: snprintf(message, Config.lcd_cols + 1, " Timing Whirlpool "); - break; - case 217: snprintf(message, Config.lcd_cols + 1, " Brewing Process "); - break; - case 218: snprintf(message, Config.lcd_cols + 1, " Add Brewsystem? "); - break; - case 301: snprintf(message, Config.lcd_cols + 1, " Finished "); - break; - case 302: snprintf(message, Config.lcd_cols + 1, " Shutting down "); - break; - case 401: snprintf(message, Config.lcd_cols + 1, " --- MAN AUTO SETUP"); - break; - case 402: snprintf(message, Config.lcd_cols + 1, " --- dwn quit ok "); - break; - case 403: snprintf(message, Config.lcd_cols + 1, " up dwn quit ok "); - break; - case 404: snprintf(message, Config.lcd_cols + 1, " up --- quit ok "); - break; - case 405: snprintf(message, Config.lcd_cols + 1, " UP* *DWN heat pmp "); - break; - case 406: snprintf(message, Config.lcd_cols + 1, " --- --- No Yes "); - break; - case 407: snprintf(message, Config.lcd_cols + 1, " --- --- Ok --- "); - break; - case 408: snprintf(message, Config.lcd_cols + 1, " UP* *DWN Pause --- "); - break; - case 409: snprintf(message, Config.lcd_cols + 1, " Continue: Yes No "); - break; - case 410: snprintf(message, Config.lcd_cols + 1, " UP* *DWN --- pmp "); - break; - case 411: snprintf(message, Config.lcd_cols + 1, " Up Dwn Exit Ok "); - break; - // 12345678901234567890 - default: snprintf(message, Config.lcd_cols + 1, " N/A N/A"); - } - - if (index < 200) - line = 0; - else if (index < 300) - line = 1; - else if (index < 400) - line = 2; - else - line = 3; - - fprintf(stdout, "%d %d '%s'\n", line, Config.lcd_cols, message); - -#ifdef HAVE_WIRINGPI_H - piLock(LOCK_LCD); - lcdPosition(lcdHandle, 0, line); - lcdPuts(lcdHandle, message); - -#endif - slcdPosition(slcdHandle, 0, line); - slcdPuts(slcdHandle, message); -#ifdef HAVE_WIRINGPI_H - piUnlock(LOCK_LCD); -#endif -} - - - -void editUnit(units_list *unit) -{ - if (debug) - fprintf(stdout, "Start edit brewsystem %d %s\n", unit->number, unit->uuid); - - if (debug) - fprintf(stdout, "End edit brewsystem %d %s\n", unit->number, unit->uuid); -} - - - -void addUnit(int number) -{ - units_list *tmpu, *unit = (units_list *)malloc(sizeof(units_list)); - char name[81]; - uuid_t uu; - - if (debug) - fprintf(stdout, "Adding new brewsystem %d\n", number); - unit->next = NULL; - unit->version = 1; - unit->uuid = malloc(37); - uuid_generate(uu); - uuid_unparse(uu, unit->uuid); - snprintf(name, 20, "System %d", number); - unit->name = xstrcpy(name); - unit->number = number; - if (number == 1) - unit->active = 1; - else - unit->active = 0; - unit->hlt_sensor = unit->mlt_sensor = NULL; - unit->hlt_heater = unit->mlt_heater = unit->mlt_pump = NULL; - unit->hlt_heater_mltfirst = 1; - unit->pump_cycle = 7; - unit->pump_rest = 2; - unit->pump_premash = 1; - unit->pump_onmash = 1; - unit->pump_mashout = 0; - unit->pump_onboil = 0; - unit->pump_stop = 90; - unit->skip_add = 0; - unit->skip_remove = 0; - unit->skip_iodine = 0; - unit->iodine_time = 90; - unit->whirlpool = 1; - unit->PID_hlt = (pid_var *)malloc(sizeof(pid_var)); - unit->PID_mlt = (pid_var *)malloc(sizeof(pid_var)); - InitPID(unit->PID_hlt); - InitPID(unit->PID_mlt); - - editUnit(unit); - - if (Config.units == NULL) { - Config.units = unit; - } else { - for (tmpu = Config.units; tmpu; tmpu = tmpu->next) { - if (tmpu->next == NULL) { - tmpu->next = unit; - break; - } - } - } - syslog(LOG_NOTICE, "Brewsystem %d added to the configuration", number); - if (debug) - fprintf(stdout, "Brewsystem %d added to the configuration\n", number); -} - - - int server(void); int server(void) { @@ -420,6 +221,8 @@ prompt(101); prompt(401); key = keywait(); + if (key == KEY_ENTER) + setup(); } usleep(100000);