From 87cc668087a50fe7e6fe5b579a13fbb5fc6d12a0 Mon Sep 17 00:00:00 2001 From: k3ldar Date: Tue, 16 Jun 2026 18:46:28 +0200 Subject: [PATCH 1/3] Update PinGuard to include JTAG and SPRAM pins --- PowerControlHub/PinGuard.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/PowerControlHub/PinGuard.h b/PowerControlHub/PinGuard.h index 42b7cc7..cd69226 100644 --- a/PowerControlHub/PinGuard.h +++ b/PowerControlHub/PinGuard.h @@ -122,9 +122,13 @@ struct PinTableEntry // ── ESP32-S3 Dev Module ─────────────────────────────────────────────────────── // Hard blocks // GPIO 26–32 : connected to internal Octal flash/PSRAM — hard for ALL uses +// GPIO 35–37 : Octal PSRAM control pins (CS, CK, DQS) — hard for ALL uses +// only when PSRAM is fitted (BOARD_HAS_PSRAM / CONFIG_SPIRAM_SUPPORT) // GPIO 45–46 : input-only on S3 silicon (promoted to Hard for output uses) // Advisory // GPIO 0,3,19,20,45,46 : strapping / USB / UART0 +// GPIO 39–42 : USB JTAG (TMS, TCK, TDI, TDO) — usable as GPIO if JTAG is +// disabled in eFuse, but risky otherwise static const PinTableEntry _pinTable[] PROGMEM = { // Flash/PSRAM-reserved — hard for ALL uses { 26, PinCategory::Hard }, @@ -134,6 +138,12 @@ static const PinTableEntry _pinTable[] PROGMEM = { { 30, PinCategory::Hard }, { 31, PinCategory::Hard }, { 32, PinCategory::Hard }, + // Octal PSRAM control pins (CS, CK, DQS) — hard for ALL uses when PSRAM fitted +#if defined(BOARD_HAS_PSRAM) || defined(CONFIG_SPIRAM_SUPPORT) + { 35, PinCategory::Hard }, + { 36, PinCategory::Hard }, + { 37, PinCategory::Hard }, +#endif // Input-only on S3 — Advisory here; validate() promotes to Hard for output { 45, PinCategory::Advisory }, { 46, PinCategory::Advisory }, @@ -142,6 +152,11 @@ static const PinTableEntry _pinTable[] PROGMEM = { { 3, PinCategory::Advisory }, // UART0 RX { 19, PinCategory::Advisory }, // USB D- { 20, PinCategory::Advisory }, // USB D+ + // USB JTAG — advisory for all uses (can be repurposed if JTAG fused out) + { 39, PinCategory::Advisory }, // JTAG TMS + { 40, PinCategory::Advisory }, // JTAG TCK + { 41, PinCategory::Advisory }, // JTAG TDI + { 42, PinCategory::Advisory }, // JTAG TDO }; static constexpr uint8_t _pinTableSize = sizeof(_pinTable) / sizeof(_pinTable[0]); From 42d0bd9c66d3486b1247fa3f8a2f778257ff08e1 Mon Sep 17 00:00:00 2001 From: k3ldar Date: Tue, 16 Jun 2026 18:47:22 +0200 Subject: [PATCH 2/3] Update color handling and allow updating of relays over wifi --- Docs/Commands.md | 2 + Docs/PinGuard.md | 5 + Docs/Pins.md | 14 ++ PowerControlHub/ConfigNetworkHandler.cpp | 253 ++++++++++++++++++++++- PowerControlHub/PowerControlHub.vcxproj | 4 +- PowerControlHub/RelayNetworkHandler.cpp | 2 - 6 files changed, 274 insertions(+), 6 deletions(-) diff --git a/Docs/Commands.md b/Docs/Commands.md index ee1780c..16e0d46 100644 --- a/Docs/Commands.md +++ b/Docs/Commands.md @@ -239,6 +239,8 @@ WiFi commands return JSON (`{"success":true}` or `{"success":false,"message":" | `R5` — Get All Relay Config | `R5` | Returns full relay config as a series of `R6`–`R11` responses. No params. | | `R6` — Relay Rename | `R6:2=Bilge` or `R6:2=Bilge\|Bilge Pump` | Rename relay `idx`. Param: `=` or `=`. Short ≤5 chars (home page), long ≤20 chars (buttons page). | | `R7` — Set Button Color | `R7:2=4` or `R7:2=255` (clear) | Set active (on) button colour for relay `idx`. `0`=Blue, `1`=Green, `2`=Orange, `3`=Purple, `4`=Red, `5`=Yellow, `255`=clear. | + +| `R7` — Set Button Color | `R7:2=4` or `R7:2=255` (clear) | Set active (on) button colour for relay `idx`. Accepts Nextion picture IDs (as stored on the device): `2`=Blue, `3`=Green, `4`=Grey, `5`=Orange, `6`=Red, `7`=Yellow, `255`=clear. | | `R8` — Set Default State | `R8:3=1` | Power-on default state for relay `idx`: `0`=off, `1`=on. | | `R9` — Link Relays | `R9:3=4` (link) — `R9:3=255` (unlink) | Link two relays so toggling one toggles the other. `255` to unlink. | | `R10` — Set Action Type | `R10:2=0` / `R10:2=1` / `R10:2=2` | Set relay action type: `0`=Default, `1`=Horn (activates sound system), `2`=NightRelay (activates at night per light sensor). Only one relay per type at a time. | diff --git a/Docs/PinGuard.md b/Docs/PinGuard.md index 3ff0317..91a5643 100644 --- a/Docs/PinGuard.md +++ b/Docs/PinGuard.md @@ -151,6 +151,7 @@ Selected when `CONFIG_IDF_TARGET_ESP32S3` is defined by the toolchain. | GPIO | Reason | |---|---| | 26, 27, 28, 29, 30, 31, 32 | Connected to internal Octal flash/PSRAM — any access causes immediate crash | +| 35, 36, 37 | Octal PSRAM control pins (CS, CK, DQS) — only blocked when `BOARD_HAS_PSRAM` or `CONFIG_SPIRAM_SUPPORT` is defined (i.e. PSRAM is fitted) | #### Hard-blocked for output uses only (safe for input) @@ -166,6 +167,10 @@ Selected when `CONFIG_IDF_TARGET_ESP32S3` is defined by the toolchain. | 3 | UART0 RX | | 19 | USB D− | | 20 | USB D+ | +| 39 | JTAG TMS — usable as GPIO if JTAG disabled in eFuse | +| 40 | JTAG TCK — usable as GPIO if JTAG disabled in eFuse | +| 41 | JTAG TDI — usable as GPIO if JTAG disabled in eFuse | +| 42 | JTAG TDO — usable as GPIO if JTAG disabled in eFuse | | 45 | Boot-mode strapping | | 46 | Boot-mode strapping | diff --git a/Docs/Pins.md b/Docs/Pins.md index 3a1a47b..d47aacd 100644 --- a/Docs/Pins.md +++ b/Docs/Pins.md @@ -124,6 +124,20 @@ GPIO34, 35, 36 (SVP), and 39 (SVN) are **input-only** — they have no output dr | **1, 3** | UART0 TX/RX — used by `Serial` (the USB-UART debug port). Do not reassign unless `Serial` is not in use. | | **34–39** | Input-only — cannot drive outputs. Safe for analog/digital sensor reads only. | +> **ESP32-S3 note:** GPIO 34–38 are output-capable on the S3. However, if PSRAM is fitted (N8 variant), GPIO **35, 36, 37** are consumed by the Octal PSRAM interface and must not be used for any purpose — see the S3-specific rows below. + +#### ESP32-S3 only — PSRAM (conditionally blocked) + +| GPIO(s) | Reason | +|---|---| +| **35, 36, 37** | ⛔ Octal PSRAM control pins (CS, CK, DQS). Only blocked when PSRAM is enabled at compile time (`BOARD_HAS_PSRAM` / `CONFIG_SPIRAM_SUPPORT`). On non-PSRAM S3 boards these pins are safe. | + +#### ESP32-S3 only — JTAG (advisory) + +| GPIO(s) | Reason | +|---|---| +| **39, 40, 41, 42** | ⚠️ USB JTAG (TMS, TCK, TDI, TDO). Can be used as GPIO if JTAG is disabled in eFuse, but risky otherwise. | + --- ## 5. Porting Caveats diff --git a/PowerControlHub/ConfigNetworkHandler.cpp b/PowerControlHub/ConfigNetworkHandler.cpp index cda232b..6a6703b 100644 --- a/PowerControlHub/ConfigNetworkHandler.cpp +++ b/PowerControlHub/ConfigNetworkHandler.cpp @@ -161,8 +161,6 @@ CommandResult ConfigNetworkHandler::handleRequest(const char* method, } else { - if (color < DefaultValue) - color += 2; result = (_relayController->setButtonColor(relayIndex, color) == RelayResult::Success) ? ConfigResult::Success : ConfigResult::Failed; } @@ -706,6 +704,257 @@ CommandResult ConfigNetworkHandler::handleRequest(const char* method, result = ConfigResult::InvalidParameter; } } + else if (SystemFunctions::commandMatches(command, SensorConfigGetAll)) + { + // S0 — return all local sensor config entries as JSON array + Config* config = ConfigManager::getConfigPtr(); + if (config == nullptr) + { + result = ConfigResult::InvalidConfig; + } + else + { + int written = snprintf(responseBuffer, bufferSize, + "\"count\":%u,\"sensors\":[", config->sensors.count); + + for (uint8_t i = 0; i < config->sensors.count && i < ConfigMaxSensors; i++) + { + const SensorEntry& e = config->sensors.sensors[i]; + int n = snprintf(responseBuffer + written, bufferSize - written, + "%s{\"i\":%u,\"t\":%u,\"n\":\"%s\",\"p0\":%u,\"p1\":%u," + "\"u0\":%d,\"u1\":%d,\"o0\":%d,\"o1\":%d,\"en\":%u}", + i > 0 ? "," : "", + i, + static_cast(e.sensorType), + e.name, + e.pins[0], + e.pins[1], + e.options1[0], + e.options1[1], + e.options2[0], + e.options2[1], + e.enabled ? 1u : 0u); + if (n < 0 || written + n >= static_cast(bufferSize)) + break; + written += n; + } + + snprintf(responseBuffer + written, bufferSize - written, "]"); + result = ConfigResult::Success; + } + } + else if (SystemFunctions::commandMatches(command, SensorConfigAddUpdate)) + { + // S1:i=;t=;o0=;o1= + Config* config = ConfigManager::getConfigPtr(); + if (config == nullptr) + { + result = ConfigResult::InvalidConfig; + } + else + { + uint8_t idx, type; + int8_t opt0, opt1; + if (!getParamValueU8t(params, paramCount, "i", idx) || + !getParamValueU8t(params, paramCount, "t", type) || + !getParamValue8t(params, paramCount, "o0", opt0) || + !getParamValue8t(params, paramCount, "o1", opt1) || + idx >= ConfigMaxSensors) + { + result = ConfigResult::InvalidParameter; + } + else + { + SensorEntry& entry = config->sensors.sensors[idx]; + entry.enabled = true; + entry.sensorType = static_cast(type); + entry.options1[0] = opt0; + entry.options1[1] = opt1; + + if (idx >= config->sensors.count) + config->sensors.count = idx + 1; + + result = ConfigResult::Success; + } + } + } + else if (SystemFunctions::commandMatches(command, SensorConfigRemove)) + { + // S2:v= + Config* config = ConfigManager::getConfigPtr(); + if (config == nullptr) + { + result = ConfigResult::InvalidConfig; + } + else if (paramCount < 1) + { + result = ConfigResult::InvalidParameter; + } + else + { + uint8_t idx; + if (!getParamValueU8t(params, paramCount, "v", idx)) + { + result = ConfigResult::InvalidParameter; + } + else if (idx >= ConfigMaxSensors) + { + result = ConfigResult::InvalidParameter; + } + else if (idx >= config->sensors.count) + { + // Already absent — treat as success + result = ConfigResult::Success; + } + else + { + SensorEntry& entry = config->sensors.sensors[idx]; + entry.enabled = false; + entry.sensorType = static_cast(0); + entry.name[0] = '\0'; + memset(entry.pins, PinDisabled, sizeof(entry.pins)); + memset(entry.options1, 0, sizeof(entry.options1)); + memset(entry.options2, 0, sizeof(entry.options2)); + + result = ConfigResult::Success; + } + } + } + else if (SystemFunctions::commandMatches(command, SensorConfigRename)) + { + // S3:= + Config* config = ConfigManager::getConfigPtr(); + if (config == nullptr) + { + result = ConfigResult::InvalidConfig; + } + else if (paramCount < 1) + { + result = ConfigResult::InvalidParameter; + } + else + { + uint8_t idx = static_cast(strtoul(params[0].key, nullptr, 0)); + if (idx >= ConfigMaxSensors || idx >= config->sensors.count || params[0].value[0] == '\0') + { + result = ConfigResult::InvalidParameter; + } + else + { + SensorEntry& entry = config->sensors.sensors[idx]; + strncpy(entry.name, params[0].value, sizeof(entry.name) - 1); + entry.name[sizeof(entry.name) - 1] = '\0'; + result = ConfigResult::Success; + } + } + } + else if (SystemFunctions::commandMatches(command, SensorConfigSetPin)) + { + // S4:i=;s=;v= + Config* config = ConfigManager::getConfigPtr(); + if (config == nullptr) + { + result = ConfigResult::InvalidConfig; + } + else + { + uint8_t idx, slot, pin; + if (!getParamValueU8t(params, paramCount, "i", idx) || + !getParamValueU8t(params, paramCount, "s", slot) || + !getParamValueU8t(params, paramCount, "v", pin) || + idx >= ConfigMaxSensors || + slot >= ConfigMaxSensorPins) + { + result = ConfigResult::InvalidParameter; + } + else + { + config->sensors.sensors[idx].pins[slot] = pin; + result = ConfigResult::Success; + } + } + } + else if (SystemFunctions::commandMatches(command, SensorConfigSetEnabled)) + { + // S5:=<0|1> + Config* config = ConfigManager::getConfigPtr(); + if (config == nullptr) + { + result = ConfigResult::InvalidConfig; + } + else if (paramCount < 1) + { + result = ConfigResult::InvalidParameter; + } + else + { + uint8_t idx = static_cast(strtoul(params[0].key, nullptr, 0)); + bool enabled = SystemFunctions::parseBooleanValue(params[0].value); + + if (idx >= ConfigMaxSensors || idx >= config->sensors.count) + { + result = ConfigResult::InvalidParameter; + } + else + { + config->sensors.sensors[idx].enabled = enabled; + result = ConfigResult::Success; + } + } + } + else if (SystemFunctions::commandMatches(command, SensorConfigSetOptions)) + { + // S6:i=;s=;o=;v= + Config* config = ConfigManager::getConfigPtr(); + if (config == nullptr) + { + result = ConfigResult::InvalidConfig; + } + else + { + uint8_t idx, slot, group; + if (!getParamValueU8t(params, paramCount, "i", idx) || + !getParamValueU8t(params, paramCount, "s", slot) || + !getParamValueU8t(params, paramCount, "o", group) || + idx >= ConfigMaxSensors) + { + result = ConfigResult::InvalidParameter; + } + else + { + if (group == 0 && slot < 2) + { + int8_t val8; + if (!getParamValue8t(params, paramCount, "v", val8)) + { + result = ConfigResult::InvalidParameter; + } + else + { + config->sensors.sensors[idx].options1[slot] = val8; + result = ConfigResult::Success; + } + } + else if (group == 1 && slot < 2) + { + int16_t val16; + if (!getParamValue16t(params, paramCount, "v", val16)) + { + result = ConfigResult::InvalidParameter; + } + else + { + config->sensors.sensors[idx].options2[slot] = val16; + result = ConfigResult::Success; + } + } + else + { + result = ConfigResult::InvalidParameter; + } + } + } + } else if (SystemFunctions::commandMatches(command, ExternalSensorGetAll)) { // E0 — return all remote sensor config entries as JSON array diff --git a/PowerControlHub/PowerControlHub.vcxproj b/PowerControlHub/PowerControlHub.vcxproj index 3c5ed99..70eb16e 100644 --- a/PowerControlHub/PowerControlHub.vcxproj +++ b/PowerControlHub/PowerControlHub.vcxproj @@ -295,7 +295,7 @@ VisualMicroDebugger - $(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SensorManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SdFat\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\SPI\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\WiFi\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Network\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\NextionControl\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\TinyGPSPlus\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\EEPROM\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\HTTPClient\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\NetworkClientSecure\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Update\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\Ds1302\src;$(ProjectDir)..\..\..\program files\microsoft visual studio\18\insiders\common7\ide\extensions\hti01q5k.0wk\Micro Platforms\default;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\dio_qspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\cores\esp32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\variants\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\newlib\platform_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\esp_additions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\dma\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\ldo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\debug_probe\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\tuning_scheme_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\power_supply\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\tlsf;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\register;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\platform_port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\port\include\private;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\deprecated_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_timer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps\sntp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\lwip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\arch;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\sys;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\gemmlowp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\flatbuffers\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\ruy;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\kissfft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\driver\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\conversions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\deprecated;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_pm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_ringbuf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gpio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_pcnt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gptimer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_spi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_mcpwm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ana_cmpr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2s\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_dac\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_rmt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_tsens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_uart\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\vfs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ledc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_parlio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_usb_serial_jtag\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\app\ember_coupling;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib\dnssd;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\OpenThread;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\jsoncpp\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlfaultinjection\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlassert\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlio\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\zzz_generated\app-common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-idf\espressif__esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\zap_common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\utils;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_bridge;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\nimble;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\route_hook;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_eth\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_event\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\include\esp32c3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\osi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\api\include\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\blufi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\hci_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\ble_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\storage;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\dfu;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\mbt;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ans\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\bas\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\dis\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gatt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\htp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ias\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ipss\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\lls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\prox\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cts\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\tps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\sps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cte\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\util\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\ram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ras\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\porting\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\npl\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\esp-hci\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include\local;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\nan_app\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_netif\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\library;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\esp_crt_bundle\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\everest\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\diskio;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\vfs;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wear_levelling\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_partition\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\bootloader_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_app_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_bootloader_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_vfs_console\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spi_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_secure_cert_mgr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_parser\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__jsmn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spiffs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_generator\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\json\cJSON;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__mdns\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_delta_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_encrypted_img\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_insights\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diagnostics\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\esp-tts\esp_tts_chinese\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_mm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_security\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\pthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\xip_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_trace\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\esp_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_coex\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_gdbstub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\unity\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\cmock\CMock\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_bitscrambler\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\http_parser;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls\esp-tls-crypto;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\deprecated\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_isp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\dvp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ppa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\hw_ver2\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hal_ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\tcp_transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\rgb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protobuf-c\protobuf-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\security;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\transports;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\crypto\srp6a;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\proto-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_local_ctrl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include\port\xtensa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mqtt\esp-mqtt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_sec_provider\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\perfmon\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\rt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\touch_element\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\usb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wifi_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\src\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__rmaker_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__cbor\tinycbor\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\src\rtc_store;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rcp_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base\isa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dotprod\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\mem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\hann\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_harris\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\flat_top\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\iir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sqrt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fft\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dct\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\conv\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf_imu13states\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\chmorgan__esp-libhelix-mp3\libhelix-mp3\pub;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-modbus\freemodbus\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zboss-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include\radio_spinel;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\port_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\libsodium\src\libsodium\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\command\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_schedule\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__network_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rainmaker\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__qrcode\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\joltwallet__littlefs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\tinyusb\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fb_gfx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\xtensa-esp-elf\esp32s3\no-rtti;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\backward;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include-fixed;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src + $(ProjectDir)..\PowerControlHub;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SensorManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SdFat\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\SPI\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\WiFi\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Network\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\NextionControl\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\TinyGPSPlus\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\EEPROM\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\HTTPClient\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\NetworkClientSecure\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Update\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\Ds1302\src;$(ProjectDir)..\..\..\program files\microsoft visual studio\18\insiders\common7\ide\extensions\hti01q5k.0wk\Micro Platforms\default;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\dio_qspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\cores\esp32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\variants\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\newlib\platform_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\esp_additions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\dma\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\ldo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\debug_probe\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\tuning_scheme_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\power_supply\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\tlsf;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\register;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\platform_port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\port\include\private;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\deprecated_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_timer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps\sntp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\lwip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\arch;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\sys;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\gemmlowp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\flatbuffers\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\ruy;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\kissfft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\driver\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\conversions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\deprecated;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_pm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_ringbuf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gpio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_pcnt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gptimer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_spi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_mcpwm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ana_cmpr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2s\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_dac\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_rmt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_tsens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_uart\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\vfs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ledc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_parlio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_usb_serial_jtag\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\app\ember_coupling;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib\dnssd;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\OpenThread;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\jsoncpp\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlfaultinjection\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlassert\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlio\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\zzz_generated\app-common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-idf\espressif__esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\zap_common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\utils;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_bridge;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\nimble;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\route_hook;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_eth\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_event\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\include\esp32c3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\osi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\api\include\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\blufi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\hci_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\ble_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\storage;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\dfu;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\mbt;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ans\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\bas\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\dis\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gatt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\htp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ias\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ipss\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\lls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\prox\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cts\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\tps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\sps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cte\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\util\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\ram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ras\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\porting\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\npl\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\esp-hci\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include\local;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\nan_app\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_netif\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\library;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\esp_crt_bundle\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\everest\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\diskio;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\vfs;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wear_levelling\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_partition\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\bootloader_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_app_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_bootloader_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_vfs_console\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spi_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_secure_cert_mgr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_parser\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__jsmn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spiffs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_generator\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\json\cJSON;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__mdns\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_delta_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_encrypted_img\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_insights\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diagnostics\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\esp-tts\esp_tts_chinese\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_mm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_security\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\pthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\xip_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_trace\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\esp_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_coex\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_gdbstub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\unity\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\cmock\CMock\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_bitscrambler\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\http_parser;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls\esp-tls-crypto;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\deprecated\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_isp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\dvp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ppa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\hw_ver2\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hal_ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\tcp_transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\rgb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protobuf-c\protobuf-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\security;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\transports;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\crypto\srp6a;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\proto-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_local_ctrl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include\port\xtensa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mqtt\esp-mqtt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_sec_provider\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\perfmon\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\rt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\touch_element\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\usb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wifi_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\src\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__rmaker_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__cbor\tinycbor\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\src\rtc_store;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rcp_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base\isa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dotprod\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\mem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\hann\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_harris\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\flat_top\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\iir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sqrt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fft\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dct\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\conv\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf_imu13states\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\chmorgan__esp-libhelix-mp3\libhelix-mp3\pub;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-modbus\freemodbus\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zboss-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include\radio_spinel;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\port_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\libsodium\src\libsodium\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\command\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_schedule\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__network_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rainmaker\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__qrcode\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\joltwallet__littlefs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\tinyusb\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fb_gfx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\xtensa-esp-elf\esp32s3\no-rtti;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\backward;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include-fixed;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src $(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\bin\xtensa-esp32s3-elf-g++ $(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\bin\xtensa-esp32s3-elf-g++ false @@ -322,7 +322,7 @@ - $(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SensorManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SdFat\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\SPI\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\WiFi\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Network\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\NextionControl\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\TinyGPSPlus\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\EEPROM\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\HTTPClient\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\NetworkClientSecure\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Update\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\Ds1302\src;$(ProjectDir)..\..\..\program files\microsoft visual studio\18\insiders\common7\ide\extensions\hti01q5k.0wk\Micro Platforms\default;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\dio_qspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\cores\esp32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\variants\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\newlib\platform_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\esp_additions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\dma\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\ldo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\debug_probe\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\tuning_scheme_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\power_supply\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\tlsf;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\register;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\platform_port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\port\include\private;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\deprecated_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_timer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps\sntp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\lwip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\arch;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\sys;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\gemmlowp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\flatbuffers\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\ruy;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\kissfft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\driver\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\conversions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\deprecated;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_pm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_ringbuf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gpio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_pcnt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gptimer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_spi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_mcpwm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ana_cmpr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2s\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_dac\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_rmt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_tsens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_uart\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\vfs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ledc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_parlio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_usb_serial_jtag\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\app\ember_coupling;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib\dnssd;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\OpenThread;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\jsoncpp\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlfaultinjection\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlassert\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlio\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\zzz_generated\app-common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-idf\espressif__esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\zap_common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\utils;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_bridge;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\nimble;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\route_hook;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_eth\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_event\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\include\esp32c3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\osi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\api\include\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\blufi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\hci_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\ble_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\storage;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\dfu;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\mbt;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ans\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\bas\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\dis\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gatt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\htp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ias\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ipss\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\lls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\prox\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cts\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\tps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\sps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cte\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\util\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\ram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ras\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\porting\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\npl\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\esp-hci\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include\local;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\nan_app\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_netif\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\library;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\esp_crt_bundle\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\everest\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\diskio;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\vfs;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wear_levelling\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_partition\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\bootloader_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_app_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_bootloader_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_vfs_console\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spi_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_secure_cert_mgr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_parser\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__jsmn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spiffs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_generator\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\json\cJSON;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__mdns\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_delta_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_encrypted_img\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_insights\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diagnostics\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\esp-tts\esp_tts_chinese\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_mm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_security\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\pthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\xip_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_trace\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\esp_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_coex\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_gdbstub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\unity\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\cmock\CMock\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_bitscrambler\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\http_parser;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls\esp-tls-crypto;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\deprecated\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_isp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\dvp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ppa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\hw_ver2\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hal_ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\tcp_transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\rgb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protobuf-c\protobuf-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\security;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\transports;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\crypto\srp6a;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\proto-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_local_ctrl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include\port\xtensa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mqtt\esp-mqtt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_sec_provider\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\perfmon\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\rt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\touch_element\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\usb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wifi_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\src\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__rmaker_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__cbor\tinycbor\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\src\rtc_store;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rcp_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base\isa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dotprod\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\mem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\hann\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_harris\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\flat_top\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\iir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sqrt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fft\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dct\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\conv\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf_imu13states\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\chmorgan__esp-libhelix-mp3\libhelix-mp3\pub;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-modbus\freemodbus\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zboss-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include\radio_spinel;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\port_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\libsodium\src\libsodium\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\command\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_schedule\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__network_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rainmaker\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__qrcode\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\joltwallet__littlefs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\tinyusb\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fb_gfx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\xtensa-esp-elf\esp32s3\no-rtti;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\backward;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include-fixed;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src;%(AdditionalIncludeDirectories) + $(ProjectDir)..\PowerControlHub;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SensorManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SdFat\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\SPI\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\WiFi\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Network\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\NextionControl\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\TinyGPSPlus\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\EEPROM\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\HTTPClient\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\NetworkClientSecure\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Update\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\Ds1302\src;$(ProjectDir)..\..\..\program files\microsoft visual studio\18\insiders\common7\ide\extensions\hti01q5k.0wk\Micro Platforms\default;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\dio_qspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\cores\esp32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\variants\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\newlib\platform_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\esp_additions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\dma\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\ldo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\debug_probe\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\tuning_scheme_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\power_supply\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\tlsf;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\register;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\platform_port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\port\include\private;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\deprecated_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_timer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps\sntp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\lwip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\arch;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\sys;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\gemmlowp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\flatbuffers\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\ruy;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\kissfft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\driver\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\conversions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\deprecated;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_pm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_ringbuf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gpio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_pcnt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gptimer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_spi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_mcpwm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ana_cmpr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2s\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_dac\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_rmt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_tsens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_uart\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\vfs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ledc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_parlio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_usb_serial_jtag\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\app\ember_coupling;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib\dnssd;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\OpenThread;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\jsoncpp\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlfaultinjection\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlassert\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlio\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\zzz_generated\app-common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-idf\espressif__esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\zap_common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\utils;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_bridge;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\nimble;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\route_hook;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_eth\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_event\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\include\esp32c3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\osi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\api\include\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\blufi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\hci_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\ble_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\storage;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\dfu;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\mbt;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ans\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\bas\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\dis\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gatt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\htp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ias\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ipss\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\lls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\prox\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cts\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\tps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\sps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cte\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\util\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\ram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ras\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\porting\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\npl\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\esp-hci\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include\local;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\nan_app\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_netif\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\library;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\esp_crt_bundle\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\everest\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\diskio;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\vfs;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wear_levelling\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_partition\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\bootloader_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_app_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_bootloader_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_vfs_console\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spi_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_secure_cert_mgr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_parser\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__jsmn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spiffs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_generator\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\json\cJSON;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__mdns\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_delta_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_encrypted_img\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_insights\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diagnostics\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\esp-tts\esp_tts_chinese\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_mm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_security\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\pthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\xip_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_trace\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\esp_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_coex\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_gdbstub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\unity\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\cmock\CMock\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_bitscrambler\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\http_parser;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls\esp-tls-crypto;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\deprecated\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_isp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\dvp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ppa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\hw_ver2\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hal_ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\tcp_transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\rgb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protobuf-c\protobuf-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\security;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\transports;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\crypto\srp6a;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\proto-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_local_ctrl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include\port\xtensa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mqtt\esp-mqtt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_sec_provider\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\perfmon\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\rt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\touch_element\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\usb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wifi_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\src\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__rmaker_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__cbor\tinycbor\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\src\rtc_store;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rcp_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base\isa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dotprod\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\mem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\hann\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_harris\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\flat_top\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\iir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sqrt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fft\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dct\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\conv\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf_imu13states\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\chmorgan__esp-libhelix-mp3\libhelix-mp3\pub;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-modbus\freemodbus\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zboss-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include\radio_spinel;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\port_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\libsodium\src\libsodium\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\command\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_schedule\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__network_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rainmaker\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__qrcode\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\joltwallet__littlefs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\tinyusb\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fb_gfx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\xtensa-esp-elf\esp32s3\no-rtti;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\backward;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include-fixed;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src;%(AdditionalIncludeDirectories) $(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\bin\xtensa-esp32s3-elf-g++ c++2a gnu11 diff --git a/PowerControlHub/RelayNetworkHandler.cpp b/PowerControlHub/RelayNetworkHandler.cpp index 144b311..a65b51b 100644 --- a/PowerControlHub/RelayNetworkHandler.cpp +++ b/PowerControlHub/RelayNetworkHandler.cpp @@ -149,8 +149,6 @@ CommandResult RelayNetworkHandler::handleRequest(const char* method, formatJsonResponse(responseBuffer, bufferSize, false, "Invalid relay index"); return CommandResult::error(InvalidCommandParameters); } - if (color < DefaultValue) - color += 2; _relayController->setButtonColor(relayIndex, color); formatJsonResponse(responseBuffer, bufferSize, true); return CommandResult::ok(); From 0aa0090646653cf525b4056bc15bb8022b62918b Mon Sep 17 00:00:00 2001 From: k3ldar Date: Wed, 1 Jul 2026 06:24:03 +0200 Subject: [PATCH 3/3] Local sensor configuration --- Docs/Commands.md | 2 +- PowerControlHub/ConfigNetworkHandler.cpp | 251 ------ PowerControlHub/PowerControlHub.vcxproj | 9 +- .../PowerControlHub.vcxproj.filters | 9 + PowerControlHub/PowerControlHubApp.cpp | 3 +- PowerControlHub/PowerControlHubApp.h | 2 + PowerControlHub/SensorConfig.h | 122 +++ .../SensorConfigNetworkHandler.cpp | 307 +++++++ PowerControlHub/SensorConfigNetworkHandler.h | 47 + PowerControlHub/SensorNetworkHandler.cpp | 525 +++++++++-- PowerControlHub/SensorNetworkHandler.h | 3 +- PowerControlHub/SystemDefinitions.h | 2 + PowerControlHub/WifiServer.cpp | 12 +- PowerControlHubApp/App.xaml.cs | 102 ++- PowerControlHubApp/AppShell.xaml | 12 + PowerControlHubApp/AppShell.xaml.cs | 2 + PowerControlHubApp/Internal/Constants.cs | 134 ++- PowerControlHubApp/MauiProgram.cs | 65 +- .../Messages/ConfigConnectionStatusChanged.cs | 3 + .../Models/ExternalSensorConfigModel.cs | 68 ++ PowerControlHubApp/Models/Json/IndexModel.cs | 7 + .../Models/Json/SensorsModel.cs | 19 +- .../Models/LocalSensorConfigModel.cs | 103 +++ .../Models/SensorTypeDescriptorModel.cs | 60 ++ PowerControlHubApp/PowerControlHubApp.csproj | 16 + .../Resources/Styles/SensorCardStyles.xaml | 60 ++ PowerControlHubApp/Services/ConfigCommand.cs | 11 + .../Services/ConfigConnection.cs | 437 +++++++++ PowerControlHubApp/Services/ConfigPoller.cs | 184 ++++ .../Services/DashboardConnection.cs | 126 +++ .../Services/DashboardPoller.cs | 78 +- .../Services/IConfigConnection.cs | 34 + .../Services/IDashboardConnection.cs | 9 + PowerControlHubApp/Services/IMessageBus.cs | 8 + PowerControlHubApp/Services/MessageBus.cs | 92 ++ PowerControlHubApp/Services/MessageTypes.cs | 8 + .../Services/PowerHubService.cs | 312 ++----- .../Services/SensorMetaCache.cs | 98 ++ .../ViewModels/DashboardViewModel.cs | 52 +- .../ExternalSensorConfigViewModel.cs | 101 +++ .../ExternalSensorDetailViewModel.cs | 310 +++++++ .../ViewModels/LocalSensorConfigViewModel.cs | 103 +++ .../ViewModels/LocalSensorDetailViewModel.cs | 846 ++++++++++++++++++ .../ViewModels/RelayDetailViewModel.cs | 12 +- .../ViewModels/RelayViewModel.cs | 18 +- PowerControlHubApp/Views/DashboardPage.xaml | 8 - .../Views/ExternalSensorConfigPage.xaml | 146 +++ .../Views/ExternalSensorConfigPage.xaml.cs | 21 + .../Views/ExternalSensorDetailPage.xaml | 42 + .../Views/ExternalSensorDetailPage.xaml.cs | 21 + .../Views/LocalSensorConfigPage.xaml | 213 +++++ .../Views/LocalSensorConfigPage.xaml.cs | 21 + .../Views/LocalSensorDetailPage.xaml | 239 +++++ .../Views/LocalSensorDetailPage.xaml.cs | 18 + PowerControlHubApp/Views/RelayDetailPage.xaml | 36 +- .../BinaryPresenceSensorTemplate.xaml | 6 +- .../Views/Templates/Dht11SensorTemplate.xaml | 6 +- .../Templates/GenericSensorTemplate.xaml | 6 +- .../Views/Templates/GpsSensorTemplate.xaml | 6 +- .../Views/Templates/LightSensorTemplate.xaml | 6 +- .../Views/Templates/SystemSensorTemplate.xaml | 6 +- .../Templates/VoltageSensorTemplate.xaml | 6 +- .../Views/Templates/WaterSensorTemplate.xaml | 6 +- plan.md | 6 + 64 files changed, 4925 insertions(+), 678 deletions(-) create mode 100644 PowerControlHub/SensorConfig.h create mode 100644 PowerControlHub/SensorConfigNetworkHandler.cpp create mode 100644 PowerControlHub/SensorConfigNetworkHandler.h create mode 100644 PowerControlHubApp/Messages/ConfigConnectionStatusChanged.cs create mode 100644 PowerControlHubApp/Models/ExternalSensorConfigModel.cs create mode 100644 PowerControlHubApp/Models/LocalSensorConfigModel.cs create mode 100644 PowerControlHubApp/Models/SensorTypeDescriptorModel.cs create mode 100644 PowerControlHubApp/Resources/Styles/SensorCardStyles.xaml create mode 100644 PowerControlHubApp/Services/ConfigCommand.cs create mode 100644 PowerControlHubApp/Services/ConfigConnection.cs create mode 100644 PowerControlHubApp/Services/ConfigPoller.cs create mode 100644 PowerControlHubApp/Services/DashboardConnection.cs create mode 100644 PowerControlHubApp/Services/IConfigConnection.cs create mode 100644 PowerControlHubApp/Services/IDashboardConnection.cs create mode 100644 PowerControlHubApp/Services/IMessageBus.cs create mode 100644 PowerControlHubApp/Services/MessageBus.cs create mode 100644 PowerControlHubApp/Services/MessageTypes.cs create mode 100644 PowerControlHubApp/Services/SensorMetaCache.cs create mode 100644 PowerControlHubApp/ViewModels/ExternalSensorConfigViewModel.cs create mode 100644 PowerControlHubApp/ViewModels/ExternalSensorDetailViewModel.cs create mode 100644 PowerControlHubApp/ViewModels/LocalSensorConfigViewModel.cs create mode 100644 PowerControlHubApp/ViewModels/LocalSensorDetailViewModel.cs create mode 100644 PowerControlHubApp/Views/ExternalSensorConfigPage.xaml create mode 100644 PowerControlHubApp/Views/ExternalSensorConfigPage.xaml.cs create mode 100644 PowerControlHubApp/Views/ExternalSensorDetailPage.xaml create mode 100644 PowerControlHubApp/Views/ExternalSensorDetailPage.xaml.cs create mode 100644 PowerControlHubApp/Views/LocalSensorConfigPage.xaml create mode 100644 PowerControlHubApp/Views/LocalSensorConfigPage.xaml.cs create mode 100644 PowerControlHubApp/Views/LocalSensorDetailPage.xaml create mode 100644 PowerControlHubApp/Views/LocalSensorDetailPage.xaml.cs create mode 100644 plan.md diff --git a/Docs/Commands.md b/Docs/Commands.md index 16e0d46..9101052 100644 --- a/Docs/Commands.md +++ b/Docs/Commands.md @@ -338,7 +338,7 @@ Route: `/api/config/{command}` (shares the config route) | Command | Example | Purpose | |---|---|---| -| `S0` — Get All Sensor Config | `S0` | Returns one `S0` frame per configured sensor: `i=;t=;n=;p0=;p1=;u0=;u1=;o0=;o1=;en=<0\|1>`. The labels in the response are read-only aliases: `p0`/`p1` = `pins[0]`/`pins[1]`; `u0`/`u1` = `options1[0]`/`options1[1]` (signed byte); `o0`/`o1` = `options2[0]`/`options2[1]` (signed 16-bit). No params. | +| `S0` — Get All Sensor Config | `S0` or `S0?meta=1` | Returns one `S0` frame per configured sensor: `i=;t=;n=;p0=;p1=;u0=;u1=;o0=;o1=;en=<0\|1>`. The labels in the response are read-only aliases: `p0`/`p1` = `pins[0]`/`pins[1]`; `u0`/`u1` = `options1[0]`/`options1[1]` (signed byte); `o0`/`o1` = `options2[0]`/`options2[1]` (signed 16-bit). **WiFi only:** Append `?meta=1` to include a `"meta"` block with sensor type descriptors (field labels, types, ranges, defaults) for self-describing dynamic UI. No serial params. | | `S1` — Add / Update Sensor | `S1:i=;t=;o0=;o1=` | Add or update sensor at index `i`. **Only four params are accepted:** `i` (sensor index), `t` (type — `SensorIdList` enum value), `o0` (writes `options1[0]`), `o1` (writes `options1[1]`). Pins and all other options must be set separately via `S4` and `S6` **after** `S1`. All four params are required. ACK carries `reboot=1`. | | `S2` — Remove Sensor | `S2:v=0` | Remove (clear) sensor at index. Param: `v=`. ACK carries `reboot=1`. | | `S3` — Rename Sensor | `S3:0=Bilge Pump` | Rename sensor at index. Param: `=`. ACK carries `reboot=1`. | diff --git a/PowerControlHub/ConfigNetworkHandler.cpp b/PowerControlHub/ConfigNetworkHandler.cpp index 6a6703b..03b3863 100644 --- a/PowerControlHub/ConfigNetworkHandler.cpp +++ b/PowerControlHub/ConfigNetworkHandler.cpp @@ -704,257 +704,6 @@ CommandResult ConfigNetworkHandler::handleRequest(const char* method, result = ConfigResult::InvalidParameter; } } - else if (SystemFunctions::commandMatches(command, SensorConfigGetAll)) - { - // S0 — return all local sensor config entries as JSON array - Config* config = ConfigManager::getConfigPtr(); - if (config == nullptr) - { - result = ConfigResult::InvalidConfig; - } - else - { - int written = snprintf(responseBuffer, bufferSize, - "\"count\":%u,\"sensors\":[", config->sensors.count); - - for (uint8_t i = 0; i < config->sensors.count && i < ConfigMaxSensors; i++) - { - const SensorEntry& e = config->sensors.sensors[i]; - int n = snprintf(responseBuffer + written, bufferSize - written, - "%s{\"i\":%u,\"t\":%u,\"n\":\"%s\",\"p0\":%u,\"p1\":%u," - "\"u0\":%d,\"u1\":%d,\"o0\":%d,\"o1\":%d,\"en\":%u}", - i > 0 ? "," : "", - i, - static_cast(e.sensorType), - e.name, - e.pins[0], - e.pins[1], - e.options1[0], - e.options1[1], - e.options2[0], - e.options2[1], - e.enabled ? 1u : 0u); - if (n < 0 || written + n >= static_cast(bufferSize)) - break; - written += n; - } - - snprintf(responseBuffer + written, bufferSize - written, "]"); - result = ConfigResult::Success; - } - } - else if (SystemFunctions::commandMatches(command, SensorConfigAddUpdate)) - { - // S1:i=;t=;o0=;o1= - Config* config = ConfigManager::getConfigPtr(); - if (config == nullptr) - { - result = ConfigResult::InvalidConfig; - } - else - { - uint8_t idx, type; - int8_t opt0, opt1; - if (!getParamValueU8t(params, paramCount, "i", idx) || - !getParamValueU8t(params, paramCount, "t", type) || - !getParamValue8t(params, paramCount, "o0", opt0) || - !getParamValue8t(params, paramCount, "o1", opt1) || - idx >= ConfigMaxSensors) - { - result = ConfigResult::InvalidParameter; - } - else - { - SensorEntry& entry = config->sensors.sensors[idx]; - entry.enabled = true; - entry.sensorType = static_cast(type); - entry.options1[0] = opt0; - entry.options1[1] = opt1; - - if (idx >= config->sensors.count) - config->sensors.count = idx + 1; - - result = ConfigResult::Success; - } - } - } - else if (SystemFunctions::commandMatches(command, SensorConfigRemove)) - { - // S2:v= - Config* config = ConfigManager::getConfigPtr(); - if (config == nullptr) - { - result = ConfigResult::InvalidConfig; - } - else if (paramCount < 1) - { - result = ConfigResult::InvalidParameter; - } - else - { - uint8_t idx; - if (!getParamValueU8t(params, paramCount, "v", idx)) - { - result = ConfigResult::InvalidParameter; - } - else if (idx >= ConfigMaxSensors) - { - result = ConfigResult::InvalidParameter; - } - else if (idx >= config->sensors.count) - { - // Already absent — treat as success - result = ConfigResult::Success; - } - else - { - SensorEntry& entry = config->sensors.sensors[idx]; - entry.enabled = false; - entry.sensorType = static_cast(0); - entry.name[0] = '\0'; - memset(entry.pins, PinDisabled, sizeof(entry.pins)); - memset(entry.options1, 0, sizeof(entry.options1)); - memset(entry.options2, 0, sizeof(entry.options2)); - - result = ConfigResult::Success; - } - } - } - else if (SystemFunctions::commandMatches(command, SensorConfigRename)) - { - // S3:= - Config* config = ConfigManager::getConfigPtr(); - if (config == nullptr) - { - result = ConfigResult::InvalidConfig; - } - else if (paramCount < 1) - { - result = ConfigResult::InvalidParameter; - } - else - { - uint8_t idx = static_cast(strtoul(params[0].key, nullptr, 0)); - if (idx >= ConfigMaxSensors || idx >= config->sensors.count || params[0].value[0] == '\0') - { - result = ConfigResult::InvalidParameter; - } - else - { - SensorEntry& entry = config->sensors.sensors[idx]; - strncpy(entry.name, params[0].value, sizeof(entry.name) - 1); - entry.name[sizeof(entry.name) - 1] = '\0'; - result = ConfigResult::Success; - } - } - } - else if (SystemFunctions::commandMatches(command, SensorConfigSetPin)) - { - // S4:i=;s=;v= - Config* config = ConfigManager::getConfigPtr(); - if (config == nullptr) - { - result = ConfigResult::InvalidConfig; - } - else - { - uint8_t idx, slot, pin; - if (!getParamValueU8t(params, paramCount, "i", idx) || - !getParamValueU8t(params, paramCount, "s", slot) || - !getParamValueU8t(params, paramCount, "v", pin) || - idx >= ConfigMaxSensors || - slot >= ConfigMaxSensorPins) - { - result = ConfigResult::InvalidParameter; - } - else - { - config->sensors.sensors[idx].pins[slot] = pin; - result = ConfigResult::Success; - } - } - } - else if (SystemFunctions::commandMatches(command, SensorConfigSetEnabled)) - { - // S5:=<0|1> - Config* config = ConfigManager::getConfigPtr(); - if (config == nullptr) - { - result = ConfigResult::InvalidConfig; - } - else if (paramCount < 1) - { - result = ConfigResult::InvalidParameter; - } - else - { - uint8_t idx = static_cast(strtoul(params[0].key, nullptr, 0)); - bool enabled = SystemFunctions::parseBooleanValue(params[0].value); - - if (idx >= ConfigMaxSensors || idx >= config->sensors.count) - { - result = ConfigResult::InvalidParameter; - } - else - { - config->sensors.sensors[idx].enabled = enabled; - result = ConfigResult::Success; - } - } - } - else if (SystemFunctions::commandMatches(command, SensorConfigSetOptions)) - { - // S6:i=;s=;o=;v= - Config* config = ConfigManager::getConfigPtr(); - if (config == nullptr) - { - result = ConfigResult::InvalidConfig; - } - else - { - uint8_t idx, slot, group; - if (!getParamValueU8t(params, paramCount, "i", idx) || - !getParamValueU8t(params, paramCount, "s", slot) || - !getParamValueU8t(params, paramCount, "o", group) || - idx >= ConfigMaxSensors) - { - result = ConfigResult::InvalidParameter; - } - else - { - if (group == 0 && slot < 2) - { - int8_t val8; - if (!getParamValue8t(params, paramCount, "v", val8)) - { - result = ConfigResult::InvalidParameter; - } - else - { - config->sensors.sensors[idx].options1[slot] = val8; - result = ConfigResult::Success; - } - } - else if (group == 1 && slot < 2) - { - int16_t val16; - if (!getParamValue16t(params, paramCount, "v", val16)) - { - result = ConfigResult::InvalidParameter; - } - else - { - config->sensors.sensors[idx].options2[slot] = val16; - result = ConfigResult::Success; - } - } - else - { - result = ConfigResult::InvalidParameter; - } - } - } - } else if (SystemFunctions::commandMatches(command, ExternalSensorGetAll)) { // E0 — return all remote sensor config entries as JSON array diff --git a/PowerControlHub/PowerControlHub.vcxproj b/PowerControlHub/PowerControlHub.vcxproj index 70eb16e..b2d6b85 100644 --- a/PowerControlHub/PowerControlHub.vcxproj +++ b/PowerControlHub/PowerControlHub.vcxproj @@ -119,6 +119,7 @@ + @@ -224,7 +225,9 @@ + + @@ -295,7 +298,7 @@ VisualMicroDebugger - $(ProjectDir)..\PowerControlHub;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SensorManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SdFat\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\SPI\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\WiFi\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Network\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\NextionControl\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\TinyGPSPlus\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\EEPROM\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\HTTPClient\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\NetworkClientSecure\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Update\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\Ds1302\src;$(ProjectDir)..\..\..\program files\microsoft visual studio\18\insiders\common7\ide\extensions\hti01q5k.0wk\Micro Platforms\default;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\dio_qspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\cores\esp32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\variants\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\newlib\platform_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\esp_additions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\dma\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\ldo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\debug_probe\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\tuning_scheme_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\power_supply\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\tlsf;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\register;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\platform_port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\port\include\private;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\deprecated_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_timer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps\sntp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\lwip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\arch;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\sys;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\gemmlowp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\flatbuffers\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\ruy;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\kissfft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\driver\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\conversions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\deprecated;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_pm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_ringbuf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gpio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_pcnt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gptimer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_spi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_mcpwm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ana_cmpr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2s\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_dac\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_rmt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_tsens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_uart\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\vfs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ledc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_parlio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_usb_serial_jtag\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\app\ember_coupling;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib\dnssd;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\OpenThread;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\jsoncpp\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlfaultinjection\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlassert\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlio\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\zzz_generated\app-common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-idf\espressif__esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\zap_common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\utils;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_bridge;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\nimble;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\route_hook;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_eth\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_event\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\include\esp32c3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\osi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\api\include\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\blufi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\hci_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\ble_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\storage;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\dfu;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\mbt;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ans\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\bas\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\dis\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gatt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\htp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ias\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ipss\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\lls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\prox\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cts\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\tps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\sps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cte\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\util\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\ram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ras\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\porting\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\npl\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\esp-hci\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include\local;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\nan_app\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_netif\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\library;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\esp_crt_bundle\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\everest\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\diskio;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\vfs;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wear_levelling\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_partition\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\bootloader_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_app_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_bootloader_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_vfs_console\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spi_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_secure_cert_mgr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_parser\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__jsmn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spiffs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_generator\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\json\cJSON;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__mdns\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_delta_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_encrypted_img\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_insights\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diagnostics\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\esp-tts\esp_tts_chinese\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_mm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_security\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\pthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\xip_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_trace\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\esp_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_coex\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_gdbstub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\unity\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\cmock\CMock\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_bitscrambler\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\http_parser;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls\esp-tls-crypto;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\deprecated\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_isp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\dvp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ppa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\hw_ver2\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hal_ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\tcp_transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\rgb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protobuf-c\protobuf-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\security;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\transports;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\crypto\srp6a;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\proto-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_local_ctrl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include\port\xtensa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mqtt\esp-mqtt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_sec_provider\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\perfmon\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\rt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\touch_element\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\usb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wifi_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\src\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__rmaker_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__cbor\tinycbor\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\src\rtc_store;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rcp_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base\isa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dotprod\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\mem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\hann\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_harris\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\flat_top\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\iir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sqrt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fft\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dct\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\conv\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf_imu13states\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\chmorgan__esp-libhelix-mp3\libhelix-mp3\pub;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-modbus\freemodbus\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zboss-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include\radio_spinel;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\port_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\libsodium\src\libsodium\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\command\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_schedule\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__network_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rainmaker\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__qrcode\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\joltwallet__littlefs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\tinyusb\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fb_gfx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\xtensa-esp-elf\esp32s3\no-rtti;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\backward;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include-fixed;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src + $(ProjectDir)..\..\..\program files\microsoft visual studio\18\insiders\common7\ide\extensions\hti01q5k.0wk\Micro Platforms\default;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\dio_qspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\cores\esp32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\variants\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\newlib\platform_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\esp_additions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\dma\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\ldo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\debug_probe\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\tuning_scheme_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\power_supply\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\tlsf;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\register;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\platform_port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\port\include\private;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\deprecated_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_timer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps\sntp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\lwip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\arch;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\sys;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\gemmlowp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\flatbuffers\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\ruy;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\kissfft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\driver\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\conversions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\deprecated;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_pm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_ringbuf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gpio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_pcnt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gptimer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_spi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_mcpwm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ana_cmpr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2s\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_dac\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_rmt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_tsens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_uart\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\vfs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ledc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_parlio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_usb_serial_jtag\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\app\ember_coupling;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib\dnssd;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\OpenThread;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\jsoncpp\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlfaultinjection\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlassert\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlio\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\zzz_generated\app-common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-idf\espressif__esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\zap_common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\utils;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_bridge;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\nimble;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\route_hook;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_eth\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_event\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\include\esp32c3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\osi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\api\include\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\blufi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\hci_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\ble_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\storage;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\dfu;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\mbt;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ans\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\bas\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\dis\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gatt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\htp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ias\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ipss\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\lls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\prox\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cts\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\tps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\sps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cte\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\util\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\ram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ras\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\porting\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\npl\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\esp-hci\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include\local;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\nan_app\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_netif\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\library;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\esp_crt_bundle\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\everest\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\diskio;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\vfs;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wear_levelling\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_partition\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\bootloader_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_app_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_bootloader_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_vfs_console\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spi_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_secure_cert_mgr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_parser\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__jsmn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spiffs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_generator\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\json\cJSON;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__mdns\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_delta_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_encrypted_img\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_insights\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diagnostics\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\esp-tts\esp_tts_chinese\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_mm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_security\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\pthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\xip_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_trace\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\esp_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_coex\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_gdbstub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\unity\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\cmock\CMock\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_bitscrambler\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\http_parser;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls\esp-tls-crypto;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\deprecated\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_isp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\dvp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ppa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\hw_ver2\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hal_ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\tcp_transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\rgb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protobuf-c\protobuf-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\security;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\transports;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\crypto\srp6a;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\proto-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_local_ctrl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include\port\xtensa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mqtt\esp-mqtt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_sec_provider\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\perfmon\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\rt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\touch_element\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\usb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wifi_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\src\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__rmaker_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__cbor\tinycbor\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\src\rtc_store;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rcp_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base\isa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dotprod\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\mem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\hann\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_harris\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\flat_top\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\iir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sqrt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fft\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dct\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\conv\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf_imu13states\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\chmorgan__esp-libhelix-mp3\libhelix-mp3\pub;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-modbus\freemodbus\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zboss-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include\radio_spinel;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\port_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\libsodium\src\libsodium\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\command\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_schedule\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__network_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rainmaker\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__qrcode\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\joltwallet__littlefs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\tinyusb\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fb_gfx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\xtensa-esp-elf\esp32s3\no-rtti;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\backward;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include-fixed;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src $(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\bin\xtensa-esp32s3-elf-g++ $(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\bin\xtensa-esp32s3-elf-g++ false @@ -322,7 +325,7 @@ - $(ProjectDir)..\PowerControlHub;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SensorManager\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SdFat\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\SPI\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\WiFi\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Network\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\NextionControl\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\TinyGPSPlus\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\EEPROM\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\HTTPClient\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\NetworkClientSecure\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Update\src;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\Ds1302\src;$(ProjectDir)..\..\..\program files\microsoft visual studio\18\insiders\common7\ide\extensions\hti01q5k.0wk\Micro Platforms\default;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\dio_qspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\cores\esp32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\variants\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\newlib\platform_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\esp_additions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\dma\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\ldo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\debug_probe\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\tuning_scheme_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\power_supply\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\tlsf;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\register;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\platform_port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\port\include\private;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\deprecated_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_timer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps\sntp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\lwip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\arch;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\sys;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\gemmlowp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\flatbuffers\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\ruy;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\kissfft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\driver\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\conversions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\deprecated;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_pm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_ringbuf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gpio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_pcnt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gptimer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_spi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_mcpwm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ana_cmpr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2s\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_dac\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_rmt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_tsens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_uart\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\vfs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ledc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_parlio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_usb_serial_jtag\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\app\ember_coupling;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib\dnssd;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\OpenThread;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\jsoncpp\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlfaultinjection\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlassert\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlio\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\zzz_generated\app-common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-idf\espressif__esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\zap_common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\utils;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_bridge;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\nimble;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\route_hook;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_eth\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_event\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\include\esp32c3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\osi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\api\include\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\blufi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\hci_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\ble_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\storage;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\dfu;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\mbt;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ans\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\bas\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\dis\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gatt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\htp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ias\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ipss\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\lls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\prox\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cts\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\tps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\sps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cte\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\util\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\ram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ras\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\porting\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\npl\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\esp-hci\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include\local;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\nan_app\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_netif\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\library;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\esp_crt_bundle\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\everest\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\diskio;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\vfs;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wear_levelling\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_partition\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\bootloader_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_app_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_bootloader_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_vfs_console\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spi_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_secure_cert_mgr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_parser\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__jsmn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spiffs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_generator\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\json\cJSON;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__mdns\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_delta_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_encrypted_img\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_insights\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diagnostics\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\esp-tts\esp_tts_chinese\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_mm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_security\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\pthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\xip_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_trace\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\esp_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_coex\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_gdbstub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\unity\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\cmock\CMock\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_bitscrambler\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\http_parser;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls\esp-tls-crypto;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\deprecated\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_isp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\dvp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ppa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\hw_ver2\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hal_ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\tcp_transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\rgb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protobuf-c\protobuf-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\security;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\transports;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\crypto\srp6a;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\proto-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_local_ctrl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include\port\xtensa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mqtt\esp-mqtt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_sec_provider\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\perfmon\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\rt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\touch_element\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\usb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wifi_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\src\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__rmaker_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__cbor\tinycbor\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\src\rtc_store;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rcp_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base\isa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dotprod\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\mem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\hann\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_harris\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\flat_top\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\iir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sqrt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fft\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dct\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\conv\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf_imu13states\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\chmorgan__esp-libhelix-mp3\libhelix-mp3\pub;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-modbus\freemodbus\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zboss-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include\radio_spinel;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\port_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\libsodium\src\libsodium\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\command\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_schedule\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__network_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rainmaker\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__qrcode\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\joltwallet__littlefs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\tinyusb\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fb_gfx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\xtensa-esp-elf\esp32s3\no-rtti;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\backward;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include-fixed;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src;%(AdditionalIncludeDirectories) + $(ProjectDir)..\..\..\program files\microsoft visual studio\18\insiders\common7\ide\extensions\hti01q5k.0wk\Micro Platforms\default;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\dio_qspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\cores\esp32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\hardware\esp32\3.3.8\variants\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\newlib\platform_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\config\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\portable\xtensa\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\esp_additions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\dma\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\ldo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\debug_probe\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\tuning_scheme_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\power_supply\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\port\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hw_support\mspi_timing_tuning\port\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\heap\tlsf;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\soc\esp32s3\register;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\platform_port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\hal\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_rom\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_system\port\include\private;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\xtensa\deprecated_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_timer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\include\apps\sntp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\lwip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\arch;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\lwip\port\esp32xx\include\sys;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\gemmlowp;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\flatbuffers\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\ruy;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-tflite-micro\third_party\kissfft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\driver\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp32-camera\conversions\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\deprecated;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\driver\touch_sensor\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_pm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_ringbuf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gpio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_pcnt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_gptimer\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_spi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_mcpwm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ana_cmpr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2s\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\sdmmc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdspi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_dac\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_rmt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_tsens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_sdm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_i2c\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_uart\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\vfs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ledc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_parlio\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_usb_serial_jtag\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_twai\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\app\ember_coupling;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\lib\dnssd;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\OpenThread;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\jsoncpp\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlfaultinjection\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlassert\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\third_party\nlio\repo\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\zzz_generated\app-common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-idf\espressif__esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\zap_common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter\utils;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_bridge;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_matter_console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\nimble;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_matter\connectedhomeip\connectedhomeip\src\platform\ESP32\route_hook;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_eth\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_event\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\include\esp32c3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\osi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\api\include\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\blufi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\btc\profile\esp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\hci_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\ble_log\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\core\storage;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\models\server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\api;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\core\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\api\models\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\btc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\dfu;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\esp_ble_mesh\v1.1\mbt;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\common\tinycrypt\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ans\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\bas\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\dis\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gap\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\gatt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\htp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ias\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ipss\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\lls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\prox\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cts\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\tps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\sps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\cte\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\util\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\ram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\store\config\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\host\services\ras\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\nimble\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\nimble\transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\porting\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\nimble\porting\npl\freertos\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bt\host\nimble\esp-hci\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\include\local;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_wifi\wifi_apps\nan_app\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_phy\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_netif\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\library;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\esp_crt_bundle\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\everest\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mbedtls\mbedtls\3rdparty\p256-m\p256-m;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\diskio;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fatfs\vfs;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wear_levelling\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_partition\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\bootloader_support\bootloader_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_app_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_bootloader_format\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\console;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_vfs_console\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\openthread\openthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spi_flash\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_secure_cert_mgr\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_parser\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__jsmn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\spiffs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_client\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__json_generator\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\json\cJSON;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__mdns\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_delta_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_encrypted_img\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_insights\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diagnostics\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\esp-tts\esp_tts_chinese\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-sr\src\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\efuse\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_mm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_security\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\pthread\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_psram\xip_impl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\app_trace\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\port\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wpa_supplicant\esp_supplicant\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_coex\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_gdbstub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\unity\unity\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\cmock\CMock\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_bitscrambler\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\http_parser;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp-tls\esp-tls-crypto;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\esp32s3\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_adc\deprecated\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_isp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_cam\dvp\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_jpeg\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_ppa\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_driver_touch_sens\hw_ver2\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hal_ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_hid\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\tcp_transport\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_http_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_ota\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_https_server\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\interface;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_lcd\rgb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protobuf-c\protobuf-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\security;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\transports;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\include\crypto\srp6a;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\protocomm\proto-c;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\esp_local_ctrl\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espcoredump\include\port\xtensa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\idf_test\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ieee802154\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\mqtt\esp-mqtt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\nvs_sec_provider\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\perfmon\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\rt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\touch_element\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\ulp\ulp_fsm\include\esp32s3;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\usb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\wifi_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-nn\src\common;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__rmaker_common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__cbor\tinycbor\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\src\rtc_store;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_diag_data_store\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-serial-flasher\port;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rcp_update\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__dl_fft\base\isa;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dotprod\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\support\mem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\hann\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_harris\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\blackman_nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\nuttall\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\windows\flat_top\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\iir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fir\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\math\sqrt\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\add\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\addc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mulc\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\sub\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\fft\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\dct\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\conv\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\matrix\mul\test\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-dsp\modules\kalman\ekf_imu13states\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\chmorgan__esp-libhelix-mp3\libhelix-mp3\pub;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-modbus\freemodbus\common\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zboss-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp-zigbee-lib\include\radio_spinel;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\port_include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__libsodium\libsodium\src\libsodium\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_modem\command\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_schedule\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__network_provisioning\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__esp_rainmaker\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\espressif__qrcode\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\joltwallet__littlefs\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\freertos\FreeRTOS-Kernel\include\freertos;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\tinyusb\src;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\arduino_tinyusb\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp32s3-libs\3.3.8\include\fb_gfx\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\xtensa-esp-elf\esp32s3\no-rtti;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include\c++\14.2.0\backward;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\lib\gcc\xtensa-esp-elf\14.2.0\include-fixed;$(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\xtensa-esp-elf\include;$(ProjectDir)..\..\..\Users\Simon\Documents\Arduino\libraries\SerialCommandManager\src;%(AdditionalIncludeDirectories) $(ProjectDir)..\..\..\Users\Simon\AppData\Local\arduino15\packages\esp32\tools\esp-x32\2601\bin\xtensa-esp32s3-elf-g++ c++2a gnu11 @@ -353,7 +356,7 @@ - + \ No newline at end of file diff --git a/PowerControlHub/PowerControlHub.vcxproj.filters b/PowerControlHub/PowerControlHub.vcxproj.filters index 6a9b960..d936707 100644 --- a/PowerControlHub/PowerControlHub.vcxproj.filters +++ b/PowerControlHub/PowerControlHub.vcxproj.filters @@ -322,6 +322,9 @@ Header Files\Components + + Source Files + @@ -708,5 +711,11 @@ Header Files\Wifi + + Header Files + + + Header Files + \ No newline at end of file diff --git a/PowerControlHub/PowerControlHubApp.cpp b/PowerControlHub/PowerControlHubApp.cpp index 612f7bd..3ef5f91 100644 --- a/PowerControlHub/PowerControlHubApp.cpp +++ b/PowerControlHub/PowerControlHubApp.cpp @@ -470,7 +470,7 @@ void PowerControlHubApp::configureWifiSupport(Config* config) // network command handlers INetworkCommandHandler* networkHandlers[] = { &_relayNetworkHandler, &_soundNetworkHandler, &_warningNetworkHandler, &_systemNetworkHandler, _sensorNetworkHandler, &_configNetworkHandler, &_schedulerNetworkHandler, - &_externalSensorNetworkHandler, _webIndexNetworkHandler, + &_externalSensorNetworkHandler, &_sensorConfigNetworkHandler, _webIndexNetworkHandler, &_wifiCommandBridge }; size_t networkHandlerCount = sizeof(networkHandlers) / sizeof(networkHandlers[0]); @@ -486,6 +486,7 @@ void PowerControlHubApp::configureWifiSupport(Config* config) _sensorNetworkHandler, &_schedulerNetworkHandler, &_externalSensorNetworkHandler, + &_sensorConfigNetworkHandler, }; uint8_t jsonVisitorCount = sizeof(jsonVisitors) / sizeof(jsonVisitors[0]); _wifiController.registerJsonVisitors(jsonVisitors, jsonVisitorCount); diff --git a/PowerControlHub/PowerControlHubApp.h b/PowerControlHub/PowerControlHubApp.h index 495f2e6..e7c7729 100644 --- a/PowerControlHub/PowerControlHubApp.h +++ b/PowerControlHub/PowerControlHubApp.h @@ -42,6 +42,7 @@ #include "NextionConfigCommandHandler.h" #include "ExternalSensorConfigCommandHandler.h" #include "ExternalSensorNetworkHandler.h" +#include "SensorConfigNetworkHandler.h" #include "BluetoothRadioBridge.h" #include "IBluetoothRadio.h" #include "WifiController.h" @@ -156,6 +157,7 @@ class PowerControlHubApp SchedulerCommandHandler _schedulerCommandHandler; SchedulerNetworkHandler _schedulerNetworkHandler; ExternalSensorNetworkHandler _externalSensorNetworkHandler; + SensorConfigNetworkHandler _sensorConfigNetworkHandler; WifiCommandBridge _wifiCommandBridge; // Persistent storage for the serial handler array so WifiCommandBridge diff --git a/PowerControlHub/SensorConfig.h b/PowerControlHub/SensorConfig.h new file mode 100644 index 0000000..2391b05 --- /dev/null +++ b/PowerControlHub/SensorConfig.h @@ -0,0 +1,122 @@ +#include "SystemDefinitions.h" + +struct SensorFieldDescriptor { + const char label[20]; // e.g. "Analogue Pin", "Threshold" + const char type[20]; // "gpio", "int8", "int16", "none" + int16_t minVal; + int16_t maxVal; + int16_t defaultValue; +}; + +struct SensorTypeDescriptor { + const char* name; + SensorFieldDescriptor pins[ConfigMaxSensorPins]; + SensorFieldDescriptor options1[2]; + SensorFieldDescriptor options2[2]; +}; + +// Indexed by SensorIdList value +constexpr SensorTypeDescriptor SensorDescriptors[] = { + [static_cast(SensorIdList::WaterSensor)] = { + .name = "Water Sensor", + .pins = { + { "Data Pin", "gpio", 0, 39, 255 }, + { "Power Pin", "gpio", 0, 39, 255 }, + { "Unused", "none", 0, 0, 0 }, + { "Unused", "none", 0, 0, 0 }, + }, + .options1 = { { "Unused", "none", 0, 0, 0 }, { "Unused", "none", 0, 0, 0 } }, + .options2 = { { "Unused", "none", 0, 0, 0 }, { "Unused", "none", 0, 0, 0 } }, + }, + [static_cast(SensorIdList::Dht11Sensor)] = { + .name = "DHT11", + .pins = { + { "Data Pin", "gpio", 0, 39, 255 }, + { "Unused", "none", 0, 0, 0 }, + { "Unused", "none", 0, 0, 0 }, + { "Unused", "none", 0, 0, 0 }, + }, + .options1 = { { "Unused", "none", 0, 0, 0 }, { "Unused", "none", 0, 0, 0 } }, + .options2 = { { "Unused", "none", 0, 0, 0 }, { "Unused", "none", 0, 0, 0 } }, + }, + [static_cast(SensorIdList::LightSensor)] = { + .name = "Light Sensor", + .pins = { + { "Analogue Pin", "gpio", 0, 39, 255 }, + { "Unused", "none", 0, 0, 0 }, + { "Unused", "none", 0, 0, 0 }, + { "Unused", "none", 0, 0, 0 }, + }, + .options1 = { + { "Mode", "int8", 0, 1, 0 }, + { "Unused", "none", 0, 0, 0 }, + }, + .options2 = { + { "Threshold", "int16", 0, 4095, 512 }, + { "Unused", "none", 0, 0, 0 }, + }, + }, + [static_cast(SensorIdList::GpsSensor)] = { + .name = "GPS", + .pins = { + { "RX Pin", "gpio", 0, 39, 255 }, + { "TX Pin", "gpio", 0, 39, 255 }, + { "Unused", "none", 0, 0, 0 }, + { "Unused", "none", 0, 0, 0 }, + }, + .options1 = { + { "UART Num", "int8", 1, 2, 2 }, + { "Unused", "none", 0, 0, 0 }, + }, + .options2 = { { "Unused", "none", 0, 0, 0 }, { "Unused", "none", 0, 0, 0 } }, + }, + [static_cast(SensorIdList::SystemSensor)] = { + .name = "System Sensor", + .pins = { + { "Unused", "none", 0, 0, 0 }, + { "Unused", "none", 0, 0, 0 }, + { "Unused", "none", 0, 0, 0 }, + { "Unused", "none", 0, 0, 0 }, + }, + .options1 = { { "Unused", "none", 0, 0, 0 }, { "Unused", "none", 0, 0, 0 } }, + .options2 = { { "Unused", "none", 0, 0, 0 }, { "Unused", "none", 0, 0, 0 } }, + }, + [static_cast(SensorIdList::BinaryPresenceSensor)] = { + .name = "Binary Presence", + .pins = { + { "Sensor Pin", "gpio", 0, 39, 255 }, + { "onDetected", "int8", 0, 255, 0 }, + { "onClear", "int8", 0, 255, 0 }, + { "Unused", "none", 0, 0, 0 }, + }, + .options1 = { + { "Active State", "int8", 0, 1, 1 }, + { "Detect Action", "int8", 0, 255, 0 }, + }, + .options2 = { + { "Unused", "none", 0, 0, 0 }, + { "Clear Action", "int16", 0, 255, 0 }, + }, + }, + [static_cast(SensorIdList::VoltageSensor)] = { + .name = "Voltage Sensor", + .pins = { + { "Analogue Pin", "gpio", 0, 39, 255 }, + { "Unused", "none", 0, 0, 0 }, + { "Unused", "none", 0, 0, 0 }, + { "Unused", "none", 0, 0, 0 }, + }, + .options1 = { + { "ADC Vref", "int8", 0, 50, 50 }, + { "R2 (tenths)", "int8", 0, 255, 75 }, + }, + .options2 = { + { "R1 (kOhm)", "int16", 0, 1000, 30 }, + { "Low Warn (Vx10)", "int16", 0, 500, 0 }, + }, + }, +}; + +static_assert( + std::size(SensorDescriptors) == static_cast(SensorIdList::Count), + "SensorDescriptors missing an entry for a SensorIdList value!"); \ No newline at end of file diff --git a/PowerControlHub/SensorConfigNetworkHandler.cpp b/PowerControlHub/SensorConfigNetworkHandler.cpp new file mode 100644 index 0000000..4afbe96 --- /dev/null +++ b/PowerControlHub/SensorConfigNetworkHandler.cpp @@ -0,0 +1,307 @@ +/* + * PowerControlHub + * Copyright (C) 2025 Simon Carter (s1cart3r@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "Local.h" +#include "SensorConfigNetworkHandler.h" + +#include "ConfigManager.h" +#include "ConfigController.h" +#include "SystemDefinitions.h" +#include "SystemFunctions.h" + +CommandResult SensorConfigNetworkHandler::handleRequest(const char* method, + const char* command, + StringKeyValue* params, + uint8_t paramCount, + char* responseBuffer, + size_t bufferSize) +{ + (void)method; + + Config* config = ConfigManager::getConfigPtr(); + if (!config) + { + formatJsonResponse(responseBuffer, bufferSize, false, "Config not available"); + return CommandResult::error(InvalidConfiguration); + } + + ConfigResult result = ConfigResult::InvalidCommand; + + // GET /api/sensorconfig/ or GET /api/sensorconfig/S0 — return all sensors + if (SystemFunctions::commandMatches(command, SensorConfigGetAll) || command[0] == '\0') + { + int written = snprintf(responseBuffer, bufferSize, + "\"success\":true,\"count\":%u,\"sensors\":[", config->sensors.count); + + for (uint8_t i = 0; i < config->sensors.count && i < ConfigMaxSensors; i++) + { + const SensorEntry& e = config->sensors.sensors[i]; + int n = snprintf(responseBuffer + written, bufferSize - written, + "%s{\"i\":%u,\"t\":%u,\"n\":\"%s\"," + "\"p0\":%u,\"p1\":%u," + "\"u0\":%d,\"u1\":%d," + "\"o0\":%d,\"o1\":%d," + "\"en\":%u}", + i > 0 ? "," : "", + i, + static_cast(e.sensorType), + e.name, + e.pins[0], + e.pins[1], + e.options1[0], + e.options1[1], + e.options2[0], + e.options2[1], + e.enabled ? 1u : 0u); + if (n < 0 || written + n >= static_cast(bufferSize)) + break; + written += n; + } + + snprintf(responseBuffer + written, bufferSize - written, "]"); + return CommandResult::ok(); + } + else if (SystemFunctions::commandMatches(command, SensorConfigAddUpdate)) + { + // S1:i=;t=;o0=;o1= + uint8_t idx, type; + int8_t opt0, opt1; + + if (!getParamValueU8t(params, paramCount, "i", idx) || + !getParamValueU8t(params, paramCount, "t", type) || + !getParamValue8t(params, paramCount, "o0", opt0) || + !getParamValue8t(params, paramCount, "o1", opt1) || + idx >= ConfigMaxSensors) + { + result = ConfigResult::InvalidParameter; + } + else + { + SensorEntry& entry = config->sensors.sensors[idx]; + entry.enabled = true; + entry.sensorType = static_cast(type); + entry.options1[0] = opt0; + entry.options1[1] = opt1; + + if (idx >= config->sensors.count) + config->sensors.count = idx + 1; + + result = ConfigResult::Success; + } + } + else if (SystemFunctions::commandMatches(command, SensorConfigRemove)) + { + // S2:v= + uint8_t idx; + if (paramCount < 1 || !getParamValueU8t(params, paramCount, "v", idx)) + { + result = ConfigResult::InvalidParameter; + } + else if (idx >= ConfigMaxSensors) + { + result = ConfigResult::InvalidParameter; + } + else if (idx >= config->sensors.count) + { + // Already absent — treat as success + result = ConfigResult::Success; + } + else + { + for (uint8_t j = idx; j + 1 < config->sensors.count; j++) + config->sensors.sensors[j] = config->sensors.sensors[j + 1]; + + if (config->sensors.count > 0) + config->sensors.count--; + + memset(&config->sensors.sensors[config->sensors.count], 0, sizeof(SensorEntry)); + + result = ConfigResult::Success; + } + } + else if (SystemFunctions::commandMatches(command, SensorConfigRename)) + { + // S3:= + if (paramCount < 1) + { + result = ConfigResult::InvalidParameter; + } + else + { + uint8_t idx = static_cast(strtoul(params[0].key, nullptr, 0)); + if (idx >= ConfigMaxSensors || idx >= config->sensors.count || params[0].value[0] == '\0') + { + result = ConfigResult::InvalidParameter; + } + else + { + SensorEntry& entry = config->sensors.sensors[idx]; + strncpy(entry.name, params[0].value, sizeof(entry.name) - 1); + entry.name[sizeof(entry.name) - 1] = '\0'; + result = ConfigResult::Success; + } + } + } + else if (SystemFunctions::commandMatches(command, SensorConfigSetPin)) + { + // S4:i=;s=;v= + uint8_t idx, slot, pin; + if (!getParamValueU8t(params, paramCount, "i", idx) || + !getParamValueU8t(params, paramCount, "s", slot) || + !getParamValueU8t(params, paramCount, "v", pin) || + idx >= ConfigMaxSensors || idx >= config->sensors.count || + slot >= ConfigMaxSensorPins) + { + result = ConfigResult::InvalidParameter; + } + else + { + config->sensors.sensors[idx].pins[slot] = pin; + result = ConfigResult::Success; + } + } + else if (SystemFunctions::commandMatches(command, SensorConfigSetEnabled)) + { + // S5:=<0|1> + if (paramCount < 1) + { + result = ConfigResult::InvalidParameter; + } + else + { + uint8_t idx = static_cast(strtoul(params[0].key, nullptr, 0)); + bool enabled = SystemFunctions::parseBooleanValue(params[0].value); + + if (idx >= ConfigMaxSensors || idx >= config->sensors.count) + { + result = ConfigResult::InvalidParameter; + } + else + { + config->sensors.sensors[idx].enabled = enabled; + result = ConfigResult::Success; + } + } + } + else if (SystemFunctions::commandMatches(command, SensorConfigSetOptions)) + { + // S6:i=;s=;o=;v= + uint8_t idx, slot, option; + if (!getParamValueU8t(params, paramCount, "i", idx) || + !getParamValueU8t(params, paramCount, "s", slot) || + !getParamValueU8t(params, paramCount, "o", option) || + idx >= ConfigMaxSensors || idx >= config->sensors.count) + { + result = ConfigResult::InvalidParameter; + } + else + { + if (option > 1) + { + result = ConfigResult::InvalidParameter; + } + else + { + constexpr uint8_t options1Size = sizeof(SensorEntry::options1) / sizeof(SensorEntry::options1[0]); + if (slot >= options1Size) + { + result = ConfigResult::InvalidParameter; + } + else if (option == 0) + { + int8_t val8; + if (!getParamValue8t(params, paramCount, "v", val8)) + { + result = ConfigResult::InvalidParameter; + } + else + { + config->sensors.sensors[idx].options1[slot] = val8; + result = ConfigResult::Success; + } + } + else + { + int16_t val16; + if (!getParamValue16t(params, paramCount, "v", val16)) + { + result = ConfigResult::InvalidParameter; + } + else + { + config->sensors.sensors[idx].options2[slot] = val16; + result = ConfigResult::Success; + } + } + } + } + } + + if (result == ConfigResult::Success) + return CommandResult::ok(); + + return CommandResult::error(static_cast(result)); +} + +void SensorConfigNetworkHandler::formatStatusJson(IWifiClient* client) +{ + Config* config = ConfigManager::getConfigPtr(); + if (!config) + return; + + client->print("\"localSensors\":{"); + client->print("\"count\":"); + client->print(config->sensors.count); + client->print(",\"sensors\":["); + + for (uint8_t i = 0; i < config->sensors.count && i < ConfigMaxSensors; i++) + { + const SensorEntry& e = config->sensors.sensors[i]; + + if (i > 0) + client->print(","); + + client->print("{\"i\":"); + client->print(i); + client->print(",\"t\":"); + client->print(static_cast(e.sensorType)); + client->print(",\"n\":\""); + client->print(e.name); + client->print("\",\"p0\":"); + client->print(e.pins[0]); + client->print(",\"p1\":"); + client->print(e.pins[1]); + client->print(",\"u0\":"); + client->print(e.options1[0]); + client->print(",\"u1\":"); + client->print(e.options1[1]); + client->print(",\"o0\":"); + client->print(e.options2[0]); + client->print(",\"o1\":"); + client->print(e.options2[1]); + client->print(",\"en\":"); + client->print(e.enabled ? "true" : "false"); + client->print("}"); + } + + client->print("]}"); +} + +void SensorConfigNetworkHandler::formatWifiStatusJson(IWifiClient* client) +{ + formatStatusJson(client); +} diff --git a/PowerControlHub/SensorConfigNetworkHandler.h b/PowerControlHub/SensorConfigNetworkHandler.h new file mode 100644 index 0000000..f758cae --- /dev/null +++ b/PowerControlHub/SensorConfigNetworkHandler.h @@ -0,0 +1,47 @@ +/* + * PowerControlHub + * Copyright (C) 2025 Simon Carter (s1cart3r@gmail.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "INetworkCommandHandler.h" +#include "BaseConfigCommandHandler.h" + +/** + * @brief Network handler for local sensor configuration (S-series) via /api/sensorconfig. + * + * Exposes the same S0–S6 operations as SensorConfigCommandHandler but over + * the WiFi REST interface. The GET route returns a JSON array of all configured + * local sensors; mutation commands (S1–S6) modify the in-memory config directly. + */ +class SensorConfigNetworkHandler : public INetworkCommandHandler, public BaseConfigCommandHandler +{ +public: + SensorConfigNetworkHandler() = default; + + const char* getRoute() const override { return "/api/sensorconfig"; } + + void formatWifiStatusJson(IWifiClient* client) override; + + void formatStatusJson(IWifiClient* client); + + CommandResult handleRequest(const char* method, + const char* command, + StringKeyValue* params, + uint8_t paramCount, + char* responseBuffer, + size_t bufferSize) override; +}; diff --git a/PowerControlHub/SensorNetworkHandler.cpp b/PowerControlHub/SensorNetworkHandler.cpp index 089141a..82dcc64 100644 --- a/PowerControlHub/SensorNetworkHandler.cpp +++ b/PowerControlHub/SensorNetworkHandler.cpp @@ -19,6 +19,8 @@ #include "SensorNetworkHandler.h" #include "SystemDefinitions.h" #include "SystemFunctions.h" +#include "ConfigManager.h" +#include "SensorConfig.h" SensorNetworkHandler::SensorNetworkHandler(SensorController* sensorController) @@ -31,104 +33,453 @@ CommandResult SensorNetworkHandler::handleRequest(const char* method, char* responseBuffer, size_t bufferSize) { (void)method; - (void)params; - (void)paramCount; - (void)responseBuffer; - (void)bufferSize; - if (SystemFunctions::commandMatches(command, SensorBearing)) + Config* config = ConfigManager::getConfigPtr(); + + // ---- S0: Get All Sensor Config (or no command returns full status) ---- + // Supports ?meta=1 to append sensor type descriptors for self-describing UI + if (SystemFunctions::commandMatches(command, SensorConfigGetAll) || command[0] == '\0') + { + bool includeMeta = false; + getParamValueBool(params, paramCount, "meta", includeMeta); + + int written = snprintf(responseBuffer, bufferSize, + "\"success\":true,\"count\":%u,\"sensors\":[", config ? config->sensors.count : 0); + + if (config) + { + for (uint8_t i = 0; i < config->sensors.count && i < ConfigMaxSensors; i++) + { + const SensorEntry& e = config->sensors.sensors[i]; + int n = snprintf(responseBuffer + written, bufferSize - written, + "%s{\"i\":%u,\"t\":%u,\"n\":\"%s\"," + "\"p0\":%u,\"p1\":%u," + "\"u0\":%d,\"u1\":%d," + "\"o0\":%d,\"o1\":%d," + "\"en\":%u}", + i > 0 ? "," : "", + i, + static_cast(e.sensorType), + e.name, + e.pins[0], + e.pins[1], + e.options1[0], + e.options1[1], + e.options2[0], + e.options2[1], + e.enabled ? 1u : 0u); + if (n < 0 || written + n >= static_cast(bufferSize)) + break; + written += n; + } + } + + snprintf(responseBuffer + written, bufferSize - written, "]"); + + // Append sensor type descriptors when meta=1 + if (includeMeta) + { + written = static_cast(strnlen(responseBuffer, bufferSize)); + int n = snprintf(responseBuffer + written, bufferSize - written, + ",\"meta\":{\"count\":%u,\"descriptors\":[", + static_cast(SensorIdList::Count)); + if (n < 0 || written + n >= static_cast(bufferSize)) + { + responseBuffer[bufferSize - 1] = '\0'; + return CommandResult::ok(); + } + written += n; + + for (unsigned di = 0; di < static_cast(SensorIdList::Count); di++) + { + const auto& d = SensorDescriptors[di]; + n = snprintf(responseBuffer + written, bufferSize - written, + "%s{\"id\":%u,\"name\":\"%s\"," + "\"pins\":[", + di > 0 ? "," : "", di, d.name); + if (n < 0 || written + n >= static_cast(bufferSize)) break; + written += n; + + bool firstPin = true; + for (unsigned p = 0; p < ConfigMaxSensorPins; p++) + { + if (strcmp(d.pins[p].type, "none") == 0) continue; + n = snprintf(responseBuffer + written, bufferSize - written, + "%s{\"label\":\"%s\",\"type\":\"%s\",\"min\":%d,\"max\":%d,\"default\":%d}", + firstPin ? "" : ",", + d.pins[p].label, d.pins[p].type, + d.pins[p].minVal, d.pins[p].maxVal, d.pins[p].defaultValue); + if (n < 0 || written + n >= static_cast(bufferSize)) break; + written += n; + firstPin = false; + } + + n = snprintf(responseBuffer + written, bufferSize - written, + "],\"options1\":["); + if (n < 0 || written + n >= static_cast(bufferSize)) break; + written += n; + + bool firstOpt1 = true; + for (unsigned o = 0; o < 2; o++) + { + if (strcmp(d.options1[o].type, "none") == 0) continue; + n = snprintf(responseBuffer + written, bufferSize - written, + "%s{\"label\":\"%s\",\"type\":\"%s\",\"min\":%d,\"max\":%d,\"default\":%d}", + firstOpt1 ? "" : ",", + d.options1[o].label, d.options1[o].type, + d.options1[o].minVal, d.options1[o].maxVal, d.options1[o].defaultValue); + if (n < 0 || written + n >= static_cast(bufferSize)) break; + written += n; + firstOpt1 = false; + } + + n = snprintf(responseBuffer + written, bufferSize - written, + "],\"options2\":["); + if (n < 0 || written + n >= static_cast(bufferSize)) break; + written += n; + + bool firstOpt2 = true; + for (unsigned o = 0; o < 2; o++) + { + if (strcmp(d.options2[o].type, "none") == 0) continue; + n = snprintf(responseBuffer + written, bufferSize - written, + "%s{\"label\":\"%s\",\"type\":\"%s\",\"min\":%d,\"max\":%d,\"default\":%d}", + firstOpt2 ? "" : ",", + d.options2[o].label, d.options2[o].type, + d.options2[o].minVal, d.options2[o].maxVal, d.options2[o].defaultValue); + if (n < 0 || written + n >= static_cast(bufferSize)) break; + written += n; + firstOpt2 = false; + } + + n = snprintf(responseBuffer + written, bufferSize - written, "]}"); + if (n < 0 || written + n >= static_cast(bufferSize)) break; + written += n; + } + + snprintf(responseBuffer + written, bufferSize - written, "]}"); + } + + return CommandResult::ok(); + } + + // ---- S1: Add / Update Sensor ---- + if (SystemFunctions::commandMatches(command, SensorConfigAddUpdate)) + { + if (!config) + { + formatJsonResponse(responseBuffer, bufferSize, false, "Config not available"); + return CommandResult::error(InvalidCommandParameters); + } + + uint8_t idx, type; + int8_t opt0, opt1; + + if (!getParamValueU8t(params, paramCount, "i", idx) || + !getParamValueU8t(params, paramCount, "t", type) || + !getParamValue8t(params, paramCount, "o0", opt0) || + !getParamValue8t(params, paramCount, "o1", opt1) || + idx >= ConfigMaxSensors) + { + return CommandResult::error(InvalidCommandParameters); + } + + SensorEntry& entry = config->sensors.sensors[idx]; + entry.enabled = true; + entry.sensorType = static_cast(type); + entry.options1[0] = opt0; + entry.options1[1] = opt1; + + if (idx >= config->sensors.count) + config->sensors.count = idx + 1; + + return CommandResult::ok(); + } + + // ---- S2: Remove Sensor ---- + if (SystemFunctions::commandMatches(command, SensorConfigRemove)) + { + if (!config) + { + formatJsonResponse(responseBuffer, bufferSize, false, "Config not available"); + return CommandResult::error(InvalidCommandParameters); + } + + uint8_t idx; + + if (paramCount < 1 || !getParamValueU8t(params, paramCount, "v", idx)) + { + return CommandResult::error(InvalidCommandParameters); + } + + if (idx >= ConfigMaxSensors) + { + return CommandResult::error(InvalidCommandParameters); + } + + if (idx < config->sensors.count) + { + for (uint8_t j = idx; j + 1 < config->sensors.count; j++) + config->sensors.sensors[j] = config->sensors.sensors[j + 1]; + + if (config->sensors.count > 0) + config->sensors.count--; + + memset(&config->sensors.sensors[config->sensors.count], 0, sizeof(SensorEntry)); + } + + return CommandResult::ok(); + } + + // ---- S3: Rename Sensor ---- + if (SystemFunctions::commandMatches(command, SensorConfigRename)) + { + if (!config) + { + formatJsonResponse(responseBuffer, bufferSize, false, "Config not available"); + return CommandResult::error(InvalidCommandParameters); + } + + if (paramCount < 1) + { + return CommandResult::error(InvalidCommandParameters); + } + + uint8_t idx = static_cast(strtoul(params[0].key, nullptr, 0)); + + if (idx >= ConfigMaxSensors || idx >= config->sensors.count || params[0].value[0] == '\0') + { + return CommandResult::error(InvalidCommandParameters); + } + + SensorEntry& entry = config->sensors.sensors[idx]; + strncpy(entry.name, params[0].value, sizeof(entry.name) - 1); + entry.name[sizeof(entry.name) - 1] = '\0'; + return CommandResult::ok(); + } + + // ---- S4: Set Sensor Pin ---- + if (SystemFunctions::commandMatches(command, SensorConfigSetPin)) + { + if (!config) + { + formatJsonResponse(responseBuffer, bufferSize, false, "Config not available"); + return CommandResult::error(InvalidCommandParameters); + } + + uint8_t idx, slot, pin; + + if (!getParamValueU8t(params, paramCount, "i", idx) || + !getParamValueU8t(params, paramCount, "s", slot) || + !getParamValueU8t(params, paramCount, "v", pin) || + idx >= ConfigMaxSensors || idx >= config->sensors.count || + slot >= ConfigMaxSensorPins) + { + return CommandResult::error(InvalidCommandParameters); + } + + config->sensors.sensors[idx].pins[slot] = pin; + return CommandResult::ok(); + } + + // ---- S5: Set Sensor Enabled ---- + if (SystemFunctions::commandMatches(command, SensorConfigSetEnabled)) { - // nothing to do in this context + if (!config) + { + formatJsonResponse(responseBuffer, bufferSize, false, "Config not available"); + return CommandResult::error(InvalidCommandParameters); + } + + if (paramCount < 1) + { + return CommandResult::error(InvalidCommandParameters); + } + + uint8_t idx = static_cast(strtoul(params[0].key, nullptr, 0)); + bool enabled = SystemFunctions::parseBooleanValue(params[0].value); + + if (idx >= ConfigMaxSensors || idx >= config->sensors.count) + { + return CommandResult::error(InvalidCommandParameters); + } + + config->sensors.sensors[idx].enabled = enabled; + return CommandResult::ok(); } - return CommandResult::error(InvalidCommandParameters); + // ---- S6: Set Sensor Option ---- + if (SystemFunctions::commandMatches(command, SensorConfigSetOptions)) + { + if (!config) + { + formatJsonResponse(responseBuffer, bufferSize, false, "Config not available"); + return CommandResult::error(InvalidCommandParameters); + } + + uint8_t idx, slot, option; + + if (!getParamValueU8t(params, paramCount, "i", idx) || + !getParamValueU8t(params, paramCount, "s", slot) || + !getParamValueU8t(params, paramCount, "o", option) || + idx >= ConfigMaxSensors || idx >= config->sensors.count || + option > 1) + { + return CommandResult::error(InvalidCommandParameters); + } + + constexpr uint8_t options1Size = sizeof(SensorEntry::options1) / sizeof(SensorEntry::options1[0]); + + if (slot >= options1Size) + { + return CommandResult::error(InvalidCommandParameters); + } + + if (option == 0) + { + int8_t val8; + + if (!getParamValue8t(params, paramCount, "v", val8)) + { + return CommandResult::error(InvalidCommandParameters); + } + + config->sensors.sensors[idx].options1[slot] = val8; + } + else + { + int16_t val16; + + if (!getParamValue16t(params, paramCount, "v", val16)) + { + return CommandResult::error(InvalidCommandParameters); + } + + config->sensors.sensors[idx].options2[slot] = val16; + } + + return CommandResult::ok(); + } + + // ---- S7-S23: Sensor Telemetry Queries (return full status) ---- + if (SystemFunctions::commandMatches(command, SensorTemperature) || + SystemFunctions::commandMatches(command, SensorHumidity) || + SystemFunctions::commandMatches(command, SensorBearing) || + SystemFunctions::commandMatches(command, SensorDirection) || + SystemFunctions::commandMatches(command, SensorSpeed) || + SystemFunctions::commandMatches(command, SensorCompassTemp) || + SystemFunctions::commandMatches(command, SensorWaterLevel) || + SystemFunctions::commandMatches(command, SensorWaterPumpActive) || + SystemFunctions::commandMatches(command, SensorHornActive) || + SystemFunctions::commandMatches(command, SensorLightSensor) || + SystemFunctions::commandMatches(command, SensorGpsLatLong) || + SystemFunctions::commandMatches(command, SensorGpsAltitude) || + SystemFunctions::commandMatches(command, SensorGpsSpeed) || + SystemFunctions::commandMatches(command, SensorGpsSatellites) || + SystemFunctions::commandMatches(command, SensorGpsDistance) || + SystemFunctions::commandMatches(command, SensorBinaryPresence) || + SystemFunctions::commandMatches(command, SensorVoltage)) + { + if (!_sensorController) + { + formatJsonResponse(responseBuffer, bufferSize, false, "Sensor controller not initialized"); + return CommandResult::error(InvalidCommandParameters); + } + + formatStatusJson(responseBuffer, bufferSize); + return CommandResult::ok(); + } + + // ---- Unknown command ---- + formatJsonResponse(responseBuffer, bufferSize, false, "Unknown sensor command"); + return CommandResult::error(InvalidCommandParameters); } void SensorNetworkHandler::formatStatusJson(char* buffer, size_t size) { - if (!buffer || size == 0) - { - return; - } - - if (!_sensorController) - { - int written = snprintf(buffer, size, "\"sensors\":{}"); - if (written < 0 || written >= static_cast(size)) - { - buffer[size - 1] = '\0'; - } - return; - } - - int written = snprintf(buffer, size, "\"sensors\":{"); - if (written < 0 || written >= static_cast(size)) - { - buffer[size - 1] = '\0'; - return; // Buffer too small for even the opening - } - - bool firstSensor = true; - for (uint8_t i = 0; i < _sensorController->sensorCount(); i++) - { - BaseSensor* sensor = _sensorController->sensorGet(i); - - if (sensor == nullptr) - continue; - - char sensorBuffer[MaximumJsonResponseBufferSize]; - sensorBuffer[0] = '\0'; - - sensor->formatStatusJson(sensorBuffer, sizeof(sensorBuffer)); - - if (sensorBuffer[0] == '\0') - continue; - - // Add comma separator if not the first element - if (!firstSensor) - { - int n = snprintf(buffer + written, size - written, ","); - if (n < 0 || written + n >= static_cast(size)) - { - buffer[size - 1] = '\0'; - return; // Out of space - } - written += n; - } - - // Write sensor entry (removed duplicate and fixed format) - char safeName[64]; - SystemFunctions::sanitizeJsonString(sensor->getSensorName(), safeName, sizeof(safeName)); - int n = snprintf(buffer + written, size - written, - "\"%s\":{\"uid\":%d,\"idType\":%d,\"type\":%d,%s}", - safeName, - sensor->getUid(), - static_cast(sensor->getSensorIdType()), - static_cast(sensor->getSensorType()), - sensorBuffer); - - if (n < 0 || written + n >= static_cast(size)) - { - buffer[size - 1] = '\0'; - return; // Out of space - } - written += n; - firstSensor = false; - } - - // Close JSON object - int n = snprintf(buffer + written, size - written, "}"); - if (n < 0 || written + n >= static_cast(size)) - { - buffer[size - 1] = '\0'; - } + if (!buffer || size == 0) + { + return; + } + + if (!_sensorController) + { + int written = snprintf(buffer, size, "\"sensors\":{}"); + if (written < 0 || written >= static_cast(size)) + { + buffer[size - 1] = '\0'; + } + return; + } + + int written = snprintf(buffer, size, "\"sensors\":{"); + if (written < 0 || written >= static_cast(size)) + { + buffer[size - 1] = '\0'; + return; // Buffer too small for even the opening + } + + bool firstSensor = true; + for (uint8_t i = 0; i < _sensorController->sensorCount(); i++) + { + BaseSensor* sensor = _sensorController->sensorGet(i); + + if (sensor == nullptr) + continue; + + char sensorBuffer[MaximumJsonResponseBufferSize]; + sensorBuffer[0] = '\0'; + + sensor->formatStatusJson(sensorBuffer, sizeof(sensorBuffer)); + + if (sensorBuffer[0] == '\0') + continue; + + // Add comma separator if not the first element + if (!firstSensor) + { + int n = snprintf(buffer + written, size - written, ","); + if (n < 0 || written + n >= static_cast(size)) + { + buffer[size - 1] = '\0'; + return; // Out of space + } + written += n; + } + + // Write sensor entry (removed duplicate and fixed format) + char safeName[64]; + SystemFunctions::sanitizeJsonString(sensor->getSensorName(), safeName, sizeof(safeName)); + int n = snprintf(buffer + written, size - written, + "\"%s\":{\"uid\":%d,\"idType\":%d,\"type\":%d,%s}", + safeName, + sensor->getUid(), + static_cast(sensor->getSensorIdType()), + static_cast(sensor->getSensorType()), + sensorBuffer); + + if (n < 0 || written + n >= static_cast(size)) + { + buffer[size - 1] = '\0'; + return; // Out of space + } + written += n; + firstSensor = false; + } + + // Close JSON object + int n = snprintf(buffer + written, size - written, "}"); + if (n < 0 || written + n >= static_cast(size)) + { + buffer[size - 1] = '\0'; + } } void SensorNetworkHandler::formatWifiStatusJson(IWifiClient* client) { - char buffer[MaximumJsonResponseBufferSize]; - buffer[0] = '\0'; + char buffer[MaximumJsonResponseBufferSize]; + buffer[0] = '\0'; - formatStatusJson(buffer, sizeof(buffer)); - client->print(buffer); + formatStatusJson(buffer, sizeof(buffer)); + client->print(buffer); } diff --git a/PowerControlHub/SensorNetworkHandler.h b/PowerControlHub/SensorNetworkHandler.h index b5958ed..59580dc 100644 --- a/PowerControlHub/SensorNetworkHandler.h +++ b/PowerControlHub/SensorNetworkHandler.h @@ -19,9 +19,10 @@ #include "INetworkCommandHandler.h" #include "SensorController.h" +#include "BaseConfigCommandHandler.h" -class SensorNetworkHandler : public INetworkCommandHandler +class SensorNetworkHandler : public INetworkCommandHandler, public BaseConfigCommandHandler { private: SensorController* _sensorController; diff --git a/PowerControlHub/SystemDefinitions.h b/PowerControlHub/SystemDefinitions.h index 0b92dcc..9ba579a 100644 --- a/PowerControlHub/SystemDefinitions.h +++ b/PowerControlHub/SystemDefinitions.h @@ -135,6 +135,7 @@ constexpr char WarningStatus[] = "W2"; constexpr char WarningsClear[] = "W3"; constexpr char WarningsAdd[] = "W4"; +constexpr char SensorConfigMeta[] = "meta"; constexpr char SensorConfigGetAll[] = "S0"; constexpr char SensorConfigAddUpdate[] = "S1"; constexpr char SensorConfigRemove[] = "S2"; @@ -237,6 +238,7 @@ enum class SensorIdList : uint8_t BinaryPresenceSensor = 0x5, VoltageSensor = 0x6, + Count, None = 0xFF }; diff --git a/PowerControlHub/WifiServer.cpp b/PowerControlHub/WifiServer.cpp index a54ac10..686587d 100644 --- a/PowerControlHub/WifiServer.cpp +++ b/PowerControlHub/WifiServer.cpp @@ -1112,13 +1112,13 @@ bool WifiServer::dispatchToHandler(IWifiClient& client, INetworkCommandHandler* // Log response buffer for debugging if (responseBuffer[0] != '\0') { - char dbg[256]; + char dbg[1051]; snprintf(dbg, sizeof(dbg), "Handler success response: %s", responseBuffer); sendDebug(dbg, F("WifiServer")); } // Log parameters passed to handler - char paramDbg[128]; + char paramDbg[512]; for (uint8_t p = 0; p < paramCount; p++) { snprintf(paramDbg, sizeof(paramDbg), "Param[%d] %s=%s", p, params[p].key, params[p].value); @@ -1135,12 +1135,12 @@ bool WifiServer::dispatchToHandler(IWifiClient& client, INetworkCommandHandler* if (responseBuffer[0] != '\0') { // Log error response for debugging - char dbg[256]; + char dbg[1050]; snprintf(dbg, sizeof(dbg), "Handler error response: %s", responseBuffer); sendDebug(dbg, F("WifiServer")); // Also log parameters to help reproduce the error - char paramDbg[128]; + char paramDbg[1024]; for (uint8_t p = 0; p < paramCount; p++) { snprintf(paramDbg, sizeof(paramDbg), "Param[%d] %s=%s", p, params[p].key, params[p].value); @@ -1154,13 +1154,13 @@ bool WifiServer::dispatchToHandler(IWifiClient& client, INetworkCommandHandler* // No response buffer provided; log context for debugging sendDebug(F("Handler error (no response buffer)"), F("WifiServer")); // Log method and command - char ctx[128]; + char ctx[164]; snprintf(ctx, sizeof(ctx), "Method=%s, Command=%s, ParamCount=%d", method, command, paramCount); sendDebug(ctx, F("WifiServer")); for (uint8_t p = 0; p < paramCount; p++) { - char paramDbg[128]; + char paramDbg[400]; snprintf(paramDbg, sizeof(paramDbg), "Param[%d] %s=%s", p, params[p].key, params[p].value); sendDebug(paramDbg, F("WifiServer")); } diff --git a/PowerControlHubApp/App.xaml.cs b/PowerControlHubApp/App.xaml.cs index 35602f2..1b3165c 100644 --- a/PowerControlHubApp/App.xaml.cs +++ b/PowerControlHubApp/App.xaml.cs @@ -1,7 +1,8 @@ -using PowerControlHubApp.Services; +using Microsoft.Extensions.Logging; +using PowerControlHubApp.Services; +using static PowerControlHubApp.Internal.Constants; #if WINDOWS -using static PowerControlHubApp.Internal.Constants; using WinRT.Interop; using Microsoft.UI; using Microsoft.UI.Windowing; @@ -12,9 +13,27 @@ namespace PowerControlHubApp { public partial class App : Application { - public App(ThemeService themeService) + private readonly DashboardPoller _dashboardPoller; + private readonly ConfigPoller _configPoller; + private readonly SensorMetaCache _sensorMetaCache; + private readonly IConfigConnection _configConnection; + private readonly ILogger _log; + + public App( + ThemeService themeService, + DashboardPoller dashboardPoller, + ConfigPoller configPoller, + SensorMetaCache sensorMetaCache, + IConfigConnection configConnection, + ILogger log) { InitializeComponent(); + _dashboardPoller = dashboardPoller; + _configPoller = configPoller; + _sensorMetaCache = sensorMetaCache; + _configConnection = configConnection; + _log = log; + // Apply after InitializeComponent so Application.Resources is populated. ThemeService.ApplySaved(); } @@ -30,6 +49,83 @@ protected override Window CreateWindow(IActivationState activationState) return window; } + protected override void OnStart() + { + base.OnStart(); + + // Start background pollers + _dashboardPoller.Start(); + _configPoller.Start(); + + // Startup orchestration: after first successful dashboard poll, + // fetch sensor meta data over the config connection so config pages are ready. + AttachStartupOrchestration(); + } + + protected override void OnSleep() + { + base.OnSleep(); + _ = StopPollersAsync(); + } + + protected override void OnResume() + { + base.OnResume(); + + // Restart pollers when the app comes back to foreground + _dashboardPoller.Start(); + _configPoller.Start(); + } + + private async Task StopPollersAsync() + { + await Task.WhenAll( + _dashboardPoller.StopAsync(), + _configPoller.StopAsync()); + } + + private void AttachStartupOrchestration() + { + EventHandler handler = null; + handler = async (sender, args) => + { + _dashboardPoller.DataUpdated -= handler; + + try + { + _log.LogDebug(LogStartupMetaFetch); + await _sensorMetaCache.RefreshAsync(_configConnection); + _log.LogDebug(LogStartupMetaPopulated); + } + catch (Exception ex) + { + _log.LogWarning(ex, LogMetaRefreshFailed); + } + }; + + if (_dashboardPoller.CurrentIndex != null) + { + _dashboardPoller.DataUpdated -= handler; + _ = Task.Run(async () => + { + try + { + _log.LogDebug(LogStartupMetaAlready); + await _sensorMetaCache.RefreshAsync(_configConnection); + _log.LogDebug(LogStartupMetaPopulated); + } + catch (Exception ex) + { + _log.LogWarning(ex, LogMetaRefreshFailed); + } + }); + } + else + { + _dashboardPoller.DataUpdated += handler; + } + } + #if WINDOWS private static void OnWindowHandlerChanged(object sender, EventArgs e) { diff --git a/PowerControlHubApp/AppShell.xaml b/PowerControlHubApp/AppShell.xaml index 6977b7e..b33e214 100644 --- a/PowerControlHubApp/AppShell.xaml +++ b/PowerControlHubApp/AppShell.xaml @@ -19,6 +19,18 @@ Route="RelayConfigPage" ContentTemplate="{DataTemplate views:RelayConfigPage}" /> + + + + (sp => + // Infrastructure + builder.Services.AddSingleton(); + + // Connections — each owns its own HttpClient (one persistent TCP socket) + builder.Services.AddSingleton(sp => { - var service = new PowerHubService(); + var connection = new DashboardConnection(); string ip = Preferences.Get(KeyDeviceIpAddress, string.Empty); string port = Preferences.Get(KeyDeviceIpPort, DefaultDeviceIpPort); if (!string.IsNullOrEmpty(ip) && int.TryParse(port, out int p)) - service.Configure(ip, p); + connection.Configure(ip, p); + + return connection; + }); + + builder.Services.AddSingleton(sp => + sp.GetRequiredService()); + + + // Register ConfigConnection as the inner singleton + builder.Services.AddSingleton(sp => + { + var connection = new ConfigConnection( + sp.GetRequiredService(), + sp.GetRequiredService>()); + + string ip = Preferences.Get(KeyDeviceIpAddress, string.Empty); + string port = Preferences.Get(KeyDeviceIpPort, DefaultDeviceIpPort); + + if (!string.IsNullOrEmpty(ip) && int.TryParse(port, out int p)) + connection.Configure(ip, p); + + return connection; + }); + + // Register ConfigPoller as singleton and as IConfigConnection + builder.Services.AddSingleton(sp => + new ConfigPoller( + sp.GetRequiredService(), + sp.GetRequiredService(), + sp.GetRequiredService>(), + sp.GetRequiredService())); + builder.Services.AddSingleton(sp => sp.GetRequiredService()); + + // Legacy service — kept as thin facade that delegates to the two connections + builder.Services.AddSingleton(sp => + { + var service = new PowerHubService( + sp.GetRequiredService(), + sp.GetRequiredService()); return service; }); - // Dashboard poller - single instance that also runs as a hosted background service - builder.Services.AddSingleton(); - builder.Services.AddHostedService(sp => (DashboardPoller)sp.GetRequiredService()); + // Dashboard poller — single instance + builder.Services.AddSingleton(); + builder.Services.AddSingleton(sp => sp.GetRequiredService()); + builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); @@ -45,12 +88,20 @@ public static MauiApp CreateMauiApp() builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddTransient(); + builder.Services.AddSingleton(); + builder.Services.AddTransient(); + builder.Services.AddSingleton(); + builder.Services.AddTransient(); // Pages builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddTransient(); + builder.Services.AddSingleton(); + builder.Services.AddTransient(); + builder.Services.AddSingleton(); + builder.Services.AddTransient(); #if DEBUG builder.Logging.AddDebug(); diff --git a/PowerControlHubApp/Messages/ConfigConnectionStatusChanged.cs b/PowerControlHubApp/Messages/ConfigConnectionStatusChanged.cs new file mode 100644 index 0000000..9b6330f --- /dev/null +++ b/PowerControlHubApp/Messages/ConfigConnectionStatusChanged.cs @@ -0,0 +1,3 @@ +namespace PowerControlHubApp.Messages; + +public record ConfigConnectionStatusChanged(bool IsConnected); diff --git a/PowerControlHubApp/Models/ExternalSensorConfigModel.cs b/PowerControlHubApp/Models/ExternalSensorConfigModel.cs new file mode 100644 index 0000000..64e3ba2 --- /dev/null +++ b/PowerControlHubApp/Models/ExternalSensorConfigModel.cs @@ -0,0 +1,68 @@ +using System.Text.Json.Serialization; +using static PowerControlHubApp.Internal.Constants; + +namespace PowerControlHubApp.Models +{ + public sealed class ExternalSensorConfigModel + { + // SensorIdList enum values mapped to display names + private static readonly string[] SensorIdNames = new[] + { + SensorTypeWater, // 0 Water + SensorTypeDht11, // 1 DHT11 + SensorTypeLight, // 2 Light + SensorTypeGps, // 3 GPS + SensorTypeSystem, // 4 System + SensorTypeBinaryPresence, // 5 Binary Presence + SensorTypeVoltage, // 6 Voltage + }; + + [JsonPropertyName(JsonSensorIndex)] + public int Index { get; set; } + + [JsonPropertyName(JsonSensorId)] + public int SensorId { get; set; } + + /// + /// Human-readable name corresponding to the SensorIdList enum value. + /// + [JsonIgnore] + public string SensorTypeName => + SensorId >= 0 && SensorId < SensorIdNames.Length + ? SensorIdNames[SensorId] + : SensorTypeUnknown; + + /// + /// True if this slot has been configured (has a name or valid SensorId). + /// + [JsonIgnore] + public bool IsConfigured => !string.IsNullOrWhiteSpace(Name) || SensorId > 0; + + /// + /// Display name for the list: uses Name, or falls back to sensor type. + /// + [JsonIgnore] + public string DisplayName => !string.IsNullOrWhiteSpace(Name) ? Name : SensorTypeName; + + [JsonPropertyName(JsonSensorName)] + public string Name { get; set; } + + [JsonPropertyName(JsonSensorMqttName)] + public string MqttName { get; set; } + + [JsonPropertyName(JsonSensorMqttSlug)] + public string MqttSlug { get; set; } + + [JsonPropertyName(JsonSensorMqttType)] + public string MqttTypeSlug { get; set; } + + [JsonPropertyName(JsonSensorMqttDeviceClass)] + public string MqttDeviceClass { get; set; } + + [JsonPropertyName(JsonSensorMqttUnit)] + public string MqttUnit { get; set; } + + [JsonPropertyName(JsonSensorMqttBinary)] + public bool MqttIsBinary { get; set; } + } +} diff --git a/PowerControlHubApp/Models/Json/IndexModel.cs b/PowerControlHubApp/Models/Json/IndexModel.cs index adf30e4..063cb4c 100644 --- a/PowerControlHubApp/Models/Json/IndexModel.cs +++ b/PowerControlHubApp/Models/Json/IndexModel.cs @@ -29,6 +29,13 @@ public sealed class IndexModel [JsonPropertyName("sensors")] public SensorsModel Sensors { get; set; } + /// + /// Populated from the sensors JSON object — contains one entry per sensor + /// with Name, SensorType, and ExtraFields set. + /// + [JsonIgnore] + public List SensorsList { get; set; } = []; + [JsonPropertyName("schedule")] public ScheduleModel Schedule { get; set; } diff --git a/PowerControlHubApp/Models/Json/SensorsModel.cs b/PowerControlHubApp/Models/Json/SensorsModel.cs index 184cc19..1807199 100644 --- a/PowerControlHubApp/Models/Json/SensorsModel.cs +++ b/PowerControlHubApp/Models/Json/SensorsModel.cs @@ -1,4 +1,5 @@ using PowerControlHubApp.Converters; +using System.Text.Json; using System.Text.Json.Serialization; namespace PowerControlHubApp.Models.Json @@ -8,8 +9,20 @@ public sealed class SensorsModel [JsonPropertyName("system")] [JsonConverter(typeof(SingleOrArrayConverter))] public SystemSensorModel[] System { get; set; } - public object Name { get; internal set; } - public object ExtraFields { get; internal set; } - public SensorType SensorType { get; internal set; } + + /// + /// Sensor name (key in the sensors JSON object from /api/index). + /// + public string Name { get; set; } = string.Empty; + + /// + /// Raw JSON element containing all sensor-specific fields. + /// + public JsonElement? ExtraFields { get; set; } + + /// + /// Sensor type id mapped to the enum. + /// + public SensorType SensorType { get; set; } = SensorType.Unknown; } } diff --git a/PowerControlHubApp/Models/LocalSensorConfigModel.cs b/PowerControlHubApp/Models/LocalSensorConfigModel.cs new file mode 100644 index 0000000..3241c6f --- /dev/null +++ b/PowerControlHubApp/Models/LocalSensorConfigModel.cs @@ -0,0 +1,103 @@ +using System.Text.Json.Serialization; +using static PowerControlHubApp.Internal.Constants; + +namespace PowerControlHubApp.Models +{ + /// + /// Mirrors the JSON returned by GET /api/sensorconfig/ for a single local sensor entry. + /// Field names match the firmware's SensorEntry broadcast format (S0 response). + /// + public sealed class LocalSensorConfigModel + { + [JsonPropertyName(JsonLocalSensorIndex)] + public int Index { get; set; } + + [JsonPropertyName(JsonLocalSensorType)] + public int SensorType { get; set; } + + [JsonPropertyName(JsonLocalSensorName)] + public string Name { get; set; } = string.Empty; + + [JsonPropertyName(JsonLocalSensorPin0)] + public int Pin0 { get; set; } = UnconfiguredPin; + + [JsonPropertyName(JsonLocalSensorPin1)] + public int Pin1 { get; set; } = UnconfiguredPin; + + [JsonPropertyName(JsonLocalSensorOpt1_0)] + public int Opt1_0 { get; set; } + + [JsonPropertyName(JsonLocalSensorOpt1_1)] + public int Opt1_1 { get; set; } + + [JsonPropertyName(JsonLocalSensorOpt2_0)] + public int Opt2_0 { get; set; } + + [JsonPropertyName(JsonLocalSensorOpt2_1)] + public int Opt2_1 { get; set; } + + [JsonPropertyName(JsonLocalSensorEnabled)] + public bool Enabled { get; set; } + + /// + /// Returns true if this sensor slot has been configured (has a meaningful pin or type). + /// + [JsonIgnore] + public bool IsConfigured => Pin0 < UnconfiguredPin || Pin1 < UnconfiguredPin || SensorType > 0; + + /// + /// Human-readable type name matching SensorIdList enum values. + /// + [JsonIgnore] + public string TypeName + { + get + { + return SensorType switch + { + SensorEnumWater => SensorTypeWater, + SensorEnumDht11 => SensorTypeDht11, + SensorEnumLight => SensorTypeLight, + SensorEnumGps => SensorTypeGps, + SensorEnumSystem => SensorTypeSystem, + SensorEnumBinaryPresence => SensorTypeBinaryPresence, + SensorEnumVoltage => SensorTypeVoltage, + _ => SensorTypeUnknown + }; + } + } + + /// + /// Display name: uses the configured name, or falls back to type name. + /// + [JsonIgnore] + public string DisplayName => !string.IsNullOrWhiteSpace(Name) ? Name : SensorNotConfigured; + + /// + /// Pin summary for the sub-label. + /// + [JsonIgnore] + public string PinSummary + { + get + { + if (!IsConfigured || !Enabled) + return SensorNotConfigured; + + if (Pin0 < UnconfiguredPin && Pin1 < UnconfiguredPin) + return $"Pin {Pin0}, {Pin1}"; + + if (Pin0 < UnconfiguredPin) + return $"Pin {Pin0}"; + + return TypeName; + } + } + + /// + /// True if the sensor is present and enabled in config. + /// + [JsonIgnore] + public bool IsEnabled => Enabled && IsConfigured; + } +} diff --git a/PowerControlHubApp/Models/SensorTypeDescriptorModel.cs b/PowerControlHubApp/Models/SensorTypeDescriptorModel.cs new file mode 100644 index 0000000..bf04a87 --- /dev/null +++ b/PowerControlHubApp/Models/SensorTypeDescriptorModel.cs @@ -0,0 +1,60 @@ +using System.Text.Json.Serialization; +using static PowerControlHubApp.Internal.Constants; + +namespace PowerControlHubApp.Models; + +/// +/// Describes one field (pin, option1, or option2) within a sensor type descriptor, +/// enabling the UI to render appropriate labels and input constraints dynamically. +/// +public sealed class SensorFieldDescriptorModel +{ + [JsonPropertyName("label")] + public string Label { get; set; } = string.Empty; + + [JsonPropertyName("type")] + public string Type { get; set; } = string.Empty; + + [JsonPropertyName("min")] + public int Min { get; set; } + + [JsonPropertyName("max")] + public int Max { get; set; } + + [JsonPropertyName("default")] + public int Default { get; set; } +} + +/// +/// Describes one sensor type (e.g. Water Sensor, DHT11, Voltage Sensor), +/// including its available pin slots and option fields. +/// +public sealed class SensorTypeDescriptorModel +{ + [JsonPropertyName("id")] + public int Id { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } = string.Empty; + + [JsonPropertyName("pins")] + public List Pins { get; set; } = []; + + [JsonPropertyName("options1")] + public List Options1 { get; set; } = []; + + [JsonPropertyName("options2")] + public List Options2 { get; set; } = []; +} + +/// +/// Container for the meta block returned by S0?meta=1. +/// +public sealed class SensorMetaResponseModel +{ + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("descriptors")] + public List Descriptors { get; set; } = []; +} diff --git a/PowerControlHubApp/PowerControlHubApp.csproj b/PowerControlHubApp/PowerControlHubApp.csproj index 5c0197d..856322b 100644 --- a/PowerControlHubApp/PowerControlHubApp.csproj +++ b/PowerControlHubApp/PowerControlHubApp.csproj @@ -18,6 +18,7 @@ true enable disable + true + + + + + + + + + + + + + + + + + + + + diff --git a/PowerControlHubApp/Services/ConfigCommand.cs b/PowerControlHubApp/Services/ConfigCommand.cs new file mode 100644 index 0000000..b77c6da --- /dev/null +++ b/PowerControlHubApp/Services/ConfigCommand.cs @@ -0,0 +1,11 @@ +namespace PowerControlHubApp.Services +{ + public record ConfigCommand + { + public string Description { get; init; } + public Func> ExecuteAsync { get; init; } + public string SuccessMessageType { get; init; } + public string FailureMessageType { get; init; } + public object Context { get; init; } + } +} diff --git a/PowerControlHubApp/Services/ConfigConnection.cs b/PowerControlHubApp/Services/ConfigConnection.cs new file mode 100644 index 0000000..e818672 --- /dev/null +++ b/PowerControlHubApp/Services/ConfigConnection.cs @@ -0,0 +1,437 @@ +using Microsoft.Extensions.Logging; +using PowerControlHubApp.Models; +using PowerControlHubApp.Models.Json; +using System.Net.Sockets; +using System.Text.Json; +using System.Text.Json.Serialization; +using System.Threading.Channels; +using static PowerControlHubApp.Internal.Constants; +namespace PowerControlHubApp.Services +{ + public class ConfigConnection : IConfigConnection, IDisposable + { + private readonly HttpClient _client; + private readonly SocketsHttpHandler _handler; + private readonly Channel _queue; + private readonly IMessageBus _messageBus; + private readonly ILogger _log; + private readonly CancellationTokenSource _cts; + private readonly Task _consumerTask; + private string _baseUrl; + private bool _disposed; + + public ConfigConnection(IMessageBus messageBus, ILogger log) + { + _messageBus = messageBus ?? throw new ArgumentNullException(nameof(messageBus)); + _log = log ?? throw new ArgumentNullException(nameof(log)); + _handler = CreateHandler(); + + _client = new HttpClient(_handler, disposeHandler: false) + { + Timeout = TimeSpan.FromSeconds(SecondsTen) + }; + + _client.DefaultRequestHeaders.ConnectionClose = false; + _client.DefaultRequestHeaders.TryAddWithoutValidation(UserAgentKey, UserAgentValue); + _client.DefaultRequestHeaders.TryAddWithoutValidation(ConnectionTypeKey, ConnectionTypePersistent); + + _queue = Channel.CreateBounded(new BoundedChannelOptions(ConfigConnectionQueueCapacity) + { + FullMode = BoundedChannelFullMode.DropOldest + }); + + _cts = new CancellationTokenSource(); + _baseUrl = string.Empty; + _consumerTask = Task.Run(() => ConsumeQueueAsync(_cts.Token)); + } + + public void Configure(string ipAddress, int port) + { + _baseUrl = $"http://{ipAddress}:{port}"; + _client.BaseAddress = new Uri(_baseUrl + ForwardSlash); + } + + public bool IsConfigured => !string.IsNullOrEmpty(_baseUrl); + + public bool IsQueueEmpty => _queue.Reader.Count == 0; + + public int QueueLength => _queue.Reader.Count; + + public void EnqueueCommand(ConfigCommand command) + { + _queue.Writer.TryWrite(command); + } + + private async Task ConsumeQueueAsync(CancellationToken ct) + { + while (!ct.IsCancellationRequested) + { + try + { + ConfigCommand command = await _queue.Reader.ReadAsync(ct); + _log.LogDebug(LogConfigExecuting, command.Description); + bool success = await command.ExecuteAsync(_client, ct); + + if (success) + { + _log.LogDebug(LogConfigSucceeded, command.Description); + TryPublishSuccess(command); + } + else + { + _log.LogWarning(LogConfigFailed, command.Description); + TryPublishFailure(command, LogConfigFailureResponse); + } + } + catch (OperationCanceledException) when (ct.IsCancellationRequested) + { + break; + } + catch (Exception ex) + { + _log.LogError(ex, LogConfigConsumerError); + } + } + } + + private void TryPublishSuccess(ConfigCommand command) + { + try + { + if (command.SuccessMessageType == ConfigSuccessRelay && command.Context is int relayIndex) + { + _messageBus.Publish(new RelayConfigSucceeded(relayIndex)); + } + else if (command.SuccessMessageType == ConfigSuccessSensor && command.Context is Tuple sensorCtx) + { + _messageBus.Publish(new SensorConfigSucceeded(sensorCtx.Item1, sensorCtx.Item2)); + } + } + catch (Exception ex) + { + _log.LogWarning(ex, LogPublishSuccessFailed, command.Description); + } + } + + private void TryPublishFailure(ConfigCommand command, string error) + { + try + { + _messageBus.Publish(new ConfigCommandFailed(command.Description, error)); + } + catch (Exception ex) + { + _log.LogWarning(ex, LogPublishFailureFailed, command.Description); + } + } + + private static SocketsHttpHandler CreateHandler() + { + var handler = new SocketsHttpHandler + { + PooledConnectionIdleTimeout = TimeSpan.FromSeconds(SecondsSixty), + PooledConnectionLifetime = Timeout.InfiniteTimeSpan, + ConnectTimeout = TimeSpan.FromSeconds(SecondsFive), + MaxConnectionsPerServer = 1, + ConnectCallback = async (context, ct) => + { + var socket = new Socket(SocketType.Stream, ProtocolType.Tcp) + { + NoDelay = true + }; + socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); + socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveTime, SecondsTen); + socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveInterval, SecondsFive); + socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveRetryCount, SecondsThree); + await socket.ConnectAsync(context.DnsEndPoint, ct); + return new NetworkStream(socket, ownsSocket: true); + } + }; + return handler; + } + + private static readonly JsonSerializerOptions JsonOptions = new() + { + PropertyNameCaseInsensitive = true, + NumberHandling = JsonNumberHandling.AllowReadingFromString, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull + }; + + public async Task> GetSensorMetaAsync(CancellationToken ct = default) + { + string json = await _client.GetStringAsync($"{RouteLocalSensorConfig}{SensorConfigGetAll}?meta=1", ct); + using JsonDocument doc = JsonDocument.Parse(json); + + if (doc.RootElement.TryGetProperty(JsonMeta, out var meta) && + meta.TryGetProperty(JsonMetaDescriptors, out var descriptors) && + descriptors.ValueKind == JsonValueKind.Array) + { + return JsonSerializer.Deserialize>(descriptors.GetRawText(), JsonOptions) ?? []; + } + + return []; + } + + public async Task> GetExternalSensorsAsync(CancellationToken ct = default) + { + string json = await _client.GetStringAsync(RouteExternalSensor, ct); + using JsonDocument doc = JsonDocument.Parse(json); + + var list = new List(); + + if (doc.RootElement.TryGetProperty(JsonSensors, out var sensors) && sensors.ValueKind == JsonValueKind.Array) + { + foreach (var el in sensors.EnumerateArray()) + { + var m = new ExternalSensorConfigModel + { + Index = el.GetProperty(JsonSensorIndex).GetInt32(), + SensorId = el.GetProperty(JsonSensorId).GetInt32(), + Name = el.GetProperty(JsonSensorName).GetString() ?? string.Empty, + MqttName = el.GetProperty(JsonSensorMqttName).GetString() ?? string.Empty, + MqttSlug = el.GetProperty(JsonSensorMqttSlug).GetString() ?? string.Empty, + MqttTypeSlug = el.GetProperty(JsonSensorMqttType).GetString() ?? string.Empty, + MqttDeviceClass = el.GetProperty(JsonSensorMqttDeviceClass).GetString() ?? string.Empty, + MqttUnit = el.GetProperty(JsonSensorMqttUnit).GetString() ?? string.Empty, + MqttIsBinary = el.GetProperty(JsonSensorMqttBinary).GetBoolean() + }; + + list.Add(m); + } + } + + return list; + } + + public async Task SetExternalSensorCoreAsync(int index, int sensorId, string name, string mqttName, string mqttSlug, CancellationToken ct = default) + { + string url = $"api/externalsensor/E1?i={index}&id={sensorId}&n={Uri.EscapeDataString(name)}&mn={Uri.EscapeDataString(mqttName)}&ms={Uri.EscapeDataString(mqttSlug)}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task SetExternalSensorMqttAsync(int index, string typeSlug, string deviceClass, string unit, bool isBinary, CancellationToken ct = default) + { + string url = $"api/externalsensor/E2?i={index}&mt={Uri.EscapeDataString(typeSlug)}&md={Uri.EscapeDataString(deviceClass)}&mu={Uri.EscapeDataString(unit)}&bin={(isBinary ? 1 : 0)}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task RemoveExternalSensorAsync(int index, CancellationToken ct = default) + { + string url = $"api/externalsensor/E3?v={index}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task RenameExternalSensorAsync(int index, string name, CancellationToken ct = default) + { + string url = $"api/externalsensor/E4?{index}={Uri.EscapeDataString(name)}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task> GetLocalSensorsAsync(CancellationToken ct = default) + { + string json = await _client.GetStringAsync(RouteLocalSensorConfig, ct); + using JsonDocument doc = JsonDocument.Parse(json); + + var list = new List(); + + if (doc.RootElement.TryGetProperty(JsonSensors, out var sensors) && sensors.ValueKind == JsonValueKind.Array) + { + foreach (var el in sensors.EnumerateArray()) + { + var m = new LocalSensorConfigModel + { + Index = el.GetProperty(JsonLocalSensorIndex).GetInt32(), + SensorType = el.GetProperty(JsonLocalSensorType).GetInt32(), + Name = el.GetProperty(JsonLocalSensorName).GetString() ?? string.Empty, + Pin0 = el.GetProperty(JsonLocalSensorPin0).GetInt32(), + Pin1 = el.GetProperty(JsonLocalSensorPin1).GetInt32(), + Opt1_0 = el.GetProperty(JsonLocalSensorOpt1_0).GetInt32(), + Opt1_1 = el.GetProperty(JsonLocalSensorOpt1_1).GetInt32(), + Opt2_0 = el.GetProperty(JsonLocalSensorOpt2_0).GetInt32(), + Opt2_1 = el.GetProperty(JsonLocalSensorOpt2_1).GetInt32(), + Enabled = el.GetProperty(JsonLocalSensorEnabled).GetInt32() != 0 + }; + + list.Add(m); + } + } + + return list; + } + + public async Task AddUpdateLocalSensorAsync(int index, int type, sbyte opt0, sbyte opt1, CancellationToken ct = default) + { + string url = $"api/sensor/S1?i={index}&t={type}&o0={opt0}&o1={opt1}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task RemoveLocalSensorAsync(int index, CancellationToken ct = default) + { + string url = $"api/sensor/S2?v={index}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task RenameLocalSensorAsync(int index, string name, CancellationToken ct = default) + { + string url = $"api/sensor/S3?{index}={Uri.EscapeDataString(name)}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task SetLocalSensorPinAsync(int index, int slot, byte pin, CancellationToken ct = default) + { + string url = $"api/sensor/S4?i={index}&s={slot}&v={pin}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task SetLocalSensorEnabledAsync(int index, bool enabled, CancellationToken ct = default) + { + string url = $"api/sensor/S5?{index}={(enabled ? 1 : 0)}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task SetLocalSensorOptionAsync(int index, int slot, int group, int value, CancellationToken ct = default) + { + string url = $"api/sensor/S6?i={index}&s={slot}&o={group}&v={value}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task SetRelayStateAsync(int relayIndex, bool on, CancellationToken ct = default) + { + int state = on ? 1 : 0; + string url = $"api/relay/R3?{relayIndex}={state}"; + HttpResponseMessage response = await _client.GetAsync(url, ct); + return response.IsSuccessStatusCode; + } + + public async Task RenameRelayAsync(int index, string shortName, string longName, CancellationToken ct = default) + { + string value = string.IsNullOrWhiteSpace(longName) ? shortName : $"{shortName}|{longName}"; + string url = $"api/relay/R6?{index}={Uri.EscapeDataString(value)}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task SetRelayColorAsync(int index, int colorIndex, CancellationToken ct = default) + { + int nextionId = colorIndex <= RelayColorYellow ? colorIndex + NextionImageIdMin : UnconfiguredPin; + string url = $"api/relay/R7?{index}={nextionId}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task SetRelayDefaultStateAsync(int index, int defaultState, CancellationToken ct = default) + { + string url = $"api/relay/R8?{index}={defaultState}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task LinkRelayAsync(int index, int linkedIndex, CancellationToken ct = default) + { + string url = $"api/relay/R9?{index}={linkedIndex}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task SetRelayActionTypeAsync(int index, int actionType, CancellationToken ct = default) + { + string url = $"api/relay/R10?{index}={actionType}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task SetRelayPinAsync(int index, int pin, CancellationToken ct = default) + { + string url = $"api/relay/R11?{index}={pin}"; + HttpResponseMessage response = await _client.PostAsync(url, null, ct); + return await IsSuccessResponseAsync(response, ct); + } + + public async Task SaveSettingsAsync(CancellationToken ct = default) + { + HttpResponseMessage response = await _client.PostAsync(RouteSaveConfig, null, ct); + return response.IsSuccessStatusCode; + } + + public async Task GetOtaStatusAsync(CancellationToken ct = default) + { + try + { + HttpResponseMessage response = await _client.GetAsync(RouteOtaUpdate, ct); + + if (!response.IsSuccessStatusCode) + return null; + + string body = await response.Content.ReadAsStringAsync(ct); + using JsonDocument doc = JsonDocument.Parse(body); + + if (doc.RootElement.TryGetProperty(ErrorKey, out _)) + return null; + + return JsonSerializer.Deserialize(body, JsonOptions); + } + catch + { + return null; + } + } + + public async Task TriggerOtaInstallAsync(CancellationToken ct = default) + { + try + { + HttpResponseMessage response = await _client.PostAsync(RouteUpdateOta, null, ct); + return response.IsSuccessStatusCode; + } + catch + { + return false; + } + } + + private static async Task IsSuccessResponseAsync(HttpResponseMessage response, CancellationToken ct) + { + if (!response.IsSuccessStatusCode) + return false; + + string body = await response.Content.ReadAsStringAsync(ct); + + try + { + using JsonDocument doc = JsonDocument.Parse(body); + return doc.RootElement.TryGetProperty(ResultSuccess, out JsonElement s) && s.GetBoolean(); + } + catch + { + return response.IsSuccessStatusCode; + } + } + + public void Dispose() + { + if (_disposed) + { + return; + } + + _cts.Cancel(); + + _consumerTask.ContinueWith(_ => { }); + + _client?.Dispose(); + _handler?.Dispose(); + _cts.Dispose(); + _disposed = true; + } + } +} diff --git a/PowerControlHubApp/Services/ConfigPoller.cs b/PowerControlHubApp/Services/ConfigPoller.cs new file mode 100644 index 0000000..5bc368e --- /dev/null +++ b/PowerControlHubApp/Services/ConfigPoller.cs @@ -0,0 +1,184 @@ +using Microsoft.Extensions.Logging; +using PowerControlHubApp.Messages; +using PowerControlHubApp.Models; +using PowerControlHubApp.Models.Json; +using static PowerControlHubApp.Internal.Constants; + +namespace PowerControlHubApp.Services; + +public class ConfigPoller : IConfigConnection, IDisposable +{ + private readonly ConfigConnection _connection; + private readonly IMessageBus _messageBus; + private readonly ILogger _log; + private readonly SensorMetaCache _sensorMetaCache; + private readonly TimeSpan _interval; + private bool _lastConnected; + private CancellationTokenSource _cts; + private Task _pollerTask; + private readonly object _lock = new(); + + public ConfigPoller( + ConfigConnection connection, + IMessageBus messageBus, + ILogger log, + SensorMetaCache sensorMetaCache, + TimeSpan? interval = null) + { + _connection = connection; + _messageBus = messageBus; + _log = log; + _sensorMetaCache = sensorMetaCache; + _interval = interval ?? TimeSpan.FromMilliseconds(DefaultIntervalMs); + _lastConnected = false; + } + + public bool IsRunning => _pollerTask is { IsCompleted: false }; + + /// + /// Starts the polling loop. Safe to call multiple times; subsequent calls are no-ops. + /// + public void Start() + { + lock (_lock) + { + if (IsRunning) + return; + + _cts = new CancellationTokenSource(); + _pollerTask = RunLoopAsync(_cts.Token); + } + } + + /// + /// Signals the polling loop to stop and awaits completion. + /// + public async Task StopAsync() + { + Task task; + + lock (_lock) + { + if (_cts == null) + return; + + _cts.Cancel(); + task = _pollerTask ?? Task.CompletedTask; + _cts.Dispose(); + _cts = null; + _pollerTask = null; + } + + await task; + } + + private async Task RunLoopAsync(CancellationToken stoppingToken) + { + while (!stoppingToken.IsCancellationRequested) + { + bool isConnected = false; + + try + { + // Use a lightweight health check (e.g. GetSensorMetaAsync) + var meta = await _connection.GetSensorMetaAsync(stoppingToken); + isConnected = meta != null; + + if (isConnected && !_lastConnected) + { + // First connection or reconnected + await _sensorMetaCache.RefreshAsync(_connection, stoppingToken); + _log.LogInformation(LogConfigMetaRefreshed); + } + } + catch (Exception ex) + { + isConnected = false; + _log.LogWarning(ex, LogConfigHealthCheckFailed); + } + + if (isConnected != _lastConnected) + { + _lastConnected = isConnected; + _messageBus.Publish(new ConfigConnectionStatusChanged(isConnected)); + } + + try + { + await Task.Delay(_interval, stoppingToken); + } + catch (TaskCanceledException) + { + break; + } + } + } + + // IConfigConnection implementation (delegation to inner ConfigConnection) + public void Configure(string ipAddress, int port) => _connection.Configure(ipAddress, port); + + public bool IsQueueEmpty => _connection.IsQueueEmpty; + + public int QueueLength => _connection.QueueLength; + + public void EnqueueCommand(ConfigCommand command) => _connection.EnqueueCommand(command); + + public Task> GetSensorMetaAsync(CancellationToken ct = default) => _connection.GetSensorMetaAsync(ct); + + public Task> GetExternalSensorsAsync(CancellationToken ct = default) => _connection.GetExternalSensorsAsync(ct); + + public Task SetExternalSensorCoreAsync(int index, int sensorId, string name, string mqttName, string mqttSlug, CancellationToken ct = default) => _connection.SetExternalSensorCoreAsync(index, sensorId, name, mqttName, mqttSlug, ct); + + public Task SetExternalSensorMqttAsync(int index, string typeSlug, string deviceClass, string unit, bool isBinary, CancellationToken ct = default) => _connection.SetExternalSensorMqttAsync(index, typeSlug, deviceClass, unit, isBinary, ct); + + public Task RemoveExternalSensorAsync(int index, CancellationToken ct = default) => _connection.RemoveExternalSensorAsync(index, ct); + + public Task RenameExternalSensorAsync(int index, string name, CancellationToken ct = default) => _connection.RenameExternalSensorAsync(index, name, ct); + + public Task> GetLocalSensorsAsync(CancellationToken ct = default) => _connection.GetLocalSensorsAsync(ct); + + public Task AddUpdateLocalSensorAsync(int index, int type, sbyte opt0, sbyte opt1, CancellationToken ct = default) => _connection.AddUpdateLocalSensorAsync(index, type, opt0, opt1, ct); + + public Task RemoveLocalSensorAsync(int index, CancellationToken ct = default) => _connection.RemoveLocalSensorAsync(index, ct); + + public Task RenameLocalSensorAsync(int index, string name, CancellationToken ct = default) => _connection.RenameLocalSensorAsync(index, name, ct); + + public Task SetLocalSensorPinAsync(int index, int slot, byte pin, CancellationToken ct = default) => _connection.SetLocalSensorPinAsync(index, slot, pin, ct); + + public Task SetLocalSensorEnabledAsync(int index, bool enabled, CancellationToken ct = default) => _connection.SetLocalSensorEnabledAsync(index, enabled, ct); + + public Task SetLocalSensorOptionAsync(int index, int slot, int group, int value, CancellationToken ct = default) => _connection.SetLocalSensorOptionAsync(index, slot, group, value, ct); + + public Task SetRelayStateAsync(int relayIndex, bool on, CancellationToken ct = default) => _connection.SetRelayStateAsync(relayIndex, on, ct); + + public Task RenameRelayAsync(int index, string shortName, string longName, CancellationToken ct = default) => _connection.RenameRelayAsync(index, shortName, longName, ct); + + public Task SetRelayColorAsync(int index, int colorIndex, CancellationToken ct = default) => _connection.SetRelayColorAsync(index, colorIndex, ct); + + public Task SetRelayDefaultStateAsync(int index, int defaultState, CancellationToken ct = default) => _connection.SetRelayDefaultStateAsync(index, defaultState, ct); + + public Task LinkRelayAsync(int index, int linkedIndex, CancellationToken ct = default) => _connection.LinkRelayAsync(index, linkedIndex, ct); + + public Task SetRelayActionTypeAsync(int index, int actionType, CancellationToken ct = default) => _connection.SetRelayActionTypeAsync(index, actionType, ct); + + public Task SetRelayPinAsync(int index, int pin, CancellationToken ct = default) => _connection.SetRelayPinAsync(index, pin, ct); + + public Task SaveSettingsAsync(CancellationToken ct = default) => _connection.SaveSettingsAsync(ct); + + public Task GetOtaStatusAsync(CancellationToken ct = default) => _connection.GetOtaStatusAsync(ct); + + public Task TriggerOtaInstallAsync(CancellationToken ct = default) => _connection.TriggerOtaInstallAsync(ct); + + public void Dispose() + { + if (_cts != null) + { + _cts.Cancel(); + _cts.Dispose(); + _cts = null; + } + + _pollerTask = null; + GC.SuppressFinalize(this); + } +} diff --git a/PowerControlHubApp/Services/DashboardConnection.cs b/PowerControlHubApp/Services/DashboardConnection.cs new file mode 100644 index 0000000..62aaefd --- /dev/null +++ b/PowerControlHubApp/Services/DashboardConnection.cs @@ -0,0 +1,126 @@ +using PowerControlHubApp.Models; +using PowerControlHubApp.Models.Json; +using System.Net.Sockets; +using System.Text.Json; +using System.Text.Json.Serialization; +using static PowerControlHubApp.Internal.Constants; +namespace PowerControlHubApp.Services +{ + public class DashboardConnection : IDashboardConnection, IDisposable + { + private readonly HttpClient _client; + private readonly SocketsHttpHandler _handler; + private string _baseUrl; + private bool _disposed; + + public string BaseUrl => _baseUrl; + + public DashboardConnection() + { + _handler = CreateHandler(); + + _client = new HttpClient(_handler, disposeHandler: false) + { + Timeout = TimeSpan.FromSeconds(SecondsTen) + }; + + _client.DefaultRequestHeaders.ConnectionClose = false; + _client.DefaultRequestHeaders.TryAddWithoutValidation(UserAgentKey, UserAgentValue); + _client.DefaultRequestHeaders.TryAddWithoutValidation(ConnectionTypeKey, ConnectionTypePersistent); + _baseUrl = string.Empty; + } + + public void Configure(string ipAddress, int port) + { + _baseUrl = $"http://{ipAddress}:{port}"; + _client.BaseAddress = new Uri(_baseUrl + ForwardSlash); + } + + public bool IsConfigured => !string.IsNullOrEmpty(_baseUrl); + + public async Task GetDashboardDataAsync(CancellationToken ct = default) + { + string json = await _client.GetStringAsync(RouteApiIndex, ct); + IndexModel result = JsonSerializer.Deserialize(json, JsonOptions); + + for (int i = 0; i < result.Relays.Count; i++) + { + result.Relays[i].Index = i; + } + + using JsonDocument doc = JsonDocument.Parse(json); + + if (doc.RootElement.TryGetProperty(JsonSensors, out var sensorsElement) && + sensorsElement.ValueKind == JsonValueKind.Object) + { + var sensorList = new List(); + + foreach (var sensorProp in sensorsElement.EnumerateObject()) + { + string sensorName = sensorProp.Name; + + if (sensorProp.Value.TryGetProperty(SensorTypeJsonKey, out var typeEl) && + typeEl.ValueKind == JsonValueKind.Number) + { + sensorList.Add(new SensorsModel + { + Name = sensorName, + SensorType = (SensorType)typeEl.GetByte(), + ExtraFields = sensorProp.Value + }); + } + } + + result.SensorsList = sensorList; + } + + return result; + } + + private static SocketsHttpHandler CreateHandler() + { + var handler = new SocketsHttpHandler + { + PooledConnectionIdleTimeout = TimeSpan.FromSeconds(SecondsSixty), + PooledConnectionLifetime = Timeout.InfiniteTimeSpan, + ConnectTimeout = TimeSpan.FromSeconds(SecondsFive), + MaxConnectionsPerServer = 1, + + ConnectCallback = async (context, ct) => + { + var socket = new Socket(SocketType.Stream, ProtocolType.Tcp) + { + NoDelay = true + }; + socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); + socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveTime, SecondsTen); + socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveInterval, SecondsFive); + socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveRetryCount, SecondsThree); + await socket.ConnectAsync(context.DnsEndPoint, ct); + return new NetworkStream(socket, ownsSocket: true); + } + }; + + return handler; + } + + private static readonly JsonSerializerOptions JsonOptions = new() + { + PropertyNameCaseInsensitive = true, + NumberHandling = JsonNumberHandling.AllowReadingFromString, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull + }; + + public void Dispose() + { + if (_disposed) + { + return; + } + + _client?.Dispose(); + _handler?.Dispose(); + _disposed = true; + } + } +} diff --git a/PowerControlHubApp/Services/DashboardPoller.cs b/PowerControlHubApp/Services/DashboardPoller.cs index 8db6f62..81846f0 100644 --- a/PowerControlHubApp/Services/DashboardPoller.cs +++ b/PowerControlHubApp/Services/DashboardPoller.cs @@ -1,6 +1,4 @@ using System.ComponentModel; -using System.Threading.Channels; -using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using PowerControlHubApp.Models.Json; using static PowerControlHubApp.Internal.Constants; @@ -11,23 +9,28 @@ namespace PowerControlHubApp.Services; /// Background poller that keeps a single copy of the latest IndexModel and /// notifies consumers via INotifyPropertyChanged / DataUpdated event. /// -public class DashboardPoller : BackgroundService, IDashboardProvider +public class DashboardPoller : IDashboardProvider, IDisposable { - private readonly PowerHubService _service; + private readonly IDashboardConnection _connection; private readonly ILogger _log; private readonly TimeSpan _interval; private IndexModel _currentIndex; + private CancellationTokenSource _cts; + private Task _pollerTask; + private readonly object _lock = new(); - public DashboardPoller(PowerHubService service, ILogger log) - : this(service, log, TimeSpan.FromMilliseconds(DefaultIntervalMs)) { } + public DashboardPoller(IDashboardConnection connection, ILogger log) + : this(connection, log, TimeSpan.FromMilliseconds(DefaultIntervalMs)) { } - public DashboardPoller(PowerHubService service, ILogger log, TimeSpan interval) + public DashboardPoller(IDashboardConnection connection, ILogger log, TimeSpan interval) { - _service = service ?? throw new ArgumentNullException(nameof(service)); + _connection = connection ?? throw new ArgumentNullException(nameof(connection)); _log = log ?? throw new ArgumentNullException(nameof(log)); _interval = interval; } + public bool IsRunning => _pollerTask is { IsCompleted: false }; + public IndexModel CurrentIndex { get => _currentIndex; @@ -48,18 +51,57 @@ private set protected void OnPropertyChanged(string name) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); - protected override async Task ExecuteAsync(CancellationToken stoppingToken) + /// + /// Starts the polling loop. Safe to call multiple times; subsequent calls are no-ops. + /// + public void Start() { + lock (_lock) + { + if (IsRunning) + return; + + _cts = new CancellationTokenSource(); + _pollerTask = RunLoopAsync(_cts.Token); + } + _log.LogDebug(LogDashboardStarted, _interval.TotalMilliseconds); + } + /// + /// Signals the polling loop to stop and awaits completion. + /// + public async Task StopAsync() + { + Task task; + + lock (_lock) + { + if (_cts == null) + return; + + _cts.Cancel(); + task = _pollerTask ?? Task.CompletedTask; + _cts.Dispose(); + _cts = null; + _pollerTask = null; + } + + await task; + _log.LogDebug(LogDashboardStopping); + } + + private async Task RunLoopAsync(CancellationToken stoppingToken) + { while (!stoppingToken.IsCancellationRequested) { try { - if (_service.IsConfigured) + if (_connection.IsConfigured) { - IndexModel index = await _service.GetDashboardDataAsync(stoppingToken); + IndexModel index = await _connection.GetDashboardDataAsync(stoppingToken); CurrentIndex = index; + _log.LogDebug(LogDashboardFetched, DateTimeOffset.Now); } else @@ -69,7 +111,6 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken) } catch (DeviceResponseException ex) { - // Firmware responded but payload was invalid — keep last known data _log.LogWarning(ex, LogDeviceInvalidJson); } catch (OperationCanceledException) when (stoppingToken.IsCancellationRequested) @@ -90,7 +131,18 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken) break; } } + } - _log.LogDebug(LogDashboardStopping); + public void Dispose() + { + if (_cts != null) + { + _cts.Cancel(); + _cts.Dispose(); + _cts = null; + } + + _pollerTask = null; + GC.SuppressFinalize(this); } } diff --git a/PowerControlHubApp/Services/IConfigConnection.cs b/PowerControlHubApp/Services/IConfigConnection.cs new file mode 100644 index 0000000..1649afe --- /dev/null +++ b/PowerControlHubApp/Services/IConfigConnection.cs @@ -0,0 +1,34 @@ +using PowerControlHubApp.Models; +using PowerControlHubApp.Models.Json; +namespace PowerControlHubApp.Services +{ + public interface IConfigConnection + { + void EnqueueCommand(ConfigCommand command); + bool IsQueueEmpty { get; } + int QueueLength { get; } + Task> GetSensorMetaAsync(CancellationToken ct = default); + Task> GetExternalSensorsAsync(CancellationToken ct = default); + Task SetExternalSensorCoreAsync(int index, int sensorId, string name, string mqttName, string mqttSlug, CancellationToken ct = default); + Task SetExternalSensorMqttAsync(int index, string typeSlug, string deviceClass, string unit, bool isBinary, CancellationToken ct = default); + Task RemoveExternalSensorAsync(int index, CancellationToken ct = default); + Task RenameExternalSensorAsync(int index, string name, CancellationToken ct = default); + Task> GetLocalSensorsAsync(CancellationToken ct = default); + Task AddUpdateLocalSensorAsync(int index, int type, sbyte opt0, sbyte opt1, CancellationToken ct = default); + Task RemoveLocalSensorAsync(int index, CancellationToken ct = default); + Task RenameLocalSensorAsync(int index, string name, CancellationToken ct = default); + Task SetLocalSensorPinAsync(int index, int slot, byte pin, CancellationToken ct = default); + Task SetLocalSensorEnabledAsync(int index, bool enabled, CancellationToken ct = default); + Task SetLocalSensorOptionAsync(int index, int slot, int group, int value, CancellationToken ct = default); + Task SetRelayStateAsync(int relayIndex, bool on, CancellationToken ct = default); + Task RenameRelayAsync(int index, string shortName, string longName, CancellationToken ct = default); + Task SetRelayColorAsync(int index, int colorIndex, CancellationToken ct = default); + Task SetRelayDefaultStateAsync(int index, int defaultState, CancellationToken ct = default); + Task LinkRelayAsync(int index, int linkedIndex, CancellationToken ct = default); + Task SetRelayActionTypeAsync(int index, int actionType, CancellationToken ct = default); + Task SetRelayPinAsync(int index, int pin, CancellationToken ct = default); + Task SaveSettingsAsync(CancellationToken ct = default); + Task GetOtaStatusAsync(CancellationToken ct = default); + Task TriggerOtaInstallAsync(CancellationToken ct = default); + } +} diff --git a/PowerControlHubApp/Services/IDashboardConnection.cs b/PowerControlHubApp/Services/IDashboardConnection.cs new file mode 100644 index 0000000..d4d59d0 --- /dev/null +++ b/PowerControlHubApp/Services/IDashboardConnection.cs @@ -0,0 +1,9 @@ +using PowerControlHubApp.Models.Json; +namespace PowerControlHubApp.Services +{ + public interface IDashboardConnection + { + bool IsConfigured { get; } + Task GetDashboardDataAsync(CancellationToken ct = default); + } +} diff --git a/PowerControlHubApp/Services/IMessageBus.cs b/PowerControlHubApp/Services/IMessageBus.cs new file mode 100644 index 0000000..71ccde3 --- /dev/null +++ b/PowerControlHubApp/Services/IMessageBus.cs @@ -0,0 +1,8 @@ +namespace PowerControlHubApp.Services +{ + public interface IMessageBus + { + void Publish(T message); + IDisposable Subscribe(Action handler); + } +} diff --git a/PowerControlHubApp/Services/MessageBus.cs b/PowerControlHubApp/Services/MessageBus.cs new file mode 100644 index 0000000..aeee0c5 --- /dev/null +++ b/PowerControlHubApp/Services/MessageBus.cs @@ -0,0 +1,92 @@ +using System.Collections.Concurrent; +using System.Collections.Generic; + +namespace PowerControlHubApp.Services +{ + public class MessageBus : IMessageBus + { + private readonly ConcurrentDictionary> _subscribers; + + public MessageBus() + { + _subscribers = new ConcurrentDictionary>(); + } + + public void Publish(T message) + { + Type type = typeof(T); + + if (!_subscribers.TryGetValue(type, out List handlers)) + { + return; + } + + List toRemove = []; + + foreach (WeakReference weak in handlers) + { + if (weak.Target is Action action) + { + action(message); + } + else + { + toRemove.Add(weak); + } + } + + if (toRemove.Count > 0) + { + lock (handlers) + { + foreach (WeakReference dead in toRemove) + { + handlers.Remove(dead); + } + } + } + } + + public IDisposable Subscribe(Action handler) + { + Type type = typeof(T); + WeakReference weak = new WeakReference(handler); + List handlers = _subscribers.GetOrAdd(type, _ => []); + + lock (handlers) + { + handlers.Add(weak); + } + + return new Unsubscriber(handlers, weak); + } + + private class Unsubscriber : IDisposable + { + private readonly List _handlers; + private readonly WeakReference _weak; + private bool _disposed; + + public Unsubscriber(List handlers, WeakReference weak) + { + _handlers = handlers; + _weak = weak; + _disposed = false; + } + + public void Dispose() + { + if (_disposed) + { + return; + } + + lock (_handlers) + { + _handlers.Remove(_weak); + } + _disposed = true; + } + } + } +} diff --git a/PowerControlHubApp/Services/MessageTypes.cs b/PowerControlHubApp/Services/MessageTypes.cs new file mode 100644 index 0000000..afc7ad7 --- /dev/null +++ b/PowerControlHubApp/Services/MessageTypes.cs @@ -0,0 +1,8 @@ +namespace PowerControlHubApp.Services +{ + public record MetaDataRefreshed(); + public record SensorConfigSucceeded(int Index, string Name); + public record RelayConfigSucceeded(int Index); + public record ConfigCommandFailed(string Command, string Error); + public record ConnectionStateChanged(string ConnectionName, bool Connected); +} diff --git a/PowerControlHubApp/Services/PowerHubService.cs b/PowerControlHubApp/Services/PowerHubService.cs index 2da3ba4..a2bd139 100644 --- a/PowerControlHubApp/Services/PowerHubService.cs +++ b/PowerControlHubApp/Services/PowerHubService.cs @@ -1,9 +1,5 @@ -using System.Net.Http.Json; -using System.Net.Sockets; -using System.Text.Json; -using System.Text.Json.Serialization; +using PowerControlHubApp.Models; using PowerControlHubApp.Models.Json; -using static PowerControlHubApp.Internal.Constants; namespace PowerControlHubApp.Services; @@ -26,287 +22,145 @@ public DeviceResponseException(string message, Exception inner) /// public class PowerHubService { + private readonly IDashboardConnection _dashboardConnection; + private readonly IConfigConnection _configConnection; - private HttpClient _client; - private SocketsHttpHandler _handler; - private string _baseUrl = string.Empty; + public PowerHubService(IDashboardConnection dashboardConnection, IConfigConnection configConnection) + { + _dashboardConnection = dashboardConnection ?? throw new ArgumentNullException(nameof(dashboardConnection)); + _configConnection = configConnection ?? throw new ArgumentNullException(nameof(configConnection)); + } - public string BaseUrl => _baseUrl; + public bool IsConfigured => _dashboardConnection.IsConfigured; + + public string BaseUrl => _dashboardConnection is DashboardConnection dc ? dc.BaseUrl : string.Empty; public void Configure(string ipAddress, int port) { - _client?.Dispose(); - _handler?.Dispose(); - - _baseUrl = $"http://{ipAddress}:{port}"; - _handler = CreateHandler(); - _client = new HttpClient(_handler, disposeHandler: false) - { - Timeout = TimeSpan.FromSeconds(SecondsTen), - BaseAddress = new Uri(_baseUrl + ForwardSlash) - }; - - // Tell the firmware to keep the TCP socket open after each response. - // WifiServer.cpp checks for both of these headers before granting a - // persistent slot (MaxPersistentClients = 1, PersistentTimeoutMs = 30 s). - _client.DefaultRequestHeaders.ConnectionClose = false; - _client.DefaultRequestHeaders.TryAddWithoutValidation(UserAgentKey, UserAgentValue); - _client.DefaultRequestHeaders.TryAddWithoutValidation(ConnectionTypeKey, ConnectionTypePersistent); - } + if (_dashboardConnection is DashboardConnection dc) + dc.Configure(ipAddress, port); - public bool IsConfigured => _client != null; + if (_configConnection is ConfigConnection cc) + cc.Configure(ipAddress, port); + } - /// - /// Creates a that maintains a persistent - /// TCP connection to the device. A callback - /// enables OS-level TCP keep-alive probes so the connection survives the - /// idle gap between poll cycles without being silently dropped by the device - /// or any intermediate NAT/router. - /// - private static SocketsHttpHandler CreateHandler() + public Task GetDashboardDataAsync(CancellationToken ct = default) { - var handler = new SocketsHttpHandler - { - // Must exceed the firmware's PersistentTimeoutMs (30 s) so the .NET pool - // never races to close the socket before the device's keep-alive window expires. - PooledConnectionIdleTimeout = TimeSpan.FromSeconds(SecondsSixty), - PooledConnectionLifetime = Timeout.InfiniteTimeSpan, - ConnectTimeout = TimeSpan.FromSeconds(SecondsFive), - MaxConnectionsPerServer = MaximumPermanentConnections, - ConnectCallback = async (context, ct) => - { - var socket = new Socket(SocketType.Stream, ProtocolType.Tcp) - { - // Disable Nagle — send small command packets immediately - NoDelay = true - }; - - // Enable TCP keep-alive so the OS detects a silently-dropped link - socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true); - socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveTime, SecondsTen); // first probe after 10 s idle - socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveInterval, SecondsFive); // re-probe every 5 s - socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.TcpKeepAliveRetryCount, SecondsThree); // drop after 3 missed probes - - await socket.ConnectAsync(context.DnsEndPoint, ct); - return new NetworkStream(socket, ownsSocket: true); - } - }; - - return handler; + return _dashboardConnection.GetDashboardDataAsync(ct); } - /// - /// Fetches relay and sensor data from GET /api/index. - /// Returns (relays, sensors) or throws on network / parse failure. - /// - public async Task GetDashboardDataAsync(CancellationToken ct = default) + public Task> GetSensorMetaAsync(CancellationToken ct = default) { - EnsureConfigured(); - - string json = await _client!.GetStringAsync(RouteApiIndex, ct); - - try - { - IndexModel result = JsonSerializer.Deserialize(json, JsonOptions); - - for (int i = 0; i < result.Relays.Count; i++) - { - // Populate the RelayModel's IsOn property based on the bitfield in SystemModel.RelayState - result.Relays[i].Index = i; - } - - return result; - } - catch (JsonException ex) - { - throw new DeviceResponseException( - $"Device returned invalid JSON: {ex.Message}", ex); - } + return _configConnection.GetSensorMetaAsync(ct); } - /// - /// Sends GET /api/relay/R3?{index}={state} to toggle a relay. - /// Returns true when the device acknowledges success. - /// - public async Task SetRelayStateAsync(int relayIndex, bool on, CancellationToken ct = default) + public Task SetRelayStateAsync(int relayIndex, bool on, CancellationToken ct = default) { - EnsureConfigured(); - - int state = on ? 1 : 0; - string url = $"api/relay/R3?{relayIndex}={state}"; - HttpResponseMessage response = await _client!.GetAsync(url, ct); - - return response.IsSuccessStatusCode; + return _configConnection.SetRelayStateAsync(relayIndex, on, ct); } - /// - /// Renames relay at via POST /api/relay/R6. - /// max 5 chars; max 20 chars. - /// - public async Task RenameRelayAsync(int index, string shortName, string longName, CancellationToken ct = default) + public Task RenameRelayAsync(int index, string shortName, string longName, CancellationToken ct = default) { - EnsureConfigured(); - - string value = string.IsNullOrWhiteSpace(longName) ? shortName : $"{shortName}|{longName}"; - string url = $"api/relay/R6?{index}={Uri.EscapeDataString(value)}"; - HttpResponseMessage response = await _client!.PostAsync(url, null, ct); - return await IsSuccessResponseAsync(response, ct); + return _configConnection.RenameRelayAsync(index, shortName, longName, ct); } - /// - /// Sets the active button colour for relay at via POST /api/relay/R7. - /// 0=Blue 1=Green 2=Orange 3=Purple 4=Red 5=Yellow 255=clear. - /// - public async Task SetRelayColorAsync(int index, int colorIndex, CancellationToken ct = default) + public Task SetRelayColorAsync(int index, int colorIndex, CancellationToken ct = default) { - EnsureConfigured(); - - string url = $"api/relay/R7?{index}={colorIndex}"; - HttpResponseMessage response = await _client!.PostAsync(url, null, ct); - return await IsSuccessResponseAsync(response, ct); + return _configConnection.SetRelayColorAsync(index, colorIndex, ct); } - /// - /// Sets the power-on default state for relay at via POST /api/relay/R8. - /// - public async Task SetRelayDefaultStateAsync(int index, int defaultState, CancellationToken ct = default) + public Task SetRelayDefaultStateAsync(int index, int defaultState, CancellationToken ct = default) { - EnsureConfigured(); - - string url = $"api/relay/R8?{index}={defaultState}"; - HttpResponseMessage response = await _client!.PostAsync(url, null, ct); - return await IsSuccessResponseAsync(response, ct); + return _configConnection.SetRelayDefaultStateAsync(index, defaultState, ct); } - /// - /// Links relay at to via POST /api/relay/R9. - /// Pass 255 to unlink. - /// - public async Task LinkRelayAsync(int index, int linkedIndex, CancellationToken ct = default) + public Task LinkRelayAsync(int index, int linkedIndex, CancellationToken ct = default) { - EnsureConfigured(); + return _configConnection.LinkRelayAsync(index, linkedIndex, ct); + } - string url = $"api/relay/R9?{index}={linkedIndex}"; - HttpResponseMessage response = await _client!.PostAsync(url, null, ct); - return await IsSuccessResponseAsync(response, ct); + public Task SetRelayActionTypeAsync(int index, int actionType, CancellationToken ct = default) + { + return _configConnection.SetRelayActionTypeAsync(index, actionType, ct); } - /// - /// Sets the action type for relay at via POST /api/relay/R10. - /// 0=Default 1=Horn 2=NightRelay. - /// - public async Task SetRelayActionTypeAsync(int index, int actionType, CancellationToken ct = default) + public Task SetRelayPinAsync(int index, int pin, CancellationToken ct = default) { - EnsureConfigured(); + return _configConnection.SetRelayPinAsync(index, pin, ct); + } - string url = $"api/relay/R10?{index}={actionType}"; - HttpResponseMessage response = await _client!.PostAsync(url, null, ct); - return await IsSuccessResponseAsync(response, ct); + public Task> GetExternalSensorsAsync(CancellationToken ct = default) + { + return _configConnection.GetExternalSensorsAsync(ct); } - /// - /// Sets the GPIO pin for relay at via POST /api/relay/R11. - /// Pass 255 to disable. - /// - public async Task SetRelayPinAsync(int index, int pin, CancellationToken ct = default) + public Task SetExternalSensorCoreAsync(int index, int sensorId, string name, string mqttName, string mqttSlug, CancellationToken ct = default) { - EnsureConfigured(); + return _configConnection.SetExternalSensorCoreAsync(index, sensorId, name, mqttName, mqttSlug, ct); + } - string url = $"api/relay/R11?{index}={pin}"; - HttpResponseMessage response = await _client!.PostAsync(url, null, ct); - return await IsSuccessResponseAsync(response, ct); + public Task SetExternalSensorMqttAsync(int index, string typeSlug, string deviceClass, string unit, bool isBinary, CancellationToken ct = default) + { + return _configConnection.SetExternalSensorMqttAsync(index, typeSlug, deviceClass, unit, isBinary, ct); } - /// - /// Persists all in-memory config to EEPROM via POST /api/config/C0. - /// - public async Task SaveSettingsAsync(CancellationToken ct = default) + public Task RemoveExternalSensorAsync(int index, CancellationToken ct = default) { - EnsureConfigured(); + return _configConnection.RemoveExternalSensorAsync(index, ct); + } - HttpResponseMessage response = await _client!.PostAsync(RouteSaveConfig, null, ct); - return response.IsSuccessStatusCode; + public Task RenameExternalSensorAsync(int index, string name, CancellationToken ct = default) + { + return _configConnection.RenameExternalSensorAsync(index, name, ct); } - private static async Task IsSuccessResponseAsync(HttpResponseMessage response, CancellationToken ct) + public Task> GetLocalSensorsAsync(CancellationToken ct = default) { - if (!response.IsSuccessStatusCode) - return false; - - string body = await response.Content.ReadAsStringAsync(ct); - - try - { - using JsonDocument doc = JsonDocument.Parse(body); - return doc.RootElement.TryGetProperty(ResultSuccess, out JsonElement s) && s.GetBoolean(); - } - catch - { - return response.IsSuccessStatusCode; - } + return _configConnection.GetLocalSensorsAsync(ct); } - /// - /// Queries the device OTA status via GET /api/system/F13. - /// Returns null when OTA is not supported by this firmware build. - /// - public async Task GetOtaStatusAsync(CancellationToken ct = default) + public Task AddUpdateLocalSensorAsync(int index, int type, sbyte opt0, sbyte opt1, CancellationToken ct = default) { - try - { - EnsureConfigured(); + return _configConnection.AddUpdateLocalSensorAsync(index, type, opt0, opt1, ct); + } - HttpResponseMessage response = await _client!.GetAsync(RouteOtaUpdate, ct); + public Task RemoveLocalSensorAsync(int index, CancellationToken ct = default) + { + return _configConnection.RemoveLocalSensorAsync(index, ct); + } - if (!response.IsSuccessStatusCode) - return null; + public Task RenameLocalSensorAsync(int index, string name, CancellationToken ct = default) + { + return _configConnection.RenameLocalSensorAsync(index, name, ct); + } - string body = await response.Content.ReadAsStringAsync(ct); - using JsonDocument doc = JsonDocument.Parse(body); + public Task SetLocalSensorPinAsync(int index, int slot, byte pin, CancellationToken ct = default) + { + return _configConnection.SetLocalSensorPinAsync(index, slot, pin, ct); + } - // Device returns {"error":…} when OTA is compiled out - if (doc.RootElement.TryGetProperty(ErrorKey, out _)) - return null; + public Task SetLocalSensorEnabledAsync(int index, bool enabled, CancellationToken ct = default) + { + return _configConnection.SetLocalSensorEnabledAsync(index, enabled, ct); + } - return JsonSerializer.Deserialize(body, JsonOptions); - } - catch - { - return null; - } + public Task SetLocalSensorOptionAsync(int index, int slot, int group, int value, CancellationToken ct = default) + { + return _configConnection.SetLocalSensorOptionAsync(index, slot, group, value, ct); } - /// - /// Triggers an OTA check (and optionally install) via POST /api/system/F12. - /// The device starts checking in the background; poll GetOtaStatusAsync for progress. - /// - public async Task TriggerOtaInstallAsync(CancellationToken ct = default) + public Task SaveSettingsAsync(CancellationToken ct = default) { - EnsureConfigured(); - - try - { - // F12 is a POST with no body; pass apply=1 so the device installs immediately - HttpResponseMessage response = await _client!.PostAsync( - RouteUpdateOta, null, ct); - return response.IsSuccessStatusCode; - } - catch - { - return false; - } + return _configConnection.SaveSettingsAsync(ct); } - private void EnsureConfigured() + public Task GetOtaStatusAsync(CancellationToken ct = default) { - if (_client == null) - throw new InvalidOperationException(PowerHubNotConfigured); + return _configConnection.GetOtaStatusAsync(ct); } - private static readonly JsonSerializerOptions JsonOptions = new() + public Task TriggerOtaInstallAsync(CancellationToken ct = default) { - PropertyNameCaseInsensitive = true, - NumberHandling = JsonNumberHandling.AllowReadingFromString, - DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull - }; + return _configConnection.TriggerOtaInstallAsync(ct); + } } diff --git a/PowerControlHubApp/Services/SensorMetaCache.cs b/PowerControlHubApp/Services/SensorMetaCache.cs new file mode 100644 index 0000000..2cdef11 --- /dev/null +++ b/PowerControlHubApp/Services/SensorMetaCache.cs @@ -0,0 +1,98 @@ +using PowerControlHubApp.Models; +using static PowerControlHubApp.Internal.Constants; + +namespace PowerControlHubApp.Services; + +/// +/// Singleton cache for sensor type descriptors fetched from the device. +/// Populated once after each reconnection and used by sensor config ViewModels +/// to display correct field names and constraints for each sensor type. +/// +public sealed class SensorMetaCache +{ + private readonly IMessageBus _messageBus; + private List _descriptors = []; + + /// + /// True when the cache has been successfully populated at least once. + /// + public bool HasDescriptors => _descriptors.Count > 0; + + /// + /// All cached sensor type descriptors. + /// + public IReadOnlyList Descriptors => _descriptors.AsReadOnly(); + + /// + /// Event raised when the cache has been updated. + /// + public event EventHandler CacheUpdated; + + public SensorMetaCache(IMessageBus messageBus) + { + _messageBus = messageBus ?? throw new ArgumentNullException(nameof(messageBus)); + } + + /// + /// Fetches sensor type descriptors from the device via + /// and replaces the current cache contents. + /// + public async Task RefreshAsync(PowerHubService service, CancellationToken ct = default) + { + try + { + List result = await service.GetSensorMetaAsync(ct); + _descriptors = result ?? []; + CacheUpdated?.Invoke(this, EventArgs.Empty); + _messageBus.Publish(new MetaDataRefreshed()); + } + catch + { + // Silently keep the existing cache on failure + } + } + + /// + /// Fetches sensor type descriptors over the config connection (connection 2). + /// + public async Task RefreshAsync(IConfigConnection connection, CancellationToken ct = default) + { + try + { + List result = await connection.GetSensorMetaAsync(ct); + _descriptors = result ?? []; + CacheUpdated?.Invoke(this, EventArgs.Empty); + _messageBus.Publish(new MetaDataRefreshed()); + } + catch + { + // Silently keep the existing cache on failure + } + } + + /// + /// Returns the descriptor for a given sensor type id, or null if not found. + /// + public SensorTypeDescriptorModel GetDescriptor(int sensorTypeId) + { + return _descriptors.FirstOrDefault(d => d.Id == sensorTypeId); + } + + /// + /// Returns the friendly name for a sensor type id, or "Unknown" if not found. + /// + public string GetTypeName(int sensorTypeId) + { + SensorTypeDescriptorModel desc = GetDescriptor(sensorTypeId); + return desc?.Name ?? SensorTypeUnknown; + } + + /// + /// Clears the cache (e.g., when disconnecting). + /// + public void Clear() + { + _descriptors = []; + CacheUpdated?.Invoke(this, EventArgs.Empty); + } +} diff --git a/PowerControlHubApp/ViewModels/DashboardViewModel.cs b/PowerControlHubApp/ViewModels/DashboardViewModel.cs index 872274b..83c77e4 100644 --- a/PowerControlHubApp/ViewModels/DashboardViewModel.cs +++ b/PowerControlHubApp/ViewModels/DashboardViewModel.cs @@ -1,13 +1,10 @@ -using System; +using PowerControlHubApp.Models; +using PowerControlHubApp.Models.Json; +using PowerControlHubApp.Services; using System.Collections.ObjectModel; using System.ComponentModel; -using System.Linq; using System.Runtime.CompilerServices; -using System.Text.Json; using System.Windows.Input; -using PowerControlHubApp.Models; -using PowerControlHubApp.Models.Json; -using PowerControlHubApp.Services; using static PowerControlHubApp.Internal.Constants; namespace PowerControlHubApp.ViewModels; @@ -57,7 +54,6 @@ private set } } - // ── System status properties (displayed in the dashboard status bar) ─── private string _systemFreeMemory = DoubleDash; private string _systemCpuUsage = DoubleDash; private string _systemTime = DoubleDash; @@ -153,15 +149,15 @@ public bool IsConnected { get => _isConnected; set - { - _isConnected = value; - OnPropertyChanged(); - OnPropertyChanged(nameof(IsDisconnected)); - OnPropertyChanged(nameof(StatusColor)); - OnPropertyChanged(nameof(HasRelays)); - OnPropertyChanged(nameof(HasNoRelays)); - OnPropertyChanged(nameof(HasSensors)); - OnPropertyChanged(nameof(HasNoSensors)); + { + _isConnected = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(IsDisconnected)); + OnPropertyChanged(nameof(StatusColor)); + OnPropertyChanged(nameof(HasRelays)); + OnPropertyChanged(nameof(HasNoRelays)); + OnPropertyChanged(nameof(HasSensors)); + OnPropertyChanged(nameof(HasNoSensors)); } } @@ -172,20 +168,20 @@ public bool IsConnected public string StatusMessage { get => _statusMessage; - set - { - _statusMessage = value; - OnPropertyChanged(); + set + { + _statusMessage = value; + OnPropertyChanged(); } } public string DeviceUrl { get => _deviceUrl; - set + set { _deviceUrl = value; - OnPropertyChanged(); + OnPropertyChanged(); } } @@ -261,7 +257,7 @@ public async Task RefreshAsync() { UpdateSystem(index.System); UpdateRelays(index.Relays); - UpdateSensors(index.Sensors); + UpdateSensors(index); IsConnected = true; StatusMessage = $"Updated {DateTime.Now:HH:mm:ss}"; } @@ -319,7 +315,7 @@ private async Task AutoRefreshLoopAsync(CancellationToken ct) await Task.Delay(TimeSpan.FromSeconds(1), ct); } catch (TaskCanceledException) - { + { break; } } @@ -398,8 +394,14 @@ private void UpdateRelays(IReadOnlyList incoming) _relayStore.ReplaceAll(vms); } - private static void UpdateSensors(SensorsModel incoming) + private void UpdateSensors(IndexModel index) { + Sensors.Clear(); + + foreach (SensorsModel sensor in index.SensorsList) + { + Sensors.Add(sensor); + } } public event PropertyChangedEventHandler PropertyChanged; diff --git a/PowerControlHubApp/ViewModels/ExternalSensorConfigViewModel.cs b/PowerControlHubApp/ViewModels/ExternalSensorConfigViewModel.cs new file mode 100644 index 0000000..398bbd6 --- /dev/null +++ b/PowerControlHubApp/ViewModels/ExternalSensorConfigViewModel.cs @@ -0,0 +1,101 @@ +using PowerControlHubApp.Models; +using PowerControlHubApp.Services; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Runtime.CompilerServices; +using System.Windows.Input; +using static PowerControlHubApp.Internal.Constants; + +namespace PowerControlHubApp.ViewModels; + +public class ExternalSensorConfigViewModel : INotifyPropertyChanged +{ + private readonly PowerHubService _service; + + private bool _isBusy; + private string _statusMessage = string.Empty; + + public ObservableCollection Sensors { get; } = []; + + public ICommand LoadCommand { get; } + public ICommand NavigateToSensorCommand { get; } + + public bool IsBusy + { + get => _isBusy; + set + { + _isBusy = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(IsNotBusy)); + } + } + + public bool IsNotBusy => !_isBusy; + + public string StatusMessage + { + get => _statusMessage; + set + { + _statusMessage = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(HasStatus)); + } + } + + public bool HasStatus => !string.IsNullOrEmpty(_statusMessage); + + public ExternalSensorConfigViewModel(PowerHubService service) + { + _service = service; + LoadCommand = new Command(async () => await LoadAsync()); + NavigateToSensorCommand = new Command(async s => + { + if (s == null) + return; + + await Shell.Current.GoToAsync($"ExternalSensorDetailPage?sensorIndex={s.Index}"); + }); + } + + public async Task LoadAsync() + { + if (!_service.IsConfigured) + { + StatusMessage = MessageNotConfigured; + return; + } + + IsBusy = true; + StatusMessage = string.Empty; + + try + { + List configuredSensors = await _service.GetExternalSensorsAsync(); + + Sensors.Clear(); + + for (int i = 0; i < RelayCount; i++) + { + ExternalSensorConfigModel sensor = configuredSensors.FirstOrDefault(s => s.Index == i) + ?? new ExternalSensorConfigModel { Index = i }; + + Sensors.Add(sensor); + } + } + catch (Exception ex) + { + StatusMessage = $"Failed to load sensors: {ex.Message}"; + } + finally + { + IsBusy = false; + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + private void OnPropertyChanged([CallerMemberName] string name = null) + => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); +} diff --git a/PowerControlHubApp/ViewModels/ExternalSensorDetailViewModel.cs b/PowerControlHubApp/ViewModels/ExternalSensorDetailViewModel.cs new file mode 100644 index 0000000..a56cd28 --- /dev/null +++ b/PowerControlHubApp/ViewModels/ExternalSensorDetailViewModel.cs @@ -0,0 +1,310 @@ +using PowerControlHubApp.Models; +using PowerControlHubApp.Services; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Runtime.CompilerServices; +using System.Windows.Input; +using static PowerControlHubApp.Internal.Constants; + +namespace PowerControlHubApp.ViewModels; + +[QueryProperty(nameof(SensorIndex), "sensorIndex")] +public class ExternalSensorDetailViewModel : INotifyPropertyChanged +{ + private readonly PowerHubService _service; + private readonly SensorMetaCache _metaCache; + private ExternalSensorConfigModel _original; + private int _sensorIndex = -1; + private string _name = string.Empty; + private int _sensorId; + private string _mqttName = string.Empty; + private string _mqttSlug = string.Empty; + private string _mqttType = string.Empty; + private string _mqttDeviceClass = string.Empty; + private string _mqttUnit = string.Empty; + private bool _mqttIsBinary; + private bool _isBusy; + private string _statusMessage = string.Empty; + + public ObservableCollection SensorTypeOptions { get; } = []; + + public ICommand SaveCommand { get; } + public ICommand RemoveCommand { get; } + + public int SensorIndex + { + get => _sensorIndex; + set + { + _sensorIndex = value; + OnPropertyChanged(); + _ = LoadAsync(value); + } + } + + public string Name + { + get => _name; + set + { + _name = value; + OnPropertyChanged(); + } + } + + public int SensorId + { + get => _sensorId; + set + { + _sensorId = value; + OnPropertyChanged(); + } + } + + public int SelectedSensorTypeIndex + { + get => _sensorId; + set + { + if (_sensorId != value) + { + _sensorId = value; + OnPropertyChanged(); + } + } + } + + public string MqttName + { + get => _mqttName; + set + { + _mqttName = value; + OnPropertyChanged(); + } + } + + public string MqttSlug + { + get => _mqttSlug; + set + { + _mqttSlug = value; + OnPropertyChanged(); + } + } + + public string MqttType + { + get => _mqttType; + set + { + _mqttType = value; + OnPropertyChanged(); + } + } + + public string MqttDeviceClass + { + get => _mqttDeviceClass; + set + { + _mqttDeviceClass = value; + OnPropertyChanged(); + } + } + + public string MqttUnit + { + get => _mqttUnit; + set + { + _mqttUnit = value; + OnPropertyChanged(); + } + } + + public bool MqttIsBinary + { + get => _mqttIsBinary; + set + { + _mqttIsBinary = value; + OnPropertyChanged(); + } + } + + public bool IsBusy + { + get => _isBusy; + set + { + _isBusy = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(IsNotBusy)); + } + } + + public bool IsNotBusy => !_isBusy; + + public string StatusMessage + { + get => _statusMessage; + set + { + _statusMessage = value; + OnPropertyChanged(); + } + } + + public ExternalSensorDetailViewModel(PowerHubService service, SensorMetaCache metaCache) + { + _service = service; + _metaCache = metaCache; + SaveCommand = new Command(async () => await SaveAsync()); + RemoveCommand = new Command(async () => await RemoveAsync()); + + BuildTypeOptions(); + _metaCache.CacheUpdated += (_, _) => BuildTypeOptions(); + } + + private void BuildTypeOptions() + { + SensorTypeOptions.Clear(); + + if (_metaCache.HasDescriptors) + { + IReadOnlyList descriptors = _metaCache.Descriptors; + foreach (SensorTypeDescriptorModel desc in descriptors) + { + SensorTypeOptions.Add($"{desc.Name} ({desc.Id})"); + } + } + else + { + SensorTypeOptions.Add(SensorTypeWaterPicker); + SensorTypeOptions.Add(SensorTypeDht11Picker); + SensorTypeOptions.Add(SensorTypeLightPicker); + SensorTypeOptions.Add(SensorTypeGpsPicker); + SensorTypeOptions.Add(SensorTypeSystemPicker); + SensorTypeOptions.Add(SensorTypeBinaryPresencePicker); + SensorTypeOptions.Add(SensorTypeVoltagePicker); + } + } + + private async Task LoadAsync(int index) + { + if (!_service.IsConfigured || index < 0) + return; + + IsBusy = true; + StatusMessage = string.Empty; + + try + { + var list = await _service.GetExternalSensorsAsync(); + _original = list?.FirstOrDefault(s => s.Index == index); + + if (_original != null) + { + Name = _original.Name; + SensorId = _original.SensorId; + MqttName = _original.MqttName; + MqttSlug = _original.MqttSlug; + MqttType = _original.MqttTypeSlug; + MqttDeviceClass = _original.MqttDeviceClass; + MqttUnit = _original.MqttUnit; + MqttIsBinary = _original.MqttIsBinary; + + OnPropertyChanged(nameof(SelectedSensorTypeIndex)); + } + } + catch (Exception ex) + { + StatusMessage = $"Failed to load: {ex.Message}"; + } + finally + { + IsBusy = false; + } + } + + private async Task SaveAsync() + { + if (!_service.IsConfigured || _sensorIndex < 0) + return; + + IsBusy = true; + StatusMessage = string.Empty; + + try + { + bool ok = true; + + ok &= await _service.SetExternalSensorCoreAsync(_sensorIndex, SensorId, Name ?? string.Empty, MqttName ?? string.Empty, MqttSlug ?? string.Empty); + ok &= await _service.SetExternalSensorMqttAsync(_sensorIndex, MqttType ?? string.Empty, MqttDeviceClass ?? string.Empty, MqttUnit ?? string.Empty, MqttIsBinary); + + if (ok) + ok &= await _service.SaveSettingsAsync(); + + StatusMessage = ok ? SavedOk : SavedFailed; + } + catch (Exception ex) + { + StatusMessage = $"Save failed: {ex.Message}"; + } + finally + { + IsBusy = false; + } + } + + private async Task RemoveAsync() + { + if (!_service.IsConfigured || _sensorIndex < 0) + return; + + bool confirmed = await Application.Current.Windows[0].Page.DisplayAlertAsync( + MsgRemoveSensor, + $"Remove sensor at index {_sensorIndex}?\n\nThis cannot be undone.", + MsgRemove, + MsgCancel); + + if (!confirmed) + return; + + IsBusy = true; + StatusMessage = string.Empty; + + try + { + bool ok = await _service.RemoveExternalSensorAsync(_sensorIndex); + + if (ok) + ok &= await _service.SaveSettingsAsync(); + + if (ok) + { + await Shell.Current.GoToAsync(NavBack); + } + else + { + StatusMessage = ErrRemoveCommandFailed; + } + } + catch (Exception ex) + { + StatusMessage = $"Remove failed: {ex.Message}"; + } + finally + { + IsBusy = false; + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + private void OnPropertyChanged([CallerMemberName] string name = null) + => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); +} diff --git a/PowerControlHubApp/ViewModels/LocalSensorConfigViewModel.cs b/PowerControlHubApp/ViewModels/LocalSensorConfigViewModel.cs new file mode 100644 index 0000000..0369c72 --- /dev/null +++ b/PowerControlHubApp/ViewModels/LocalSensorConfigViewModel.cs @@ -0,0 +1,103 @@ +using PowerControlHubApp.Models; +using PowerControlHubApp.Services; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Runtime.CompilerServices; +using System.Windows.Input; +using static PowerControlHubApp.Internal.Constants; + +namespace PowerControlHubApp.ViewModels; + +public class LocalSensorConfigViewModel : INotifyPropertyChanged +{ + private readonly PowerHubService _service; + + private bool _isBusy; + private string _statusMessage = string.Empty; + + public ObservableCollection Sensors { get; } = []; + + public ICommand LoadCommand { get; } + + public ICommand NavigateToSensorCommand { get; } + + public bool IsBusy + { + get => _isBusy; + + set + { + _isBusy = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(IsNotBusy)); + } + } + + public bool IsNotBusy => !_isBusy; + + public string StatusMessage + { + get => _statusMessage; + set + { + _statusMessage = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(HasStatus)); + } + } + + public bool HasStatus => !string.IsNullOrEmpty(_statusMessage); + + public LocalSensorConfigViewModel(PowerHubService service) + { + _service = service; + LoadCommand = new Command(async () => await LoadAsync()); + NavigateToSensorCommand = new Command(async s => + { + if (s == null) + return; + + await Shell.Current.GoToAsync($"LocalSensorDetailPage?sensorIndex={s.Index}"); + }); + } + + public async Task LoadAsync() + { + if (!_service.IsConfigured) + { + StatusMessage = MessageNotConfigured; + return; + } + + IsBusy = true; + StatusMessage = string.Empty; + + try + { + List configuredSensors = await _service.GetLocalSensorsAsync(); + + Sensors.Clear(); + + for (int i = 0; i < RelayCount; i++) + { + LocalSensorConfigModel sensor = configuredSensors.FirstOrDefault(s => s.Index == i) + ?? new LocalSensorConfigModel { Index = i, Pin0 = UnconfiguredPin, Pin1 = UnconfiguredPin }; + + Sensors.Add(sensor); + } + } + catch (Exception ex) + { + StatusMessage = $"Failed to load sensors: {ex.Message}"; + } + finally + { + IsBusy = false; + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + private void OnPropertyChanged([CallerMemberName] string name = null) + => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); +} diff --git a/PowerControlHubApp/ViewModels/LocalSensorDetailViewModel.cs b/PowerControlHubApp/ViewModels/LocalSensorDetailViewModel.cs new file mode 100644 index 0000000..df35689 --- /dev/null +++ b/PowerControlHubApp/ViewModels/LocalSensorDetailViewModel.cs @@ -0,0 +1,846 @@ +using PowerControlHubApp.Models; +using PowerControlHubApp.Services; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Runtime.CompilerServices; +using System.Windows.Input; +using static PowerControlHubApp.Internal.Constants; + +namespace PowerControlHubApp.ViewModels; + +[QueryProperty(nameof(SensorIndex), "sensorIndex")] +public class LocalSensorDetailViewModel : INotifyPropertyChanged +{ + private readonly PowerHubService _service; + private readonly SensorMetaCache _metaCache; + + private LocalSensorConfigModel _original; + + private int _sensorIndex = -1; + private string _name = string.Empty; + private int _sensorType; + private int _pin0 = UnconfiguredPin; + private int _pin1 = UnconfiguredPin; + private int _opt1_0; + private int _opt1_1; + private int _opt2_0; + private int _opt2_1; + private bool _isEnabled; + private bool _isBusy; + private string _statusMessage = string.Empty; + + private string _sensorTypeName = string.Empty; + private string _pin0Label = string.Empty; + private string _pin1Label = string.Empty; + private string _opt1_0Label = string.Empty; + private string _opt1_1Label = string.Empty; + private string _opt2_0Label = string.Empty; + private string _opt2_1Label = string.Empty; + private bool _pin0Visible = false; + private bool _pin1Visible = false; + private bool _opt1_0Visible = false; + private bool _opt1_1Visible = false; + private bool _opt2_0Visible = false; + private bool _opt2_1Visible = false; + private string _pin0Placeholder = string.Empty; + private string _pin1Placeholder = string.Empty; + private string _opt1_0Placeholder = string.Empty; + private string _opt1_1Placeholder = string.Empty; + private string _opt2_0Placeholder = string.Empty; + private string _opt2_1Placeholder = string.Empty; + + // Returns error string if invalid, otherwise null + private static string ValidateField(string fieldName, int value, int min, int max, bool isPin = false) + { + // For pins, skip validation if UnconfiguredPin (255) + if (isPin && value == UnconfiguredPin) + return null; + + if (value < min || value > max) + return $"{fieldName} value {value} is out of range ({min}-{max})"; + + return null; + } + + // Validates all fields against descriptor min/max, returns first error or null + private string ValidateAll() + { + var desc = _metaCache.GetDescriptor(_sensorType); + + if (desc == null) + return SensorTypeMetaDataUnavailable; + + // Pins + if (desc.Pins.Count > 0) + { + var pin0 = desc.Pins[0]; + var err = ValidateField(pin0.Label, Pin0, pin0.Min, pin0.Max, isPin: true); + + if (err != null) + return err; + } + + if (desc.Pins.Count > 1) + { + var pin1 = desc.Pins[1]; + var err = ValidateField(pin1.Label, Pin1, pin1.Min, pin1.Max, isPin: true); + + if (err != null) + return err; + } + + // Options1 + if (desc.Options1.Count > 0) + { + var opt1_0 = desc.Options1[0]; + var err = ValidateField(opt1_0.Label, Opt1_0, opt1_0.Min, opt1_0.Max); + + if (err != null) + return err; + } + + if (desc.Options1.Count > 1) + { + var opt1_1 = desc.Options1[1]; + var err = ValidateField(opt1_1.Label, Opt1_1, opt1_1.Min, opt1_1.Max); + + if (err != null) + return err; + } + + // Options2 + if (desc.Options2.Count > 0) + { + var opt2_0 = desc.Options2[0]; + var err = ValidateField(opt2_0.Label, Opt2_0, opt2_0.Min, opt2_0.Max); + + if (err != null) + return err; + } + + if (desc.Options2.Count > 1) + { + var opt2_1 = desc.Options2[1]; + var err = ValidateField(opt2_1.Label, Opt2_1, opt2_1.Min, opt2_1.Max); + + if (err != null) + return err; + } + + return null; + } + + public ObservableCollection SensorTypeOptions { get; } = []; + + public ICommand SaveCommand { get; } + public ICommand RemoveCommand { get; } + + public int SensorIndex + { + get => _sensorIndex; + set + { + _sensorIndex = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(PageTitle)); + _ = LoadAsync(value); + } + } + + public string PageTitle => _sensorIndex >= 0 ? $"Sensor {_sensorIndex}" : SensorPageTitle; + + public string SensorTypeName + { + get => _sensorTypeName; + set + { + _sensorTypeName = value; + OnPropertyChanged(); + } + } + + public string Name + { + get => _name; + + set + { + _name = value; + OnPropertyChanged(); + } + } + + public int SensorType + { + get => _sensorType; + + set + { + _sensorType = value; + OnPropertyChanged(); + } + } + + public int SelectedTypeIndex + { + get => _sensorType; + + set + { + if (_sensorType != value) + { + _sensorType = value; + OnPropertyChanged(); + ApplyDescriptor(value); + } + } + } + + public bool Pin0Visible + { + get => _pin0Visible; + set + { + _pin0Visible = value; + OnPropertyChanged(); + } + } + + public string Pin0Label + { + get => _pin0Label; + set + { + _pin0Label = value; + OnPropertyChanged(); + } + } + + public string Pin0Placeholder + { + get => _pin0Placeholder; + set + { + _pin0Placeholder = value; + OnPropertyChanged(); + } + } + + public int Pin0 + { + get => _pin0; + + set + { + _pin0 = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(Pin0Display)); + } + } + + public string Pin0Display + { + get => _pin0 == UnconfiguredPin ? string.Empty : _pin0.ToString(); + + set + { + if (int.TryParse(value, out int p)) + Pin0 = p; + else if (string.IsNullOrWhiteSpace(value)) + Pin0 = UnconfiguredPin; + } + } + + public bool Pin1Visible + { + get => _pin1Visible; + set + { + _pin1Visible = value; + OnPropertyChanged(); + } + } + + public string Pin1Label + { + get => _pin1Label; + set + { + _pin1Label = value; + OnPropertyChanged(); + } + } + + public string Pin1Placeholder + { + get => _pin1Placeholder; + set + { + _pin1Placeholder = value; + OnPropertyChanged(); + } + } + + public int Pin1 + { + get => _pin1; + + set + { + _pin1 = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(Pin1Display)); + } + } + + public string Pin1Display + { + get => _pin1 == UnconfiguredPin ? string.Empty : _pin1.ToString(); + + set + { + if (int.TryParse(value, out int p)) + Pin1 = p; + else if (string.IsNullOrWhiteSpace(value)) + Pin1 = UnconfiguredPin; + } + } + + public bool Opt1_0Visible + { + get => _opt1_0Visible; + set + { + _opt1_0Visible = value; + OnPropertyChanged(); + } + } + + public string Opt1_0Label + { + get => _opt1_0Label; + set + { + _opt1_0Label = value; + OnPropertyChanged(); + } + } + + public string Opt1_0Placeholder + { + get => _opt1_0Placeholder; + set + { + _opt1_0Placeholder = value; + OnPropertyChanged(); + } + } + + public int Opt1_0 + { + get => _opt1_0; + set + { + _opt1_0 = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(Opt1_0Display)); + } + } + + public string Opt1_0Display + { + get => _opt1_0.ToString(); + set + { + int.TryParse(value, out _opt1_0); + OnPropertyChanged(); + } + } + + public bool Opt1_1Visible + { + get => _opt1_1Visible; + set + { + _opt1_1Visible = value; + OnPropertyChanged(); + } + } + + public string Opt1_1Label + { + get => _opt1_1Label; + set + { + _opt1_1Label = value; + OnPropertyChanged(); + } + } + + public string Opt1_1Placeholder + { + get => _opt1_1Placeholder; + set + { + _opt1_1Placeholder = value; + OnPropertyChanged(); + } + } + + public int Opt1_1 + { + get => _opt1_1; + set + { + _opt1_1 = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(Opt1_1Display)); + } + } + + public string Opt1_1Display + { + get => _opt1_1.ToString(); + set + { + int.TryParse(value, out _opt1_1); + OnPropertyChanged(); + } + } + + public bool Opt2_0Visible + { + get => _opt2_0Visible; + set + { + _opt2_0Visible = value; + OnPropertyChanged(); + } + } + + public string Opt2_0Label + { + get => _opt2_0Label; + set + { + _opt2_0Label = value; + OnPropertyChanged(); + } + } + + public string Opt2_0Placeholder + { + get => _opt2_0Placeholder; + set + { + _opt2_0Placeholder = value; + OnPropertyChanged(); + } + } + + public int Opt2_0 + { + get => _opt2_0; + set + { + _opt2_0 = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(Opt2_0Display)); + } + } + + public string Opt2_0Display + { + get => _opt2_0.ToString(); + set + { + int.TryParse(value, out _opt2_0); + OnPropertyChanged(); + } + } + + public bool Opt2_1Visible + { + get => _opt2_1Visible; + set + { + _opt2_1Visible = value; + OnPropertyChanged(); + } + } + + public string Opt2_1Label + { + get => _opt2_1Label; + set + { + _opt2_1Label = value; + OnPropertyChanged(); + } + } + + public string Opt2_1Placeholder + { + get => _opt2_1Placeholder; + set + { + _opt2_1Placeholder = value; + OnPropertyChanged(); + } + } + + public int Opt2_1 + { + get => _opt2_1; + set + { + _opt2_1 = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(Opt2_1Display)); + } + } + + public string Opt2_1Display + { + get => _opt2_1.ToString(); + set + { + int.TryParse(value, out _opt2_1); + OnPropertyChanged(); + } + } + + public bool IsEnabled + { + get => _isEnabled; + set + { + _isEnabled = value; + OnPropertyChanged(); + } + } + + public bool IsBusy + { + get => _isBusy; + set + { + _isBusy = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(IsNotBusy)); + } + } + + public bool IsNotBusy => !_isBusy; + + public string StatusMessage + { + get => _statusMessage; + set + { + _statusMessage = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(HasStatus)); + OnPropertyChanged(nameof(IsError)); + } + } + + public bool HasStatus => !string.IsNullOrEmpty(_statusMessage); + + public bool IsError => HasStatus && !_statusMessage.StartsWith(CheckMark); + + public LocalSensorDetailViewModel(PowerHubService service, SensorMetaCache metaCache) + { + _service = service; + _metaCache = metaCache; + SaveCommand = new Command(async () => await SaveAsync()); + RemoveCommand = new Command(async () => await RemoveAsync()); + + // Initialize all visibilities and placeholders to hidden/empty + _pin0Visible = false; + _pin1Visible = false; + _opt1_0Visible = false; + _opt1_1Visible = false; + _opt2_0Visible = false; + _opt2_1Visible = false; + _pin0Placeholder = string.Empty; + _pin1Placeholder = string.Empty; + _opt1_0Placeholder = string.Empty; + _opt1_1Placeholder = string.Empty; + _opt2_0Placeholder = string.Empty; + _opt2_1Placeholder = string.Empty; + + BuildTypeOptions(); + _metaCache.CacheUpdated += (_, _) => + { + BuildTypeOptions(); + + if (_sensorType >= 0) + ApplyDescriptor(_sensorType); + }; + } + + private void BuildTypeOptions() + { + SensorTypeOptions.Clear(); + + if (_metaCache.HasDescriptors) + { + // Use friendly names from the firmware descriptors, ordered by id + IReadOnlyList descriptors = _metaCache.Descriptors; + foreach (SensorTypeDescriptorModel desc in descriptors) + { + SensorTypeOptions.Add($"{desc.Name} ({desc.Id})"); + } + } + else + { + // Fallback to hardcoded picker names when cache is unavailable + SensorTypeOptions.Add(SensorTypeWaterPicker); + SensorTypeOptions.Add(SensorTypeDht11Picker); + SensorTypeOptions.Add(SensorTypeLightPicker); + SensorTypeOptions.Add(SensorTypeGpsPicker); + SensorTypeOptions.Add(SensorTypeSystemPicker); + SensorTypeOptions.Add(SensorTypeBinaryPresencePicker); + } + } + + private void ApplyDescriptor(int sensorTypeId) + { + SensorTypeDescriptorModel desc = _metaCache.GetDescriptor(sensorTypeId); + + SensorTypeName = desc?.Name ?? _metaCache.GetTypeName(sensorTypeId); + + // Pins + if (desc != null && desc.Pins.Count > 0) + { + Pin0Label = desc.Pins[0].Label + ((desc.Pins[0].Min != 0 || desc.Pins[0].Max != 0) ? $" ({desc.Pins[0].Min}-{desc.Pins[0].Max})" : string.Empty); + Pin0Visible = true; + Pin0Placeholder = desc.Pins[0].Default.ToString(); + } + else + { + Pin0Label = string.Empty; + Pin0Visible = false; + Pin0Placeholder = string.Empty; + } + + if (desc != null && desc.Pins.Count > 1) + { + Pin1Label = desc.Pins[1].Label + ((desc.Pins[1].Min != 0 || desc.Pins[1].Max != 0) ? $" ({desc.Pins[1].Min}-{desc.Pins[1].Max})" : string.Empty); + Pin1Visible = true; + Pin1Placeholder = desc.Pins[1].Default.ToString(); + } + else + { + Pin1Label = string.Empty; + Pin1Visible = false; + Pin1Placeholder = string.Empty; + } + + // Options1 + if (desc != null && desc.Options1.Count > 0) + { + Opt1_0Label = desc.Options1[0].Label + ((desc.Options1[0].Min != 0 || desc.Options1[0].Max != 0) ? $" ({desc.Options1[0].Min}-{desc.Options1[0].Max})" : string.Empty); + Opt1_0Visible = true; + Opt1_0Placeholder = desc.Options1[0].Default.ToString(); + } + else + { + Opt1_0Label = string.Empty; + Opt1_0Visible = false; + Opt1_0Placeholder = string.Empty; + } + + if (desc != null && desc.Options1.Count > 1) + { + Opt1_1Label = desc.Options1[1].Label + ((desc.Options1[1].Min != 0 || desc.Options1[1].Max != 0) ? $" ({desc.Options1[1].Min}-{desc.Options1[1].Max})" : string.Empty); + Opt1_1Visible = true; + Opt1_1Placeholder = desc.Options1[1].Default.ToString(); + } + else + { + Opt1_1Label = string.Empty; + Opt1_1Visible = false; + Opt1_1Placeholder = string.Empty; + } + + // Options2 + if (desc != null && desc.Options2.Count > 0) + { + Opt2_0Label = desc.Options2[0].Label + ((desc.Options2[0].Min != 0 || desc.Options2[0].Max != 0) ? $" ({desc.Options2[0].Min}-{desc.Options2[0].Max})" : string.Empty); + Opt2_0Visible = true; + Opt2_0Placeholder = desc.Options2[0].Default.ToString(); + } + else + { + Opt2_0Label = string.Empty; + Opt2_0Visible = false; + Opt2_0Placeholder = string.Empty; + } + + if (desc != null && desc.Options2.Count > 1) + { + Opt2_1Label = desc.Options2[1].Label + ((desc.Options2[1].Min != 0 || desc.Options2[1].Max != 0) ? $" ({desc.Options2[1].Min}-{desc.Options2[1].Max})" : string.Empty); + Opt2_1Visible = true; + Opt2_1Placeholder = desc.Options2[1].Default.ToString(); + } + else + { + Opt2_1Label = string.Empty; + Opt2_1Visible = false; + Opt2_1Placeholder = string.Empty; + } + } + + private async Task LoadAsync(int index) + { + if (!_service.IsConfigured || index < 0) + return; + + IsBusy = true; + StatusMessage = string.Empty; + + try + { + List allSensors = await _service.GetLocalSensorsAsync(); + _original = allSensors.FirstOrDefault(s => s.Index == index) + ?? new LocalSensorConfigModel { Index = index, Pin0 = UnconfiguredPin, Pin1 = UnconfiguredPin }; + + Name = _original.Name; + SensorType = _original.SensorType; + Pin0 = _original.Pin0; + Pin1 = _original.Pin1; + Opt1_0 = _original.Opt1_0; + Opt1_1 = _original.Opt1_1; + Opt2_0 = _original.Opt2_0; + Opt2_1 = _original.Opt2_1; + IsEnabled = _original.Enabled; + + OnPropertyChanged(nameof(SelectedTypeIndex)); + OnPropertyChanged(nameof(Pin0Display)); + OnPropertyChanged(nameof(Pin1Display)); + + ApplyDescriptor(_sensorType); + } + catch (Exception ex) + { + StatusMessage = $"Failed to load: {ex.Message}"; + } + finally + { + IsBusy = false; + } + } + + private async Task SaveAsync() + { + if (!_service.IsConfigured || _sensorIndex < 0) + return; + + IsBusy = true; + StatusMessage = string.Empty; + + try + { + // Pre-validate against sensor metadata + string validationError = ValidateAll(); + + if (validationError != null) + { + StatusMessage = validationError; + return; + } + + bool ok = true; + + // Add/update the sensor entry (S1) + ok &= await _service.AddUpdateLocalSensorAsync(_sensorIndex, SensorType, (sbyte)Opt1_0, (sbyte)Opt1_1); + + // Rename (S3) if changed + if (_original == null || _original.Name != Name) + ok &= await _service.RenameLocalSensorAsync(_sensorIndex, Name ?? string.Empty); + + // Set pins (S4) + if (_original == null || _original.Pin0 != Pin0) + ok &= await _service.SetLocalSensorPinAsync(_sensorIndex, 0, (byte)Pin0); + + if (_original == null || _original.Pin1 != Pin1) + ok &= await _service.SetLocalSensorPinAsync(_sensorIndex, 1, (byte)Pin1); + + // Set options (S6) + if (_original == null || _original.Opt1_0 != Opt1_0) + ok &= await _service.SetLocalSensorOptionAsync(_sensorIndex, 0, 0, Opt1_0); + + if (_original == null || _original.Opt1_1 != Opt1_1) + ok &= await _service.SetLocalSensorOptionAsync(_sensorIndex, 1, 0, Opt1_1); + + if (_original == null || _original.Opt2_0 != Opt2_0) + ok &= await _service.SetLocalSensorOptionAsync(_sensorIndex, 0, 1, Opt2_0); + + if (_original == null || _original.Opt2_1 != Opt2_1) + ok &= await _service.SetLocalSensorOptionAsync(_sensorIndex, 1, 1, Opt2_1); + + // Set enabled (S5) + if (_original == null || _original.Enabled != IsEnabled) + ok &= await _service.SetLocalSensorEnabledAsync(_sensorIndex, IsEnabled); + + if (ok) + ok &= await _service.SaveSettingsAsync(); + + StatusMessage = ok ? SavedOk : SavedFailed; + } + catch (Exception ex) + { + StatusMessage = $"Save failed: {ex.Message}"; + } + finally + { + IsBusy = false; + } + } + + private async Task RemoveAsync() + { + if (!_service.IsConfigured || _sensorIndex < 0) + return; + + bool confirmed = await Application.Current.Windows[0].Page.DisplayAlertAsync( + MsgRemoveSensor, + $"Remove local sensor at index {_sensorIndex}?\n\nThis cannot be undone.", + MsgRemove, + MsgCancel); + + if (!confirmed) + return; + + IsBusy = true; + StatusMessage = string.Empty; + + try + { + bool ok = await _service.RemoveLocalSensorAsync(_sensorIndex); + + if (ok) + ok &= await _service.SaveSettingsAsync(); + + if (ok) + await Shell.Current.GoToAsync(NavBack); + else + StatusMessage = ErrRemoveCommandFailed; + } + catch (Exception ex) + { + StatusMessage = $"Remove failed: {ex.Message}"; + } + finally + { + IsBusy = false; + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + private void OnPropertyChanged([CallerMemberName] string name = null) + => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); +} diff --git a/PowerControlHubApp/ViewModels/RelayDetailViewModel.cs b/PowerControlHubApp/ViewModels/RelayDetailViewModel.cs index d2e10e9..6c50c86 100644 --- a/PowerControlHubApp/ViewModels/RelayDetailViewModel.cs +++ b/PowerControlHubApp/ViewModels/RelayDetailViewModel.cs @@ -257,7 +257,10 @@ private async Task LoadRelayAsync(int index) LongName = relay.LongName; Pin = relay.Pin; DefaultStateIndex = relay.DefaultState; - _colorIndex = relay.ButtonImage; + // Device stores Nextion picture IDs (2-7); convert to 0-based index for the UI + _colorIndex = relay.ButtonImage is >= NextionImageIdMin and <= NextionImageIdMax + ? relay.ButtonImage - NextionImageIdMin + : UnconfiguredPin; _actionType = relay.ActionType; _linkedIndex = relay.LinkedIndex; @@ -315,7 +318,7 @@ private async Task SaveAsync() if (_original == null || _original.DefaultState != DefaultStateIndex) ok &= await _service.SetRelayDefaultStateAsync(_relayIndex, DefaultStateIndex); - if (_original == null || _original.ButtonImage != _colorIndex) + if (_original == null || NormalizedButtonImage(_original.ButtonImage) != _colorIndex) ok &= await _service.SetRelayColorAsync(_relayIndex, _colorIndex); if (_original == null || _original.ActionType != _actionType) @@ -353,6 +356,11 @@ private async Task SaveAsync() } } + private static int NormalizedButtonImage(int deviceValue) + => deviceValue is >= NextionImageIdMin and <= NextionImageIdMax + ? deviceValue - NextionImageIdMin + : UnconfiguredPin; + public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged([CallerMemberName] string name = null) diff --git a/PowerControlHubApp/ViewModels/RelayViewModel.cs b/PowerControlHubApp/ViewModels/RelayViewModel.cs index 51d9d6d..0a653ba 100644 --- a/PowerControlHubApp/ViewModels/RelayViewModel.cs +++ b/PowerControlHubApp/ViewModels/RelayViewModel.cs @@ -65,17 +65,19 @@ public int State public string DisplayName => !string.IsNullOrWhiteSpace(LongName) ? LongName : ShortName; /// - /// Translates (0-5, 255) into the corresponding - /// panel accent colour. Returns Colors.Transparent when unconfigured (255). + /// Translates into the corresponding panel accent colour. + /// Accepts both 0-based indices (0-5) and raw Nextion picture IDs (2-7) to + /// handle values loaded directly from the device before any save normalisation. + /// Returns Colors.Transparent when unconfigured (255) or unknown. /// public Color PanelColor => ButtonImage switch { - RelayColorBlue => Color.FromArgb(ColorRelayPanelBlue), - RelayColorGreen => Color.FromArgb(ColorRelayPanelGreen), - RelayColorOrange => Color.FromArgb(ColorRelayPanelOrange), - RelayColorPurple => Color.FromArgb(ColorRelayPanelPurple), - RelayColorRed => Color.FromArgb(ColorRelayPanelRed), - RelayColorYellow => Color.FromArgb(ColorRelayPanelYellow), + RelayColorBlue or NextionImageIdBlue => Color.FromArgb(ColorRelayPanelBlue), + RelayColorGreen or NextionImageIdGreen => Color.FromArgb(ColorRelayPanelGreen), + RelayColorGrey or NextionImageIdGrey => Color.FromArgb(ColorRelayPanelGrey), + RelayColorOrange or NextionImageIdOrange => Color.FromArgb(ColorRelayPanelOrange), + RelayColorRed or NextionImageIdRed => Color.FromArgb(ColorRelayPanelRed), + RelayColorYellow or NextionImageIdYellow => Color.FromArgb(ColorRelayPanelYellow), _ => Colors.Transparent, }; diff --git a/PowerControlHubApp/Views/DashboardPage.xaml b/PowerControlHubApp/Views/DashboardPage.xaml index 6a6edac..184ec07 100644 --- a/PowerControlHubApp/Views/DashboardPage.xaml +++ b/PowerControlHubApp/Views/DashboardPage.xaml @@ -259,14 +259,6 @@ - - + + + + + + + + + + + + + + + + + + +