Files
SpotMicroESP32-Leika/esp32/lib/ESP32-sveltekit/ESP32SvelteKit.h
T
2024-08-19 21:49:51 +02:00

194 lines
5.0 KiB
C++

#ifndef ESP32SvelteKit_h
#define ESP32SvelteKit_h
/**
* ESP32 SvelteKit
*
* A simple, secure and extensible framework for IoT projects for ESP32 platforms
* with responsive Sveltekit front-end built with TailwindCSS and DaisyUI.
* https://github.com/theelims/ESP32-sveltekit
*
* Copyright (C) 2018 - 2023 rjwats
* Copyright (C) 2023 theelims
* Copyright (C) 2024 runeharlyk
*
* All Rights Reserved. This software may be modified and distributed under
* the terms of the LGPL v3 license. See the LICENSE file for details.
**/
#include <Arduino.h>
#include <APSettingsService.h>
#include <APStatus.h>
#include <AnalyticsService.h>
#include <AuthenticationService.h>
#include <BatteryService.h>
#include <FileExplorerService.h>
#include <DownloadFirmwareService.h>
#include <Peripherals.h>
#include <ServoController.h>
#include <ESPFS.h>
#include <ESPmDNS.h>
#include <LEDService.h>
#include <EventSocket.h>
#include <FactoryResetService.h>
#include <FeaturesService.h>
#include <MotionService.h>
#include <NTPSettingsService.h>
#include <CameraService.h>
#include <CameraSettingsService.h>
#include <NTPStatus.h>
#include <PsychicHttp.h>
#include <RestartService.h>
#include <SecuritySettingsService.h>
#include <SleepService.h>
#include <SystemStatus.h>
#include <TaskManager.h>
#include <UploadFirmwareService.h>
#include <WiFi.h>
#include <WiFiScanner.h>
#include <WiFiSettingsService.h>
#include <WiFiStatus.h>
#include <Wire.h>
#ifdef EMBED_WWW
#include <WWWData.h>
#endif
#ifndef CORS_ORIGIN
#define CORS_ORIGIN "*"
#endif
#ifndef APP_VERSION
#define APP_VERSION "v1"
#endif
#ifndef APP_NAME
#define APP_NAME "SpotMicro"
#endif
#ifndef ESP32SVELTEKIT_RUNNING_CORE
#define ESP32SVELTEKIT_RUNNING_CORE -1
#endif
class ESP32SvelteKit {
public:
ESP32SvelteKit(PsychicHttpServer *server, unsigned int numberEndpoints = 115);
void begin();
FS *getFS() { return &ESPFS; }
PsychicHttpServer *getServer() { return _server; }
SecurityManager *getSecurityManager() { return &_securitySettingsService; }
EventSocket *getSocket() { return &_socket; }
StatefulService<WiFiSettings> *getWiFiSettingsService() { return &_wifiSettingsService; }
StatefulService<APSettings> *getAPSettingsService() { return &_apSettingsService; }
#if FT_ENABLED(USE_NTP)
StatefulService<NTPSettings> *getNTPSettingsService() { return &_ntpSettingsService; }
#endif
#if FT_ENABLED(USE_SLEEP)
SleepService *getSleepService() { return &_sleepService; }
#endif
#if FT_ENABLED(USE_BATTERY)
BatteryService *getBatteryService() { return &_batteryService; }
#endif
FeaturesService *getFeatureService() { return &_featureService; }
TaskManager *getTaskManager() { return &_taskManager; }
FileExplorer *getFileExplorer() { return &_fileExplorer; }
#if FT_ENABLED(USE_MOTION)
MotionService *getMotionService() { return &_motionService; }
#endif
CameraService *getCameraService() { return &_cameraService; }
CameraSettingsService *getCameraSettingsService() { return &_cameraSettingsService; }
#if FT_ENABLED(USE_CAMERA)
#endif
Peripherals *getPeripherals() { return &_peripherals; }
#if FT_ENABLED(USE_SERVO)
ServoController *getServoController() { return &_servoController; }
#endif
void factoryReset() { _factoryResetService.factoryReset(); }
void setMDNSAppName(String name) { _appName = name; }
void recoveryMode() { _apSettingsService.recoveryMode(); }
void loop();
private:
PsychicHttpServer *_server;
unsigned int _numberEndpoints;
FeaturesService _featureService;
SecuritySettingsService _securitySettingsService;
WiFiSettingsService _wifiSettingsService;
WiFiScanner _wifiScanner;
WiFiStatus _wifiStatus;
APSettingsService _apSettingsService;
APStatus _apStatus;
EventSocket _socket;
#if FT_ENABLED(USE_NTP)
NTPSettingsService _ntpSettingsService;
NTPStatus _ntpStatus;
#endif
#if FT_ENABLED(USE_UPLOAD_FIRMWARE)
UploadFirmwareService _uploadFirmwareService;
#endif
#if FT_ENABLED(USE_DOWNLOAD_FIRMWARE)
DownloadFirmwareService _downloadFirmwareService;
#endif
#if FT_ENABLED(USE_SECURITY)
AuthenticationService _authenticationService;
#endif
#if FT_ENABLED(USE_SLEEP)
SleepService _sleepService;
#endif
#if FT_ENABLED(USE_BATTERY)
BatteryService _batteryService;
#endif
#if FT_ENABLED(USE_ANALYTICS)
AnalyticsService _analyticsService;
#endif
RestartService _restartService;
FactoryResetService _factoryResetService;
SystemStatus _systemStatus;
TaskManager _taskManager;
FileExplorer _fileExplorer;
#if FT_ENABLED(USE_MOTION)
MotionService _motionService;
#endif
CameraService _cameraService;
CameraSettingsService _cameraSettingsService;
#if FT_ENABLED(USE_CAMERA)
#endif
Peripherals _peripherals;
ServoController _servoController;
#if FT_ENABLED(USE_WS2812)
LEDService _ledService;
#endif
String _appName = APP_NAME;
protected:
static void _loopImpl(void *_this) { static_cast<ESP32SvelteKit *>(_this)->loop(); }
void setupServer();
void setupMDNS();
void startServices();
};
#endif