brewco/brewco.c

Sat, 28 Nov 2015 20:15:38 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 28 Nov 2015 20:15:38 +0100
changeset 441
bde74a8f2ad7
parent 440
8df3252b688f
child 442
1193bd7d460f
permissions
-rw-r--r--

Added automate state file.

409
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /*****************************************************************************
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 * Copyright (C) 2015
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 *
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 * Michiel Broek <mbroek at mbse dot eu>
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 *
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 * This file is part of the mbsePi-apps
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 *
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 * This is free software; you can redistribute it and/or modify it
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 * under the terms of the GNU General Public License as published by the
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 * Free Software Foundation; either version 2, or (at your option) any
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 * later version.
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 *
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 * mbsePi-apps is distributed in the hope that it will be useful, but
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 * General Public License for more details.
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 *
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 * along with ThermFerm; see the file COPYING. If not, write to the Free
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 *****************************************************************************/
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
23 #include "brewco.h"
409
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 #include "rdconfig.h"
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
25 #include "rdsession.h"
409
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 #include "futil.h"
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 #include "xutil.h"
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
28 #include "lcd-pcf8574.h"
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
29 #include "slcd.h"
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
30 #include "lock.h"
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
31 #include "devices.h"
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
32 #include "keyboard.h"
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
33 #include "simulator.h"
409
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 int my_shutdown = FALSE;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 extern int debug;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 extern sys_config Config;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 extern int lcdHandle;
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
40 extern int slcdHandle;
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
41 extern int sock;
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
42
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
43 #ifndef HAVE_WIRINGPI_H
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
44 pthread_t threads[5];
409
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 #endif
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 void help(void);
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 void die(int);
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 void help(void)
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 {
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 fprintf(stdout, "mbsePi-apps brewco v%s starting\n\n", VERSION);
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 fprintf(stdout, "Usage: brewco [-d] [-h]\n");
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 fprintf(stdout, " -d --debug Debug and run in foreground\n");
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 fprintf(stdout, " -h --help Display this help\n");
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 }
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63 void die(int onsig)
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 {
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 switch (onsig) {
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66 case SIGHUP: syslog(LOG_NOTICE, "Got SIGHUP, shutting down");
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 break;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 case SIGINT: syslog(LOG_NOTICE, "Keyboard interrupt, shutting down");
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 break;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 case SIGTERM: syslog(LOG_NOTICE, "Got SIGTERM, shutting down");
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 break;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72 case SIGSEGV: syslog(LOG_NOTICE, "Got SIGSEGV, shutting down");
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 my_shutdown = TRUE;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 exit(SIGSEGV);
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 break;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 default: syslog(LOG_NOTICE, "die() on signal %d", onsig);
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 }
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 my_shutdown = TRUE;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80 }
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
84 void prompt(int index)
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
85 {
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
86 char message[81];
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
87 int line;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
88
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
89 switch (index) {
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
90 case 0:
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
91 #ifdef HAVE_WIRINGPI_H
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
92 piLock(LOCK_LCD);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
93 lcdClear(lcdHandle);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
94 #endif
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
95 slcdClear(slcdHandle);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
96 #ifdef HAVE_WIRINGPI_H
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
97 piUnlock(LOCK_LCD);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
98 #endif
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
99 return;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
100 case 101: snprintf(message, Config.lcd_cols + 1, " Brewco %s ", VERSION);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
101 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
102 case 102: snprintf(message, Config.lcd_cols + 1, " SETUP MENU ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
103 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
104 case 103: snprintf(message, Config.lcd_cols + 1, " AUTOMATIC MODE ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
105 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
106 case 104: snprintf(message, Config.lcd_cols + 1, " MANUAL MODE ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
107 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
108 case 111: snprintf(message, Config.lcd_cols + 1, "AUTO --> Mash In ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
109 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
110 case 112: snprintf(message, Config.lcd_cols + 1, "AUTO --> Fitasi ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
111 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
112 case 113: snprintf(message, Config.lcd_cols + 1, "AUTO --> Glucanasi ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
113 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
114 case 114: snprintf(message, Config.lcd_cols + 1, "AUTO --> Proteasi ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
115 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
116 case 115: snprintf(message, Config.lcd_cols + 1, "AUTO --> B-amilasi ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
117 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
118 case 116: snprintf(message, Config.lcd_cols + 1, "AUTO --> A-amilasi 1");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
119 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
120 case 117: snprintf(message, Config.lcd_cols + 1, "AUTO --> A-amilasi 2");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
121 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
122 case 118: snprintf(message, Config.lcd_cols + 1, "AUTO --> Mash Out ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
123 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
124 case 121: snprintf(message, Config.lcd_cols + 1, "AUTO --> Hop xx ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
125 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
126 case 202: snprintf(message, Config.lcd_cols + 1, " Manage Recipes ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
127 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
128 case 203: snprintf(message, Config.lcd_cols + 1, " Manage Brewsystems ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
129 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
130 case 204: snprintf(message, Config.lcd_cols + 1, " Manage Simulator ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
131 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
132 case 205: snprintf(message, Config.lcd_cols + 1, " System parameters ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
133 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
134 case 206: snprintf(message, Config.lcd_cols + 1, " Set Automation ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
135 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
136 case 207: snprintf(message, Config.lcd_cols + 1, " Delay start? ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
137 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
138 case 208: snprintf(message, Config.lcd_cols + 1, " Resume Process ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
139 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
140 case 209: snprintf(message, Config.lcd_cols + 1, " Water Added? ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
141 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
142 case 210: snprintf(message, Config.lcd_cols + 1, " Pump Prime ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
143 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
144 case 211: snprintf(message, Config.lcd_cols + 1, " Setting Delay ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
145 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
146 case 212: snprintf(message, Config.lcd_cols + 1, " To be started in ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
147 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
148 case 213: snprintf(message, Config.lcd_cols + 1, " Iodine test ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
149 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
150 case 214: snprintf(message, Config.lcd_cols + 1, " START COOLING ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
151 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
152 case 215: snprintf(message, Config.lcd_cols + 1, " WHIRLPOOL ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
153 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
154 case 216: snprintf(message, Config.lcd_cols + 1, " Timing Whirlpool ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
155 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
156 case 217: snprintf(message, Config.lcd_cols + 1, " Brewing Process ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
157 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
158 case 218: snprintf(message, Config.lcd_cols + 1, " Add Brewsystem? ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
159 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
160 case 301: snprintf(message, Config.lcd_cols + 1, " Finished ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
161 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
162 case 302: snprintf(message, Config.lcd_cols + 1, " Shutting down ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
163 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
164 case 401: snprintf(message, Config.lcd_cols + 1, " --- MAN AUTO SETUP");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
165 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
166 case 402: snprintf(message, Config.lcd_cols + 1, " --- dwn quit ok ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
167 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
168 case 403: snprintf(message, Config.lcd_cols + 1, " up dwn quit ok ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
169 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
170 case 404: snprintf(message, Config.lcd_cols + 1, " up --- quit ok ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
171 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
172 case 405: snprintf(message, Config.lcd_cols + 1, " UP* *DWN heat pmp ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
173 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
174 case 406: snprintf(message, Config.lcd_cols + 1, " --- --- No Yes ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
175 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
176 case 407: snprintf(message, Config.lcd_cols + 1, " --- --- Ok --- ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
177 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
178 case 408: snprintf(message, Config.lcd_cols + 1, " UP* *DWN Pause --- ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
179 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
180 case 409: snprintf(message, Config.lcd_cols + 1, " Continue: Yes No ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
181 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
182 case 410: snprintf(message, Config.lcd_cols + 1, " UP* *DWN --- pmp ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
183 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
184 case 411: snprintf(message, Config.lcd_cols + 1, " Up Dwn Exit Ok ");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
185 break;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
186 // 12345678901234567890
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
187 default: snprintf(message, Config.lcd_cols + 1, " N/A N/A");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
188 }
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
189
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
190 if (index < 200)
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
191 line = 0;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
192 else if (index < 300)
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
193 line = 1;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
194 else if (index < 400)
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
195 line = 2;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
196 else
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
197 line = 3;
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
198
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
199 fprintf(stdout, "%d %d '%s'\n", line, Config.lcd_cols, message);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
200
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
201 #ifdef HAVE_WIRINGPI_H
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
202 piLock(LOCK_LCD);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
203 lcdPosition(lcdHandle, 0, line);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
204 lcdPuts(lcdHandle, message);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
205
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
206 #endif
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
207 slcdPosition(slcdHandle, 0, line);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
208 slcdPuts(slcdHandle, message);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
209 #ifdef HAVE_WIRINGPI_H
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
210 piUnlock(LOCK_LCD);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
211 #endif
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
212 }
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
213
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
214
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
215
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
216 void editUnit(units_list *unit)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
217 {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
218 if (debug)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
219 fprintf(stdout, "Start edit brewsystem %d %s\n", unit->number, unit->uuid);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
220
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
221 if (debug)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
222 fprintf(stdout, "End edit brewsystem %d %s\n", unit->number, unit->uuid);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
223 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
224
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
225
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
226
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
227 void addUnit(int number)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
228 {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
229 units_list *tmpu, *unit = (units_list *)malloc(sizeof(units_list));
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
230 char name[81];
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
231 uuid_t uu;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
232
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
233 if (debug)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
234 fprintf(stdout, "Adding new brewsystem %d\n", number);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
235 unit->next = NULL;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
236 unit->version = 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
237 unit->uuid = malloc(37);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
238 uuid_generate(uu);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
239 uuid_unparse(uu, unit->uuid);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
240 snprintf(name, 20, "System %d", number);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
241 unit->name = xstrcpy(name);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
242 unit->number = number;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
243 if (number == 1)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
244 unit->active = 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
245 else
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
246 unit->active = 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
247 unit->hlt_sensor = unit->mlt_sensor = NULL;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
248 unit->hlt_heater = unit->mlt_heater = unit->mlt_pump = NULL;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
249 unit->hlt_heater_mltfirst = 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
250 unit->pump_cycle = 7;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
251 unit->pump_rest = 2;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
252 unit->pump_premash = 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
253 unit->pump_onmash = 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
254 unit->pump_mashout = 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
255 unit->pump_onboil = 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
256 unit->pump_stop = 90;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
257 unit->skip_add = 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
258 unit->skip_remove = 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
259 unit->skip_iodine = 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
260 unit->iodine_time = 90;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
261 unit->whirlpool = 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
262 unit->PID_hlt = (pid_var *)malloc(sizeof(pid_var));
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
263 unit->PID_mlt = (pid_var *)malloc(sizeof(pid_var));
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
264 InitPID(unit->PID_hlt);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
265 InitPID(unit->PID_mlt);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
266
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
267 editUnit(unit);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
268
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
269 if (Config.units == NULL) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
270 Config.units = unit;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
271 } else {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
272 for (tmpu = Config.units; tmpu; tmpu = tmpu->next) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
273 if (tmpu->next == NULL) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
274 tmpu->next = unit;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
275 break;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
276 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
277 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
278 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
279 syslog(LOG_NOTICE, "Brewsystem %d added to the configuration", number);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
280 if (debug)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
281 fprintf(stdout, "Brewsystem %d added to the configuration\n", number);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
282 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
283
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
284
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
285
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
286 int server(void);
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
287 int server(void)
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
288 {
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
289 int rc = 0, run = 1, key;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
290 units_list *unit;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
291 brew_session *brew = NULL;
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
292 #ifndef HAVE_WIRINGPI_H
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
293 long t = 0;
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
294 #endif
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
295
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
296 // if (lockprog((char *)"brewco")) {
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
297 // syslog(LOG_NOTICE, "Can't lock");
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
298 // return 1;
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
299 // }
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
300
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
301 if (debug)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
302 fprintf(stdout, "Begin server()\n");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
303
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
304 if ((rc = devices_detect())) {
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
305 syslog(LOG_NOTICE, "Detected %d new devices", rc);
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
306 if (debug)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
307 fprintf(stdout, "Detected %d new devices\n", rc);
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
308 wrconfig();
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
309 }
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
310
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
311 #ifdef HAVE_WIRINGPI_H
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
312 rc = piThreadCreate(my_devices_loop);
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
313 #else
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
314 rc = pthread_create(&threads[t], NULL, my_devices_loop, (void *)t );
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
315 #endif
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
316 if (rc) {
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
317 fprintf(stderr, "my_devices_loop thread didn't start rc=%d\n", rc);
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
318 syslog(LOG_NOTICE, "my_devices_loop thread didn't start rc=%d", rc);
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
319 #ifndef HAVE_WIRINGPI_H
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
320 } else {
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
321 t++;
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
322 #endif
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
323 }
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
324
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
325 #ifdef HAVE_WIRINGPI_H
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
326 rc = piThreadCreate(my_keyboard_loop);
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
327 #else
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
328 rc = pthread_create(&threads[t], NULL, my_keyboard_loop, (void *)t );
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
329 #endif
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
330 if (rc) {
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
331 fprintf(stderr, "my_keyboard_loop thread didn't start rc=%d\n", rc);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
332 syslog(LOG_NOTICE, "my_keyboard_loop thread didn't start rc=%d", rc);
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
333 #ifndef HAVE_WIRINGPI_H
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
334 } else {
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
335 t++;
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
336 #endif
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
337 }
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
338
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
339 #ifdef USE_SIMULATOR
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
340 #ifdef HAVE_WIRINGPI_H
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
341 rc = piThreadCreate(my_simulator_loop);
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
342 #else
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
343 rc = pthread_create(&threads[t], NULL, my_simulator_loop, (void *)t );
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
344 #endif
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
345 if (rc) {
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
346 fprintf(stderr, "my_simulator_loop thread didn't start rc=%d\n", rc);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
347 syslog(LOG_NOTICE, "my_simulator_loop thread didn't start rc=%d", rc);
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
348 #ifndef HAVE_WIRINGPI_H
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
349 } else {
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
350 t++;
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
351 #endif
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
352 }
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
353 #endif
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
354
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
355 /*
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
356 * Initialize units for processing
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
357 */
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
358 for (unit = Config.units; unit; unit = unit->next) {
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
359 /*
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
360 * Safety, turn everything off
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
361 */
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
362 if (unit->active) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
363 if (unit->hlt_heater)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
364 unit->hlt_heater->value = 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
365 if (unit->mlt_heater)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
366 unit->mlt_heater->value = 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
367 if (unit->mlt_pump)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
368 unit->mlt_pump->value = 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
369 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
370 }
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
371
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
372 prompt(101);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
373 if (! Config.units) {
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
374 /*
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
375 * No brewsystems defined, add the first
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
376 */
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
377 prompt(218); /* Add Brewsystem? */
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
378 prompt(407); /* --- --- Ok --- */
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
379
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
380 do {
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
381 key = keywait();
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
382 } while (key != KEY_RETURN);
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
383
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
384 if (key == KEY_RETURN) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
385 addUnit(1);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
386 }
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
387 }
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
388
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
389 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
390 * During automation there will be a state file:
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
391 * ~/.brewco/var/brewing.xml
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
392 * If this file is present, there has been a crash.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
393 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
394 brew = (brew_session *)malloc(sizeof(brew_session));
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
395 if (rdsession(brew) == 0) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
396 } else {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
397 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
398 * No active brew session, make that permanent.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
399 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
400 free(brew);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
401 brew = NULL;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
402 }
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
403
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
404 do {
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
405 if (my_shutdown) {
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
406 run = 0;
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
407 break;
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
408 }
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
409
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
410 if (brew) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
411 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
412 * Automate mode
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
413 */
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
414
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
415 } else {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
416 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
417 * Not running.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
418 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
419 prompt(0);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
420 prompt(101);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
421 prompt(401);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
422 key = keywait();
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
423 }
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
424
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
425 usleep(100000);
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
426
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
427 } while (run);
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
428
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
429 syslog(LOG_NOTICE, "Out of loop");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
430 if (debug)
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
431 fprintf(stdout, (char *)"Out of loop\n");
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
432
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
433 prompt(0);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
434 prompt(101);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
435 prompt(302);
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
436
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
437 /*
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
438 * Stop units processing in a neat way
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
439 */
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
440 for (unit = Config.units; unit; unit = unit->next) {
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
441
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
442 }
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
443
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
444 /*
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
445 * Give threads time to cleanup
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
446 */
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
447 usleep(1500000);
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
448
440
8df3252b688f Added prompts for the LCD. Basic processing loop written.
Michiel Broek <mbroek@mbse.eu>
parents: 438
diff changeset
449 prompt(0);
438
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
450 // stopLCD();
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
451 if (sock != -1) {
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
452 if (shutdown(sock, SHUT_RDWR)) {
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
453 syslog(LOG_NOTICE, "Can't shutdown socket: %s", strerror(errno));
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
454 }
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
455 sock = -1;
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
456 }
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
457 wrconfig();
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
458 // ulockprog((char *)"brewco");
7d1ec160d751 Added simulator configuration.
Michiel Broek <mbroek@mbse.eu>
parents: 434
diff changeset
459 return 0;
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
460 }
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
461
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
462
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
463
409
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
464 int main(int argc, char *argv[])
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
465 {
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
466 int rc = 0, c, i;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
467
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
468 while (1) {
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
469 int option_index = 0;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
470 static struct option long_options[] = {
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
471 {"debug", 0, 0, 'c'},
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
472 {"help", 0, 0, 'h'},
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
473 {0, 0, 0, 0}
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
474 };
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
475
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
476 c = getopt_long(argc, argv, "dh", long_options, &option_index);
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
477 if (c == -1)
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
478 break;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
479
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
480 switch (c) {
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
481 case 'd': debug = TRUE;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
482 break;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
483 case 'h': help();
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
484 return 1;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
485 }
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
486 }
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
487
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
488 openlog("brewco", LOG_PID|LOG_CONS|LOG_NOWAIT, LOG_USER);
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
489 syslog(LOG_NOTICE, "mbsePi-apps brewco v%s starting", VERSION);
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
490 if (debug)
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
491 fprintf(stdout, "mbsePi-apps brewco v%s starting\n", VERSION);
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
492
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
493 if (rdconfig()) {
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
494 fprintf(stderr, "Error reading configuration\n");
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
495 syslog(LOG_NOTICE, "Error reading configuration: halted");
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
496 return 1;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
497 }
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
498 if (debug)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents: 440
diff changeset
499 fprintf(stdout, "configuration loaded\n");
409
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
500
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
501 /*
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
502 * Catch all the signals we can, and ignore the rest. Note that SIGKILL can't be ignored
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
503 * but that's live. This daemon should only be stopped by SIGTERM.
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
504 * Don't catch SIGCHLD.
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
505 */
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
506 for (i = 0; i < NSIG; i++) {
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
507 if ((i != SIGCHLD) && (i != SIGKILL) && (i != SIGSTOP))
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
508 signal(i, (void (*))die);
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
509 }
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
510
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
511 #ifdef HAVE_WIRINGPI_H
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
512 if (wiringPiSetup () )
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
513 return 1;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
514 #endif
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
515
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
516 if ((rc = initLCD (Config.lcd_cols, Config.lcd_rows))) {
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
517 fprintf(stderr, "Cannot initialize LCD display, rc=%d\n", rc);
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
518 return 1;
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
519 }
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
520
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
521 rc = server();
409
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
522
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
523 syslog(LOG_NOTICE, "Finished, rc=%d", rc);
434
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
524 if (debug)
eb724767860d Brewco first phase development configuration structure.
Michiel Broek <mbroek@mbse.eu>
parents: 419
diff changeset
525 fprintf(stdout, "Finished, rc=%d\n", rc);
409
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
526 return rc;
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
527 }
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
528
cdf68044adaf Added a new brewpanel program that runs on an SDL/X screen. It will be an emulator for the hardware panels. Development version 0.5.0
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
529

mercurial