mirror of
https://github.com/lora-aprs/LoRa_APRS_iGate.git
synced 2025-12-06 07:42:00 +01:00
move http stuff into own task
This commit is contained in:
parent
34a3c05c38
commit
904b5990a4
|
|
@ -8,6 +8,7 @@
|
||||||
#include <power_management.h>
|
#include <power_management.h>
|
||||||
|
|
||||||
#include "TaskAprsIs.h"
|
#include "TaskAprsIs.h"
|
||||||
|
#include "TaskConfig.h"
|
||||||
#include "TaskDisplay.h"
|
#include "TaskDisplay.h"
|
||||||
#include "TaskEth.h"
|
#include "TaskEth.h"
|
||||||
#include "TaskFTP.h"
|
#include "TaskFTP.h"
|
||||||
|
|
@ -27,12 +28,10 @@ TaskQueue<std::shared_ptr<APRSMessage>> toAprsIs;
|
||||||
TaskQueue<std::shared_ptr<APRSMessage>> fromModem;
|
TaskQueue<std::shared_ptr<APRSMessage>> fromModem;
|
||||||
TaskQueue<std::shared_ptr<APRSMessage>> toModem;
|
TaskQueue<std::shared_ptr<APRSMessage>> toModem;
|
||||||
|
|
||||||
System LoRaSystem;
|
System LoRaSystem;
|
||||||
Configuration userConfig;
|
Configuration userConfig;
|
||||||
ConfigHTML html;
|
ConfigFactory fact;
|
||||||
ConfigFactory fact;
|
const String config_filename("/is-cfg.json");
|
||||||
const String config_filename = "/is-cfg.json";
|
|
||||||
AsyncWebServer server(80);
|
|
||||||
|
|
||||||
DisplayTask displayTask;
|
DisplayTask displayTask;
|
||||||
ModemTask modemTask(fromModem, toModem);
|
ModemTask modemTask(fromModem, toModem);
|
||||||
|
|
@ -43,6 +42,7 @@ NTPTask ntpTask;
|
||||||
FTPTask ftpTask;
|
FTPTask ftpTask;
|
||||||
AprsIsTask aprsIsTask(toAprsIs);
|
AprsIsTask aprsIsTask(toAprsIs);
|
||||||
RouterTask routerTask(fromModem, toModem, toAprsIs);
|
RouterTask routerTask(fromModem, toModem, toAprsIs);
|
||||||
|
ConfigTask configTask;
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
|
@ -62,14 +62,7 @@ void setup() {
|
||||||
boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V1);
|
boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V1);
|
||||||
boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V2);
|
boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V2);
|
||||||
|
|
||||||
fact.addPage(&page);
|
configTask.setup(LoRaSystem);
|
||||||
fact.loadConfig(config_filename);
|
|
||||||
|
|
||||||
html.addPage(&page);
|
|
||||||
html.registerWebServer(server);
|
|
||||||
server.onNotFound([](AsyncWebServerRequest *request) {
|
|
||||||
request->send(404, "text/plain", "Not found");
|
|
||||||
});
|
|
||||||
|
|
||||||
BoardFinder finder(boardConfigs);
|
BoardFinder finder(boardConfigs);
|
||||||
BoardConfig const *boardConfig = finder.getBoardConfig(userConfig.board());
|
BoardConfig const *boardConfig = finder.getBoardConfig(userConfig.board());
|
||||||
|
|
@ -107,6 +100,7 @@ void setup() {
|
||||||
LoRaSystem.setBoardConfig(boardConfig);
|
LoRaSystem.setBoardConfig(boardConfig);
|
||||||
LoRaSystem.setUserConfig(&userConfig);
|
LoRaSystem.setUserConfig(&userConfig);
|
||||||
LoRaSystem.getTaskManager().addTask(&displayTask);
|
LoRaSystem.getTaskManager().addTask(&displayTask);
|
||||||
|
LoRaSystem.getTaskManager().addTask(&configTask);
|
||||||
if (userConfig.callsign() != "NOCALL-10") {
|
if (userConfig.callsign() != "NOCALL-10") {
|
||||||
LoRaSystem.getTaskManager().addTask(&modemTask);
|
LoRaSystem.getTaskManager().addTask(&modemTask);
|
||||||
LoRaSystem.getTaskManager().addTask(&routerTask);
|
LoRaSystem.getTaskManager().addTask(&routerTask);
|
||||||
|
|
@ -143,17 +137,6 @@ void setup() {
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
LoRaSystem.getTaskManager().loop(LoRaSystem);
|
LoRaSystem.getTaskManager().loop(LoRaSystem);
|
||||||
if (html.wasSaved()) {
|
|
||||||
fact.saveConfig(config_filename);
|
|
||||||
ESP.restart();
|
|
||||||
}
|
|
||||||
|
|
||||||
// we can start the http server just when we are connected to something
|
|
||||||
static bool httpServerInitDone = false;
|
|
||||||
if (LoRaSystem.isWifiEthConnected() && !httpServerInitDone) {
|
|
||||||
server.begin();
|
|
||||||
httpServerInitDone = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String create_lat_aprs(double lat) {
|
String create_lat_aprs(double lat) {
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
enum TaskNames
|
enum TaskNames
|
||||||
{
|
{
|
||||||
TaskAprsIs = 1,
|
TaskAprsIs = 1,
|
||||||
|
TaskConfig,
|
||||||
TaskEth,
|
TaskEth,
|
||||||
TaskFtp,
|
TaskFtp,
|
||||||
TaskModem,
|
TaskModem,
|
||||||
|
|
@ -15,6 +16,7 @@ enum TaskNames
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TASK_APRS_IS "AprsIsTask"
|
#define TASK_APRS_IS "AprsIsTask"
|
||||||
|
#define TASK_CONFIG "ConfigTask"
|
||||||
#define TASK_ETH "EthTask"
|
#define TASK_ETH "EthTask"
|
||||||
#define TASK_FTP "FTPTask"
|
#define TASK_FTP "FTPTask"
|
||||||
#define TASK_MODEM "ModemTask"
|
#define TASK_MODEM "ModemTask"
|
||||||
|
|
|
||||||
45
src/TaskConfig.cpp
Normal file
45
src/TaskConfig.cpp
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
#include <SPIFFS.h>
|
||||||
|
#include <logger.h>
|
||||||
|
|
||||||
|
#include "Task.h"
|
||||||
|
#include "TaskConfig.h"
|
||||||
|
#include "configuration.h"
|
||||||
|
|
||||||
|
ConfigTask::ConfigTask() : Task(TASK_CONFIG, TaskConfig), _server(80), _config_filename("/is-cfg.json"), _setupDone(false) {
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigTask::~ConfigTask() {
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ConfigTask::setup(System &system) {
|
||||||
|
if (_setupDone) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
fact.addPage(&page);
|
||||||
|
fact.loadConfig(_config_filename);
|
||||||
|
|
||||||
|
_html.addPage(&page);
|
||||||
|
_html.registerWebServer(_server);
|
||||||
|
_server.onNotFound([](AsyncWebServerRequest *request) {
|
||||||
|
request->send(404, "text/plain", "Not found");
|
||||||
|
});
|
||||||
|
_stateInfo = "waiting";
|
||||||
|
_setupDone = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ConfigTask::loop(System &system) {
|
||||||
|
// we can start the http server just when we are connected to something
|
||||||
|
static bool httpServerInitDone = false;
|
||||||
|
if (system.isWifiEthConnected() && !httpServerInitDone) {
|
||||||
|
_server.begin();
|
||||||
|
httpServerInitDone = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_html.wasSaved()) {
|
||||||
|
fact.saveConfig(_config_filename);
|
||||||
|
ESP.restart();
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
24
src/TaskConfig.h
Normal file
24
src/TaskConfig.h
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
#ifndef TASK_CONFIG_H_
|
||||||
|
#define TASK_CONFIG_H_
|
||||||
|
|
||||||
|
#include "configuration.h"
|
||||||
|
#include <TaskManager.h>
|
||||||
|
|
||||||
|
class ConfigTask : public Task {
|
||||||
|
public:
|
||||||
|
ConfigTask();
|
||||||
|
virtual ~ConfigTask();
|
||||||
|
|
||||||
|
virtual bool setup(System &system) override;
|
||||||
|
virtual bool loop(System &system) override;
|
||||||
|
|
||||||
|
ConfigFactory fact;
|
||||||
|
|
||||||
|
private:
|
||||||
|
ConfigHTML _html;
|
||||||
|
AsyncWebServer _server;
|
||||||
|
const String _config_filename;
|
||||||
|
bool _setupDone;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
Loading…
Reference in a new issue