From 774f0c68f3725e5d72ce11a1e69453c3bdd6431f Mon Sep 17 00:00:00 2001 From: Alex Alvarado <931857-alexb737@users.noreply.gitlab.com> Date: Tue, 17 May 2022 12:10:53 +0200 Subject: [PATCH] Created firmware main --- src/main.cpp | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 src/main.cpp diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..d63c0b8 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,92 @@ +#include +#include + +#include +#include +#include "logger.cpp" +#include + +#include +#include "esp32-hal-cpu.h" +//#include + +#include "header.hpp" +#include "Helpers.hpp" +#include "Config.hpp" +#include "ESP32_WIFI.hpp" +#include "Server.hpp" + +#include "ChronoAPI.hpp" + +void loop() +{ + // Leer valor de tiempo. Solicitarle 4 bytes dedatos al detector + if (!sendLock) + { + sendLock = true; + + Wire.requestFrom(0x26, (int)sizeof(long)); + int b = 0; + while (Wire.available()) + { + ChronoMillisecondsBuffer.buffer[b] = Wire.read(); + b++; + } + + sendLock = false; + + if (lastMs == ChronoMillisecondsBuffer.data) + { + if (!logged) + { + Logger::Log(Logger::DEBUG, "Mesaure finished: " + String(ChronoMillisecondsBuffer.data) + " ms"); + } + logged = true; + } + else + { + logged = false; + } + lastMs = ChronoMillisecondsBuffer.data; + }else{ + Logger::Log("Send is disabled"); // Indicar en el log fin del setup + } + + delay(20); +} + +void setup() +{ + Logger::MinLevel = Logger::TRACE; + // Iniciar puerto serie para depuración + Serial.begin(115200); + delay(500); + // Configurar la frecuencia de la CPU + setCpuFrequencyMhz(240); + Logger::Log("Iniciando..."); + Logger::Log("Iniciando bus I2C"); + if (!Wire.begin(22, 23, 1)) // Iniciar bus I2C + { + Logger::Log(Logger::ERROR, "No se inició el bus I2C."); + while (true) + ; + } + Logger::Log("Iniciando SPIFFS"); + lastSendWS = 0; + if (!SPIFFS.begin()) // Iniciar SPIFFS (Sistema de archivos), o detenerse con error + { + Logger::Log(Logger::ERROR, "No se inició SPIFS."); + while (true) + ; + } + + Config::Read(); // Leer o crear una nueva configuración + Config::Save(); // Guardar la Configuración + WiFi.disconnect(true); // Configuracion del punto de acceso WIFI + delay(1000); // Pausar un segundo + WiFi.onEvent(WiFiStationDisconnected, SYSTEM_EVENT_STA_DISCONNECTED); + configWiFi(); // Configurar wifi + InitServer(); // Levantar servidor + ConfigureAPI(); + Logger::Log("Info: Setup completado"); // Indicar en el log fin del setup +} \ No newline at end of file