Use EEPROM to store past values

This commit is contained in:
Jet 2023-07-16 15:21:28 +01:00
parent 2361cfe637
commit d9107ce2a4
2 changed files with 22 additions and 0 deletions

View File

@ -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() {

View File

@ -1,5 +1,6 @@
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <EEPROM.h>
#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();