kopia lustrzana https://github.com/lora-aprs/LoRa_APRS_iGate
move http stuff into own task
rodzic
34a3c05c38
commit
904b5990a4
|
@ -8,6 +8,7 @@
|
|||
#include <power_management.h>
|
||||
|
||||
#include "TaskAprsIs.h"
|
||||
#include "TaskConfig.h"
|
||||
#include "TaskDisplay.h"
|
||||
#include "TaskEth.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>> toModem;
|
||||
|
||||
System LoRaSystem;
|
||||
Configuration userConfig;
|
||||
ConfigHTML html;
|
||||
ConfigFactory fact;
|
||||
const String config_filename = "/is-cfg.json";
|
||||
AsyncWebServer server(80);
|
||||
System LoRaSystem;
|
||||
Configuration userConfig;
|
||||
ConfigFactory fact;
|
||||
const String config_filename("/is-cfg.json");
|
||||
|
||||
DisplayTask displayTask;
|
||||
ModemTask modemTask(fromModem, toModem);
|
||||
|
@ -43,6 +42,7 @@ NTPTask ntpTask;
|
|||
FTPTask ftpTask;
|
||||
AprsIsTask aprsIsTask(toAprsIs);
|
||||
RouterTask routerTask(fromModem, toModem, toAprsIs);
|
||||
ConfigTask configTask;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
|
@ -62,14 +62,7 @@ void setup() {
|
|||
boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V1);
|
||||
boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V2);
|
||||
|
||||
fact.addPage(&page);
|
||||
fact.loadConfig(config_filename);
|
||||
|
||||
html.addPage(&page);
|
||||
html.registerWebServer(server);
|
||||
server.onNotFound([](AsyncWebServerRequest *request) {
|
||||
request->send(404, "text/plain", "Not found");
|
||||
});
|
||||
configTask.setup(LoRaSystem);
|
||||
|
||||
BoardFinder finder(boardConfigs);
|
||||
BoardConfig const *boardConfig = finder.getBoardConfig(userConfig.board());
|
||||
|
@ -107,6 +100,7 @@ void setup() {
|
|||
LoRaSystem.setBoardConfig(boardConfig);
|
||||
LoRaSystem.setUserConfig(&userConfig);
|
||||
LoRaSystem.getTaskManager().addTask(&displayTask);
|
||||
LoRaSystem.getTaskManager().addTask(&configTask);
|
||||
if (userConfig.callsign() != "NOCALL-10") {
|
||||
LoRaSystem.getTaskManager().addTask(&modemTask);
|
||||
LoRaSystem.getTaskManager().addTask(&routerTask);
|
||||
|
@ -143,17 +137,6 @@ void setup() {
|
|||
|
||||
void loop() {
|
||||
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) {
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
enum TaskNames
|
||||
{
|
||||
TaskAprsIs = 1,
|
||||
TaskConfig,
|
||||
TaskEth,
|
||||
TaskFtp,
|
||||
TaskModem,
|
||||
|
@ -15,6 +16,7 @@ enum TaskNames
|
|||
};
|
||||
|
||||
#define TASK_APRS_IS "AprsIsTask"
|
||||
#define TASK_CONFIG "ConfigTask"
|
||||
#define TASK_ETH "EthTask"
|
||||
#define TASK_FTP "FTPTask"
|
||||
#define TASK_MODEM "ModemTask"
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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
|
Ładowanie…
Reference in New Issue