diff --git a/lib/NetworkUtils/NetworkMgr.h b/lib/NetworkUtils/NetworkMgr.h index 2369005..e500467 100644 --- a/lib/NetworkUtils/NetworkMgr.h +++ b/lib/NetworkUtils/NetworkMgr.h @@ -147,10 +147,11 @@ namespace NetworkUtils { bool resetWifi() { // set policy manual for work 13 ch { - wifi_country_t country = {"CN", 1, 13, WIFI_COUNTRY_POLICY_MANUAL}; #ifdef ARDUINO_ARCH_ESP8266 + wifi_country_t country = {"CN", 1, 13, WIFI_COUNTRY_POLICY_AUTO}; wifi_set_country(&country); #elif defined(ARDUINO_ARCH_ESP32) + const wifi_country_t country = {"CN", 1, 13, CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER, WIFI_COUNTRY_POLICY_AUTO}; esp_wifi_set_country(&country); #endif } diff --git a/platformio.ini b/platformio.ini index 2384515..f6e3c0f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -17,12 +17,13 @@ framework = arduino lib_deps = bblanchon/ArduinoJson@^7.0.4 ;ihormelnyk/OpenTherm Library@^1.1.5 - https://github.com/Laxilef/opentherm_library/archive/refs/heads/fix_lambda.zip + https://github.com/ihormelnyk/opentherm_library#master arduino-libraries/ArduinoMqttClient@^0.1.8 lennarthennigs/ESP Telnet@^2.2 gyverlibs/FileData@^1.0.2 gyverlibs/GyverPID@^3.3.2 gyverlibs/GyverBlinker@^1.0 + https://github.com/PaulStoffregen/OneWire#master milesburton/DallasTemperature@^3.11.0 laxilef/TinyLogger@^1.1.0 build_flags = @@ -67,9 +68,12 @@ build_flags = ${env.build_flags} board_build.ldscript = eagle.flash.4m1m.ld [esp32_defaults] -platform = espressif32@^6.7 +;platform = espressif32@^6.7 +platform = https://github.com/platformio/platform-espressif32.git platform_packages = - platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32/archive/refs/tags/2.0.17.zip + ;platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32/archive/refs/tags/2.0.17.zip + framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.1 + framework-arduinoespressif32-libs @ https://github.com/espressif/arduino-esp32/releases/download/3.0.1/esp32-arduino-libs-3.0.1.zip board_build.partitions = esp32_partitions.csv lib_deps = ${env.lib_deps} @@ -179,8 +183,7 @@ build_flags = [env:c3_mini] platform = ${esp32_defaults.platform} -platform_packages = - platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32/archive/refs/tags/2.0.17.zip +platform_packages = ${esp32_defaults.platform_packages} board = lolin_c3_mini board_build.partitions = ${esp32_defaults.board_build.partitions} lib_deps = diff --git a/src/MainTask.h b/src/MainTask.h index d15c8f0..bde3e7e 100644 --- a/src/MainTask.h +++ b/src/MainTask.h @@ -40,17 +40,19 @@ protected: unsigned long externalPumpStartTime = 0; bool telnetStarted = false; - const char* getTaskName() { + #if defined(ARDUINO_ARCH_ESP32) + const char* getTaskName() override { return "Main"; } - /*int getTaskCore() { + /*BaseType_t getTaskCore() override { return 1; }*/ - int getTaskPriority() { + int getTaskPriority() override { return 3; } + #endif void setup() {} diff --git a/src/MqttTask.h b/src/MqttTask.h index 1b650d1..e01c229 100644 --- a/src/MqttTask.h +++ b/src/MqttTask.h @@ -81,17 +81,19 @@ protected: bool connected = false; bool newConnection = false; - const char* getTaskName() { + #if defined(ARDUINO_ARCH_ESP32) + const char* getTaskName() override { return "Mqtt"; } - /*int getTaskCore() { + /*BaseType_t getTaskCore() override { return 1; }*/ - int getTaskPriority() { + int getTaskPriority() override { return 2; } + #endif inline bool isReadyForSend() { return millis() - this->connectedTime > this->readyForSendTime; diff --git a/src/OpenThermTask.h b/src/OpenThermTask.h index e3ba2d9..c136de8 100644 --- a/src/OpenThermTask.h +++ b/src/OpenThermTask.h @@ -33,18 +33,19 @@ protected: byte configuredFaultStateGpio = GPIO_IS_NOT_CONFIGURED; bool faultState = false; - - const char* getTaskName() { + #if defined(ARDUINO_ARCH_ESP32) + const char* getTaskName() override { return "OpenTherm"; } - int getTaskCore() { + BaseType_t getTaskCore() override { return 1; } - int getTaskPriority() { + int getTaskPriority() override { return 5; } + #endif void setup() { if (settings.system.unitSystem != UnitSystem::METRIC) { diff --git a/src/PortalTask.h b/src/PortalTask.h index d4f5be3..d5abc18 100644 --- a/src/PortalTask.h +++ b/src/PortalTask.h @@ -55,17 +55,19 @@ protected: unsigned long webServerChangeState = 0; unsigned long dnsServerChangeState = 0; - const char* getTaskName() { + #if defined(ARDUINO_ARCH_ESP32) + const char* getTaskName() override { return "Portal"; } - /*int getTaskCore() { + /*BaseType_t getTaskCore() override { return 1; }*/ - int getTaskPriority() { + int getTaskPriority() override { return 1; } + #endif void setup() { this->dnsServer->setTTL(0); diff --git a/src/RegulatorTask.h b/src/RegulatorTask.h index 5a8f788..a933b91 100644 --- a/src/RegulatorTask.h +++ b/src/RegulatorTask.h @@ -14,17 +14,19 @@ protected: float prevEtResult = 0; float prevPidResult = 0; - const char* getTaskName() { + #if defined(ARDUINO_ARCH_ESP32) + const char* getTaskName() override { return "Regulator"; } - /*int getTaskCore() { + /*BaseType_t getTaskCore() override { return 1; }*/ - int getTaskPriority() { + int getTaskPriority() override { return 4; } + #endif void loop() { float newTemp = vars.parameters.heatingSetpoint; diff --git a/src/SensorsTask.h b/src/SensorsTask.h index 33608f4..270e4c8 100644 --- a/src/SensorsTask.h +++ b/src/SensorsTask.h @@ -43,23 +43,30 @@ protected: float filteredIndoorTemp = 0; bool emptyIndoorTemp = true; -#if USE_BLE + #if defined(ARDUINO_ARCH_ESP32) + #if USE_BLE BLEClient* pBleClient = nullptr; bool initBleSensor = false; bool initBleNotify = false; -#endif + #endif - const char* getTaskName() { + const char* getTaskName() override { return "Sensors"; } - /*int getTaskCore() { - return 1; - }*/ + BaseType_t getTaskCore() override { + // https://github.com/h2zero/NimBLE-Arduino/issues/676 + #if USE_BLE && defined(CONFIG_BT_NIMBLE_PINNED_TO_CORE) + return CONFIG_BT_NIMBLE_PINNED_TO_CORE; + #else + return tskNO_AFFINITY; + #endif + } - int getTaskPriority() { + int getTaskPriority() override { return 4; } + #endif void loop() { bool indoorTempUpdated = false;