#include "meshwifi/meshhttp.h" #include "NodeDB.h" #include "configuration.h" #include "main.h" #include "meshwifi/meshwifi.h" #include #include WebServer webserver(80); struct message { char sender[10]; char message[250]; int32_t gpsLat; int32_t gpsLong; uint32_t time; bool fromMe; }; struct message arrayMessages[50]; String something = ""; String sender = ""; void handleWebResponse() { if (isWifiAvailable() == 0) { return; } // We're going to handle the DNS responder here so it // will be ignored by the NRF boards. handleDNSResponse(); webserver.handleClient(); } void initWebServer() { webserver.onNotFound(handleNotFound); webserver.on("/json/chat/send/channel", handleJSONChatHistory); webserver.on("/json/chat/send/user", handleJSONChatHistory); webserver.on("/json/chat/history/channel", handleJSONChatHistory); webserver.on("/json/chat/history/user", handleJSONChatHistory); webserver.on("/json/stats", handleJSONChatHistory); webserver.on("/hotspot-detect.html", handleHotspot); webserver.on("/", handleRoot); webserver.begin(); } void handleJSONChatHistory() { String out = ""; out += "{\n"; out += " \"data\" : {\n"; out += " \"chat\" : "; out += "["; out += "\"" + sender + "\""; out += ","; out += "\"" + something + "\""; out += "]\n"; out += "\n"; out += " }\n"; out += "}\n"; webserver.send(200, "application/json", out); return; } void handleNotFound() { String message = ""; message += "File Not Found\n\n"; message += "URI: "; message += webserver.uri(); message += "\nMethod: "; message += (webserver.method() == HTTP_GET) ? "GET" : "POST"; message += "\nArguments: "; message += webserver.args(); message += "\n"; for (uint8_t i = 0; i < webserver.args(); i++) { message += " " + webserver.argName(i) + ": " + webserver.arg(i) + "\n"; } Serial.println(message); webserver.send(404, "text/plain", message); } /* This supports the Apple Captive Network Assistant (CNA) Portal */ void handleHotspot() { DEBUG_MSG("Hotspot Request\n"); /* If we don't do a redirect, be sure to return a "Success" message otherwise iOS will have trouble detecting that the connection to the SoftAP worked. */ String out = ""; // out += "Success\n"; out += "\n"; webserver.send(200, "text/html", out); return; } void handleRoot() { DEBUG_MSG("Hotspot Request\n"); /* If we don't do a redirect, be sure to return a "Success" message otherwise iOS will have trouble detecting that the connection to the SoftAP worked. */ String out = ""; // out += "Success\n"; out += "\n" "\n" "\n" "\n" "Meshtastic - WebUI\n" "\n" "\n" "\n" "
\n" "
\n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" " \n" "
Meshtastic - WebUI (Pre-Alpha)
\n" " \n" " \n" " \n" " \n" " \n" " \n" "
Channels:
\n" "
\n" " #general
\n" " #stuff
\n" " #things
\n" "
Everything is awesome!
\n" "
\n" "
\n" "
\n" "\n" "\n"; webserver.send(200, "text/html", out); return; } void notifyWebUI() { DEBUG_MSG("************ Got a message! ************\n"); MeshPacket &mp = devicestate.rx_text_message; NodeInfo *node = nodeDB.getNode(mp.from); sender = (node && node->has_user) ? node->user.long_name : "???"; static char tempBuf[256]; // mesh.options says this is MeshPacket.encrypted max_size assert(mp.decoded.which_payload == SubPacket_data_tag); snprintf(tempBuf, sizeof(tempBuf), "%s", mp.decoded.data.payload.bytes); something = tempBuf; }