diff options
Diffstat (limited to 'polycom_xmit/gpio.c')
-rw-r--r-- | polycom_xmit/gpio.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/polycom_xmit/gpio.c b/polycom_xmit/gpio.c new file mode 100644 index 0000000..246beb8 --- /dev/null +++ b/polycom_xmit/gpio.c @@ -0,0 +1,47 @@ +#include "project.h" + +void ICACHE_FLASH_ATTR +gpio_page (struct espconn *conn) +{ + char *page = os_zalloc (1024); + char *ptr = page; + int i; + uint32_t j, v; + + if (!page) + { + webserver_send_reply (conn, 400, "text/html", + "<html><head></head><body>Out of memory</body></html>", + 0); + return; + + } + + ptr += os_sprintf (ptr, "<html><head>"); + + ptr += os_sprintf (ptr, "<style>\n" + "table {\n" + "border-collapse: collapse;\n" + "}\n" + "table, th, td {\n" + "border: 1px solid black;\n" "}\n" "</style>"); + + ptr += os_sprintf (ptr, "</head><body>"); + + v = gpio_input_get (); + ptr += os_sprintf (ptr, "<h2>GPIO: 0x%04x</h2><br/>", v); + ptr += os_sprintf (ptr, "<table>"); + for (i = 0; i < 16; ++i) + { + j = 1 << i; + ptr += + os_sprintf (ptr, + "<tr><td>%d</td><td>0x%04x</td><td>%s</td></tr>", + i, j, (j & v) ? "High" : "Low"); + } + + + ptr += os_sprintf (ptr, "</table></body></html>"); + webserver_send_reply (conn, 200, "text/html", page, ptr - page); + os_free (page); +} |