From d9107ce2a41ea4932d75952017506d38d5e747ac Mon Sep 17 00:00:00 2001 From: Jet Date: Sun, 16 Jul 2023 15:21:28 +0100 Subject: [PATCH] Use EEPROM to store past values --- RemoteIDSpoofer/frontend.cpp | 17 +++++++++++++++++ RemoteIDSpoofer/frontend.h | 5 +++++ 2 files changed, 22 insertions(+) diff --git a/RemoteIDSpoofer/frontend.cpp b/RemoteIDSpoofer/frontend.cpp index b7400a5..9e02e9e 100644 --- a/RemoteIDSpoofer/frontend.cpp +++ b/RemoteIDSpoofer/frontend.cpp @@ -20,6 +20,18 @@ Frontend::Frontend(unsigned long idletime) server.on("/start", std::bind(&Frontend::startSpoof, this)); server.onNotFound(std::bind(&Frontend::handleNotFound, this)); + // read parameters from EEPROM + EEPROM.begin(512); + // if the value at address 42 is 42, then we know that we have past data + if (EEPROM.read(42) == 42) { + Serial.println("EEPROM found, reusing old values..."); + EEPROM.get(latitude_addr, latitude); + EEPROM.get(longitude_addr, longitude); + EEPROM.get(num_drones_addr, num_drones); + } else { + Serial.println("EEPROM data not written before..."); + } + // Starting the Server server.begin(); @@ -45,11 +57,14 @@ void Frontend::handleOnConnect() { void Frontend::handleSetCoords() { latitude = server.arg("latitude").toFloat(); longitude = server.arg("longitude").toFloat(); + EEPROM.put(latitude_addr, latitude); + EEPROM.put(longitude_addr, latitude); server.send(200, "text/html", HTML()); } void Frontend::handleNumDrones() { num_drones = server.arg("numdrones").toInt(); + EEPROM.put(num_drones_addr, num_drones); server.send(200, "text/html", HTML()); } @@ -57,6 +72,8 @@ void Frontend::startSpoof() { do_spoof = true; server.stop(); WiFi.softAPdisconnect (true); + EEPROM.put(42, 42); + EEPROM.end(); } void Frontend::handleNotFound() { diff --git a/RemoteIDSpoofer/frontend.h b/RemoteIDSpoofer/frontend.h index df445b1..060ac8e 100644 --- a/RemoteIDSpoofer/frontend.h +++ b/RemoteIDSpoofer/frontend.h @@ -1,5 +1,6 @@ #include #include +#include #ifndef FRONTEND_H #define FRONTEND_H @@ -16,6 +17,10 @@ class Frontend { unsigned long maxtime = 0.0; unsigned long timer = 0.0; + const int latitude_addr = 100; + const int longitude_addr = 110; + const int num_drones_addr = 120; + public: Frontend(unsigned long idletime); void handleClient();