#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 * * 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 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef EMBED_WWW #include #endif #ifndef CORS_ORIGIN #define CORS_ORIGIN "*" #endif #ifndef APP_VERSION #define APP_VERSION "demo" #endif #ifndef APP_NAME #define APP_NAME "ESP32 SvelteKit Demo" #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; } #if FT_ENABLED(FT_SECURITY) StatefulService *getSecuritySettingsService() { return &_securitySettingsService; } #endif StatefulService *getWiFiSettingsService() { return &_wifiSettingsService; } StatefulService *getAPSettingsService() { return &_apSettingsService; } #if FT_ENABLED(FT_NTP) StatefulService *getNTPSettingsService() { return &_ntpSettingsService; } #endif #if FT_ENABLED(FT_MQTT) StatefulService *getMqttSettingsService() { return &_mqttSettingsService; } PsychicMqttClient *getMqttClient() { return _mqttSettingsService.getMqttClient(); } #endif #if FT_ENABLED(FT_SLEEP) SleepService *getSleepService() { return &_sleepService; } #endif #if FT_ENABLED(FT_BATTERY) BatteryService *getBatteryService() { return &_batteryService; } #endif FeaturesService *getFeatureService() { return &_featureService; } void factoryReset() { _factoryResetService.factoryReset(); } void setMDNSAppName(String name) { _appName = name; } void recoveryMode() { _apSettingsService.recoveryMode(); } 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(FT_NTP) NTPSettingsService _ntpSettingsService; NTPStatus _ntpStatus; #endif #if FT_ENABLED(FT_UPLOAD_FIRMWARE) UploadFirmwareService _uploadFirmwareService; #endif #if FT_ENABLED(FT_DOWNLOAD_FIRMWARE) DownloadFirmwareService _downloadFirmwareService; #endif #if FT_ENABLED(FT_MQTT) MqttSettingsService _mqttSettingsService; MqttStatus _mqttStatus; #endif #if FT_ENABLED(FT_SECURITY) AuthenticationService _authenticationService; #endif #if FT_ENABLED(FT_SLEEP) SleepService _sleepService; #endif #if FT_ENABLED(FT_BATTERY) BatteryService _batteryService; #endif #if FT_ENABLED(FT_ANALYTICS) AnalyticsService _analyticsService; #endif RestartService _restartService; FactoryResetService _factoryResetService; SystemStatus _systemStatus; String _appName = APP_NAME; protected: static void _loopImpl(void *_this) { static_cast(_this)->_loop(); } void _loop(); }; #endif