brewco/rdsession.c

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

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

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

441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /*****************************************************************************
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 * Copyright (C) 2015
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 *
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 * Michiel Broek <mbroek at mbse dot eu>
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 *
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 * This file is part of the mbsePi-apps
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 *
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 * This is free software; you can redistribute it and/or modify it
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 * under the terms of the GNU General Public License as published by the
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 * Free Software Foundation; either version 2, or (at your option) any
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 * later version.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 *
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 * mbsePi-apps is distributed in the hope that it will be useful, but
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 * General Public License for more details.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 *
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 * along with ThermFerm; see the file COPYING. If not, write to the Free
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 *****************************************************************************/
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23 #include "brewco.h"
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 #include "rdsession.h"
446
78e9d5234d15 Switched to PID code from Arduino
Michiel Broek <mbroek@mbse.eu>
parents: 444
diff changeset
25 #include "util.h"
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 #include "xutil.h"
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 extern int debug;
464
4a624c071ca9 Added file copy. Move home directory detection to the main program function. During opening of the main configuration file, backups are made, 10 revisions in total.
Michiel Broek <mbroek@mbse.eu>
parents: 446
diff changeset
29 extern char *etcpath;
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31
475
bec993331061 Updated several prompts. Added pump prime. Added first part of a test plan.
Michiel Broek <mbroek@mbse.eu>
parents: 474
diff changeset
32 const char BREWSTEP[16][11] = { "NA", "BREWINIT", "WATERCHECK", "PUMPPRIME", "WAITSTART",
473
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
33 "PREMASH", "MASHING", "REMOVE", "PREBOIL", "BOIL",
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
34 "BOILDONE", "COOLING", "HOPSTAND", "WHIRLPOOL", "CLEANUP",
475
bec993331061 Updated several prompts. Added pump prime. Added first part of a test plan.
Michiel Broek <mbroek@mbse.eu>
parents: 474
diff changeset
35 "BREWDONE" };
473
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
36 const char MASHSTEP[8][11] = { "MASH-IN", "PHYTASE", "GLUCANASE", "PROTEASE", "B-AMYLASE", "A-AMYLASE1", "A-AMYLASE2", "MASH-OUT" };
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 #define MY_ENCODING "utf-8"
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40
474
fe1c3e3e90dc Improved steps logging. Some small fixes in the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 473
diff changeset
41 char *brewstep_name(int val)
fe1c3e3e90dc Improved steps logging. Some small fixes in the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 473
diff changeset
42 {
fe1c3e3e90dc Improved steps logging. Some small fixes in the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 473
diff changeset
43 static char text[41];
fe1c3e3e90dc Improved steps logging. Some small fixes in the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 473
diff changeset
44
fe1c3e3e90dc Improved steps logging. Some small fixes in the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 473
diff changeset
45 snprintf(text, 20, BREWSTEP[val]);
fe1c3e3e90dc Improved steps logging. Some small fixes in the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 473
diff changeset
46 return text;
fe1c3e3e90dc Improved steps logging. Some small fixes in the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 473
diff changeset
47 }
fe1c3e3e90dc Improved steps logging. Some small fixes in the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 473
diff changeset
48
fe1c3e3e90dc Improved steps logging. Some small fixes in the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 473
diff changeset
49
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 int do_wrsession(brew_session *brew);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 int do_wrsession(brew_session *brew)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 int rc = 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 FILE *fp;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 char *mypath = NULL;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 xmlTextWriterPtr writer;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 xmlBufferPtr buf;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 * Create a new XML buffer, to which the XML document will be written
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 if ((buf = xmlBufferCreate()) == NULL) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63 syslog(LOG_NOTICE, "wrsession: error creating the xml buffer");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 * Create a new XmlWriter for memory, with no compression.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 if ((writer = xmlNewTextWriterMemory(buf, 0)) == NULL) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 syslog(LOG_NOTICE, "wrsession: error creating the xml writer");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 * Use indentation instead of one long line
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 if ((rc = xmlTextWriterSetIndent(writer, 2)) < 0) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 syslog(LOG_NOTICE, "wrsession: error setting Indent");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 * Start the document with the xml default for the version,
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 * encoding ISO 8859-1 and the default for the standalone
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 * declaration.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88 if ((rc = xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL)) < 0) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterStartDocument");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94 * Start an element named "BREWCO". Since thist is the first
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 * element, this will be the root element of the document.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96 */
473
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
97 if ((rc = xmlTextWriterStartElement(writer, BAD_CAST "BREWCO")) < 0) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
98 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterStartElement");
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
99 return 1;
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
100 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
101 if ((rc = xmlTextWriterStartElement(writer, BAD_CAST "BREW")) < 0) {
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterStartElement");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
103 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
104 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
105
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
106 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
107 * Add an attribute with name "VERSION" and value "1" to BRWCO.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
108 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
109 if ((rc = xmlTextWriterWriteElement(writer, BAD_CAST "VERSION", BAD_CAST "1")) < 0) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
110 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterWriteElement");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
111 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "UUID_RECIPE", "%s", brew->uuid_recipe)) < 0) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
114 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterWriteFormatElement");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
115 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
116 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "UUID_UNIT", "%s", brew->uuid_unit)) < 0) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
118 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterWriteFormatElement");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
119 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
120 }
472
55bcbf92ecab Added initial part of the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 470
diff changeset
121 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "NAME", "%s", brew->name)) < 0) {
55bcbf92ecab Added initial part of the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 470
diff changeset
122 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterWriteFormatElement");
55bcbf92ecab Added initial part of the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 470
diff changeset
123 return 1;
55bcbf92ecab Added initial part of the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 470
diff changeset
124 }
444
eafb140a1ddd Better brew state field names.
Michiel Broek <mbroek@mbse.eu>
parents: 441
diff changeset
125 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "BREWSTEP", "%s", BREWSTEP[brew->brewstep])) < 0) {
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
126 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterWriteElement");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
127 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
128 }
444
eafb140a1ddd Better brew state field names.
Michiel Broek <mbroek@mbse.eu>
parents: 441
diff changeset
129 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "MASHSTEP", "%s", MASHSTEP[brew->mashstep])) < 0) {
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
130 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterWriteElement");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
131 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
132 }
444
eafb140a1ddd Better brew state field names.
Michiel Broek <mbroek@mbse.eu>
parents: 441
diff changeset
133 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "TIMEOUT", "%d", brew->timeout)) < 0) {
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
134 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterWriteElement");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
135 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
136 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
137 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "BOILTIMER", "%d", brew->boiltimer)) < 0) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
138 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterWriteElement");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
139 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
140 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
141 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "STARTTIME", "%d", (int)brew->starttime)) < 0) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
142 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterWriteElement");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
143 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
144 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
145 if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "ENDTIME", "%d", (int)brew->endtime)) < 0) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
146 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterWriteElement");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
147 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
148 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
149
473
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
150 /*
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
151 * Close the element named BREW.
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
152 */
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
153 if ((rc = xmlTextWriterEndElement(writer)) < 0) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
154 syslog(LOG_NOTICE, "wrrecipes: error at xmlTextWriterEndElement");
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
155 return 1;
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
156 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
157
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
158 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
159 * All done, close any open elements
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
160 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
161 if ((rc = xmlTextWriterEndDocument(writer)) < 0) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
162 syslog(LOG_NOTICE, "wrsession: error at xmlTextWriterEndDocument");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
163 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
164 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
165 xmlFreeTextWriter(writer);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
166
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
167 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
168 * Now write the XML configuration
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
169 */
464
4a624c071ca9 Added file copy. Move home directory detection to the main program function. During opening of the main configuration file, backups are made, 10 revisions in total.
Michiel Broek <mbroek@mbse.eu>
parents: 446
diff changeset
170 mypath = xstrcpy(etcpath);
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
171 mypath = xstrcat(mypath, (char *)"brewing.xml");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
172
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
173 if (debug)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
174 fprintf(stdout, "Writing %s\n", mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
175
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
176 if ((fp = fopen(mypath, "w")) == NULL) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
177 syslog(LOG_NOTICE, "could not rewrite %s", mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
178 free(mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
179 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
180 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
181 free(mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
182
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
183 fprintf(fp, "%s", (const char *) buf->content);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
184 fclose(fp);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
185 xmlBufferFree(buf);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
186
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
187 return 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
188 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
189
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
190
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
191
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
192 int wrsession(brew_session *brew)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
193 {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
194 int rc;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
195
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
196 rc = do_wrsession(brew);
474
fe1c3e3e90dc Improved steps logging. Some small fixes in the brew automation.
Michiel Broek <mbroek@mbse.eu>
parents: 473
diff changeset
197 // syslog(LOG_NOTICE, "Rewritten brewsession, rc=%d", rc);
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
198 return rc;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
199 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
200
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
201
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
202
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
203 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
204 * Returns:
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
205 * 0 - All is well, session loaded.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
206 * 1 - Something went wrong
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
207 * -1 - No brew session available
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
208 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
209 int rdsession(brew_session *brew)
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
210 {
444
eafb140a1ddd Better brew state field names.
Michiel Broek <mbroek@mbse.eu>
parents: 441
diff changeset
211 int i, ival;
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
212 char *mypath;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
213 xmlDocPtr doc;
473
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
214 xmlNodePtr cur, s1cur;
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
215 xmlChar *key;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
216
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
217 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
218 * Search config file
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
219 */
464
4a624c071ca9 Added file copy. Move home directory detection to the main program function. During opening of the main configuration file, backups are made, 10 revisions in total.
Michiel Broek <mbroek@mbse.eu>
parents: 446
diff changeset
220 mypath = xstrcpy(etcpath);
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
221 mypath = xstrcat(mypath, (char *)"brewing.xml");
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
222
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
223 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
224 * See if we have a brewing state file.
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
225 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
226 if (file_exist(mypath, W_OK)) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
227 syslog(LOG_NOTICE, "rdsession: %s not found, good.", mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
228 free(mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
229 return -1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
230 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
231
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
232 if ((doc = xmlParseFile(mypath)) == NULL) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
233 syslog(LOG_NOTICE, "rdsession: %s not found, should not happen.", mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
234 free(mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
235 return -1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
236 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
237 syslog(LOG_NOTICE, "rdsession: using %s", mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
238
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
239 if ((cur = xmlDocGetRootElement(doc)) == NULL) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
240 syslog(LOG_NOTICE, "XML file %s empty.", mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
241 xmlFreeDoc(doc);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
242 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
243 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
244 if (xmlStrcmp(cur->name, (const xmlChar*)"BREWCO")) {
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
245 syslog(LOG_NOTICE, "XML file %s is not a valid configuration file.", mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
246 xmlFreeDoc(doc);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
247 return 1;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
248 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
249
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
250 /*
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
251 * Parse session
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
252 */
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
253 cur = cur->xmlChildrenNode;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
254 while (cur != NULL) {
473
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
255
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
256 if ((! xmlStrcmp(cur->name, (const xmlChar*)"BREW"))) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
257 s1cur = cur->xmlChildrenNode;
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
258 while (s1cur != NULL) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
259
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
260 if ((!xmlStrcmp(s1cur->name, (const xmlChar *)"UUID_RECIPE"))) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
261 brew->uuid_recipe = (char *)xmlNodeListGetString(doc, s1cur->xmlChildrenNode, 1);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
262 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
263 if ((!xmlStrcmp(s1cur->name, (const xmlChar *)"UUID_UNIT"))) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
264 brew->uuid_unit = (char *)xmlNodeListGetString(doc, s1cur->xmlChildrenNode, 1);
444
eafb140a1ddd Better brew state field names.
Michiel Broek <mbroek@mbse.eu>
parents: 441
diff changeset
265 }
473
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
266 if ((!xmlStrcmp(s1cur->name, (const xmlChar *)"NAME"))) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
267 brew->name = (char *)xmlNodeListGetString(doc, s1cur->xmlChildrenNode, 1);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
268 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
269 if ((!xmlStrcmp(s1cur->name, (const xmlChar *)"BREWSTEP"))) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
270 key = xmlNodeListGetString(doc, s1cur->xmlChildrenNode, 1);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
271 for (i = 0; i < 15; i++) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
272 if (! xmlStrcmp(key, (const xmlChar *)BREWSTEP[i])) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
273 brew->brewstep = i;
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
274 break;
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
275 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
276 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
277 xmlFree(key);
444
eafb140a1ddd Better brew state field names.
Michiel Broek <mbroek@mbse.eu>
parents: 441
diff changeset
278 }
473
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
279 if ((!xmlStrcmp(s1cur->name, (const xmlChar *)"MASHSTEP"))) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
280 key = xmlNodeListGetString(doc, s1cur->xmlChildrenNode, 1);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
281 for (i = 0; i < 8; i++) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
282 if (! xmlStrcmp(key, (const xmlChar *)MASHSTEP[i])) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
283 brew->mashstep = i;
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
284 break;
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
285 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
286 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
287 xmlFree(key);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
288 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
289 if ((!xmlStrcmp(s1cur->name, (const xmlChar *)"TIMEOUT"))) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
290 key = xmlNodeListGetString(doc, s1cur->xmlChildrenNode, 1);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
291 if (sscanf((const char *)key, "%d", &ival) == 1)
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
292 brew->timeout = ival;
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
293 xmlFree(key);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
294 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
295 if ((!xmlStrcmp(s1cur->name, (const xmlChar *)"BOILTIMER"))) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
296 key = xmlNodeListGetString(doc, s1cur->xmlChildrenNode, 1);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
297 if (sscanf((const char *)key, "%d", &ival) == 1)
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
298 brew->boiltimer = ival;
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
299 xmlFree(key);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
300 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
301 if ((!xmlStrcmp(s1cur->name, (const xmlChar *)"STARTTIME"))) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
302 key = xmlNodeListGetString(doc, s1cur->xmlChildrenNode, 1);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
303 if (sscanf((const char *)key, "%d", &ival) == 1)
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
304 brew->starttime = (time_t)ival;
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
305 xmlFree(key);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
306 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
307 if ((!xmlStrcmp(s1cur->name, (const xmlChar *)"ENDTIME"))) {
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
308 key = xmlNodeListGetString(doc, s1cur->xmlChildrenNode, 1);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
309 if (sscanf((const char *)key, "%d", &ival) == 1)
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
310 brew->endtime = (time_t)ival;
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
311 xmlFree(key);
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
312 }
fdd30e935079 The brew state machine is complete, works but is not bugfree
Michiel Broek <mbroek@mbse.eu>
parents: 472
diff changeset
313 s1cur = s1cur->next;
444
eafb140a1ddd Better brew state field names.
Michiel Broek <mbroek@mbse.eu>
parents: 441
diff changeset
314 }
441
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
315 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
316 cur = cur->next;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
317 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
318 xmlFreeDoc(doc);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
319
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
320 free(mypath);
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
321 mypath = NULL;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
322
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
323 return 0;
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
324 }
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
325
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
326
bde74a8f2ad7 Added automate state file.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
327

mercurial