thermferm/server.c

changeset 45
053c4657105f
parent 44
f37d73940699
child 46
000399c64d3f
--- a/thermferm/server.c	Mon May 19 17:49:04 2014 +0200
+++ b/thermferm/server.c	Tue May 20 17:07:32 2014 +0200
@@ -32,6 +32,12 @@
 extern sys_config       Config;
 extern int		clients;
 
+/* beer settings */
+float 			cs_beerSet = 20.0;
+float			cs_fridgeSet = 20.0;
+unsigned char		cs_mode = 'o';	/* o = Off, f = fridge, b = beer, p = profile-run */
+
+
 int			s;		/* connected socket			*/
 int			ls;		/* listen socket			*/
 
@@ -60,6 +66,8 @@
     va_end(va_ptr);
 
     syslog(LOG_NOTICE, "send: \"%s\"", out);
+    if (debug)
+	fprintf(stdout, "send: \"%s\"\n", out);
 
     if (send(s, out, strlen(out), 0) != strlen(out)) {
 	syslog(LOG_NOTICE, "srv_send failed");
@@ -155,6 +163,8 @@
 		    timer = SS_TIMEOUT * 4;
 		    if (strlen(buf)) {
 			syslog(LOG_NOTICE, "recv: \"%s\"", buf);
+			if (debug)
+			    fprintf(stdout, "recv: \"%s\"\n", buf);
 
 			/*
 			 * Process commands from the client
@@ -162,19 +172,18 @@
 			if (strncmp(buf, "ack", 3) == 0) {
 			    srv_send((char *)"ack");
 			} else if (strncmp(buf, "lcd", 3) == 0) {
+			    sprintf(obuf, "[\"12345678901234567890\", \"12345678901234567890\", \"12345678901234567890\", \"12345678901234567890\"]");
 			    for (i = 0; i < 20; i++) {
-				obuf[i]    = lcdbuf[lcdHandle][i][0];
-				obuf[i+21] = lcdbuf[lcdHandle][i][1];
-				obuf[i+42] = lcdbuf[lcdHandle][i][2];
-				obuf[i+63] = lcdbuf[lcdHandle][i][3];
+				obuf[i+2]  = lcdbuf[lcdHandle][i][0];
+				obuf[i+26] = lcdbuf[lcdHandle][i][1];
+				obuf[i+50] = lcdbuf[lcdHandle][i][2];
+				obuf[i+74] = lcdbuf[lcdHandle][i][3];
 			    }
-			    obuf[20] = obuf[41] = obuf[62] = ',';
-			    obuf[83] = '\0';
 			    srv_send(obuf);
 			} else if (strncmp(buf, "getMode", 7) == 0) {
-			    srv_send("b");
+			    srv_send("%c", cs_mode);
 			} else if (strncmp(buf, "getControlSettings", 18) == 0) {
-			    srv_send("mode='b', beerSet=20.0, fridgeSet=20.0, heatEstimator=0.2, coolEstimator=5");
+			    srv_send("{ mode:%c, \"beerSet\":\"%.1f\", \"fridgeSet\":\"%.1f\", \"heatEstimator\":\"0.2\", \"coolEstimator\":\"5\" }", cs_mode, cs_beerSet, cs_fridgeSet);
 			} else {
 			    if (debug)
 				fprintf(stdout, "unknown command \"%s\"\n", buf);

mercurial