diff -r f37d73940699 -r 053c4657105f thermferm/server.c --- 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);