thermferm/server.c

changeset 289
d810df0df36a
parent 285
bbe73c2ecacf
child 293
881b1ae75468
--- a/thermferm/server.c	Wed Oct 22 12:42:20 2014 +0200
+++ b/thermferm/server.c	Sat Oct 25 21:08:47 2014 +0200
@@ -1447,7 +1447,7 @@
 	unit->name = xstrcpy(param);
 	unit->air_address = unit->beer_address = unit->heater_address = unit->cooler_address = \
 			    unit->fan_address = unit->door_address = unit->profile = NULL;
-	unit->volume = 0.0;
+	unit->volume = unit->prof_peak_abs = unit->prof_peak_rel = 0.0;
 	unit->air_state = unit->beer_state = 1;
 	unit->air_temperature = unit->beer_temperature = 20000;
 	unit->beer_set = unit->fridge_set = 20.0;
@@ -1458,7 +1458,7 @@
 	unit->temp_set_max = 30.0;
 	unit->idle_rangeH = 1.0;
 	unit->idle_rangeL = -1.0;
-	unit->prof_started = unit->prof_paused = (time_t)0;
+	unit->prof_started = unit->prof_paused = unit->prof_primary_done = (time_t)0;
 	unit->prof_percent = 0;
 	unit->PID_err_old = unit->PID_I_err = 0.0;
 
@@ -1554,6 +1554,9 @@
 		    srv_send((char *)"PROF_STATE,%s", PROFSTATE[unit->prof_state]);
 		}
 		srv_send((char *)"PROF_TARGET,%.3f", unit->prof_target);
+		srv_send((char *)"PROF_PEAK_ABS,%.3f", unit->prof_peak_abs);
+		srv_send((char *)"PROF_PEAK_REL,%.3f", unit->prof_peak_rel);
+		srv_send((char *)"PROF_PRIMARY_DONE,%d", (int)unit->prof_primary_done);
 		srv_send((char *)"TEMP_SET_MIN,%.1f", unit->temp_set_min);
 		srv_send((char *)"TEMP_SET_MAX,%.1f", unit->temp_set_max);
 		srv_send((char *)"IDLE_RANGE_L,%.1f", unit->idle_rangeL);
@@ -1827,7 +1830,8 @@
 						case PROFILE_RUN:	if (unit->prof_state == PROFILE_OFF) {
 									    unit->prof_state = PROFILE_RUN;
 									    unit->prof_started = time(NULL);
-									    unit->prof_paused = 0;
+									    unit->prof_paused = unit->prof_primary_done = 0;
+									    unit->prof_peak_abs = unit->prof_peak_rel = 0.0;
 									    syslog(LOG_NOTICE, "Fermenter unit %s profile to RUN", unit->uuid);
 									}
 									break;

mercurial