Files
cronometre-laser-firmware-c…/include/ChronoAPI.hpp
2022-05-17 12:08:17 +02:00

53 lines
2.2 KiB
C++

#include "I2C_COM_API.hpp"
buffer<ChronoAPICommand> resetCommand;
buffer<ChronoAPICommand> startCommand;
buffer<ChronoAPICommand> stopCommand;
buffer<long> 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); });
}