Added profile parameters

Wed, 02 Jul 2014 22:41:31 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 02 Jul 2014 22:41:31 +0200
changeset 90
28ee293654fd
parent 89
8bab04a663dd
child 91
901ca9858a7a

Added profile parameters

thermferm/rdconfig.c file | annotate | diff | comparison | revisions
--- a/thermferm/rdconfig.c	Wed Jul 02 22:17:10 2014 +0200
+++ b/thermferm/rdconfig.c	Wed Jul 02 22:41:31 2014 +0200
@@ -29,8 +29,8 @@
 
 #define MY_ENCODING "utf-8"
 
-const char      UNITMODE[5][8] = { "OFF", "NONE", "FRIDGE", "BEER", "PROFILE" };
-
+const char      UNITMODE[5][8]	= { "OFF", "NONE", "FRIDGE", "BEER", "PROFILE" };
+const char	PROFSTATE[4][6]	= { "OFF", "PAUSE", "RUN", "DONE" };
 
 
 
@@ -342,7 +342,11 @@
 		    syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement");
 		    return 1;
 		}
-		if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "UUID", "%d", (unsigned int)tmp3->prof_started)) < 0) {
+		if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "PROF_STARTED", "%d", (unsigned int)tmp3->prof_started)) < 0) {
+		    syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement");
+		    return 1;
+		}
+		if ((rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "PROF_STATE", "%s", PROFSTATE[tmp3->prof_state] )) < 0) {
 		    syslog(LOG_NOTICE, "wrconfig: error at xmlTextWriterWriteFormatElement");
 		    return 1;
 		}
@@ -529,11 +533,12 @@
 
     unit = (units_list *)malloc(sizeof(units_list));
     unit->next = NULL;
+    unit->version = 1;
     unit->uuid = unit->name = unit->air_address = unit->beer_address = unit->io1_address = unit->io2_address = unit->profile = NULL;
     unit->volume = 0.0;
     unit->heater_available = unit->cooler_available = unit->fan_available = FALSE;
     unit->air_temp = unit->beer_temp = unit->beer_set = unit->fridge_set = 20.0;
-    unit->heater_state = unit->cooler_state = unit->fan_state = unit->door_state = unit->mode = 0;
+    unit->heater_state = unit->cooler_state = unit->fan_state = unit->door_state = unit->mode = unit->prof_state = 0;
     unit->temp_set_min = 1.0;
     unit->temp_set_max = 30.0;
     unit->idle_rangeH = 1.0;
@@ -548,6 +553,7 @@
 		xmlFree(key);
 		return 1;
 	    }
+	    unit->version = 1;
 	    xmlFree(key);
 	}
 	if ((!xmlStrcmp(cur->name, (const xmlChar *)"UUID"))) {
@@ -647,6 +653,16 @@
 		unit->prof_started = ival;
 	    xmlFree(key);
 	}
+	if ((!xmlStrcmp(cur->name, (const xmlChar *)"PROF_STATE"))) {
+	    key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
+	    for (i = 0; i < 4; i++) {
+		if (! xmlStrcmp(key, (const xmlChar *)PROFSTATE[i])) {
+		    unit->prof_state = i;
+		    break;
+		}
+	    }
+	    xmlFree(key);
+	}
 	cur = cur->next;
     }
 

mercurial