diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f4da33..7f5c579 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,11 @@ set(ARDUINO_BOARD "ESP32 Dev Module [esp32.esp32]") project(nuki_hub CXX) +# ARDUHAL_LOG_LEVEL_NONE, define ARDUHAL_LOG_LEVEL_ERROR, define ARDUHAL_LOG_LEVEL_WARN, define ARDUHAL_LOG_LEVEL_INFO, +# define ARDUHAL_LOG_LEVEL_DEBUG, define ARDUHAL_LOG_LEVEL_VERBOSE + +set(LOG_LEVEL ARDUHAL_LOG_LEVEL_NONE) + include_directories(${PROJECT_NAME} PRIVATE lib/Crc16 @@ -12,10 +17,12 @@ include_directories(${PROJECT_NAME} lib/ESP32_BLE_Arduino-1.0.1/src lib/WiFiManager lib/pubsubclient/src - lib/EthernetWebServer/src + lib/WebServer/src ) file(GLOB SRCFILES +# "Lib/FreeRTOS/src/*.c" +# "Lib/FreeRTOS/src/*.cpp" Pins.h Network.cpp networkDevices/NetworkDevice.h @@ -28,9 +35,6 @@ file(GLOB SRCFILES PreferencesKeys.h SpiffsCookie.cpp Version.h - webserver/AbstractWebServer.h - webserver/EthWebServer.cpp - webserver/WifiWebServer.cpp lib/ESP32_BLE_Arduino-1.0.1/src/*.cpp lib/ESP32_BLE_Arduino-1.0.1/src/*.h lib/WiFiManager/WiFiManager.cpp @@ -47,8 +51,8 @@ file(GLOB_RECURSE SRCFILESREC lib/NimBLE-Arduino/src/*.c lib/NimBLE-Arduino/src/*.cpp lib/NimBLE-Arduino/src/*.h - lib/EthernetWebServer/src/*.cpp - lib/EthernetWebServer/src/*.h + lib/WebServer/src/*.cpp + lib/WebServer/src/*.h ) add_executable(${PROJECT_NAME} @@ -57,13 +61,19 @@ add_executable(${PROJECT_NAME} ${SRCFILESREC} ) -# Arduino.h is included in hello_world.cpp, so link with Arduino core +target_compile_definitions(${PROJECT_NAME} + PRIVATE + ARDUHAL_LOG_LEVEL=${LOG_LEVEL} + CORE_DEBUG_LEVEL=${LOG_LEVEL} + CONFIG_NIMBLE_CPP_LOG_LEVEL=0 + ) + target_link_arduino_libraries(${PROJECT_NAME} PRIVATE core WiFi Update - WebServer +# WebServer DNSServer Preferences SPIFFS diff --git a/Network.cpp b/Network.cpp index d21700b..882d8ac 100644 --- a/Network.cpp +++ b/Network.cpp @@ -1,4 +1,5 @@ #include "Network.h" +#include // https://github.com/tzapu/WiFiManager #include "Arduino.h" #include "MqttTopics.h" #include "PreferencesKeys.h" diff --git a/WebCfgServer.cpp b/WebCfgServer.cpp index a9aa5f6..8e940bf 100644 --- a/WebCfgServer.cpp +++ b/WebCfgServer.cpp @@ -1,10 +1,10 @@ #include "WebCfgServer.h" #include "PreferencesKeys.h" #include "Version.h" -#include "webserver/EthWebServer.h" +#include "WifiEthServer.h" WebCfgServer::WebCfgServer(NukiWrapper* nuki, Network* network, Preferences* preferences) -: _server(new EthWebServer(80)), +: _server(new WifiEthServer(80)), _nuki(nuki), _network(network), _preferences(preferences) @@ -26,43 +26,43 @@ WebCfgServer::WebCfgServer(NukiWrapper* nuki, Network* network, Preferences* pre void WebCfgServer::initialize() { - _server->on("/", [&]() { - if (_hasCredentials && !_server->authenticate(_credUser, _credPassword)) { - return _server->requestAuthentication(); + _server.on("/", [&]() { + if (_hasCredentials && !_server.authenticate(_credUser, _credPassword)) { + return _server.requestAuthentication(); } String response = ""; buildHtml(response); - _server->send(200, "text/html", response); + _server.send(200, "text/html", response); }); - _server->on("/cred", [&]() { - if (_hasCredentials && !_server->authenticate(_credUser, _credPassword)) { - return _server->requestAuthentication(); + _server.on("/cred", [&]() { + if (_hasCredentials && !_server.authenticate(_credUser, _credPassword)) { + return _server.requestAuthentication(); } String response = ""; buildCredHtml(response); - _server->send(200, "text/html", response); + _server.send(200, "text/html", response); }); - _server->on("/wifi", [&]() { - if (_hasCredentials && !_server->authenticate(_credUser, _credPassword)) { - return _server->requestAuthentication(); + _server.on("/wifi", [&]() { + if (_hasCredentials && !_server.authenticate(_credUser, _credPassword)) { + return _server.requestAuthentication(); } String response = ""; buildConfigureWifiHtml(response); - _server->send(200, "text/html", response); + _server.send(200, "text/html", response); }); - _server->on("/wifimanager", [&]() { - if (_hasCredentials && !_server->authenticate(_credUser, _credPassword)) { - return _server->requestAuthentication(); + _server.on("/wifimanager", [&]() { + if (_hasCredentials && !_server.authenticate(_credUser, _credPassword)) { + return _server.requestAuthentication(); } String response = ""; buildConfirmHtml(response, "Restarting. Connect to ESP access point to reconfigure WiFi.", 0); - _server->send(200, "text/html", response); + _server.send(200, "text/html", response); waitAndProcess(true, 2000); _network->restartAndConfigureWifi(); }); - _server->on("/method=get", [&]() { - if (_hasCredentials && !_server->authenticate(_credUser, _credPassword)) { - return _server->requestAuthentication(); + _server.on("/method=get", [&]() { + if (_hasCredentials && !_server.authenticate(_credUser, _credPassword)) { + return _server.requestAuthentication(); } String message = ""; bool restartEsp = processArgs(message); @@ -70,7 +70,7 @@ void WebCfgServer::initialize() { String response = ""; buildConfirmHtml(response, message); - _server->send(200, "text/html", response); + _server.send(200, "text/html", response); Serial.println(F("Restarting")); waitAndProcess(true, 1000); @@ -80,12 +80,12 @@ void WebCfgServer::initialize() { String response = ""; buildConfirmHtml(response, message, 3); - _server->send(200, "text/html", response); + _server.send(200, "text/html", response); waitAndProcess(false, 1000); } }); - _server->begin(); + _server.begin(); } bool WebCfgServer::processArgs(String& message) @@ -94,11 +94,11 @@ bool WebCfgServer::processArgs(String& message) bool clearMqttCredentials = false; bool clearCredentials = false; - int count = _server->args(); + int count = _server.args(); for(int index = 0; index < count; index++) { - String key = _server->argName(index); - String value = _server->arg(index); + String key = _server.argName(index); + String value = _server.arg(index); if(key == "MQTTSERVER") { @@ -215,7 +215,7 @@ void WebCfgServer::update() { if(!_enabled) return; - _server->handleClient(); + _server.handleClient(); } void WebCfgServer::buildHtml(String& response) @@ -399,7 +399,7 @@ void WebCfgServer::waitAndProcess(const bool blocking, const uint32_t duration) unsigned long timeout = millis() + duration; while(millis() < timeout) { - _server->handleClient(); + _server.handleClient(); if(blocking) { delay(10); diff --git a/WebCfgServer.h b/WebCfgServer.h index 49f6a03..5f86982 100644 --- a/WebCfgServer.h +++ b/WebCfgServer.h @@ -1,10 +1,9 @@ #pragma once #include -#include +#include #include "NukiWrapper.h" #include "Network.h" -#include "webserver/AbstractWebServer.h" enum class TokenType { @@ -43,7 +42,7 @@ private: void waitAndProcess(const bool blocking, const uint32_t duration); - AbstractWebServer* _server; + WebServer _server; NukiWrapper* _nuki; Network* _network; Preferences* _preferences; diff --git a/lib/EthernetWebServer/src/EthernetServerImpl.cpp b/lib/EthernetWebServer/src/EthernetServerImpl.cpp deleted file mode 100644 index 6b25a9d..0000000 --- a/lib/EthernetWebServer/src/EthernetServerImpl.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "EthernetServerImpl.h" - -EthernetServerImpl::EthernetServerImpl(IPAddress addr, int port) - : EthernetServer(port) -{} - -EthernetServerImpl::EthernetServerImpl(int port) - : EthernetServer(port) -{} - -void EthernetServerImpl::begin(uint16_t port) -{ - EthernetServer::begin(); -} - -void EthernetServerImpl::begin() -{ - EthernetServer::begin(); -} - -void EthernetServerImpl::close() -{ - -} - -int EthernetServerImpl::setNoDelay(bool nodelay) -{ - return 0; -} diff --git a/lib/EthernetWebServer/src/EthernetServerImpl.h b/lib/EthernetWebServer/src/EthernetServerImpl.h deleted file mode 100644 index 76ad3bf..0000000 --- a/lib/EthernetWebServer/src/EthernetServerImpl.h +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include - -class EthernetServerImpl : public EthernetServer -{ -public: - EthernetServerImpl(IPAddress addr, int port); - EthernetServerImpl(int port); - - void begin(); - void begin(uint16_t port); - void close(); - int setNoDelay(bool nodelay); -}; \ No newline at end of file diff --git a/lib/EthernetWebServer/examples/AdvancedWebServer/AdvancedWebServer.ino b/lib/WebServer/examples/AdvancedWebServer/AdvancedWebServer.ino similarity index 99% rename from lib/EthernetWebServer/examples/AdvancedWebServer/AdvancedWebServer.ino rename to lib/WebServer/examples/AdvancedWebServer/AdvancedWebServer.ino index 22ae426..e8e8153 100644 --- a/lib/EthernetWebServer/examples/AdvancedWebServer/AdvancedWebServer.ino +++ b/lib/WebServer/examples/AdvancedWebServer/AdvancedWebServer.ino @@ -30,7 +30,7 @@ #include #include -#include +#include #include const char *ssid = "YourSSIDHere"; diff --git a/lib/EthernetWebServer/examples/FSBrowser/FSBrowser.ino b/lib/WebServer/examples/FSBrowser/FSBrowser.ino similarity index 97% rename from lib/EthernetWebServer/examples/FSBrowser/FSBrowser.ino rename to lib/WebServer/examples/FSBrowser/FSBrowser.ino index 7c04a79..f33f5db 100644 --- a/lib/EthernetWebServer/examples/FSBrowser/FSBrowser.ino +++ b/lib/WebServer/examples/FSBrowser/FSBrowser.ino @@ -1,7 +1,7 @@ /* - FSWebServer - Example EthernetWebServer with FS backend for esp8266/esp32 + FSWebServer - Example WebServer with FS backend for esp8266/esp32 Copyright (c) 2015 Hristo Gochkov. All rights reserved. - This file is part of the EthernetWebServer library for Arduino environment. + This file is part of the WebServer library for Arduino environment. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -24,7 +24,7 @@ */ #include #include -#include +#include #include #define FILESYSTEM SPIFFS diff --git a/lib/EthernetWebServer/examples/FSBrowser/data/edit.htm.gz b/lib/WebServer/examples/FSBrowser/data/edit.htm.gz similarity index 100% rename from lib/EthernetWebServer/examples/FSBrowser/data/edit.htm.gz rename to lib/WebServer/examples/FSBrowser/data/edit.htm.gz diff --git a/lib/EthernetWebServer/examples/FSBrowser/data/favicon.ico b/lib/WebServer/examples/FSBrowser/data/favicon.ico similarity index 100% rename from lib/EthernetWebServer/examples/FSBrowser/data/favicon.ico rename to lib/WebServer/examples/FSBrowser/data/favicon.ico diff --git a/lib/EthernetWebServer/examples/FSBrowser/data/graphs.js.gz b/lib/WebServer/examples/FSBrowser/data/graphs.js.gz similarity index 100% rename from lib/EthernetWebServer/examples/FSBrowser/data/graphs.js.gz rename to lib/WebServer/examples/FSBrowser/data/graphs.js.gz diff --git a/lib/EthernetWebServer/examples/FSBrowser/data/index.htm b/lib/WebServer/examples/FSBrowser/data/index.htm similarity index 97% rename from lib/EthernetWebServer/examples/FSBrowser/data/index.htm rename to lib/WebServer/examples/FSBrowser/data/index.htm index 7941860..9cb560c 100644 --- a/lib/EthernetWebServer/examples/FSBrowser/data/index.htm +++ b/lib/WebServer/examples/FSBrowser/data/index.htm @@ -1,7 +1,7 @@