From cd93c7b6e1bbed260aa17ab6f6f99cca989e5735 Mon Sep 17 00:00:00 2001 From: Stepan Usatiuk Date: Fri, 2 Aug 2019 21:57:29 +0300 Subject: [PATCH] webapi returns an actual status message --- Firmware/EggbotWireless/include/WebAPI.h | 3 ++- Firmware/EggbotWireless/platformio.ini | 4 +++- Firmware/EggbotWireless/src/WebAPI.cpp | 23 +++++++++++++++++++++-- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/Firmware/EggbotWireless/include/WebAPI.h b/Firmware/EggbotWireless/include/WebAPI.h index 55b5bab..76229dc 100644 --- a/Firmware/EggbotWireless/include/WebAPI.h +++ b/Firmware/EggbotWireless/include/WebAPI.h @@ -3,12 +3,13 @@ #include #include +#include class WebAPI { private: void handleNotFound(); void handlePutCommand(); - + String getStatusJson(); public: WebAPI(); void init(); diff --git a/Firmware/EggbotWireless/platformio.ini b/Firmware/EggbotWireless/platformio.ini index 1312c4f..0d4ed7e 100644 --- a/Firmware/EggbotWireless/platformio.ini +++ b/Firmware/EggbotWireless/platformio.ini @@ -16,4 +16,6 @@ monitor_speed = 115200 board_build.f_cpu = 80000000L upload_resetmethod = nodemcu -upload_port=/dev/ttyUSB0 \ No newline at end of file +upload_port=/dev/ttyUSB0 + +lib_deps = ArduinoJson@6.11 \ No newline at end of file diff --git a/Firmware/EggbotWireless/src/WebAPI.cpp b/Firmware/EggbotWireless/src/WebAPI.cpp index 18c1f7d..1befb86 100644 --- a/Firmware/EggbotWireless/src/WebAPI.cpp +++ b/Firmware/EggbotWireless/src/WebAPI.cpp @@ -5,17 +5,36 @@ ESP8266WebServer server(80); WebAPI::WebAPI() {} +String WebAPI::getStatusJson() { + StaticJsonDocument<256> doc; + Status status = executor.status(); + + doc["commandQueue"] = queueManager.execQueueSize(); + doc["eggDia"] = status.eggDia; + doc["eggLen"] = status.eggLen; + doc["feedrate"] = status.feedrate; + doc["mmE"] = status.mmE; + doc["mmS"] = status.mmS; + doc["pEng"] = status.pEng; + doc["xLim"] = status.xLim; + + String out; + serializeJson(doc, out); + return out; +} + void WebAPI::handleNotFound() { server.send(404, "text/plain", "File Not Found\n\n"); } void WebAPI::handlePutCommand() { queueManager.putCommand(server.arg("plain").c_str()); - server.send(200, "text/plain", String(queueManager.execQueueSize())); + server.send(200, "text/plain", getStatusJson()); } void WebAPI::init() { - server.on("/putCommand", HTTP_POST, std::bind(&WebAPI::handlePutCommand, this)); + server.on("/putCommand", HTTP_POST, + std::bind(&WebAPI::handlePutCommand, this)); server.onNotFound(std::bind(&WebAPI::handleNotFound, this)); server.begin(); }