#include "rest.hpp" #include <ETH.h> #ifndef ICBM_GIT_VERSION #define ICBM_GIT_VERSION "DEVEL" // set via -DICBM_GIT_VERSION #endif #ifndef ICBM_GIT_TIMESTAMP #define ICBM_GIT_TIMESTAMP "UNKNOWN" #endif WebServer restServer(80); void initializeRoutes() { restServer.on("/idn", identify); restServer.on("/restart", restart); restServer.onNotFound(notFound); restServer.begin(); Serial.println("REST Server Started"); } void identify() { int seconds = millis() / 1000; int hours = seconds / 3600; int minutes = (seconds / 60) % 60; seconds = seconds % 60; String message = "{\n"; message += "\"mac\":\""; message += ETH.macAddress(); message += "\",\n"; message += "\"version\":\""; message += ICBM_GIT_VERSION; message += "\",\n"; message += "\"build date\":\""; message += ICBM_GIT_TIMESTAMP; message += "\",\n"; message += "\"uptime\": \""; message += hours; message += ":"; message += minutes; message += ":"; message += seconds; message += "\""; message += "\n}"; restServer.send(200, "text/json", message); } void notFound() { String message = "{\n"; message += "\"uri\":\""; message += restServer.uri(); message += "\",\n\"method\":\""; message += (restServer.method() == HTTP_GET) ? "GET" : "POST"; message += "\",\n\"arguments\":{"; for (uint8_t i = 0; i < restServer.args(); i++) { message += "\n\"" + restServer.argName(i) + "\":\"" + restServer.arg(i) + "\","; } if (restServer.args() != 0) { message.remove(message.length()-1); // remove trailing comma for valid json } message += "\n}\n}"; restServer.send(404, "text/json", message); Serial.println(message); } void restart() { restServer.send(200); ESP.restart(); }