diff --git a/Control/src/main.cpp b/Control/src/main.cpp index 3022e8a..7780ed1 100644 --- a/Control/src/main.cpp +++ b/Control/src/main.cpp @@ -15,6 +15,7 @@ #include "instruction.h" #include "colour.h" #include +#include "time.h" #pragma endregion #pragma region Enable extra debugging info for ESP32 @@ -32,6 +33,7 @@ #define TX3pin 4 // Pin 11 on expansion board, UART3 #define RX4pin 15 // Pin 12 on expansion board, UART4 #define TX4pin 2 // Pin 13 on expansion board, UART4 +#define ntpServer "pool.ntp.org" #pragma endregion #pragma region Function Declarations @@ -74,6 +76,7 @@ int bb_centre_x, bb_centre_y; float chargeGoal; int waitGoal; String colour; +time_t now; #pragma endregion void setup() @@ -124,6 +127,8 @@ void setup() } Serial.println("mDNS set up, access Control Panel at 'rover2.local/'"); + configTime(0, 0, ntpServer); + webserver.on("/", HTTP_GET, [](AsyncWebServerRequest *request) { request->send(SPIFFS, "/index.html", "text/html"); }); // Serve "index.html" at root page webserver.on("/command.js", HTTP_GET, [](AsyncWebServerRequest *request) @@ -403,8 +408,9 @@ void sendToCommand() DynamicJsonDocument tdoc(1024); tdoc["st"] = Status; tdoc["bV"] = batteryVoltage; - tdoc["bL"] = batteryLevel; - tdoc["bC"] = batteryCycles; + tdoc["bL"] = 100; // tdoc["bL"] = batteryLevel; Hardcoded value as Energy is not present on demo Rover + time(&now); + tdoc["bC"] = (now - 1623750000)/21600; // tdoc["bC"] = batteryCycles; Estimates cycles in number of 6 hour periods tdoc["tD"] = odometer; tdoc["cH"] = heading; tdoc["pos"][0] = xpos; @@ -436,6 +442,7 @@ void recvFromDrive() // Update telemetry data and state info from Drive packet odometer = rdoc["mm"]; xpos = rdoc["pos"][0]; ypos = rdoc["pos"][1]; + batteryVoltage = rdoc["bV"]; } }