diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2021-12-01 23:42:19 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2021-12-01 23:42:19 -0700 |
commit | 62715093e446d952bbc3fa82fdb65deacd576be2 (patch) | |
tree | c4fca7d19d8cd73b76c030de8f66eedc1930ec22 /include/sockbuf.h | |
parent | b1ca00800f34ab86c0a99c46796c73a8028157ff (diff) | |
download | esp32-ws2812b-62715093e446d952bbc3fa82fdb65deacd576be2.tar.gz esp32-ws2812b-62715093e446d952bbc3fa82fdb65deacd576be2.tar.bz2 esp32-ws2812b-62715093e446d952bbc3fa82fdb65deacd576be2.zip |
Add a controller shell.
This adds a mini shell to the tcp server that allows the user
to modify the current state.
Commands are in the form:
set [int_attribute] (=|+=|-=) [number]
set [bool_attribute] (on|off|toggle)
print
end
for example:
set brightness += 5
set power on
print
end
Diffstat (limited to 'include/sockbuf.h')
-rw-r--r-- | include/sockbuf.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/sockbuf.h b/include/sockbuf.h new file mode 100644 index 0000000..664e134 --- /dev/null +++ b/include/sockbuf.h @@ -0,0 +1,39 @@ +#pragma once +#ifndef SOCKBUF_H_ +#define SOCKBUF_H_ + +#include <inttypes.h> + +#define SOCKBUF_BUFLEN 128 +#define SOCKBUF_CLOSED 1 + +typedef struct { + uint8_t buf[SOCKBUF_BUFLEN]; + + uint8_t next; + uint8_t last; + + int socket; + uint8_t flags; +} sockbuf_t; + +/* Initialize a sockbuf from the provided file descriptor. */ +sockbuf_t* init_sockbuf(sockbuf_t* sockbuf, int socket); + +/* Writes a null-terminated string to the socket. */ +void sockbuf_write(sockbuf_t* sockbuf, const char* value); + +/* + * Return the next character of the sockbuf or -1 if EOF was reached. + * + * This does not advance the pointer. + */ +int peek_char(sockbuf_t* sockbuf); + +/* + * Return and consume the next character of the sockbuf or -1 if EOF was + * reached. + */ +int get_char(sockbuf_t* sockbuf); + +#endif /* SOCKBUF_H_ */ |