diff --git a/include/ChronoAPI.hpp b/include/ChronoAPI.hpp new file mode 100644 index 0000000..1d914b6 --- /dev/null +++ b/include/ChronoAPI.hpp @@ -0,0 +1,53 @@ +#include "I2C_COM_API.hpp" + +buffer resetCommand; +buffer startCommand; +buffer stopCommand; + +buffer ChronoMillisecondsBuffer; +volatile long lastMs = 0x00; +bool logged = true; + +void ConfigureAPI() +{ + // Inicializar instancias de comandos + resetCommand.data.command = ChronoCommands::ForceReset; + startCommand.data.command = ChronoCommands::ForceStart; + stopCommand.data.command = ChronoCommands::ForceStop; + resetCommand.data.type = DATAGRAM_HDR; + stopCommand.data.type = DATAGRAM_HDR; + startCommand.data.type = DATAGRAM_HDR; + + Logger::Log("CMD Reset"); + for (int i = 0; i < sizeof(resetCommand.data); i++) + Logger::Log(String(resetCommand.buffer[i])); + Logger::Log("CMD Start"); + for (int i = 0; i < sizeof(startCommand.data); i++) + Logger::Log(String(startCommand.buffer[i])); + Logger::Log("CMD Stop"); + for (int i = 0; i < sizeof(stopCommand.data); i++) + Logger::Log(String(stopCommand.buffer[i])); + + server.on("/api/getElapsedTime", HTTP_GET, [](AsyncWebServerRequest *request) + { + String response = "{\"elapsed\":" + String(ChronoMillisecondsBuffer.data) + "}"; + request->send(200, MIME_JSON, response); }); + + server.on("/api/stop", HTTP_GET, [](AsyncWebServerRequest *request) + { + //commandBuffer.buffer + Logger::Log(Logger::DEBUG, "Received Stop request"); + Wire.flush(); + Wire.writeTransmission(0x26, stopCommand.buffer, sizeof(stopCommand.data)); + request->send(200, MIME_HTML); }); + server.on("/api/start", HTTP_GET, [](AsyncWebServerRequest *request) + { + Logger::Log(Logger::DEBUG, "Received Start request"); + Wire.writeTransmission(0x26, startCommand.buffer, sizeof(startCommand.data)); + request->send(200, MIME_HTML); }); + server.on("/api/reset", HTTP_GET, [](AsyncWebServerRequest *request) + { + Logger::Log(Logger::DEBUG, "Received Reset request"); + Wire.writeTransmission(0x26, resetCommand.buffer, sizeof(resetCommand.data)); + request->send(200, MIME_HTML); }); +} \ No newline at end of file