aboutsummaryrefslogtreecommitdiff
path: root/main/tcp_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/tcp_server.c')
-rw-r--r--main/tcp_server.c116
1 files changed, 39 insertions, 77 deletions
diff --git a/main/tcp_server.c b/main/tcp_server.c
index 7bfaa61..434f014 100644
--- a/main/tcp_server.c
+++ b/main/tcp_server.c
@@ -78,7 +78,7 @@ static void handle_int_option(
sockbuf_write(sockbuf, buf_);
}
-static void handle_uint8_option(
+static void handle_uint8_t_option(
const char* attr,
sockbuf_t* sockbuf,
uint8_t* ptr)
@@ -88,7 +88,7 @@ static void handle_uint8_option(
*ptr = tmp;
}
-static void handle_uint32_option(
+static void handle_uint32_t_option(
const char* attr,
sockbuf_t* sockbuf,
uint32_t* ptr)
@@ -125,41 +125,17 @@ static void handle_bool_option(
sockbuf_write(sockbuf, buf_);
}
-#define HANDLE_UINT8_OPTION(attr) \
- else if (!strcmp_(key, #attr)) { \
- handle_uint8_option(#attr, sockbuf, &ws_params->state. attr); \
- }
-
-#define HANDLE_INT_OPTION(attr) \
- else if (!strcmp_(key, #attr)) { \
- handle_int_option(#attr, sockbuf, &ws_params->state. attr); \
- }
-
-#define HANDLE_UINT32_OPTION(attr) \
- else if (!strcmp_(key, #attr)) { \
- handle_uint32_option(#attr, sockbuf, &ws_params->state. attr); \
- }
-
-#define HANDLE_BOOL_OPTION(attr) \
- else if (!strcmp_(key, #attr)) { \
- handle_bool_option(#attr, sockbuf, &ws_params->state. attr); \
- }
-
static void handle_set_cmd(
sockbuf_t* sockbuf, ws_params_t* ws_params, const char* key)
{
if (false) {}
- HANDLE_UINT8_OPTION(brightness)
- HANDLE_UINT8_OPTION(n_snow)
- HANDLE_UINT8_OPTION(n_red)
-
- HANDLE_INT_OPTION(timetick)
- HANDLE_UINT32_OPTION(time)
-
- HANDLE_BOOL_OPTION(sleep)
- HANDLE_BOOL_OPTION(power)
- HANDLE_BOOL_OPTION(cool)
+#define STATE_PARAM(ty, attr) \
+ else if (!strcmp_(key, #attr)) { \
+ handle_ ## ty ## _option(#attr, sockbuf, &ws_params->state. attr); \
+ }
+#include "state_params.i"
+#undef STATE_PARAM
else {
sockbuf_write(sockbuf, "Unknown attribute: '");
@@ -168,27 +144,40 @@ static void handle_set_cmd(
}
}
-#define PRINT_INT(attr) \
- snprintf(buf, sizeof(buf), #attr ": %d\n", (int) ws_params->state. attr); \
- sockbuf_write(sockbuf, buf)
-#define PRINT_BOOL(attr) \
- snprintf(buf, sizeof(buf), #attr ": %s\n", \
- ws_params->state. attr ? "on" : "off"); \
- sockbuf_write(sockbuf, buf)
-static void handle_print_cmd(sockbuf_t* sockbuf, ws_params_t* ws_params)
+static void print_uint32_t(sockbuf_t* sockbuf, const char* attr, uint32_t val)
{
char buf[128];
+ snprintf(buf, sizeof(buf), "%s: %d :: uint32_t\n", attr, val);
+ sockbuf_write(sockbuf, buf);
+}
+
+static void print_uint8_t(sockbuf_t* sockbuf, const char* attr, uint8_t val)
+{
+ char buf[128];
+ snprintf(buf, sizeof(buf), "%s: %d :: uint8_t\n", attr, (int) val);
+ sockbuf_write(sockbuf, buf);
+}
+
+static void print_bool(sockbuf_t* sockbuf, const char* attr, bool val)
+{
+ char buf[128];
+ snprintf(buf, sizeof(buf), "%s: %s :: bool\n", attr, val ? "on" : "off");
+ sockbuf_write(sockbuf, buf);
+}
- PRINT_INT(time);
- PRINT_INT(timetick);
- PRINT_INT(brightness);
- PRINT_INT(off);
- PRINT_INT(n_snow);
- PRINT_INT(n_red);
+static void print_int(sockbuf_t* sockbuf, const char* attr, int val)
+{
+ char buf[128];
+ snprintf(buf, sizeof(buf), "%s: %d :: int\n", attr, val);
+ sockbuf_write(sockbuf, buf);
+}
- PRINT_BOOL(sleep);
- PRINT_BOOL(power);
- PRINT_BOOL(cool);
+static void handle_print_cmd(sockbuf_t* sockbuf, ws_params_t* ws_params)
+{
+#define STATE_PARAM(ty, attr) \
+ print_ ## ty ( sockbuf, #attr, ws_params->state. attr );
+#include "state_params.i"
+#undef STATE_PARAM
}
static void run_sockbuf(sockbuf_t* sockbuf, ws_params_t* ws_params)
@@ -196,6 +185,7 @@ static void run_sockbuf(sockbuf_t* sockbuf, ws_params_t* ws_params)
char buf[128];
while (true) {
+ sockbuf_write(sockbuf, "\x1b[1;32mws2812b>\x1b[0m ");
char* cmd = read_token(sockbuf, buf, sizeof(buf));
if (!cmd) {
@@ -253,33 +243,5 @@ portTASK_FUNCTION(tcp_server, params)
sockbuf_t sockbuf;
init_sockbuf(&sockbuf, sock);
run_sockbuf(&sockbuf, ws_params);
-
- ssize_t len;
-
- char buf[128];
- while ((len = read(sock, buf, sizeof(buf) - 1)) >
- 0) {
- buf[len] = 0;
- printf("Read %s\n", buf);
-
- if (!strcmp_(buf, "off\n")) {
- ws_params->state.power = 0;
- }
-
- if (!strcmp_(buf, "on\n")) {
- ws_params->state.power = 1;
- }
-
- for (int i = 0; i < len; ++ i) {
- switch (buf[i]) {
- case '+':
- ws_params->state.brightness += 10;
- break;
- case '-':
- ws_params->state.brightness -= 10;
- break;
- }
- }
- }
}
}