From 7e6986280d4199d6c492ea09fc54f9b058380d83 Mon Sep 17 00:00:00 2001 From: Alex Alvarado <931857-alexb737@users.noreply.gitlab.com> Date: Tue, 17 May 2022 12:08:17 +0200 Subject: [PATCH] Created chrono controller Web API --- include/ChronoAPI.hpp | 53 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 include/ChronoAPI.hpp 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