20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
21 *****************************************************************************/ |
21 *****************************************************************************/ |
22 |
22 |
23 #include "thermferm.h" |
23 #include "thermferm.h" |
24 |
24 |
25 #ifdef HAVE_WIRINGPI_H |
|
26 |
25 |
27 extern bool my_shutdown; |
26 extern bool my_shutdown; |
28 extern bool debug; |
27 extern bool debug; |
|
28 #ifdef HAVE_WIRINGPI_H |
29 extern int lcdHandle; |
29 extern int lcdHandle; |
30 extern unsigned char lcdbuf[MAX_LCDS][20][4]; |
30 extern unsigned char lcdbuf[MAX_LCDS][20][4]; |
|
31 #endif |
31 extern sys_config Config; |
32 extern sys_config Config; |
32 |
33 |
33 int s; /* connected socket */ |
34 int s; /* connected socket */ |
34 int ls; /* listen socket */ |
35 int ls; /* listen socket */ |
35 |
36 |
148 */ |
149 */ |
149 if (strncmp(buf, "ack", 3) == 0) { |
150 if (strncmp(buf, "ack", 3) == 0) { |
150 srv_send((char *)"ack"); |
151 srv_send((char *)"ack"); |
151 } else if (strncmp(buf, "lcd", 3) == 0) { |
152 } else if (strncmp(buf, "lcd", 3) == 0) { |
152 sprintf(obuf, "[\" \", \" \", \" \", \" \"]"); |
153 sprintf(obuf, "[\" \", \" \", \" \", \" \"]"); |
|
154 #ifdef HAVE_WIRINGPI_H |
153 for (i = 0; i < 20; i++) { |
155 for (i = 0; i < 20; i++) { |
154 obuf[i+2] = lcdbuf[lcdHandle][i][0]; |
156 obuf[i+2] = lcdbuf[lcdHandle][i][0]; |
155 obuf[i+26] = lcdbuf[lcdHandle][i][1]; |
157 obuf[i+26] = lcdbuf[lcdHandle][i][1]; |
156 obuf[i+50] = lcdbuf[lcdHandle][i][2]; |
158 obuf[i+50] = lcdbuf[lcdHandle][i][2]; |
157 obuf[i+74] = lcdbuf[lcdHandle][i][3]; |
159 obuf[i+74] = lcdbuf[lcdHandle][i][3]; |
158 } |
160 } |
|
161 #endif |
159 srv_send(obuf); |
162 srv_send(obuf); |
160 } else if (strncmp(buf, "getMode", 7) == 0) { |
163 } else if (strncmp(buf, "getMode", 7) == 0) { |
161 srv_send("%c", Config.cs_mode); |
164 srv_send("%c", Config.cs_mode); |
162 } else if (strncmp(buf, "getFridge", 9) == 0) { |
165 } else if (strncmp(buf, "getFridge", 9) == 0) { |
163 srv_send("%.1f", Config.cs_fridgeSet); |
166 srv_send("%.1f", Config.cs_fridgeSet); |
315 } |
321 } |
316 |
322 |
317 if (setsockopt(ls, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) == -1) { |
323 if (setsockopt(ls, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) == -1) { |
318 syslog(LOG_NOTICE, "Can't setsockopt SO_REUSEADDR socket: %s", strerror(errno)); |
324 syslog(LOG_NOTICE, "Can't setsockopt SO_REUSEADDR socket: %s", strerror(errno)); |
319 close(ls); |
325 close(ls); |
320 return NULL; |
326 return 0; |
321 } |
327 } |
322 |
328 |
323 if (bind(ls, (struct sockaddr *)&myaddr_in, sizeof(struct sockaddr_in)) == -1) { |
329 if (bind(ls, (struct sockaddr *)&myaddr_in, sizeof(struct sockaddr_in)) == -1) { |
324 syslog(LOG_NOTICE, "Can't bind to listen socket: %s", strerror(errno)); |
330 syslog(LOG_NOTICE, "Can't bind to listen socket: %s", strerror(errno)); |
325 close(ls); |
331 close(ls); |
326 return NULL; |
332 return 0; |
327 } |
333 } |
328 |
334 |
329 if (listen(ls, 5) == -1) { |
335 if (listen(ls, 5) == -1) { |
330 syslog(LOG_NOTICE, "Can't listen on listen socket: %s", strerror(errno)); |
336 syslog(LOG_NOTICE, "Can't listen on listen socket: %s", strerror(errno)); |
331 close(ls); |
337 close(ls); |
332 return NULL; |
338 return 0; |
333 } |
339 } |
334 |
340 |
335 syslog(LOG_NOTICE, "listen socket created %d", ls); |
341 syslog(LOG_NOTICE, "listen socket created %d", ls); |
336 if (debug) |
342 if (debug) |
337 fprintf(stdout, "listen socket created %d\n", ls); |
343 fprintf(stdout, "listen socket created %d\n", ls); |