thermferm/server.c

changeset 536
e833bbd5e733
parent 534
92b546d4a839
child 542
73b63f431da2
--- a/thermferm/server.c	Sat Jul 14 21:36:08 2018 +0200
+++ b/thermferm/server.c	Sun Jul 15 12:05:16 2018 +0200
@@ -478,7 +478,7 @@
 
 	if ((fp = fopen(name, "r"))) {
 	    char        buffer[256], outbuf[256], q[5], hr[3];
-	    char	*date_n, *mode_n, *air_n, *beer_n, *target_lo_n, *target_hi_n, *heater_n, *cooler_n, *room_n;
+	    char	*date_n, *mode_n, *air_n, *beer_n, *target_lo_n, *target_hi_n, *heater_n, *cooler_n, *room_n, *chiller_n;
 	    char	*heater_u, *cooler_u;
 	    int		lines = 0, heater_l = 0, cooler_l = 0, h = 0, c = 0, heat_used = 0, cool_used = 0, graphstep = 0;
 	    float	room_t = 0.0;
@@ -505,22 +505,23 @@
 
 	    while (fgets(buffer, sizeof(buffer)-1, fp) != NULL) {
 		/*
-		 * 2014-11-15 18:39,BEER,20.312,19.750,20.0,0,NA,NA,NA,78105,NA,NA,18.000,20.1
-		 *       |           |     |      |     |   | |  |  |    |   |  |    |     |
-		 *  date_n           |     |      |     |   | |  |  |    |   |  |    |     |
-		 *  mode_n ----------+     |      |     |   | |  |  |    |   |  |    |     |
-		 *  air_n -----------------+      |     |   | |  |  |    |   |  |    |     |
-		 *  beer_n -----------------------+     |   | |  |  |    |   |  |    |     |
-		 *  target_lo_n ------------------------+   | |  |  |    |   |  |    |     |
-		 *  heater_n -------------------------------+ |  |  |    |   |  |    |     |
-		 *  cooler_n ---------------------------------+  |  |    |   |  |    |     |
-		 *  not used ------------------------------------+  |    |   |  |    |     |
-		 *  not used ---------------------------------------+    |   |  |    |     |
-		 *  heater_u --------------------------------------------+   |  |    |     |
-		 *  cooler_u ------------------------------------------------+  |    |     |
-		 *  not used ---------------------------------------------------+    |     |
-		 *  room_n ----------------------------------------------------------+     |
-		 *  target_hi_n -----------------------------------------------------------+
+		 * 2014-11-15 18:39,BEER,20.312,19.750,20.0,0,NA,NA,NA,78105,NA,NA,18.000,20.1,5.312
+		 *       |           |     |      |     |   | |  |  |    |   |  |    |     |    |
+		 *  date_n           |     |      |     |   | |  |  |    |   |  |    |     |    |
+		 *  mode_n ----------+     |      |     |   | |  |  |    |   |  |    |     |    |
+		 *  air_n -----------------+      |     |   | |  |  |    |   |  |    |     |    |
+		 *  beer_n -----------------------+     |   | |  |  |    |   |  |    |     |    |
+		 *  target_lo_n ------------------------+   | |  |  |    |   |  |    |     |    |
+		 *  heater_n -------------------------------+ |  |  |    |   |  |    |     |    |
+		 *  cooler_n ---------------------------------+  |  |    |   |  |    |     |    |
+		 *  not used ------------------------------------+  |    |   |  |    |     |    |
+		 *  not used ---------------------------------------+    |   |  |    |     |    |
+		 *  heater_u --------------------------------------------+   |  |    |     |    |
+		 *  cooler_u ------------------------------------------------+  |    |     |    |
+		 *  not used ---------------------------------------------------+    |     |    |
+		 *  room_n ----------------------------------------------------------+     |    |
+		 *  target_hi_n -----------------------------------------------------------+    |
+		 *  chiller_n ------------------------------------------------------------------+
 		 */
 		hr[0] = q[0] = buffer[11];
 		hr[1] = q[1] = buffer[12];
@@ -542,6 +543,7 @@
 		room_n = strtok(NULL, ",\0");		/* fan use counter	*/
 		room_n = strtok(NULL, ",\0");		/* room temperature	*/
 		target_hi_n = strtok(NULL, ",\0");	/* target high temp	*/
+		chiller_n = strtok(NULL, ",\0");	/* chiller temp		*/
 
 		if (strncmp(mode_n, (char *)"Mode", 4)) {
 		    /*
@@ -571,8 +573,8 @@
 			    sscanf(room_n, "%f", &room_t);
 			if (target_hi_n == NULL)
 			    target_hi_n = target_lo_n;
-			snprintf(outbuf, 255, "%s,%s,%s,%s,%s,%s,%s,%d,%d,%.1f,%s", 
-				date_n, mode_n, air_n, beer_n, target_lo_n, heater_n, cooler_n, heat_used, cool_used, room_t,target_hi_n);
+			snprintf(outbuf, 255, "%s,%s,%s,%s,%s,%s,%s,%d,%d,%.1f,%s,%s", 
+				date_n, mode_n, air_n, beer_n, target_lo_n, heater_n, cooler_n, heat_used, cool_used, room_t,target_hi_n, chiller_n);
 			srv_send(outbuf);
 			if (heater_u && h && strcmp(heater_u, "NA"))
 			    heater_l = h;
@@ -1167,13 +1169,14 @@
  */
 int cmd_list(char *buf)
 {
-    char		*opt, *param, *filename, q[5], hr[3], buffer[256], outbuf[256];
-    char		*date_n, *mode_n, *air_n, *beer_n, *target_lo_n, *target_hi_n, *heater_n, *cooler_n, *room_n;
-    char		*heater_u, *cooler_u;
-    int			heater_l = 0, cooler_l = 0, h = 0, c = 0, heat_used = 0, cool_used = 0, lines = 0, graphstep = 0;
+    char		*opt;
+//    char		*param, *filename, q[5], hr[3], buffer[256], outbuf[256];
+//    char		*date_n, *mode_n, *air_n, *beer_n, *target_lo_n, *target_hi_n, *heater_n, *cooler_n, *room_n, *chiller_n;
+//    char		*heater_u, *cooler_u;
+//    int			heater_l = 0, cooler_l = 0, h = 0, c = 0, heat_used = 0, cool_used = 0, lines = 0, graphstep = 0;
     units_list		*unit;
-    FILE		*fp;
-    float		room_t;
+//    FILE		*fp;
+//    float		room_t;
 
     opt = strtok(buf, " \0");
     opt = strtok(NULL, " \0");
@@ -1193,10 +1196,10 @@
 	srv_send((char *)"100 Help text follows:");
 	srv_send((char *)"Recognized commands:");
 	srv_send((char *)"LIST                           List available units");
-	srv_send((char *)"LIST LOG uuid                  List logfile of unit by uuid");
+//	srv_send((char *)"LIST LOG uuid                  List logfile of unit by uuid");
 	srv_send((char *)".");
 	return 0;
-
+/*
     } else if (strcmp(opt, (char *)"LOG") == 0) {
 
 	param = strtok(NULL, "\0");
@@ -1221,22 +1224,22 @@
 	filename = xstrcat(filename, unit->name);
 	filename = xstrcat(filename, (char *)".log");
 	if ((fp = fopen(filename, "r"))) {
-
+*/
 	    /*
 	     * Count the lines in the logfile
 	     */
-	    lines = 0;
+/*	    lines = 0;
 	    while (fgets(buffer, sizeof(buffer)-1, fp) != NULL) {
 		lines++;
 	    }
 	    fseek(fp, 0L, SEEK_SET);
-	    /*
+*/	    /*
 	     * We have counted the lines in the logfile including the header lines.
 	     * The header lines should be ignored but there are so few of them, we
 	     * just include them in the total.
 	     * Now find a reasonable interval of lines to sent to the client.
 	     */
-	    for (graphstep = 1; graphstep <= MAX_INTERVALS; graphstep++) {
+/*	    for (graphstep = 1; graphstep <= MAX_INTERVALS; graphstep++) {
 		if (lines < GRAPH_DATALINES[graphstep]) {
 		    break;
 		}
@@ -1246,75 +1249,77 @@
 	    syslog(LOG_NOTICE, "LIST LOG %s: lines=%d, interval=%d, graphstep=%d", unit->name, lines, GRAPH_INTERVAL[graphstep], graphstep);
 
 	    while (fgets(buffer, sizeof(buffer)-1, fp) != NULL) {
-		/*
+*/		/*
 		 * 2014-11-15 18:39,BEER,20.312,19.750,20.0,0,NA,NA,NA,78105,NA,NA
 		 */
-		hr[0] = q[0] = buffer[11];
-		hr[1] = q[1] = buffer[12];
-		q[2] = buffer[14];
-		q[3] = buffer[15];
-		hr[2] = '\0';
-		buffer[strlen(buffer) -1] = '\0';
-		date_n = strtok(buffer, ",\0");		/* timestamp		*/
-		mode_n = strtok(NULL, ",\0");		/* unit mode		*/
-		air_n = strtok(NULL, ",\0");		/* air temp		*/
-		beer_n = strtok(NULL, ",\0");		/* beer temp		*/
-		target_lo_n = strtok(NULL, ",\0");	/* target low temp	*/
-		heater_n = strtok(NULL, ",\0");		/* current heater state	*/
-		cooler_n = strtok(NULL, ",\0");		/* current cooler state	*/
-		heater_u = strtok(NULL, ",\0");		/* current fan state	*/
-		heater_u = strtok(NULL, ",\0");		/* current door state	*/
-		heater_u = strtok(NULL, ",\0");		/* heater use counter	*/
-		cooler_u = strtok(NULL, ",\0");		/* cooler use counter	*/
-		room_n = strtok(NULL, ",\0");		/* fan use counter	*/
-		room_n = strtok(NULL, ",\0");		/* room temperature	*/
-		target_hi_n = strtok(NULL, ",\0");	/* target high temp	*/
+//		hr[0] = q[0] = buffer[11];
+//		hr[1] = q[1] = buffer[12];
+//		q[2] = buffer[14];
+//		q[3] = buffer[15];
+//		hr[2] = '\0';
+//		buffer[strlen(buffer) -1] = '\0';
+//		date_n = strtok(buffer, ",\0");		/* timestamp		*/
+//		mode_n = strtok(NULL, ",\0");		/* unit mode		*/
+//		air_n = strtok(NULL, ",\0");		/* air temp		*/
+//		beer_n = strtok(NULL, ",\0");		/* beer temp		*/
+//		target_lo_n = strtok(NULL, ",\0");	/* target low temp	*/
+//		heater_n = strtok(NULL, ",\0");		/* current heater state	*/
+//		cooler_n = strtok(NULL, ",\0");		/* current cooler state	*/
+//		heater_u = strtok(NULL, ",\0");		/* current fan state	*/
+//		heater_u = strtok(NULL, ",\0");		/* current door state	*/
+//		heater_u = strtok(NULL, ",\0");		/* heater use counter	*/
+//		cooler_u = strtok(NULL, ",\0");		/* cooler use counter	*/
+//		room_n = strtok(NULL, ",\0");		/* fan use counter	*/
+//		room_n = strtok(NULL, ",\0");		/* room temperature	*/
+//		target_hi_n = strtok(NULL, ",\0");	/* target high temp	*/
+//		chiller_n = strtok(NULL, ",\0");	/* chiller temp		*/
 
-		if (strncmp(mode_n, (char *)"Mode", 4)) {
+//		if (strncmp(mode_n, (char *)"Mode", 4)) {
 		    /*
 		     * Output a line at the right intervals
 		     */
-		    int hour = atoi(hr);
-		    if (((graphstep == 1)) ||
-			((graphstep == 2) && (q[3] == '0' || q[3] == '5')) ||
-			((graphstep == 3) && ((q[2] == '0' && q[3] == '0') || (q[2] == '1' && q[3] == '5') || (q[2] == '3' && q[3] == '0') || (q[2] == '4' && q[3] == '5'))) ||
-			((graphstep == 4) && ((q[2] == '0' && q[3] == '0') || (q[2] == '3' && q[3] == '0'))) ||
-			((graphstep == 5) && (q[2] == '0' && q[3] == '0')) ||
-			((graphstep == 6) && (hour % 2 == 0) && (q[2] == '0' && q[3] == '0')) ||        /* 120 minutes  */
-			((graphstep == 7) && (hour % 4 == 0) && (q[2] == '0' && q[3] == '0')) ||        /* 240 minutes  */
-			((graphstep >= 8) && (hour % 8 == 0) && (q[2] == '0' && q[3] == '0')) ) {	/* 480 minutes	*/
-			heat_used = cool_used = 0;
-			if (strcmp(heater_u, "NA") && (sscanf(heater_u, "%d", &h) == 1)) {
-			    if (h && heater_l) {
-				heat_used = ((h - heater_l) * 100) / (GRAPH_INTERVAL[graphstep] * 60);
-			    }
-			}
-			if (strcmp(cooler_u, "NA") && (sscanf(cooler_u, "%d", &c) == 1)) {
-			    if (c && cooler_l) {
-				cool_used = ((c - cooler_l) * 100) / (GRAPH_INTERVAL[graphstep] * 60);
-			    }
-			}
-			if (room_n)
-			    sscanf(room_n, "%f", &room_t);
-			else
-			    room_t = 0.0;
-			if (target_hi_n == NULL)
-			    target_hi_n = target_lo_n;
-			snprintf(outbuf, 255, "%s,%s,%s,%s,%s,%s,%s,%d,%d,%.1f,%s", 
-					    date_n, mode_n, air_n, beer_n, target_lo_n, heater_n, cooler_n, heat_used, cool_used, room_t, target_hi_n);
-		    	srv_send(outbuf);
-			if (h && strcmp(heater_u, "NA"))
-			    heater_l = h;
-			if (c & strcmp(cooler_u, "NA"))
-			    cooler_l = c;
-		    }
-	    	}
-	    }
-	}
-	free(filename);
-	filename = NULL;
-	srv_send((char *)".");
-	return 0;
+//		    int hour = atoi(hr);
+//		    if (((graphstep == 1)) ||
+//			((graphstep == 2) && (q[3] == '0' || q[3] == '5')) ||
+//			((graphstep == 3) && ((q[2] == '0' && q[3] == '0') || (q[2] == '1' && q[3] == '5') || (q[2] == '3' && q[3] == '0') || (q[2] == '4' && q[3] == '5'))) ||
+//			((graphstep == 4) && ((q[2] == '0' && q[3] == '0') || (q[2] == '3' && q[3] == '0'))) ||
+//			((graphstep == 5) && (q[2] == '0' && q[3] == '0')) ||
+//			((graphstep == 6) && (hour % 2 == 0) && (q[2] == '0' && q[3] == '0')) ||        /* 120 minutes  */
+//			((graphstep == 7) && (hour % 4 == 0) && (q[2] == '0' && q[3] == '0')) ||        /* 240 minutes  */
+//			((graphstep >= 8) && (hour % 8 == 0) && (q[2] == '0' && q[3] == '0')) ) {	/* 480 minutes	*/
+//			heat_used = cool_used = 0;
+//			if (strcmp(heater_u, "NA") && (sscanf(heater_u, "%d", &h) == 1)) {
+//			    if (h && heater_l) {
+//				heat_used = ((h - heater_l) * 100) / (GRAPH_INTERVAL[graphstep] * 60);
+//			    }
+//			}
+//			if (strcmp(cooler_u, "NA") && (sscanf(cooler_u, "%d", &c) == 1)) {
+//			    if (c && cooler_l) {
+//				cool_used = ((c - cooler_l) * 100) / (GRAPH_INTERVAL[graphstep] * 60);
+//			    }
+//			}
+//			if (room_n)
+//			    sscanf(room_n, "%f", &room_t);
+//			else
+//			    room_t = 0.0;
+//			if (target_hi_n == NULL)
+//			    target_hi_n = target_lo_n;
+//			snprintf(outbuf, 255, "%s,%s,%s,%s,%s,%s,%s,%d,%d,%.1f,%s,%s", 
+//					    date_n, mode_n, air_n, beer_n, target_lo_n, heater_n, cooler_n,
+//					    heat_used, cool_used, room_t, target_hi_n, chiller_n);
+//		    	srv_send(outbuf);
+//			if (h && strcmp(heater_u, "NA"))
+//			    heater_l = h;
+//			if (c & strcmp(cooler_u, "NA"))
+//			    cooler_l = c;
+//		    }
+//	    	}
+//	    }
+//	}
+//	free(filename);
+//	filename = NULL;
+//	srv_send((char *)".");
+//	return 0;
     }
 
     srv_send((char *)"504 Subcommand error");

mercurial