Removes PsychicHttp dependency

This commit is contained in:
Rune Harlyk
2026-01-22 22:20:13 +01:00
committed by Rune Harlyk
parent 0b8e060063
commit 64199ac1a3
22 changed files with 256 additions and 413 deletions
+4 -3
View File
@@ -1,3 +1,5 @@
#pragma once
#include <template/stateful_service.h>
#include <template/stateful_endpoint.h>
#include <template/stateful_persistence.h>
@@ -16,14 +18,13 @@ class APService : public StatefulService<APSettings> {
void loop();
void recoveryMode();
esp_err_t getStatus(PsychicRequest *request);
esp_err_t getStatus(httpd_req_t *request);
void status(JsonObject &root);
APNetworkStatus getAPNetworkStatus();
StatefulHttpEndpoint<APSettings> endpoint;
private:
PsychicHttpServer *_server;
FSPersistence<APSettings> _persistence;
DNSServer *_dnsServer;
@@ -37,4 +38,4 @@ class APService : public StatefulService<APSettings> {
void startAP();
void stopAP();
void handleDNS();
};
};
@@ -1,28 +0,0 @@
#pragma once
#include <PsychicHttp.h>
#include <template/stateful_service.h>
#include <list>
#include <map>
#include <vector>
#include <string>
#include <communication/comm_base.hpp>
class Websocket : public CommAdapterBase {
public:
Websocket(PsychicHttpServer &server, const char *route = "/api/ws");
void begin() override;
private:
PsychicWebSocketHandler socket_;
PsychicHttpServer &server_;
const char *route_;
void onWSOpen(PsychicWebSocketClient *client);
void onWSClose(PsychicWebSocketClient *client);
esp_err_t onFrame(PsychicWebSocketRequest *request, httpd_ws_frame *frame);
void send(const uint8_t *data, size_t len, int cid = -1) override;
};
+2 -11
View File
@@ -2,52 +2,43 @@
#include <WiFi.h>
#include <ArduinoJson.h>
#include <PsychicHttp.h>
#include <esp_http_server.h>
#include "platform_shared/message.pb.h"
#define FT_ENABLED(feature) feature
// ESP32 camera off by default
#ifndef USE_CAMERA
#define USE_CAMERA 0
#endif
// ESP32 IMU on by default
#ifndef USE_MPU6050
#define USE_MPU6050 0
#endif
// ESP32 IMU on by default
#ifndef USE_BNO055
#define USE_BNO055 1
#endif
// ESP32 magnetometer on by default
#ifndef USE_HMC5883
#define USE_HMC5883 0
#endif
// ESP32 barometer off by default
#ifndef USE_BMP180
#define USE_BMP180 0
#endif
// ESP32 SONAR off by default
#ifndef USE_USS
#define USE_USS 0
#endif
// PCA9685 Servo controller on by default
#ifndef USE_PCA9685
#define USE_PCA9685 1
#endif
// WS2812 LED strip off by default
#ifndef USE_WS2812
#define USE_WS2812 0
#endif
// ESP32 MDNS on by default
#ifndef USE_MDNS
#define USE_MDNS 1
#endif
@@ -78,6 +69,6 @@ void features(JsonObject& root);
void features_request(const socket_message_FeaturesDataRequest& fd_req, socket_message_FeaturesDataResponse& fd_res);
esp_err_t getFeatures(PsychicRequest* request);
esp_err_t getFeatures(httpd_req_t* request);
} // namespace feature_service
+8 -11
View File
@@ -1,7 +1,7 @@
#pragma once
#include <PsychicHttp.h>
#include <esp_http_server.h>
#include <ArduinoJson.h>
#include <LittleFS.h>
#include <string>
@@ -16,18 +16,15 @@
#define MDNS_SETTINGS_FILE "/config/mdnsSettings.json"
namespace FileSystem {
extern PsychicUploadHandler *uploadHandler;
std::string listFiles(const std::string &directory, bool isRoot = true);
bool deleteFile(const char *filename);
bool editFile(const char *filename, const char *content);
esp_err_t uploadFile(PsychicRequest *request, const std::string &filename, uint64_t index, uint8_t *data, size_t len,
bool last);
esp_err_t getFiles(PsychicRequest *request);
esp_err_t getConfigFile(PsychicRequest *request);
esp_err_t handleDelete(PsychicRequest *request, JsonVariant &json);
esp_err_t handleEdit(PsychicRequest *request, JsonVariant &json);
esp_err_t getFiles(httpd_req_t *request);
esp_err_t getConfigFile(httpd_req_t *request);
esp_err_t handleDelete(httpd_req_t *request, JsonVariant &json);
esp_err_t handleEdit(httpd_req_t *request, JsonVariant &json);
esp_err_t mkdir(httpd_req_t *request, JsonVariant &json);
esp_err_t mkdir(PsychicRequest *request, JsonVariant &json);
} // namespace FileSystem
} // namespace FileSystem
+5 -4
View File
@@ -1,6 +1,7 @@
#pragma once
#include <PsychicHttp.h>
#include <esp_http_server.h>
#include <ArduinoJson.h>
#include <ESPmDNS.h>
#include <template/stateful_service.h>
#include <template/stateful_endpoint.h>
@@ -25,10 +26,10 @@ class MDNSService : public StatefulService<MDNSSettings> {
void begin();
esp_err_t getStatus(PsychicRequest *request);
esp_err_t getStatus(httpd_req_t *request);
void getStatus(JsonVariant &root);
static esp_err_t queryServices(PsychicRequest *request, JsonVariant &json);
static esp_err_t queryServices(httpd_req_t *request, JsonVariant &json);
StatefulHttpEndpoint<MDNSSettings> endpoint;
};
};
+3 -4
View File
@@ -1,9 +1,8 @@
#pragma once
#include <ArduinoJson.h>
#include <PsychicHttp.h>
#include <esp_http_server.h>
#include <WiFi.h>
#include <async_worker.h>
#include <features.h>
#include <template/stateful_persistence.h>
@@ -31,8 +30,8 @@ class CameraService : public StatefulService<CameraSettings> {
esp_err_t begin();
esp_err_t cameraStill(PsychicRequest *request);
esp_err_t cameraStream(PsychicRequest *request);
esp_err_t cameraStill(httpd_req_t *request);
esp_err_t cameraStream(httpd_req_t *request);
StatefulHttpEndpoint<CameraSettings> endpoint;
@@ -2,7 +2,6 @@
#define ServoController_h
#include <Adafruit_PWMServoDriver.h>
#include <communication/websocket_adapter.h>
#include <template/stateful_persistence.h>
#include <template/stateful_service.h>
#include <template/stateful_endpoint.h>
+5 -5
View File
@@ -1,7 +1,7 @@
#pragma once
#include <ESPmDNS.h>
#include <PsychicHttp.h>
#include <esp_http_server.h>
#include <WiFi.h>
#include <filesystem.h>
#include <global.h>
@@ -13,9 +13,9 @@
#include "platform_shared/message.pb.h"
namespace system_service {
esp_err_t handleReset(PsychicRequest *request);
esp_err_t handleRestart(PsychicRequest *request);
esp_err_t handleSleep(PsychicRequest *request);
esp_err_t handleReset(httpd_req_t *request);
esp_err_t handleRestart(httpd_req_t *request);
esp_err_t handleSleep(httpd_req_t *request);
void reset();
void restart();
@@ -25,4 +25,4 @@ void getAnalytics(socket_message_AnalyticsData &analytics);
void getStaticSystemInformation(socket_message_StaticSystemInformation &info);
const char *resetReason(esp_reset_reason_t reason);
} // namespace system_service
} // namespace system_service
+16 -17
View File
@@ -1,7 +1,9 @@
#pragma once
#include <PsychicHttp.h>
#include <esp_http_server.h>
#include <ArduinoJson.h>
#include <template/stateful_service.h>
#include <communication/native_server.h>
#include <functional>
@@ -20,29 +22,26 @@ class StatefulHttpEndpoint {
StatefulService<T> *statefulService)
: _stateReader(stateReader), _stateUpdater(stateUpdater), _statefulService(statefulService) {}
esp_err_t handleStateUpdate(PsychicRequest *request, JsonVariant &json) {
esp_err_t handleStateUpdate(httpd_req_t *request, JsonVariant &json) {
JsonVariant jsonObject = json.as<JsonVariant>();
StateUpdateResult outcome = _statefulService->updateWithoutPropagation(jsonObject, _stateUpdater);
if (outcome == StateUpdateResult::ERROR)
return request->reply(400);
else if ((outcome == StateUpdateResult::CHANGED)) {
// persist the changes to the FS
if (outcome == StateUpdateResult::ERROR) {
return NativeServer::sendError(request, 400, "Invalid state");
} else if ((outcome == StateUpdateResult::CHANGED)) {
_statefulService->callUpdateHandlers(HTTP_ENDPOINT_ORIGIN_ID);
}
PsychicJsonResponse response = PsychicJsonResponse(request, false);
jsonObject = response.getRoot();
_statefulService->read(jsonObject, _stateReader);
return response.send();
JsonDocument doc;
JsonVariant root = doc.to<JsonVariant>();
_statefulService->read(root, _stateReader);
return NativeServer::sendJson(request, 200, doc);
}
esp_err_t getState(PsychicRequest *request) {
PsychicJsonResponse response = PsychicJsonResponse(request, false);
JsonVariant jsonObject = response.getRoot();
_statefulService->read(jsonObject, _stateReader);
return response.send();
esp_err_t getState(httpd_req_t *request) {
JsonDocument doc;
JsonVariant root = doc.to<JsonVariant>();
_statefulService->read(root, _stateReader);
return NativeServer::sendJson(request, 200, doc);
}
};
+5 -5
View File
@@ -1,6 +1,6 @@
#pragma once
#include <PsychicHttp.h>
#include <esp_http_server.h>
#include <WiFi.h>
#include <ESPmDNS.h>
#include <string>
@@ -43,9 +43,9 @@ class WiFiService : public StatefulService<WiFiSettings> {
const char *getHostname() { return state().hostname.c_str(); }
static esp_err_t handleScan(PsychicRequest *request);
static esp_err_t getNetworks(PsychicRequest *request);
static esp_err_t getNetworkStatus(PsychicRequest *request);
static esp_err_t handleScan(httpd_req_t *request);
static esp_err_t getNetworks(httpd_req_t *request);
static esp_err_t getNetworkStatus(httpd_req_t *request);
StatefulHttpEndpoint<WiFiSettings> endpoint;
};
};
+2 -2
View File
@@ -1,5 +1,5 @@
#pragma once
#include <PsychicHttp.h>
#include <communication/native_server.h>
#include "WWWData.h"
void mountStaticAssets(PsychicHttpServer& s);
void mountStaticAssets(NativeServer& s);