19 * along with mbsePi-apps; see the file COPYING. If not, write to the Free |
19 * along with mbsePi-apps; see the file COPYING. If not, write to the Free |
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 "brewpanel.h" |
23 #include "brewpanel.h" |
|
24 #include "sdlgui.h" |
24 #include "slcd.h" |
25 #include "slcd.h" |
25 #include "futil.h" |
26 #include "futil.h" |
26 #include "sockio.h" |
27 #include "sockio.h" |
27 |
28 |
28 #ifdef HAVE_SDL_SDL_H |
29 #ifdef HAVE_SDL_SDL_H |
31 int sock = -1; /* Unix datagram socket */ |
32 int sock = -1; /* Unix datagram socket */ |
32 struct sockaddr_in servaddr; /* Server socket address */ |
33 struct sockaddr_in servaddr; /* Server socket address */ |
33 uint16_t keys = SLCD_KEYS; /* Pressed keys bits */ |
34 uint16_t keys = SLCD_KEYS; /* Pressed keys bits */ |
34 |
35 |
35 |
36 |
36 void socket_recv(void) |
37 void socket_recv(SGOBJ *dlg) |
37 { |
38 { |
38 uint16_t data; |
39 uint16_t data; |
39 struct sockaddr_in clntaddr; |
40 struct sockaddr_in clntaddr; |
40 socklen_t clntlen = sizeof(clntaddr); |
41 socklen_t clntlen = sizeof(clntaddr); |
41 ssize_t recv_len; |
42 ssize_t recv_len; |
48 */ |
49 */ |
49 fd = (data & SLCD_MDEV) >> 13; |
50 fd = (data & SLCD_MDEV) >> 13; |
50 if (fd) |
51 if (fd) |
51 fprintf(stdout, "Device %d ", fd); |
52 fprintf(stdout, "Device %d ", fd); |
52 if ((data & SLCD_MCLEAR) == SLCD_CLEAR) { |
53 if ((data & SLCD_MCLEAR) == SLCD_CLEAR) { |
53 slcdClear(fd); |
54 slcdClear(dlg, fd); |
54 } else if ((data & SLCD_MHOME) == SLCD_HOME) { |
55 } else if ((data & SLCD_MHOME) == SLCD_HOME) { |
55 slcdHome(fd); |
56 slcdHome(dlg, fd); |
56 } else if ((data & SLCD_MDGRAM) == SLCD_DGRAM) { |
57 } else if ((data & SLCD_MDGRAM) == SLCD_DGRAM) { |
57 slcdPosition(fd, data & 0x001f, (data & 0x0060) >> 5); |
58 slcdPosition(dlg, fd, data & 0x001f, (data & 0x0060) >> 5); |
58 } else if ((data & 0xfe00) == SLCD_DATA) { |
59 } else if ((data & 0xfe00) == SLCD_DATA) { |
59 slcdPutchar(fd, data & 0x00ff); |
60 slcdPutchar(dlg, fd, data & 0x00ff); |
60 } else if ((data & SLCD_MLEDS) == SLCD_LEDS) { |
61 } else if ((data & SLCD_MLEDS) == SLCD_LEDS) { |
61 fprintf(stdout, "socket_recv leds fd=%d bits=%02x\n", fd, (data & 0x00ff)); |
62 fprintf(stdout, "socket_recv leds fd=%d bits=%02x\n", fd, (data & 0x00ff)); |
62 // SLED_LCD backlight |
63 slcdBacklight(dlg, fd, data & SLED_LCD); |
63 // SLED_TFLED red led |
64 slcdLED(dlg, fd, SGLEDGREEN, data & SLED_TFLED); |
64 slcdBacklight(fd, data & SLED_LCD); |
65 slcdLED(dlg, fd, SGLEDRED, data & SLED_HLTH); |
|
66 slcdLED(dlg, fd, SGLEDBLUE, data & SLED_MLTH); |
|
67 slcdLED(dlg, fd, SGLEDYELLOW, data & SLED_MLTP); |
65 |
68 |
66 } else if (data != 0x0000) { |
69 } else if (data != 0x0000) { |
67 fprintf(stdout, "socket_recv got %04x\n", data); |
70 fprintf(stdout, "socket_recv got %04x\n", data); |
68 } |
71 } |
69 |
72 |