Wifi scanning
This commit is contained in:
@@ -20,19 +20,28 @@
|
||||
#include "SimpleMeasurementSession.h"
|
||||
#include "EspHttp.h"
|
||||
#include "WebDAV.h"
|
||||
#include "WebsocketServer.h"
|
||||
#include "UserDB.h"
|
||||
|
||||
// Api
|
||||
#include "WebsocketServer.h"
|
||||
#include "SessionAPI.h"
|
||||
#include "WifiAPI.h"
|
||||
|
||||
using Session_T = SimpleMeasurementSession<MeasurementT, CONFIG_SESSION_MAX_SIZE>;
|
||||
SessionManager<Session_T> sessionManager;
|
||||
|
||||
UserStorage userStorage;
|
||||
|
||||
EspHttp espHttpServer;
|
||||
WebsocketServer<Session_T> webSocketServer(sessionManager, userStorage, 81);
|
||||
|
||||
WifiManager wifiManager;
|
||||
|
||||
|
||||
auto apiTuple = std::make_tuple(SessionAPI<Session_T>(sessionManager), WifiAPI(wifiManager));
|
||||
WebsocketServer<decltype(apiTuple)> websocketServer(81, apiTuple);
|
||||
|
||||
//WebsocketServer<Session_T> webSocketServer(sessionManager, userStorage, 81);
|
||||
|
||||
extern const uint8_t certificate_pem[] asm("_binary_certificate_pem_start");
|
||||
|
||||
bool firmwareUpdate()
|
||||
@@ -86,32 +95,38 @@ void sessionManagerSetup()
|
||||
template <typename SessionT>
|
||||
void httpSetup(SessionManager<SessionT> *sessionManager, WifiManager *wifiManager)
|
||||
{
|
||||
auto cbStartSession = [sessionManager](httpd_req_t *req) {
|
||||
auto cbStartSession = [sessionManager](httpd_req_t *req)
|
||||
{
|
||||
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
|
||||
httpd_resp_send(req, "Session started", -1);
|
||||
sessionManager->startMeasurements();
|
||||
Serial.println("Started session");
|
||||
};
|
||||
auto cbStopSession = [sessionManager](httpd_req_t *req) {
|
||||
auto cbStopSession = [sessionManager](httpd_req_t *req)
|
||||
{
|
||||
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
|
||||
httpd_resp_send(req, "Session stopped", -1);
|
||||
sessionManager->stopMeasurements();
|
||||
Serial.println("Stopped session");
|
||||
};
|
||||
auto cbRestart = [](httpd_req_t *req) {
|
||||
auto cbRestart = [](httpd_req_t *req)
|
||||
{
|
||||
Serial.println("Restarted requested");
|
||||
ESP.restart();
|
||||
};
|
||||
auto cbTare = [sessionManager](httpd_req_t *req) {
|
||||
auto cbTare = [sessionManager](httpd_req_t *req)
|
||||
{
|
||||
Serial.println("Tare");
|
||||
sessionManager->tare();
|
||||
};
|
||||
auto cbFirmwareUpdate = [](httpd_req_t *req) {
|
||||
auto cbFirmwareUpdate = [](httpd_req_t *req)
|
||||
{
|
||||
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
|
||||
httpd_resp_send(req, "OK", -1);
|
||||
firmwareUpdate();
|
||||
};
|
||||
auto cbStatus = [sessionManager](httpd_req_t *req) {
|
||||
auto cbStatus = [sessionManager](httpd_req_t *req)
|
||||
{
|
||||
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
|
||||
httpd_resp_set_hdr(req, "Content-Type", "application/json");
|
||||
|
||||
@@ -167,7 +182,8 @@ void httpSetup(SessionManager<SessionT> *sessionManager, WifiManager *wifiManage
|
||||
auto bytesWritten = serializeJson(json, jsonText);
|
||||
httpd_resp_send(req, jsonText, bytesWritten);
|
||||
};
|
||||
auto cbGetData = [sessionManager](httpd_req_t *req) {
|
||||
auto cbGetData = [sessionManager](httpd_req_t *req)
|
||||
{
|
||||
auto sessionId = sessionManager->session().getStartTime();
|
||||
uint32_t startIdx = getUrlQueryParameter(req, "startIdx", 0);
|
||||
//Serial.printf("Data request, start index: %d\n", startIdx);
|
||||
@@ -196,7 +212,8 @@ void httpSetup(SessionManager<SessionT> *sessionManager, WifiManager *wifiManage
|
||||
httpd_resp_send(req, buf, totalSize);
|
||||
free(buf);
|
||||
};
|
||||
auto cbWifiGet = [wifiManager](httpd_req_t *req) {
|
||||
auto cbWifiGet = [wifiManager](httpd_req_t *req)
|
||||
{
|
||||
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
|
||||
StaticJsonDocument<128> json;
|
||||
json["state"] = wifiManager->stateStr();
|
||||
@@ -204,7 +221,8 @@ void httpSetup(SessionManager<SessionT> *sessionManager, WifiManager *wifiManage
|
||||
auto bytesWritten = serializeJson(json, jsonText);
|
||||
httpd_resp_send(req, jsonText, bytesWritten);
|
||||
};
|
||||
auto cbWifiPost = [wifiManager](httpd_req_t *req) {
|
||||
auto cbWifiPost = [wifiManager](httpd_req_t *req)
|
||||
{
|
||||
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
|
||||
StaticJsonDocument<1024> json;
|
||||
char content[512];
|
||||
@@ -248,7 +266,8 @@ void httpSetup(SessionManager<SessionT> *sessionManager, WifiManager *wifiManage
|
||||
httpd_resp_set_status(req, "400 Bad Request");
|
||||
httpd_resp_send(req, "Invalid keys in JSON", -1);
|
||||
};
|
||||
auto cbSettingsGet = [](httpd_req_t *req) {
|
||||
auto cbSettingsGet = [](httpd_req_t *req)
|
||||
{
|
||||
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
|
||||
httpd_resp_set_hdr(req, "Content-Type", "application/json");
|
||||
|
||||
@@ -269,7 +288,8 @@ void httpSetup(SessionManager<SessionT> *sessionManager, WifiManager *wifiManage
|
||||
auto bytesWritten = serializeJson(json, jsonText);
|
||||
httpd_resp_send(req, jsonText, bytesWritten);
|
||||
};
|
||||
auto cbSettingsPost = [](httpd_req_t *req) {
|
||||
auto cbSettingsPost = [](httpd_req_t *req)
|
||||
{
|
||||
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
|
||||
StaticJsonDocument<1024> json;
|
||||
char content[512];
|
||||
@@ -313,7 +333,8 @@ void httpSetup(SessionManager<SessionT> *sessionManager, WifiManager *wifiManage
|
||||
sessionManagerSetup();
|
||||
httpd_resp_send(req, "OK", -1);
|
||||
};
|
||||
auto cbSettingsDelete = [](httpd_req_t *req) {
|
||||
auto cbSettingsDelete = [](httpd_req_t *req)
|
||||
{
|
||||
httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
|
||||
Preferences prefs;
|
||||
prefs.begin("st_prefs");
|
||||
@@ -419,13 +440,12 @@ void setup()
|
||||
|
||||
// HTTP & Websocket server
|
||||
httpSetup(&sessionManager, &wifiManager);
|
||||
if (!wifiManager.inProvisioningMode())
|
||||
webSocketServer.begin();
|
||||
websocketServer.begin();
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
sessionManager.iteration();
|
||||
webSocketServer.iteration();
|
||||
wifiManager.wifiWatchdog();
|
||||
wifiManager.iteration();
|
||||
websocketServer.iteration();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user