brewco/prompt.c

Wed, 02 Dec 2015 17:16:41 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 02 Dec 2015 17:16:41 +0100
changeset 443
6b80a37fdf8d
parent 442
1193bd7d460f
child 445
3ec477cda546
permissions
-rw-r--r--

Added programming display CGRAM. Added display of characters from CGRAM. Changed prompts to allow free prompt strings. More code for the brewsystem unit editor.

/*****************************************************************************
 * 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 index, char *text)
{
    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 100:	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 --> Mash In    ");
			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 --> Hop   xx   ");
			break;
	case 131:	snprintf(message, Config.lcd_cols + 1, "  Edit brewsystem   ");
			break;
	case 132:	snprintf(message, Config.lcd_cols + 1, "   Toggle Yes/No    ");
			break;
	case 200:	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 300:	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 400:	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;
			//                                      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
}

mercurial