brewco/prompt.c

Sun, 27 Dec 2015 17:52:26 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 27 Dec 2015 17:52:26 +0100
changeset 477
9167ad4c2e77
parent 473
fdd30e935079
permissions
-rw-r--r--

Renamed Mash-in step to Prepare on the display. Don't run the pump when the mash is added. When preparing the mash, first heat the HLT, and then the MLT so that both have the chance to reach their target temperatures.

/*****************************************************************************
 * Copyright (C) 2015
 *   
 * Michiel Broek <mbroek at mbse dot eu>
 *
 * This file is part of the mbsePi-apps
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2, or (at your option) any
 * later version.
 *
 * mbsePi-apps is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with ThermFerm; see the file COPYING.  If not, write to the Free
 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
 *****************************************************************************/

#include "brewco.h"
#include "slcd.h"
#include "prompt.h"


extern int              debug;
extern sys_config       Config;
extern int              lcdHandle;
extern int		slcdHandle;



void prompt(int idx, char *text)
{
    char	message[81];
    int		line;

    switch (idx) {
	case 0:
#ifdef HAVE_WIRINGPI_H
			piLock(LOCK_LCD);
			lcdClear(lcdHandle);
#endif
			slcdClear(slcdHandle);
#ifdef HAVE_WIRINGPI_H
			piUnlock(LOCK_LCD);
#endif
			return;
	case 100:	if (text == NULL)
			    snprintf(message, Config.lcd_cols + 1, "                    ");
			else
			    snprintf(message, Config.lcd_cols + 1, text);
			break;
	case 101:	snprintf(message, Config.lcd_cols + 1, "    Brewco %s   \007", 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 --> Prepare    ");
			break;
	case 112:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Phytase    ");
			break;
	case 113:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Glucanase  ");
			break;
	case 114:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Protease   ");
			break;
	case 115:	snprintf(message, Config.lcd_cols + 1, "AUTO --> \342-Amylase  ");	/* Beta	*/
			break;
	case 116:	snprintf(message, Config.lcd_cols + 1, "AUTO --> \340-Amylase 1");	/* Alpha */
			break;
	case 117:	snprintf(message, Config.lcd_cols + 1, "AUTO --> \340-Amylase 2");
			break;
	case 118:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Mash Out   ");
			break;
	case 119:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Boil       ");
			break;
	case 120:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Cooling    ");
			break;
	case 121:	snprintf(message, Config.lcd_cols + 1, "AUTO --> Whirlpool  ");
			break;
	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 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;
	case 133:	snprintf(message, Config.lcd_cols + 1, " Change temperature ");
			break;
	case 134:	snprintf(message, Config.lcd_cols + 1, "    Change time     ");
			break;
	case 137:	snprintf(message, Config.lcd_cols + 1, "   Direct/Reverse   ");
			break;
	case 138:	snprintf(message, Config.lcd_cols + 1, "  Change parameter  ");
			break;

	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 194:       snprintf(message, Config.lcd_cols + 1, "   Edit Mashstep    ");
			break;
	case 195:	snprintf(message, Config.lcd_cols + 1, "   Edit Addition    ");
			break;
	case 196:	snprintf(message, Config.lcd_cols + 1, "   Edit Hopstand    ");
			break;
	case 200:	if (text == NULL)
			    snprintf(message, Config.lcd_cols + 1, "                    ");
			else
			    snprintf(message, Config.lcd_cols + 1, text);
			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 Devices   ");
			break;
	case 205:	snprintf(message, Config.lcd_cols + 1, "  Manage Simulators ");
			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 219:	snprintf(message, Config.lcd_cols + 1, "    Mash added?     ");
			break;
	case 220:	snprintf(message, Config.lcd_cols + 1, "   Mash Removed?    ");
			break;
	case 221:       snprintf(message, Config.lcd_cols + 1, "   Select Recipe    ");
			break;
	case 222:       snprintf(message, Config.lcd_cols + 1, " Select Brewsystem  ");
			break;
	case 223:       snprintf(message, Config.lcd_cols + 1, "   Select Device    ");
			break;
	case 300:	if (text == NULL)
			    snprintf(message, Config.lcd_cols + 1, "                    ");
			else
			    snprintf(message, Config.lcd_cols + 1, text);
			break;
	case 301:	snprintf(message, Config.lcd_cols + 1, "      Finished      ");
			break;
	case 302:	snprintf(message, Config.lcd_cols + 1, "   Shutting down    ");
			break;
	case 303:       snprintf(message, Config.lcd_cols + 1, "     Manual HLT     ");
			break;
	case 304:       snprintf(message, Config.lcd_cols + 1, "     Manual MLT     ");
			break;
	case 400:	if (text == NULL)
			    snprintf(message, Config.lcd_cols + 1, "                    ");
			else
			    snprintf(message, Config.lcd_cols + 1, text);
			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, "---  ---  quit  ok  ");
			break;
	case 406:       snprintf(message, Config.lcd_cols + 1, "UP* *DWN  heat  pmp ");
			break;
	case 407:       snprintf(message, Config.lcd_cols + 1, "---  ---   No   Yes ");
			break;
	case 408:	snprintf(message, Config.lcd_cols + 1, "---  ---   Ok   --- ");
			break;
	case 409:	snprintf(message, Config.lcd_cols + 1, "UP* *DWN  Pause --- ");
			break;
	case 410:	snprintf(message, Config.lcd_cols + 1, " Continue: Yes  No  ");
			break;
	case 411:	snprintf(message, Config.lcd_cols + 1, "UP* *DWN  ---   pmp ");
			break;
	case 412:	snprintf(message, Config.lcd_cols + 1, "Up   Dwn  Exit  Ok  ");
			break;
	case 413:	snprintf(message, Config.lcd_cols + 1, "UP* *DWN  heat  --- ");
			break;
	case 414:       snprintf(message, Config.lcd_cols + 1, "add  dwn  quit  ok  ");
			break;
	case 415:	snprintf(message, Config.lcd_cols + 1, "add  ---  quit  ok  ");
			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;
	case 418:	snprintf(message, Config.lcd_cols + 1, "---  ---  Pause --- ");
			break;
	case 419:	snprintf(message, Config.lcd_cols + 1, "--*  *--  ---   pmp ");
			break;

			//                                      12345678901234567890
	default:	snprintf(message, Config.lcd_cols + 1, "   N/A        N/A");
    }

    if (idx < 200)
	line = 0;
    else if (idx < 300)
	line = 1;
    else if (idx < 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
}

mercurial