#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); }