From 61b9396163871599e6cb0be2b7f38e3a50f8ad7a Mon Sep 17 00:00:00 2001 From: k3ldar Date: Thu, 23 Jul 2026 19:13:13 +0200 Subject: [PATCH] Consolidate interface Show warning set on ESP device --- .gitignore | 1 + Docs/Commands.md | 1 + Docs/Warnings.md | 4 + PowerControlHub/PowerControlHub.vcxproj | 4 +- PowerControlHub/SystemDefinitions.h | 1 + PowerControlHub/WarningCommandHandler.cpp | 34 +- PowerControlHub/WarningNetworkHandler.cpp | 52 +++ PowerControlHub/WarningNetworkHandler.h | 2 + PowerControlHubApp/AppShell.xaml | 6 + PowerControlHubApp/Internal/Constants.cs | 9 +- PowerControlHubApp/MauiProgram.cs | 2 + .../Models/Json/WarningsListResponseModel.cs | 13 + .../Models/SensorTypeDescriptorModel.cs | 1 - .../Platforms/Android/MainActivity.cs | 1 - PowerControlHubApp/PowerControlHubApp.csproj | 9 + .../Services/DashboardConnection.cs | 7 + .../Services/DashboardPoller.cs | 2 +- .../Services/IDashboardConnection.cs | 4 + .../Services/IDashboardProvider.cs | 2 +- PowerControlHubApp/Services/LogService.cs | 6 +- PowerControlHubApp/Services/MessageBus.cs | 1 - .../Services/PowerHubService.cs | 5 + PowerControlHubApp/Services/RelayStore.cs | 4 +- .../ViewModels/BaseViewModel.cs | 318 ++++++++++++++++++ .../ViewModels/DashboardViewModel.cs | 313 +++-------------- .../ExternalSensorConfigViewModel.cs | 52 +-- .../ExternalSensorDetailViewModel.cs | 63 ++-- .../ViewModels/LocalSensorConfigViewModel.cs | 53 +-- .../ViewModels/LocalSensorDetailViewModel.cs | 85 ++--- .../ViewModels/RelayConfigViewModel.cs | 109 +++--- .../ViewModels/RelayDetailViewModel.cs | 149 ++++---- .../ViewModels/RelayViewModel.cs | 90 ++++- .../ViewModels/SettingsViewModel.cs | 126 +------ .../ViewModels/SystemViewModel.cs | 244 ++++++++++++++ .../Views/BasePowerControlHubContentPage.cs | 26 ++ PowerControlHubApp/Views/DashboardPage.xaml | 135 +------- .../Views/DashboardPage.xaml.cs | 38 +-- .../Views/ExternalSensorConfigPage.xaml | 34 +- .../Views/ExternalSensorConfigPage.xaml.cs | 3 +- .../Views/ExternalSensorDetailPage.xaml | 10 +- .../Views/ExternalSensorDetailPage.xaml.cs | 15 +- .../Views/LocalSensorConfigPage.xaml | 43 +-- .../Views/LocalSensorConfigPage.xaml.cs | 3 +- .../Views/LocalSensorDetailPage.xaml | 32 +- .../Views/LocalSensorDetailPage.xaml.cs | 9 +- PowerControlHubApp/Views/RelayConfigPage.xaml | 43 +-- .../Views/RelayConfigPage.xaml.cs | 3 +- PowerControlHubApp/Views/RelayDetailPage.xaml | 29 +- .../Views/RelayDetailPage.xaml.cs | 8 +- PowerControlHubApp/Views/SettingsPage.xaml | 143 +------- PowerControlHubApp/Views/SettingsPage.xaml.cs | 17 +- PowerControlHubApp/Views/StatusBarView.xaml | 116 +++++++ .../Views/StatusBarView.xaml.cs | 22 ++ PowerControlHubApp/Views/SystemPage.xaml | 154 +++++++++ PowerControlHubApp/Views/SystemPage.xaml.cs | 24 ++ PowerControlHubApp/Views/TopBarView.xaml | 42 +++ PowerControlHubApp/Views/TopBarView.xaml.cs | 112 ++++++ 57 files changed, 1655 insertions(+), 1179 deletions(-) create mode 100644 PowerControlHubApp/Models/Json/WarningsListResponseModel.cs create mode 100644 PowerControlHubApp/ViewModels/BaseViewModel.cs create mode 100644 PowerControlHubApp/ViewModels/SystemViewModel.cs create mode 100644 PowerControlHubApp/Views/BasePowerControlHubContentPage.cs create mode 100644 PowerControlHubApp/Views/StatusBarView.xaml create mode 100644 PowerControlHubApp/Views/StatusBarView.xaml.cs create mode 100644 PowerControlHubApp/Views/SystemPage.xaml create mode 100644 PowerControlHubApp/Views/SystemPage.xaml.cs create mode 100644 PowerControlHubApp/Views/TopBarView.xaml create mode 100644 PowerControlHubApp/Views/TopBarView.xaml.cs diff --git a/.gitignore b/.gitignore index 029fb96..821bceb 100644 --- a/.gitignore +++ b/.gitignore @@ -337,3 +337,4 @@ StaticElectrics/__vm/ /SmartFuseBox/__vm/Upload.vmps.xml /SmartFuseBox/__vm/.SmartFuseBox.vsarduino.h /LocalOnly +/.github/copilot-instructions.md diff --git a/Docs/Commands.md b/Docs/Commands.md index 62718bc..59bd238 100644 --- a/Docs/Commands.md +++ b/Docs/Commands.md @@ -286,6 +286,7 @@ Example: `POST /api/sound/H3` | `W2` — Warning Status | `W2:0x05=1` | Status of a single warning type. Param: `=<0\|1>`. | | `W3` — Clear Warnings | `W3` | Clear all active warnings. No params. | | `W4` — Set Warning Status | `W4:0x06=1` | Raise (`1`) or clear (`0`) a specific warning. Param: `=<0\|1>`. | +| `W5` — List Warning Text | `W5` | Returns one `W5:=` frame per active warning and ends with `ACK:W5=ok`. Use this to get human-readable descriptions of all active warnings. No params. **WiFi response:** `{"success":true,"warnings":["desc1","desc2"]}`. | ### WiFi warning commands Route: `/api/warning/{command}` diff --git a/Docs/Warnings.md b/Docs/Warnings.md index 3a00747..3c9d10a 100644 --- a/Docs/Warnings.md +++ b/Docs/Warnings.md @@ -145,6 +145,7 @@ All warning commands are handled by `WarningCommandHandler`. Commands are availa | Warning Status | `W2` | `=` | Returns `1` (active) or `0` (inactive) for a specific warning flag | | Warnings Clear | `W3` | none | Clears all local and remote warnings | | Warning Add/Clear | `W4` | `=<0\|1>` | Raises (`1`) or clears (`0`) a specific warning by its hex bit value | +| Warning List Text | `W5` | none | Returns one `W5:=` frame per active warning, ending with `ACK:W5=ok`. Provides human-readable descriptions of all active warnings. | **Examples:** @@ -154,6 +155,9 @@ W2:0x00000004=? → ACK:W2=ok;0x00000004=0 W4:0x00000008=1 → raises HighCompassTemperature W4:0x00000008=0 → clears HighCompassTemperature W3 → clears all warnings +W5 → W5:0x00000004=Connection Lost To Fuse Box + W5:0x00000010=Low Battery + ACK:W5=ok ``` Warning types are passed as **hex bit-flag values** (e.g. `0x4` for `ConnectionLost`). The value must be a single set bit (power of 2); multi-bit values are rejected. diff --git a/PowerControlHub/PowerControlHub.vcxproj b/PowerControlHub/PowerControlHub.vcxproj index ba6997c..364febb 100644 --- a/PowerControlHub/PowerControlHub.vcxproj +++ b/PowerControlHub/PowerControlHub.vcxproj @@ -296,7 +296,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)..\..\..\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 @@ -323,7 +323,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)..\..\..\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/SystemDefinitions.h b/PowerControlHub/SystemDefinitions.h index bbff785..f669250 100644 --- a/PowerControlHub/SystemDefinitions.h +++ b/PowerControlHub/SystemDefinitions.h @@ -135,6 +135,7 @@ constexpr char WarningsList[] = "W1"; constexpr char WarningStatus[] = "W2"; constexpr char WarningsClear[] = "W3"; constexpr char WarningsAdd[] = "W4"; +constexpr char WarningsListText[] = "W5"; constexpr char SensorConfigMeta[] = "meta"; constexpr char SensorConfigGetAll[] = "S0"; diff --git a/PowerControlHub/WarningCommandHandler.cpp b/PowerControlHub/WarningCommandHandler.cpp index 391b78c..770f7eb 100644 --- a/PowerControlHub/WarningCommandHandler.cpp +++ b/PowerControlHub/WarningCommandHandler.cpp @@ -44,6 +44,38 @@ bool WarningCommandHandler::handleCommand(SerialCommandManager* sender, const ch sendAckOk(sender, command, ¶m); return true; } + else if (SystemFunctions::commandMatches(command, WarningsListText) && paramCount == 0) + { + // Return list of active warnings as one frame per warning: W5:= + uint32_t activeWarnings = warningManager->getActiveWarningsMask(); + + for (uint8_t bit = 0; bit < 32; bit++) + { + if (activeWarnings & (1UL << bit)) + { + const char* warningStr = getWarningString(bit); + if (warningStr != nullptr && warningStr[0] != '\0') + { + char flagsHex[16]; + snprintf_P(flagsHex, sizeof(flagsHex), PSTR("0x%08lX"), (1UL << bit)); + + // Build params as "=" and send as a command frame + char paramsBuf[128]; + snprintf(paramsBuf, sizeof(paramsBuf), "%s=%s", flagsHex, warningStr); + + // Send raw command frame to requester + if (sender != nullptr) + { + sender->sendCommand(WarningsListText, paramsBuf); + } + } + } + } + + // Final ACK so callers know all lines have been sent + sendAckOk(sender, command); + return true; + } else if (SystemFunctions::commandMatches(command, WarningsList) && paramCount == 0) { // Return the complete bitmask of active warnings as a single value @@ -156,7 +188,7 @@ bool WarningCommandHandler::convertWarningTypeFromString(const char* str, Warnin const char* const* WarningCommandHandler::supportedCommands(size_t& count) const { static const char* cmds[] = { WarningsActive, WarningsList, WarningStatus, - WarningsClear, WarningsAdd }; + WarningsClear, WarningsAdd, WarningsListText }; count = sizeof(cmds) / sizeof(cmds[0]); return cmds; } \ No newline at end of file diff --git a/PowerControlHub/WarningNetworkHandler.cpp b/PowerControlHub/WarningNetworkHandler.cpp index 8d2c730..24e8b5a 100644 --- a/PowerControlHub/WarningNetworkHandler.cpp +++ b/PowerControlHub/WarningNetworkHandler.cpp @@ -58,6 +58,12 @@ CommandResult WarningNetworkHandler::handleRequest(const char* method, return CommandResult::ok(); } + if (SystemFunctions::commandMatches(command, WarningsListText)) + { + formatWarningsJsonList(responseBuffer, bufferSize); + return CommandResult::ok(); + } + return CommandResult::error(InvalidCommandParameters); } @@ -75,3 +81,49 @@ void WarningNetworkHandler::formatWifiStatusJson(IWifiClient* client) formatStatusJson(buffer, sizeof(buffer)); client->print(buffer); } + +void WarningNetworkHandler::formatWarningsJsonList(char* buffer, size_t size) +{ + uint32_t activeWarnings = _warningManager->getActiveWarningsMask(); + + size_t pos = 0; + int written = snprintf(buffer + pos, (pos < size ? size - pos : 0), "\"success\":true,\"warnings\":["); + if (written < 0) return; + pos += (size_t)written; + bool first = true; + + for (uint8_t bit = 0; bit < 32; bit++) + { + if (activeWarnings & (1UL << bit)) + { + const char* warningStr = getWarningString(bit); + + if (warningStr != nullptr && warningStr[0] != '\0') + { + if (!first) + { + if (pos < size - 1) buffer[pos++] = ','; + } + + first = false; + + // append quoted string (warningStr may contain spaces) + written = snprintf(buffer + pos, (pos < size ? size - pos : 0), "\"%s\"", warningStr); + + if (written < 0) + break; + + pos += (size_t)written; + + if (pos >= size) + break; + } + } + } + + if (pos < size - 2) + { + buffer[pos++] = ']'; + buffer[pos] = '\0'; + } +} diff --git a/PowerControlHub/WarningNetworkHandler.h b/PowerControlHub/WarningNetworkHandler.h index 4e9b514..7d469a2 100644 --- a/PowerControlHub/WarningNetworkHandler.h +++ b/PowerControlHub/WarningNetworkHandler.h @@ -35,6 +35,8 @@ class WarningNetworkHandler : public INetworkCommandHandler void formatWifiStatusJson(IWifiClient* client) override; + void formatWarningsJsonList(char* buffer, size_t size); + void formatStatusJson(char* buffer, size_t size); CommandResult handleRequest(const char* method, diff --git a/PowerControlHubApp/AppShell.xaml b/PowerControlHubApp/AppShell.xaml index 8cdd56d..44d4619 100644 --- a/PowerControlHubApp/AppShell.xaml +++ b/PowerControlHubApp/AppShell.xaml @@ -37,4 +37,10 @@ Route="SettingsPage" ContentTemplate="{DataTemplate views:SettingsPage}" /> + + diff --git a/PowerControlHubApp/Internal/Constants.cs b/PowerControlHubApp/Internal/Constants.cs index e8c78c8..b357dea 100644 --- a/PowerControlHubApp/Internal/Constants.cs +++ b/PowerControlHubApp/Internal/Constants.cs @@ -31,6 +31,7 @@ internal static class Constants public const string DefaultDeviceIpPort = "80"; public const string MessageNotConfigured = "Not configured — tap ⚙ to set device IP"; public const string MessageDeviceUnreachable = "Device unreachable"; + public const string MessageNoActiveWarnings = "No active warnings"; public const string MessageToggleFailed = "Toggle failed — see log"; public const string LogOtaTrigger = "OTA: triggering firmware install…"; public const string OtaTriggerFailed = "OTA trigger failed"; @@ -101,6 +102,7 @@ internal static class Constants public const string ThemeColor_LogTimestamp_Dark = "#555577"; public const string ThemeColor_LogText_Dark = "#aaaaaa"; public const string ThemeColor_Placeholder_Dark = "#555555"; + // Networking / settings public const int PortMin = 1; public const int PortMax = 65535; @@ -134,7 +136,7 @@ internal static class Constants public const int NextionImageIdYellow = 7; public const int NextionImageIdMin = NextionImageIdBlue; public const int NextionImageIdMax = NextionImageIdYellow; - public const string ColorRelayPanelBlue = "#2255cc"; + public const string ColorRelayPanelBlue = "#2255aa"; public const string ColorRelayPanelGreen = "#22aa44"; public const string ColorRelayPanelGrey = "#888888"; public const string ColorRelayPanelOrange = "#dd7722"; @@ -183,10 +185,12 @@ internal static class Constants public const string RouteOtaUpdate = "api/system/F13"; public const string RouteUpdateOta = "api/system/F12?apply=1"; public const string RouteSystemPins = "api/system/F15"; + public const string RouteWarnings = "api/warning/W5"; public const string ForwardSlash = "/"; public const string ResultSuccess = "success"; public const string RouteDashboardPage = "//DashboardPage"; public const string RouteSettingsPage = "//SettingsPage"; + public const string RouteSystemPage = "//SystemPage"; public const string ConnectionTypeKey = "X-Connection-Type"; public const string ConnectionTypePersistent = "persistent"; public const int MaximumPermanentConnections = 2; @@ -382,5 +386,8 @@ internal static class Constants public const string LogStartupMetaFetch = "Startup: first dashboard data received, fetching sensor meta on connection 2."; public const string LogStartupMetaPopulated = "Startup: sensor meta cache populated."; public const string LogStartupMetaAlready = "Startup: dashboard data already available, fetching sensor meta on connection 2."; + + public const string NullByte = "0x00"; + public const string NibbleZero = "0x0"; } } diff --git a/PowerControlHubApp/MauiProgram.cs b/PowerControlHubApp/MauiProgram.cs index a6642df..3c96ed4 100644 --- a/PowerControlHubApp/MauiProgram.cs +++ b/PowerControlHubApp/MauiProgram.cs @@ -87,6 +87,7 @@ public static MauiApp CreateMauiApp() builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); + builder.Services.AddSingleton(); builder.Services.AddTransient(); builder.Services.AddSingleton(); builder.Services.AddTransient(); @@ -97,6 +98,7 @@ public static MauiApp CreateMauiApp() builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); + builder.Services.AddSingleton(); builder.Services.AddTransient(); builder.Services.AddSingleton(); builder.Services.AddTransient(); diff --git a/PowerControlHubApp/Models/Json/WarningsListResponseModel.cs b/PowerControlHubApp/Models/Json/WarningsListResponseModel.cs new file mode 100644 index 0000000..16828f3 --- /dev/null +++ b/PowerControlHubApp/Models/Json/WarningsListResponseModel.cs @@ -0,0 +1,13 @@ +using System.Text.Json.Serialization; + +namespace PowerControlHubApp.Models.Json +{ + public sealed class WarningsListResponseModel + { + [JsonPropertyName("success")] + public bool Success { get; set; } + + [JsonPropertyName("warnings")] + public List Warnings { get; set; } = []; + } +} diff --git a/PowerControlHubApp/Models/SensorTypeDescriptorModel.cs b/PowerControlHubApp/Models/SensorTypeDescriptorModel.cs index bf04a87..a7394a8 100644 --- a/PowerControlHubApp/Models/SensorTypeDescriptorModel.cs +++ b/PowerControlHubApp/Models/SensorTypeDescriptorModel.cs @@ -1,5 +1,4 @@ using System.Text.Json.Serialization; -using static PowerControlHubApp.Internal.Constants; namespace PowerControlHubApp.Models; diff --git a/PowerControlHubApp/Platforms/Android/MainActivity.cs b/PowerControlHubApp/Platforms/Android/MainActivity.cs index 04ddf12..2cb82c8 100644 --- a/PowerControlHubApp/Platforms/Android/MainActivity.cs +++ b/PowerControlHubApp/Platforms/Android/MainActivity.cs @@ -1,6 +1,5 @@ using Android.App; using Android.Content.PM; -using Android.OS; namespace PowerControlHubApp { diff --git a/PowerControlHubApp/PowerControlHubApp.csproj b/PowerControlHubApp/PowerControlHubApp.csproj index 856322b..ccfc371 100644 --- a/PowerControlHubApp/PowerControlHubApp.csproj +++ b/PowerControlHubApp/PowerControlHubApp.csproj @@ -109,6 +109,12 @@ MSBuild:Compile + + MSBuild:Compile + + + MSBuild:Compile + MSBuild:Compile @@ -133,6 +139,9 @@ MSBuild:Compile + + MSBuild:Compile + diff --git a/PowerControlHubApp/Services/DashboardConnection.cs b/PowerControlHubApp/Services/DashboardConnection.cs index aad65c6..8b6006f 100644 --- a/PowerControlHubApp/Services/DashboardConnection.cs +++ b/PowerControlHubApp/Services/DashboardConnection.cs @@ -98,6 +98,13 @@ public async Task GetDashboardDataAsync(CancellationToken ct = defau return result; } + public async Task> GetWarningsAsync(CancellationToken ct = default) + { + string json = await _client.GetStringAsync(RouteWarnings, ct); + WarningsListResponseModel resp = JsonSerializer.Deserialize(json, JsonOptions); + return resp?.Warnings ?? []; + } + private static SocketsHttpHandler CreateHandler() { var handler = new SocketsHttpHandler diff --git a/PowerControlHubApp/Services/DashboardPoller.cs b/PowerControlHubApp/Services/DashboardPoller.cs index 81846f0..a9c2516 100644 --- a/PowerControlHubApp/Services/DashboardPoller.cs +++ b/PowerControlHubApp/Services/DashboardPoller.cs @@ -1,6 +1,6 @@ -using System.ComponentModel; using Microsoft.Extensions.Logging; using PowerControlHubApp.Models.Json; +using System.ComponentModel; using static PowerControlHubApp.Internal.Constants; namespace PowerControlHubApp.Services; diff --git a/PowerControlHubApp/Services/IDashboardConnection.cs b/PowerControlHubApp/Services/IDashboardConnection.cs index 7f2bb3d..8a984f8 100644 --- a/PowerControlHubApp/Services/IDashboardConnection.cs +++ b/PowerControlHubApp/Services/IDashboardConnection.cs @@ -4,7 +4,11 @@ namespace PowerControlHubApp.Services public interface IDashboardConnection { bool IsConfigured { get; } + Task GetDashboardDataAsync(CancellationToken ct = default); + Task GetSystemPinsAsync(CancellationToken ct = default); + + Task> GetWarningsAsync(CancellationToken ct = default); } } diff --git a/PowerControlHubApp/Services/IDashboardProvider.cs b/PowerControlHubApp/Services/IDashboardProvider.cs index 73f86aa..c5ae2ff 100644 --- a/PowerControlHubApp/Services/IDashboardProvider.cs +++ b/PowerControlHubApp/Services/IDashboardProvider.cs @@ -1,5 +1,5 @@ -using System.ComponentModel; using PowerControlHubApp.Models.Json; +using System.ComponentModel; namespace PowerControlHubApp.Services; diff --git a/PowerControlHubApp/Services/LogService.cs b/PowerControlHubApp/Services/LogService.cs index 7db053a..74e1c47 100644 --- a/PowerControlHubApp/Services/LogService.cs +++ b/PowerControlHubApp/Services/LogService.cs @@ -1,5 +1,5 @@ -using System.Collections.ObjectModel; using PowerControlHubApp.ViewModels; +using System.Collections.ObjectModel; namespace PowerControlHubApp.Services; @@ -24,8 +24,8 @@ public void Log(LogLevel level, string message) var entry = new LogEntryViewModel { Timestamp = DateTime.Now, - Level = level, - Message = message + Level = level, + Message = message }; MainThread.BeginInvokeOnMainThread(() => diff --git a/PowerControlHubApp/Services/MessageBus.cs b/PowerControlHubApp/Services/MessageBus.cs index aeee0c5..bbe2a49 100644 --- a/PowerControlHubApp/Services/MessageBus.cs +++ b/PowerControlHubApp/Services/MessageBus.cs @@ -1,5 +1,4 @@ using System.Collections.Concurrent; -using System.Collections.Generic; namespace PowerControlHubApp.Services { diff --git a/PowerControlHubApp/Services/PowerHubService.cs b/PowerControlHubApp/Services/PowerHubService.cs index 38685f5..be04a56 100644 --- a/PowerControlHubApp/Services/PowerHubService.cs +++ b/PowerControlHubApp/Services/PowerHubService.cs @@ -54,6 +54,11 @@ public Task GetDashboardDataAsync(CancellationToken ct = default) return _dashboardConnection.GetDashboardDataAsync(ct); } + public Task> GetWarningsAsync(CancellationToken ct = default) + { + return _dashboardConnection.GetWarningsAsync(ct); + } + public Task> GetSensorMetaAsync(CancellationToken ct = default) { return _configConnection.GetSensorMetaAsync(ct); diff --git a/PowerControlHubApp/Services/RelayStore.cs b/PowerControlHubApp/Services/RelayStore.cs index eb729ca..e5e52ee 100644 --- a/PowerControlHubApp/Services/RelayStore.cs +++ b/PowerControlHubApp/Services/RelayStore.cs @@ -1,8 +1,6 @@ -using System.Collections.ObjectModel; -using System.Collections.Generic; -using System.Linq; using PowerControlHubApp.Models.Json; using PowerControlHubApp.ViewModels; +using System.Collections.ObjectModel; namespace PowerControlHubApp.Services; diff --git a/PowerControlHubApp/ViewModels/BaseViewModel.cs b/PowerControlHubApp/ViewModels/BaseViewModel.cs new file mode 100644 index 0000000..608a411 --- /dev/null +++ b/PowerControlHubApp/ViewModels/BaseViewModel.cs @@ -0,0 +1,318 @@ +using PowerControlHubApp.Models; +using PowerControlHubApp.Models.Json; +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 abstract class BaseViewModel : INotifyPropertyChanged +{ + private readonly LogService _log; + private readonly PowerHubService _service; + private CancellationTokenSource _refreshCts; + private bool _isBusy; + private bool _isConnected; + private string _deviceUrl = string.Empty; + private string _statusMessage = string.Empty; + + // System properties + private string _systemFreeMemory = DoubleDash; + private string _systemCpuUsage = DoubleDash; + private string _systemTime = DoubleDash; + private string _systemFirmware = DoubleDash; + private string _systemUptime = DoubleDash; + private bool _hasWarnings; + private bool _isApplyingRemoteState = true; + + protected BaseViewModel(PowerHubService service, LogService log) + { + _service = service ?? throw new ArgumentNullException(nameof(service)); + _log = log ?? throw new ArgumentNullException(nameof(log)); + RefreshCommand = new Command(async () => await ExecuteRefreshAsync(CancellationToken.None)); + SystemLabelTappedCommand = new Command(async () => await Shell.Current.GoToAsync(RouteSystemPage)); + FirmwareLabelTappedCommand = new Command(async () => await Shell.Current.GoToAsync(RouteSystemPage)); + } + + protected LogService Log => _log; + protected PowerHubService Service => _service; + + public ObservableCollection LogEntries => _log.Entries; + + public ICommand RefreshCommand { get; } + public ICommand SystemLabelTappedCommand { get; } + public ICommand FirmwareLabelTappedCommand { 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 bool IsConnected + { + get => _isConnected; + set + { + _isConnected = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(IsDisconnected)); + OnPropertyChanged(nameof(StatusColor)); + } + } + + public bool IsDisconnected => !_isConnected; + + public Color StatusColor => _isConnected ? Color.FromArgb(ColorAsHex1) : Color.FromArgb(ColorError); + + public string DeviceUrl + { + get => _deviceUrl; + set + { + _deviceUrl = value; + OnPropertyChanged(); + } + } + + public string SystemFreeMemory + { + get => _systemFreeMemory; + private set + { + _systemFreeMemory = value; + OnPropertyChanged(); + } + } + + public string SystemCpuUsage + { + get => _systemCpuUsage; + private set + { + _systemCpuUsage = value; + OnPropertyChanged(); + } + } + + public string SystemTime + { + get => _systemTime; + private set + { + _systemTime = value; + OnPropertyChanged(); + } + } + + public string SystemFirmware + { + get => _systemFirmware; + private set + { + _systemFirmware = value; + OnPropertyChanged(); + } + } + + public string SystemUptime + { + get => _systemUptime; + private set + { + _systemUptime = value; + OnPropertyChanged(); + } + } + + [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1822", Justification = "Exposed to XAML bindings as instance property")] + public Color SystemFirmwareColor => Color.FromArgb(ColorAsHex1); + + public bool HasWarnings + { + get => _hasWarnings; + private set + { + _hasWarnings = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(SystemStatusColor)); + } + } + + public Color SystemStatusColor => HasWarnings ? Color.FromArgb(ColorError) : Color.FromArgb(ColorAsHex1); + + /// + /// When true the view should ignore events raised by the UI because the + /// viewmodel is applying authoritative state from the remote device. + /// + public bool IsApplyingRemoteState + { + get => _isApplyingRemoteState; + private set + { + _isApplyingRemoteState = value; + OnPropertyChanged(); + } + } + + public void ClearLog() => _log.Clear(); + + public void StartAutoRefresh() + { + StopAutoRefresh(); + _refreshCts = new CancellationTokenSource(); + _ = AutoRefreshLoopAsync(_refreshCts.Token); + } + + public void StopAutoRefresh() + { + _refreshCts?.Cancel(); + _refreshCts?.Dispose(); + _refreshCts = null; + } + + private async Task AutoRefreshLoopAsync(CancellationToken ct) + { + while (!ct.IsCancellationRequested) + { + try + { + await ExecuteRefreshAsync(ct); + } + catch (OperationCanceledException) + { + break; + } + catch (Exception ex) + { + _log.Error($"Auto-refresh failed: {ex.Message}"); + } + + try + { + await Task.Delay(TimeSpan.FromSeconds(1), ct); + } + catch (TaskCanceledException) + { + break; + } + } + } + + // ── Refresh pipeline ────────────────────────────────────────────────── + + /// + /// Common refresh flow: checks configuration, fetches , + /// updates system status, then calls for + /// view-model-specific processing. Handles error cases consistently. + /// + protected async Task ExecuteRefreshAsync(CancellationToken ct) + { + if (!_service.IsConfigured) + { + StatusMessage = MessageNotConfigured; + IsConnected = false; + return; + } + + if (IsBusy) + return; + + IsBusy = true; + DeviceUrl = _service.BaseUrl; + + try + { + IndexModel index = await _service.GetDashboardDataAsync(ct); + + MainThread.BeginInvokeOnMainThread(() => + { + IsApplyingRemoteState = true; + try + { + UpdateSystem(index.System); + UpdateHasWarnings(index.Warning); + OnDataFetched(index); + IsConnected = true; + StatusMessage = $"Updated {DateTime.Now:HH:mm:ss}"; + } + finally + { + IsApplyingRemoteState = false; + } + }); + } + catch (DeviceResponseException ex) + { + // Device is reachable but sent bad data — keep last known values visible + _log.Warning(ex.Message); + MainThread.BeginInvokeOnMainThread(() => + { + StatusMessage = $"Bad data {DateTime.Now:HH:mm:ss} — see log"; + }); + } + catch (Exception ex) + { + // Network / timeout failure — device unreachable + _log.Error($"Connection failed: {ex.Message}"); + MainThread.BeginInvokeOnMainThread(() => + { + IsConnected = false; + StatusMessage = MessageDeviceUnreachable; + }); + } + finally + { + IsBusy = false; + } + } + + /// + /// Override to apply view-model-specific updates after the common data + /// has been fetched and system status has been written. + /// + protected abstract void OnDataFetched(IndexModel index); + + private void UpdateSystem(SystemModel system) + { + SystemFreeMemory = $"{Math.Round((double)system.Mem / KilobyteBytes, DefaultDecimalPlaces)} kb"; + SystemCpuUsage = $"{system.Cpu}%"; + SystemFirmware = string.IsNullOrEmpty(system.Fw) ? DoubleDash : system.Fw; + SystemUptime = string.IsNullOrEmpty(system.Uptime) ? DoubleDash : system.Uptime; + } + + private void UpdateHasWarnings(WarningModel warning) + { + HasWarnings = warning != null && !string.IsNullOrEmpty(warning.Active) && + !warning.Active.Equals(NullByte, StringComparison.OrdinalIgnoreCase) && + !warning.Active.Equals(NibbleZero, StringComparison.OrdinalIgnoreCase); + } + + public event PropertyChangedEventHandler PropertyChanged; + + protected void OnPropertyChanged([CallerMemberName] string name = null) + => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); +} diff --git a/PowerControlHubApp/ViewModels/DashboardViewModel.cs b/PowerControlHubApp/ViewModels/DashboardViewModel.cs index 27b6d9e..49fe34e 100644 --- a/PowerControlHubApp/ViewModels/DashboardViewModel.cs +++ b/PowerControlHubApp/ViewModels/DashboardViewModel.cs @@ -1,25 +1,14 @@ -using PowerControlHubApp.Models; using PowerControlHubApp.Models.Json; using PowerControlHubApp.Services; -using Microsoft.Maui.Controls; 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 DashboardViewModel : INotifyPropertyChanged +public class DashboardViewModel : BaseViewModel { - private readonly PowerHubService _service; - private readonly LogService _log; private readonly RelayStore _relayStore; - private CancellationTokenSource _refreshCts; - private bool _isBusy; - private bool _isConnected; - private string _statusMessage = string.Empty; - private string _deviceUrl = string.Empty; // OTA private OtaStatusModel _otaStatus; @@ -27,17 +16,15 @@ public class DashboardViewModel : INotifyPropertyChanged public ObservableCollection Relays => _relayStore.Relays; public ObservableCollection Sensors { get; } = []; - public ObservableCollection LogEntries => _log.Entries; - public bool HasRelays => _isConnected && Relays.Count > 0; - public bool HasNoRelays => _isConnected && Relays.Count == 0; - public bool HasSensors => _isConnected && Sensors.Count > 0; - public bool HasNoSensors => _isConnected && Sensors.Count == 0; + public bool HasRelays => IsConnected && Relays.Count > 0; + public bool HasNoRelays => IsConnected && Relays.Count == 0; + public bool HasSensors => IsConnected && Sensors.Count > 0; + public bool HasNoSensors => IsConnected && Sensors.Count == 0; - public ICommand RefreshCommand { get; } + // RefreshCommand is provided by BaseViewModel public ICommand ToggleRelayCommand { get; } public ICommand InstallUpdateCommand { get; } - public ICommand FirmwareLabelTappedCommand { get; } /// True when the firmware reported an update is available. public bool UpdateAvailable => _otaStatus?.UpdateAvailable == true; @@ -56,74 +43,6 @@ private set } } - private string _systemFreeMemory = DoubleDash; - private string _systemCpuUsage = DoubleDash; - private string _systemTime = DoubleDash; - private string _systemFirmware = DoubleDash; - private string _systemUptime = DoubleDash; - - public string SystemFreeMemory - { - get => _systemFreeMemory; - - private set - { - _systemFreeMemory = value; - OnPropertyChanged(); - } - } - - public string SystemCpuUsage - { - get => _systemCpuUsage; - - private set - { - _systemCpuUsage = value; - OnPropertyChanged(); - } - } - - public string SystemTime - { - get => _systemTime; - - private set - { - _systemTime = value; - OnPropertyChanged(); - } - } - - public string SystemFirmware - { - get => _systemFirmware; - - private set - { - _systemFirmware = value; - OnPropertyChanged(); - } - } - - /// - /// Uptime string reported by the device. - /// - public string SystemUptime - { - get => _systemUptime; - private set - { - _systemUptime = value; - OnPropertyChanged(); - } - } - - /// - /// Colour for the firmware label in the status bar. Changes when update available. - /// - public Color SystemFirmwareColor => UpdateAvailable ? Color.FromArgb(ColorWarning) : Color.FromArgb(ColorAsHex1); - /// Label shown in the update banner. public string OtaBannerLabel => _otaStatus?.BannerLabel ?? string.Empty; @@ -146,72 +65,16 @@ private set /// Install button is active only when an update is available and nothing is in progress. public bool CanInstallUpdate => _otaStatus?.UpdateAvailable == true && !OtaBusy && !IsBusy; - public bool IsBusy - { - get => _isBusy; - set - { - _isBusy = value; - OnPropertyChanged(); - OnPropertyChanged(nameof(IsNotBusy)); - } - } - - public bool IsNotBusy => !_isBusy; - - 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)); - } - } - - public bool IsDisconnected => !_isConnected; - - public Color StatusColor => _isConnected ? Color.FromArgb(ColorAsHex1) : Color.FromArgb(ColorError); - - public string StatusMessage - { - get => _statusMessage; - set - { - _statusMessage = value; - OnPropertyChanged(); - } - } - - public string DeviceUrl - { - get => _deviceUrl; - set - { - _deviceUrl = value; - OnPropertyChanged(); - } - } - - // When true the view should ignore Switch.Toggled events because the - // viewmodel is applying authoritative state from the remote device. - public bool IsApplyingRemoteState { get; private set; } = true; + // IsBusy, IsNotBusy, IsConnected, StatusMessage, DeviceUrl, LogEntries, + // IsApplyingRemoteState, system properties, and refresh lifecycle are + // provided by BaseViewModel public DashboardViewModel(PowerHubService service, LogService log, RelayStore relayStore) + : base(service, log) { - _service = service; - _log = log; _relayStore = relayStore; - RefreshCommand = new Command(async () => await RefreshAsync()); ToggleRelayCommand = new Command(async relay => await ToggleRelayAsync(relay)); InstallUpdateCommand = new Command(async () => await InstallUpdateAsync(), () => CanInstallUpdate); - FirmwareLabelTappedCommand = new Command(async () => await Shell.Current.GoToAsync(RouteSettingsPage)); _relayStore.Relays.CollectionChanged += (_, _) => { @@ -224,139 +87,64 @@ public DashboardViewModel(PowerHubService service, LogService log, RelayStore re OnPropertyChanged(nameof(HasSensors)); OnPropertyChanged(nameof(HasNoSensors)); }; - } - public void ClearLog() => _log.Clear(); - - public void StartAutoRefresh() - { - StopAutoRefresh(); - _refreshCts = new CancellationTokenSource(); - _ = AutoRefreshLoopAsync(_refreshCts.Token); + // Relay the Has* property changes when IsConnected changes, so that + // the UI re-evaluates bindings that depend on both connection state + // and collection count. + PropertyChanged += (_, e) => + { + if (e.PropertyName == nameof(IsConnected)) + { + OnPropertyChanged(nameof(HasRelays)); + OnPropertyChanged(nameof(HasNoRelays)); + OnPropertyChanged(nameof(HasSensors)); + OnPropertyChanged(nameof(HasNoSensors)); + } + }; } - public void StopAutoRefresh() - { - _refreshCts?.Cancel(); - _refreshCts?.Dispose(); - _refreshCts = null; - } + // Auto-refresh, log clearing, and ExecuteRefreshAsync are provided by BaseViewModel - public async Task RefreshAsync() + protected override void OnDataFetched(IndexModel index) { - if (!_service.IsConfigured) - { - StatusMessage = MessageNotConfigured; - IsConnected = false; - return; - } + UpdateRelays(index.Relays); + UpdateSensors(index); - if (IsBusy) - return; - - IsBusy = true; - DeviceUrl = _service.BaseUrl; - - try + // Poll OTA status as a true fire-and-forget so any failure or timeout + // here can never affect IsConnected, HasSensors, or the IsBusy flag. + _ = Task.Run(async () => { - IndexModel index = await _service.GetDashboardDataAsync(); - + var ota = await Service.GetOtaStatusAsync(); MainThread.BeginInvokeOnMainThread(() => { - // When applying authoritative state from the device we want to - // ignore any Switch.Toggled events raised by the UI as a result - // of the programmatic property updates. Mark a short-lived flag - // so the view can drop those events. - IsApplyingRemoteState = true; - try - { - UpdateSystem(index.System); - UpdateRelays(index.Relays); - UpdateSensors(index); - IsConnected = true; - StatusMessage = $"Updated {DateTime.Now:HH:mm:ss}"; - } - finally - { - IsApplyingRemoteState = false; - } - }); - - // Poll OTA status as a true fire-and-forget so any failure or timeout - // here can never affect IsConnected, HasSensors, or the IsBusy flag. - _ = Task.Run(async () => - { - var ota = await _service.GetOtaStatusAsync(); - MainThread.BeginInvokeOnMainThread(() => - { - OtaSupported = ota != null; - _otaStatus = ota; - NotifyOtaProperties(); - }); - }); - } - catch (DeviceResponseException ex) - { - // Device is reachable but sent bad data — keep last known values visible - _log.Warning(ex.Message); - MainThread.BeginInvokeOnMainThread(() => - { - StatusMessage = $"Bad data {DateTime.Now:HH:mm:ss} — see log"; - }); - } - catch (Exception ex) - { - // Network / timeout failure — device unreachable - _log.Error($"Connection failed: {ex.Message}"); - MainThread.BeginInvokeOnMainThread(() => - { - IsConnected = false; - StatusMessage = MessageDeviceUnreachable; + OtaSupported = ota != null; + _otaStatus = ota; + NotifyOtaProperties(); }); - } - finally - { - IsBusy = false; - } - } - - private async Task AutoRefreshLoopAsync(CancellationToken ct) - { - while (!ct.IsCancellationRequested) - { - await RefreshAsync(); - try - { - await Task.Delay(TimeSpan.FromSeconds(1), ct); - } - catch (TaskCanceledException) - { - break; - } - } + }); } private async Task ToggleRelayAsync(RelayViewModel relay) { - if (!_service.IsConfigured || relay == null) + if (!Service.IsConfigured || relay == null) return; bool newState = !relay.IsOn; try { - bool success = await _service.SetRelayStateAsync(relay.Index, newState); + bool success = await Service.SetRelayStateAsync(relay.Index, newState); if (success) { relay.State = newState ? 1 : 0; // Refresh to get confirmed state from device - await RefreshAsync(); + await ExecuteRefreshAsync(CancellationToken.None); } } catch (Exception ex) { - _log.Error($"Toggle relay {relay.Index} failed: {ex.Message}"); + Log.Error($"Toggle relay {relay.Index} failed: {ex.Message}"); StatusMessage = MessageToggleFailed; } } @@ -368,12 +156,12 @@ private async Task InstallUpdateAsync() try { - _log.Info(LogOtaTrigger); - await _service.TriggerOtaInstallAsync(); + Log.Info(LogOtaTrigger); + await Service.TriggerOtaInstallAsync(); // Give the device a moment then poll for updated status await Task.Delay(TimeSpan.FromSeconds(SecondsTwo)); - var ota = await _service.GetOtaStatusAsync(); + var ota = await Service.GetOtaStatusAsync(); MainThread.BeginInvokeOnMainThread(() => { _otaStatus = ota; @@ -382,7 +170,7 @@ private async Task InstallUpdateAsync() } catch (Exception ex) { - _log.Error($"OTA trigger failed: {ex.Message}"); + Log.Error($"OTA trigger failed: {ex.Message}"); } } @@ -398,16 +186,6 @@ private void NotifyOtaProperties() ((Command)InstallUpdateCommand).ChangeCanExecute(); } - private void UpdateSystem(SystemModel system) - { - SystemFreeMemory = $"{Math.Round((double)system.Mem / KilobyteBytes, DefaultDecimalPlaces)} kb"; - SystemCpuUsage = $"{system.Cpu}%"; - // Populate firmware and uptime so the status bar can show them - SystemFirmware = string.IsNullOrEmpty(system.Fw) ? DoubleDash : system.Fw; - SystemUptime = string.IsNullOrEmpty(system.Uptime) ? DoubleDash : system.Uptime; - OnPropertyChanged(nameof(SystemFirmwareColor)); - } - private void UpdateRelays(IReadOnlyList incoming) { var vms = RelayStore.FromModels(incoming ?? []); @@ -424,8 +202,5 @@ private void UpdateSensors(IndexModel index) } } - public event PropertyChangedEventHandler PropertyChanged; - - protected void OnPropertyChanged([CallerMemberName] string name = null) - => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); + // PropertyChanged and OnPropertyChanged are provided by BaseViewModel } diff --git a/PowerControlHubApp/ViewModels/ExternalSensorConfigViewModel.cs b/PowerControlHubApp/ViewModels/ExternalSensorConfigViewModel.cs index 398bbd6..0637a1c 100644 --- a/PowerControlHubApp/ViewModels/ExternalSensorConfigViewModel.cs +++ b/PowerControlHubApp/ViewModels/ExternalSensorConfigViewModel.cs @@ -1,54 +1,22 @@ using PowerControlHubApp.Models; +using PowerControlHubApp.Models.Json; 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 +public class ExternalSensorConfigViewModel : BaseViewModel { - 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 + public ExternalSensorConfigViewModel(PowerHubService service, LogService log) + : base(service, log) { - 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 => { @@ -61,7 +29,7 @@ public ExternalSensorConfigViewModel(PowerHubService service) public async Task LoadAsync() { - if (!_service.IsConfigured) + if (!Service.IsConfigured) { StatusMessage = MessageNotConfigured; return; @@ -72,7 +40,7 @@ public async Task LoadAsync() try { - List configuredSensors = await _service.GetExternalSensorsAsync(); + List configuredSensors = await Service.GetExternalSensorsAsync(); Sensors.Clear(); @@ -94,8 +62,8 @@ public async Task LoadAsync() } } - public event PropertyChangedEventHandler PropertyChanged; - - private void OnPropertyChanged([CallerMemberName] string name = null) - => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); + protected override void OnDataFetched(IndexModel index) + { + // External sensor config page doesn't process dashboard data + } } diff --git a/PowerControlHubApp/ViewModels/ExternalSensorDetailViewModel.cs b/PowerControlHubApp/ViewModels/ExternalSensorDetailViewModel.cs index a56cd28..1905286 100644 --- a/PowerControlHubApp/ViewModels/ExternalSensorDetailViewModel.cs +++ b/PowerControlHubApp/ViewModels/ExternalSensorDetailViewModel.cs @@ -1,17 +1,15 @@ using PowerControlHubApp.Models; +using PowerControlHubApp.Models.Json; 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 +public class ExternalSensorDetailViewModel : BaseViewModel { - private readonly PowerHubService _service; private readonly SensorMetaCache _metaCache; private ExternalSensorConfigModel _original; private int _sensorIndex = -1; @@ -23,8 +21,6 @@ public class ExternalSensorDetailViewModel : INotifyPropertyChanged 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; } = []; @@ -135,32 +131,11 @@ public bool MqttIsBinary } } - public bool IsBusy - { - get => _isBusy; - set - { - _isBusy = value; - OnPropertyChanged(); - OnPropertyChanged(nameof(IsNotBusy)); - } - } - - public bool IsNotBusy => !_isBusy; + // IsBusy, IsNotBusy, and StatusMessage are provided by BaseViewModel - public string StatusMessage + public ExternalSensorDetailViewModel(PowerHubService service, LogService log, SensorMetaCache metaCache) + : base(service, log) { - 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()); @@ -169,6 +144,11 @@ public ExternalSensorDetailViewModel(PowerHubService service, SensorMetaCache me _metaCache.CacheUpdated += (_, _) => BuildTypeOptions(); } + protected override void OnDataFetched(IndexModel index) + { + // External sensor detail page doesn't process dashboard data from auto-refresh + } + private void BuildTypeOptions() { SensorTypeOptions.Clear(); @@ -195,7 +175,7 @@ private void BuildTypeOptions() private async Task LoadAsync(int index) { - if (!_service.IsConfigured || index < 0) + if (!Service.IsConfigured || index < 0) return; IsBusy = true; @@ -203,7 +183,7 @@ private async Task LoadAsync(int index) try { - var list = await _service.GetExternalSensorsAsync(); + var list = await Service.GetExternalSensorsAsync(); _original = list?.FirstOrDefault(s => s.Index == index); if (_original != null) @@ -232,7 +212,7 @@ private async Task LoadAsync(int index) private async Task SaveAsync() { - if (!_service.IsConfigured || _sensorIndex < 0) + if (!Service.IsConfigured || _sensorIndex < 0) return; IsBusy = true; @@ -242,11 +222,11 @@ private async Task SaveAsync() { 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); + 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(); + ok &= await Service.SaveSettingsAsync(); StatusMessage = ok ? SavedOk : SavedFailed; } @@ -262,7 +242,7 @@ private async Task SaveAsync() private async Task RemoveAsync() { - if (!_service.IsConfigured || _sensorIndex < 0) + if (!Service.IsConfigured || _sensorIndex < 0) return; bool confirmed = await Application.Current.Windows[0].Page.DisplayAlertAsync( @@ -279,10 +259,10 @@ private async Task RemoveAsync() try { - bool ok = await _service.RemoveExternalSensorAsync(_sensorIndex); + bool ok = await Service.RemoveExternalSensorAsync(_sensorIndex); if (ok) - ok &= await _service.SaveSettingsAsync(); + ok &= await Service.SaveSettingsAsync(); if (ok) { @@ -302,9 +282,4 @@ private async Task RemoveAsync() 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 index 0369c72..a725180 100644 --- a/PowerControlHubApp/ViewModels/LocalSensorConfigViewModel.cs +++ b/PowerControlHubApp/ViewModels/LocalSensorConfigViewModel.cs @@ -1,56 +1,23 @@ using PowerControlHubApp.Models; +using PowerControlHubApp.Models.Json; 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 +public class LocalSensorConfigViewModel : BaseViewModel { - 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 + public LocalSensorConfigViewModel(PowerHubService service, LogService log) + : base(service, log) { - 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 => { @@ -63,7 +30,7 @@ public LocalSensorConfigViewModel(PowerHubService service) public async Task LoadAsync() { - if (!_service.IsConfigured) + if (!Service.IsConfigured) { StatusMessage = MessageNotConfigured; return; @@ -74,7 +41,7 @@ public async Task LoadAsync() try { - List configuredSensors = await _service.GetLocalSensorsAsync(); + List configuredSensors = await Service.GetLocalSensorsAsync(); Sensors.Clear(); @@ -96,8 +63,8 @@ public async Task LoadAsync() } } - public event PropertyChangedEventHandler PropertyChanged; - - private void OnPropertyChanged([CallerMemberName] string name = null) - => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); + protected override void OnDataFetched(IndexModel index) + { + // Local sensor config page doesn't process dashboard data + } } diff --git a/PowerControlHubApp/ViewModels/LocalSensorDetailViewModel.cs b/PowerControlHubApp/ViewModels/LocalSensorDetailViewModel.cs index eced233..341fac5 100644 --- a/PowerControlHubApp/ViewModels/LocalSensorDetailViewModel.cs +++ b/PowerControlHubApp/ViewModels/LocalSensorDetailViewModel.cs @@ -1,17 +1,15 @@ using PowerControlHubApp.Models; +using PowerControlHubApp.Models.Json; 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 +public class LocalSensorDetailViewModel : BaseViewModel { - private readonly PowerHubService _service; private readonly SensorMetaCache _metaCache; private LocalSensorConfigModel _original; @@ -26,8 +24,6 @@ public class LocalSensorDetailViewModel : INotifyPropertyChanged 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; @@ -520,38 +516,13 @@ public bool IsEnabled } } - 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); + // IsBusy, IsNotBusy, StatusMessage, and HasStatus are provided by BaseViewModel - public bool IsError => HasStatus && !_statusMessage.StartsWith(CheckMark); + public bool IsError => HasStatus && !StatusMessage.StartsWith(CheckMark); - public LocalSensorDetailViewModel(PowerHubService service, SensorMetaCache metaCache) + public LocalSensorDetailViewModel(PowerHubService service, LogService log, SensorMetaCache metaCache) + : base(service, log) { - _service = service; _metaCache = metaCache; SaveCommand = new Command(async () => await SaveAsync()); RemoveCommand = new Command(async () => await RemoveAsync()); @@ -605,6 +576,11 @@ private void BuildTypeOptions() } } + protected override void OnDataFetched(IndexModel index) + { + // Local sensor detail page doesn't process dashboard data from auto-refresh + } + private void ApplyDescriptor(int sensorTypeId) { SensorTypeDescriptorModel desc = _metaCache.GetDescriptor(sensorTypeId); @@ -695,7 +671,7 @@ private void ApplyDescriptor(int sensorTypeId) private async Task LoadAsync(int index) { - if (!_service.IsConfigured || index < 0) + if (!Service.IsConfigured || index < 0) return; IsBusy = true; @@ -703,7 +679,7 @@ private async Task LoadAsync(int index) try { - List allSensors = await _service.GetLocalSensorsAsync(); + List allSensors = await Service.GetLocalSensorsAsync(); _original = allSensors.FirstOrDefault(s => s.Index == index) ?? new LocalSensorConfigModel { Index = index, Pin0 = UnconfiguredPin, Pin1 = UnconfiguredPin }; @@ -735,7 +711,7 @@ private async Task LoadAsync(int index) private async Task SaveAsync() { - if (!_service.IsConfigured || _sensorIndex < 0) + if (!Service.IsConfigured || _sensorIndex < 0) return; IsBusy = true; @@ -756,71 +732,71 @@ private async Task SaveAsync() List failures = []; // Add/update the sensor entry (S1) — label only if it fails - if (!await _service.AddUpdateLocalSensorAsync(_sensorIndex, SensorType, (sbyte)Opt1_0, (sbyte)Opt1_1)) + if (!await Service.AddUpdateLocalSensorAsync(_sensorIndex, SensorType, (sbyte)Opt1_0, (sbyte)Opt1_1)) failures.Add(FailAddUpdateSensor); // Rename (S3) if changed if (_original == null || _original.Name != Name) { - if (!await _service.RenameLocalSensorAsync(_sensorIndex, Name ?? string.Empty)) + if (!await Service.RenameLocalSensorAsync(_sensorIndex, Name ?? string.Empty)) failures.Add($"rename to \"{Name}\""); } // Set pins (S4) if (_original == null || _original.Pin0 != Pin0) { - if (!await _service.SetLocalSensorPinAsync(_sensorIndex, 0, (byte)Pin0)) + if (!await Service.SetLocalSensorPinAsync(_sensorIndex, 0, (byte)Pin0)) failures.Add($"set pin 0 to {Pin0Display}"); } if (_original == null || _original.Pin1 != Pin1) { - if (!await _service.SetLocalSensorPinAsync(_sensorIndex, 1, (byte)Pin1)) + if (!await Service.SetLocalSensorPinAsync(_sensorIndex, 1, (byte)Pin1)) failures.Add($"set pin 1 to {Pin1Display}"); } // Set options (S6) if (_original == null || _original.Opt1_0 != Opt1_0) { - if (!await _service.SetLocalSensorOptionAsync(_sensorIndex, 0, 0, Opt1_0)) + if (!await Service.SetLocalSensorOptionAsync(_sensorIndex, 0, 0, Opt1_0)) failures.Add($"set option {Opt1_0Label} to {Opt1_0}"); } if (_original == null || _original.Opt1_1 != Opt1_1) { - if (!await _service.SetLocalSensorOptionAsync(_sensorIndex, 1, 0, Opt1_1)) + if (!await Service.SetLocalSensorOptionAsync(_sensorIndex, 1, 0, Opt1_1)) failures.Add($"set option {Opt1_1Label} to {Opt1_1}"); } if (_original == null || _original.Opt2_0 != Opt2_0) { - if (!await _service.SetLocalSensorOptionAsync(_sensorIndex, 0, 1, Opt2_0)) + if (!await Service.SetLocalSensorOptionAsync(_sensorIndex, 0, 1, Opt2_0)) failures.Add($"set option {Opt2_0Label} to {Opt2_0}"); } if (_original == null || _original.Opt2_1 != Opt2_1) { - if (!await _service.SetLocalSensorOptionAsync(_sensorIndex, 1, 1, Opt2_1)) + if (!await Service.SetLocalSensorOptionAsync(_sensorIndex, 1, 1, Opt2_1)) failures.Add($"set option {Opt2_1Label} to {Opt2_1}"); } // Set enabled (S5) if (_original == null || _original.Enabled != IsEnabled) { - if (!await _service.SetLocalSensorEnabledAsync(_sensorIndex, IsEnabled)) + if (!await Service.SetLocalSensorEnabledAsync(_sensorIndex, IsEnabled)) failures.Add(FailEnableDisableSensor); } // Save changes to disk if (failures.Count == 0) { - if (!await _service.SaveSettingsAsync()) + if (!await Service.SaveSettingsAsync()) failures.Add(FailSaveSettings); } else { // Still attempt to save even if some commands failed - await _service.SaveSettingsAsync(); + await Service.SaveSettingsAsync(); } StatusMessage = failures.Count == 0 @@ -839,7 +815,7 @@ private async Task SaveAsync() private async Task RemoveAsync() { - if (!_service.IsConfigured || _sensorIndex < 0) + if (!Service.IsConfigured || _sensorIndex < 0) return; bool confirmed = await Application.Current.Windows[0].Page.DisplayAlertAsync( @@ -856,10 +832,10 @@ private async Task RemoveAsync() try { - bool ok = await _service.RemoveLocalSensorAsync(_sensorIndex); + bool ok = await Service.RemoveLocalSensorAsync(_sensorIndex); if (ok) - ok &= await _service.SaveSettingsAsync(); + ok &= await Service.SaveSettingsAsync(); if (ok) await Shell.Current.GoToAsync(NavBack); @@ -875,9 +851,4 @@ private async Task RemoveAsync() IsBusy = false; } } - - public event PropertyChangedEventHandler PropertyChanged; - - private void OnPropertyChanged([CallerMemberName] string name = null) - => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } diff --git a/PowerControlHubApp/ViewModels/RelayConfigViewModel.cs b/PowerControlHubApp/ViewModels/RelayConfigViewModel.cs index 1fb4a98..e38325c 100644 --- a/PowerControlHubApp/ViewModels/RelayConfigViewModel.cs +++ b/PowerControlHubApp/ViewModels/RelayConfigViewModel.cs @@ -1,62 +1,33 @@ -using PowerControlHubApp.Models; using PowerControlHubApp.Models.Json; 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 RelayConfigViewModel : INotifyPropertyChanged +public class RelayConfigViewModel : BaseViewModel { - private readonly PowerHubService _service; - private bool _isBusy; - private string _statusMessage = string.Empty; - public ObservableCollection Relays { get; } = []; + // True after the initial explicit LoadAsync() has completed. Auto-refresh + // updates will only apply in-place once the initial collection is present. + private bool _initialLoadingComplete; + public ICommand LoadCommand { get; } public ICommand NavigateToRelayCommand { get; } - public bool IsBusy - { - get => _isBusy; - set - { - _isBusy = value; - OnPropertyChanged(); - OnPropertyChanged(nameof(IsNotBusy)); - } - } - - public bool IsNotBusy => !_isBusy; - - public string StatusMessage + public RelayConfigViewModel(PowerHubService service, LogService log) + : base(service, log) { - get => _statusMessage; - set - { - _statusMessage = value; - OnPropertyChanged(); - OnPropertyChanged(nameof(HasStatus)); - } - } - - public bool HasStatus => !string.IsNullOrEmpty(_statusMessage); - - public RelayConfigViewModel(PowerHubService service) - { - _service = service; LoadCommand = new Command(async () => await LoadAsync()); NavigateToRelayCommand = new Command(async relay => await NavigateToRelayAsync(relay)); } public async Task LoadAsync() { - if (!_service.IsConfigured) + if (!Service.IsConfigured) { StatusMessage = MessageNotConfigured; return; @@ -67,7 +38,7 @@ public async Task LoadAsync() try { - IndexModel index = await _service.GetDashboardDataAsync(); + IndexModel index = await Service.GetDashboardDataAsync(); List relays = RelayStore.FromModels(index.Relays ?? []); // Ensure exactly 8 slots are represented, padding with empty unconfigured entries @@ -87,14 +58,70 @@ public async Task LoadAsync() finally { IsBusy = false; + _initialLoadingComplete = true; } } private static async Task NavigateToRelayAsync(RelayViewModel relay) => await Shell.Current.GoToAsync($"RelayDetailPage?relayIndex={relay.Index}"); - public event PropertyChangedEventHandler PropertyChanged; + protected override void OnDataFetched(IndexModel index) + { + // Apply incoming dashboard data to the existing RelayViewModel instances + // in-place so the CollectionView doesn't recreate item views and the + // UI only updates when values actually change. - private void OnPropertyChanged([CallerMemberName] string name = null) - => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); + if (!_initialLoadingComplete) + return; + + var incoming = RelayStore.FromModels(index.Relays ?? []); + var incomingByIndex = incoming.ToDictionary(r => r.Index); + + // If our collection hasn't been initialised with the expected slot + // count, populate it once so we have stable instances to update. + if (Relays.Count != RelayCount) + { + Relays.Clear(); + + for (int i = 0; i < RelayCount; i++) + { + RelayViewModel relay = incomingByIndex.TryGetValue(i, out var m) + ? m + : new RelayViewModel { Index = i, Pin = UnconfiguredPin }; + + relay.Index = i; + Relays.Add(relay); + } + + return; + } + + // Update existing RelayViewModel instances in-place. + foreach (var existing in Relays) + { + if (incomingByIndex.TryGetValue(existing.Index, out var updated)) + { + existing.ShortName = updated.ShortName; + existing.LongName = updated.LongName; + existing.Pin = updated.Pin; + existing.ButtonImage = updated.ButtonImage; + existing.DefaultState = updated.DefaultState; + existing.ActionType = updated.ActionType; + existing.State = updated.State; + existing.LinkedIndex = updated.LinkedIndex; + } + else + { + // Relay missing in incoming data => mark as unconfigured + existing.ShortName = string.Empty; + existing.LongName = string.Empty; + existing.Pin = UnconfiguredPin; + existing.ButtonImage = UnconfiguredPin; + existing.DefaultState = 0; + existing.ActionType = 0; + existing.State = 0; + existing.LinkedIndex = UnconfiguredPin; + } + } + } } diff --git a/PowerControlHubApp/ViewModels/RelayDetailViewModel.cs b/PowerControlHubApp/ViewModels/RelayDetailViewModel.cs index 6c50c86..a8829e4 100644 --- a/PowerControlHubApp/ViewModels/RelayDetailViewModel.cs +++ b/PowerControlHubApp/ViewModels/RelayDetailViewModel.cs @@ -1,18 +1,14 @@ -using PowerControlHubApp.Models; using PowerControlHubApp.Models.Json; 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(RelayIndex), "relayIndex")] -public class RelayDetailViewModel : INotifyPropertyChanged +public sealed class RelayDetailViewModel : BaseViewModel { - private readonly PowerHubService _service; private readonly IDashboardProvider _provider; private readonly RelayStore _relayStore; @@ -26,8 +22,6 @@ public class RelayDetailViewModel : INotifyPropertyChanged private int _colorIndex = UnconfiguredPin; private int _actionType; private int _linkedIndex = UnconfiguredPin; - private bool _isBusy; - private string _statusMessage = string.Empty; public ObservableCollection ColorOptions { get; } = new(ColorOptionNames); @@ -59,9 +53,10 @@ public string ShortName { get => _shortName; - set - { _shortName = value; - OnPropertyChanged(); + set + { + _shortName = value; + OnPropertyChanged(); } } @@ -69,10 +64,10 @@ public string LongName { get => _longName; - set - { - _longName = value; - OnPropertyChanged(); + set + { + _longName = value; + OnPropertyChanged(); } } @@ -80,10 +75,10 @@ public int Pin { get => _pin; - set - { - _pin = value; - OnPropertyChanged(); + set + { + _pin = value; + OnPropertyChanged(); OnPropertyChanged(nameof(PinDisplay)); } } @@ -105,10 +100,10 @@ public string PinDisplay public int DefaultStateIndex { get => _defaultState; - set - { - _defaultState = value; - OnPropertyChanged(); + set + { + _defaultState = value; + OnPropertyChanged(); } } @@ -142,7 +137,7 @@ public int SelectedLinkedIndex { get { - if (_linkedIndex == UnconfiguredPin) + if (_linkedIndex == UnconfiguredPin) return 0; // Account for the self-relay being absent from the list @@ -165,86 +160,65 @@ public int SelectedLinkedIndex } } - 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); + // IsBusy, IsNotBusy, StatusMessage, HasStatus, and OnPropertyChanged are provided by BaseViewModel - public bool IsError => HasStatus && !_statusMessage.StartsWith(CheckMark); + // Expose an error indicator using the inherited StatusMessage. + public bool IsError => HasStatus && !StatusMessage.StartsWith(CheckMark); - public RelayDetailViewModel(PowerHubService service, IDashboardProvider provider, RelayStore relayStore) + public RelayDetailViewModel(PowerHubService service, LogService log, IDashboardProvider provider, RelayStore relayStore) + : base(service, log) { - _service = service; _provider = provider; _relayStore = relayStore; SaveCommand = new Command(async () => await SaveAsync(), () => IsNotBusy); - SetColorCommand = new Command(idx => - { + SetColorCommand = new Command(idx => + { if (int.TryParse(idx, out int i)) - SelectedColorIndex = i; + SelectedColorIndex = i; }); BuildLinkedRelayOptions(-1); } + protected override void OnDataFetched(IndexModel index) + { + // Relay detail page doesn't process dashboard data from auto-refresh + } + private async Task LoadRelayAsync(int index) { - if (!_service.IsConfigured || index < 0) + if (!Service.IsConfigured || index < 0) return; IsBusy = true; StatusMessage = string.Empty; - try - { - List relays; + try + { + List relays; - // Prefer the dashboard provider snapshot when available - if (_provider.CurrentIndex?.Relays != null) - { - relays = RelayStore.FromModels(_provider.CurrentIndex.Relays); - } - else if (_service.IsConfigured) + // Prefer the dashboard provider snapshot when available + if (_provider.CurrentIndex?.Relays != null) + { + relays = RelayStore.FromModels(_provider.CurrentIndex.Relays); + } + else if (Service.IsConfigured) + { + try { - try - { - var idx = await _service.GetDashboardDataAsync(); - relays = RelayStore.FromModels(idx.Relays ?? []); - } - catch - { - relays = []; - } + var idx = await Service.GetDashboardDataAsync(); + relays = RelayStore.FromModels(idx.Relays ?? []); } - else + catch { relays = []; } + } + else + { + relays = []; + } RelayViewModel relay = index < relays.Count ? relays[index] @@ -297,7 +271,7 @@ private void BuildLinkedRelayOptions(int selfIndex) private async Task SaveAsync() { - if (!_service.IsConfigured || _relayIndex < 0) + if (!Service.IsConfigured || _relayIndex < 0) return; IsBusy = true; @@ -310,25 +284,25 @@ private async Task SaveAsync() if (_original == null || _original.ShortName != ShortName || _original.LongName != LongName) - ok &= await _service.RenameRelayAsync(_relayIndex, ShortName, LongName); + ok &= await Service.RenameRelayAsync(_relayIndex, ShortName, LongName); if (_original == null || _original.Pin != Pin) - ok &= await _service.SetRelayPinAsync(_relayIndex, Pin); + ok &= await Service.SetRelayPinAsync(_relayIndex, Pin); if (_original == null || _original.DefaultState != DefaultStateIndex) - ok &= await _service.SetRelayDefaultStateAsync(_relayIndex, DefaultStateIndex); + ok &= await Service.SetRelayDefaultStateAsync(_relayIndex, DefaultStateIndex); if (_original == null || NormalizedButtonImage(_original.ButtonImage) != _colorIndex) - ok &= await _service.SetRelayColorAsync(_relayIndex, _colorIndex); + ok &= await Service.SetRelayColorAsync(_relayIndex, _colorIndex); if (_original == null || _original.ActionType != _actionType) - ok &= await _service.SetRelayActionTypeAsync(_relayIndex, _actionType); + ok &= await Service.SetRelayActionTypeAsync(_relayIndex, _actionType); if (_original == null || _original.LinkedIndex != _linkedIndex) - ok &= await _service.LinkRelayAsync(_relayIndex, _linkedIndex); + ok &= await Service.LinkRelayAsync(_relayIndex, _linkedIndex); if (ok) - ok &= await _service.SaveSettingsAsync(); + ok &= await Service.SaveSettingsAsync(); StatusMessage = ok ? SavedOk : SavedFailed; @@ -360,9 +334,4 @@ 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) - => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } diff --git a/PowerControlHubApp/ViewModels/RelayViewModel.cs b/PowerControlHubApp/ViewModels/RelayViewModel.cs index 0a653ba..19a2c5a 100644 --- a/PowerControlHubApp/ViewModels/RelayViewModel.cs +++ b/PowerControlHubApp/ViewModels/RelayViewModel.cs @@ -9,14 +9,56 @@ public sealed class RelayViewModel : INotifyPropertyChanged { private int _state; private int _buttonImage; + private string _shortName; + private string _longName; + private int _pin; + private int _defaultState; + private int _actionType; + private int _linkedIndex; public int Index { get; set; } - public string ShortName { get; set; } + public string ShortName + { + get => _shortName; + set + { + if (_shortName == value) + return; + + _shortName = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(ShortName)); + } + } + + public string LongName + { + get => _longName; + set + { + if (_longName == value) + return; + + _longName = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(LongName)); + } + } - public string LongName { get; set; } + public int Pin + { + get => _pin; + set + { + if (_pin == value) + return; - public int Pin { get; set; } + _pin = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(Pin)); + } + } public int ButtonImage { @@ -29,13 +71,35 @@ public int ButtonImage _buttonImage = value; OnPropertyChanged(); - OnPropertyChanged(nameof(PanelColor)); + OnPropertyChanged(nameof(ButtonImage)); } } - public int DefaultState { get; set; } + public int DefaultState + { + get => _defaultState; + set + { + if (_defaultState == value) + return; + + _defaultState = value; + OnPropertyChanged(); + } + } - public int ActionType { get; set; } + public int ActionType + { + get => _actionType; + set + { + if (_actionType == value) + return; + + _actionType = value; + OnPropertyChanged(); + } + } public int State { @@ -49,10 +113,22 @@ public int State _state = value; OnPropertyChanged(); OnPropertyChanged(nameof(IsOn)); + OnPropertyChanged(nameof(State)); } } - public int LinkedIndex { get; internal set; } + public int LinkedIndex + { + get => _linkedIndex; + internal set + { + if (_linkedIndex == value) + return; + + _linkedIndex = value; + OnPropertyChanged(); + } + } public bool IsOn => State == 1; diff --git a/PowerControlHubApp/ViewModels/SettingsViewModel.cs b/PowerControlHubApp/ViewModels/SettingsViewModel.cs index f274ff2..93c45f2 100644 --- a/PowerControlHubApp/ViewModels/SettingsViewModel.cs +++ b/PowerControlHubApp/ViewModels/SettingsViewModel.cs @@ -1,25 +1,20 @@ using PowerControlHubApp.Models.Json; using PowerControlHubApp.Services; -using System.ComponentModel; -using System.Runtime.CompilerServices; using System.Windows.Input; using static PowerControlHubApp.Internal.Constants; namespace PowerControlHubApp.ViewModels; -public class SettingsViewModel : INotifyPropertyChanged +public class SettingsViewModel : BaseViewModel { - private readonly PowerHubService _service; private readonly ThemeService _themeService; private string _ipAddress = string.Empty; private string _port = DefaultDeviceIpPort; - private string _statusMessage = string.Empty; private string _selectedTheme; private string _pinsInUseText = string.Empty; private bool _isPinsRefreshing; private int _pinsCount; - private OtaStatusModel _otaStatus; - private bool _isCheckingOta; + public string IpAddress { @@ -43,19 +38,9 @@ public string Port } } - public string StatusMessage - { - get => _statusMessage; - - set - { - _statusMessage = value; - OnPropertyChanged(); - OnPropertyChanged(nameof(HasStatusMessage)); - } - } + // StatusMessage is provided by BaseViewModel - public bool HasStatusMessage => !string.IsNullOrEmpty(_statusMessage); + public bool HasStatusMessage => !string.IsNullOrEmpty(StatusMessage); /// Options shown in the theme Picker: "System", "Light", "Dark". [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Exposed to XAML bindings as instance property")] @@ -113,113 +98,30 @@ public bool IsPinsRefreshing public ICommand SaveCommand { get; } public ICommand RefreshPinsCommand { get; } - public ICommand CheckForUpdateCommand { get; } - public ICommand InstallFirmwareCommand { get; } - public SettingsViewModel(PowerHubService service, ThemeService themeService) + public SettingsViewModel(PowerHubService service, ThemeService themeService, LogService log) + : base(service, log) { - _service = service; _themeService = themeService; SaveCommand = new Command(Save); RefreshPinsCommand = new Command(async () => await RefreshPinsAsync()); - CheckForUpdateCommand = new Command(async () => await CheckForUpdateAsync()); - InstallFirmwareCommand = new Command(async () => await InstallFirmwareAsync(), () => CanInstallFirmware); + IpAddress = Preferences.Get(KeyDeviceIpAddress, string.Empty); Port = Preferences.Get(KeyDeviceIpPort, DefaultDeviceIpPort); _selectedTheme = ThemeService.Current; } - public string CurrentFirmwareVersion => _otaStatus?.CurrentVersion ?? DoubleDash; - - public string AvailableFirmwareVersion => string.IsNullOrEmpty(_otaStatus?.AvailableVersion) ? DoubleDash : _otaStatus.AvailableVersion; - - public bool IsUpdateAvailable => _otaStatus?.UpdateAvailable == true; - - public bool IsOtaBusy => (_otaStatus?.IsBusy == true) || _isCheckingOta; - - public bool CanInstallFirmware => _otaStatus?.UpdateAvailable == true && !_isCheckingOta; - - public async Task CheckForUpdateAsync() - { - if (!_service.IsConfigured || _isCheckingOta) - return; - - _isCheckingOta = true; - try - { - var ota = await _service.GetOtaStatusAsync(); - _otaStatus = ota; - NotifyOtaProperties(); - } - catch - { - StatusMessage = MessageDeviceUnreachable; - } - finally - { - _isCheckingOta = false; - OnPropertyChanged(nameof(IsOtaBusy)); - ((Command)InstallFirmwareCommand).ChangeCanExecute(); - } - } - - public async Task InstallFirmwareAsync() - { - if (!CanInstallFirmware) - return; - - string message = string.Format(OtaDialogMessage, AvailableFirmwareVersion); - bool confirmed = await Application.Current!.MainPage!.DisplayAlertAsync( - OtaDialogTitle, - message, - OtaDialogAccept, - MsgCancel); - - if (!confirmed) - return; - - try - { - var ok = await _service.TriggerOtaInstallAsync(); - - if (ok) - { - // give the device a moment then refresh status - await Task.Delay(TimeSpan.FromSeconds(SecondsTwo)); - await CheckForUpdateAsync(); - } - else - { - StatusMessage = OtaTriggerFailed; - } - } - catch - { - StatusMessage = OtaTriggerFailed; - } - } - - private void NotifyOtaProperties() - { - OnPropertyChanged(nameof(CurrentFirmwareVersion)); - OnPropertyChanged(nameof(AvailableFirmwareVersion)); - OnPropertyChanged(nameof(IsUpdateAvailable)); - OnPropertyChanged(nameof(IsOtaBusy)); - OnPropertyChanged(nameof(CanInstallFirmware)); - ((Command)InstallFirmwareCommand).ChangeCanExecute(); - } - public async Task RefreshPinsAsync() { - if (!_service.IsConfigured || _isPinsRefreshing) + if (!Service.IsConfigured || _isPinsRefreshing) return; IsPinsRefreshing = true; try { - var result = await _service.GetSystemPinsAsync(); + var result = await Service.GetSystemPinsAsync(); if (result?.Success == true && result.Pins?.Count > 0) { @@ -262,12 +164,12 @@ private void Save() Preferences.Set(KeyDeviceIpAddress, ip); Preferences.Set(KeyDeviceIpPort, port.ToString()); - _service.Configure(ip, port); + Service.Configure(ip, port); StatusMessage = $"Saved. Connecting to {ip}:{port}"; } - public event PropertyChangedEventHandler PropertyChanged; - - protected void OnPropertyChanged([CallerMemberName] string name = null) - => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); + protected override void OnDataFetched(IndexModel index) + { + // Settings page doesn't process dashboard data + } } diff --git a/PowerControlHubApp/ViewModels/SystemViewModel.cs b/PowerControlHubApp/ViewModels/SystemViewModel.cs new file mode 100644 index 0000000..1d81982 --- /dev/null +++ b/PowerControlHubApp/ViewModels/SystemViewModel.cs @@ -0,0 +1,244 @@ +using PowerControlHubApp.Models.Json; +using PowerControlHubApp.Services; +using System.Collections.ObjectModel; +using System.Windows.Input; +using static PowerControlHubApp.Internal.Constants; + +namespace PowerControlHubApp.ViewModels; + +public class SystemViewModel : BaseViewModel +{ + private bool _isRefreshing; + private string _pinsInUseText = string.Empty; + private bool _isPinsRefreshing; + private int _pinsCount; + + // OTA + private OtaStatusModel _otaStatus; + private bool _isCheckingOta; + + public ObservableCollection Warnings { get; } = []; + + public string PinsInUseText + { + get => _pinsInUseText; + set + { + _pinsInUseText = value; + OnPropertyChanged(); + } + } + + public int PinsCount + { + get => _pinsCount; + set + { + _pinsCount = value; + OnPropertyChanged(); + } + } + + public bool IsPinsRefreshing + { + get => _isPinsRefreshing; + set + { + _isPinsRefreshing = value; + OnPropertyChanged(); + OnPropertyChanged(nameof(IsNotPinsRefreshing)); + } + } + + public bool IsNotPinsRefreshing => !_isPinsRefreshing; + + public bool HasPins => PinsCount > 0; + + // StatusMessage, HasStatus, and OnPropertyChanged are provided by BaseViewModel + + public bool HasStatusMessage => !string.IsNullOrEmpty(StatusMessage); + + public ICommand CheckForUpdateCommand { get; } + + public ICommand RefreshPinsCommand { get; } + + public ICommand InstallFirmwareCommand { get; } + + public SystemViewModel(PowerHubService service, LogService log) + : base(service, log) + { + CheckForUpdateCommand = new Command(async () => await CheckForUpdateAsync()); + RefreshPinsCommand = new Command(async () => await RefreshPinsAsync()); + InstallFirmwareCommand = new Command(async () => await InstallFirmwareAsync(), () => CanInstallFirmware); + } + + protected override void OnDataFetched(IndexModel index) + { + // System page uses its own RefreshAsync flow, not the dashboard auto-refresh + } + + public async Task RefreshPinsAsync() + { + if (!Service.IsConfigured || _isPinsRefreshing) + return; + + IsPinsRefreshing = true; + + try + { + var result = await Service.GetSystemPinsAsync(); + + if (result?.Success == true && result.Pins?.Count > 0) + { + MainThread.BeginInvokeOnMainThread(() => + { + PinsCount = result.Pins.Count; + PinsInUseText = string.Join(CommaSpace, result.Pins); + }); + } + else + { + MainThread.BeginInvokeOnMainThread(() => + { + PinsCount = 0; + PinsInUseText = DoubleDash; + }); + } + } + catch + { + MainThread.BeginInvokeOnMainThread(() => + { + PinsCount = 0; + PinsInUseText = MessageDeviceUnreachable; + }); + } + finally + { + IsPinsRefreshing = false; + } + } + + public async Task RefreshAsync() + { + if (!Service.IsConfigured || _isRefreshing) + return; + + _isRefreshing = true; + + try + { + var list = await Service.GetWarningsAsync(); + MainThread.BeginInvokeOnMainThread(() => + { + Warnings.Clear(); + + if (list != null && list.Count > 0) + { + foreach (var w in list) Warnings.Add(w); + StatusMessage = $"Updated {DateTime.Now:HH:mm:ss}"; + } + else + { + StatusMessage = MessageNoActiveWarnings; + } + + OnPropertyChanged(nameof(HasStatusMessage)); + }); + } + catch (Exception ex) + { + Log.Error($"Fetching warnings failed: {ex.Message}"); + MainThread.BeginInvokeOnMainThread(() => + { + Warnings.Clear(); + StatusMessage = MessageDeviceUnreachable; + OnPropertyChanged(nameof(HasStatusMessage)); + }); + } + finally + { + _isRefreshing = false; + } + } + + public string CurrentFirmwareVersion => _otaStatus?.CurrentVersion ?? DoubleDash; + + public string AvailableFirmwareVersion => string.IsNullOrEmpty(_otaStatus?.AvailableVersion) ? DoubleDash : _otaStatus.AvailableVersion; + + public bool IsUpdateAvailable => _otaStatus?.UpdateAvailable == true; + + public bool IsOtaBusy => (_otaStatus?.IsBusy == true) || _isCheckingOta; + + public bool CanInstallFirmware => _otaStatus?.UpdateAvailable == true && !_isCheckingOta; + + public async Task CheckForUpdateAsync() + { + if (!Service.IsConfigured || _isCheckingOta) + return; + + _isCheckingOta = true; + try + { + var ota = await Service.GetOtaStatusAsync(); + _otaStatus = ota; + NotifyOtaProperties(); + } + catch + { + StatusMessage = MessageDeviceUnreachable; + } + finally + { + _isCheckingOta = false; + OnPropertyChanged(nameof(IsOtaBusy)); + ((Command)InstallFirmwareCommand).ChangeCanExecute(); + } + } + + public async Task InstallFirmwareAsync() + { + if (!CanInstallFirmware) + return; + + string message = string.Format(OtaDialogMessage, AvailableFirmwareVersion); + bool confirmed = await Application.Current.Windows[0].Page.DisplayAlertAsync( + OtaDialogTitle, + message, + OtaDialogAccept, + MsgCancel); + + if (!confirmed) + return; + + try + { + var ok = await Service.TriggerOtaInstallAsync(); + + if (ok) + { + // give the device a moment then refresh status + await Task.Delay(TimeSpan.FromSeconds(SecondsTwo)); + await CheckForUpdateAsync(); + } + else + { + StatusMessage = OtaTriggerFailed; + } + } + catch + { + StatusMessage = OtaTriggerFailed; + } + } + + private void NotifyOtaProperties() + { + OnPropertyChanged(nameof(CurrentFirmwareVersion)); + OnPropertyChanged(nameof(AvailableFirmwareVersion)); + OnPropertyChanged(nameof(IsUpdateAvailable)); + OnPropertyChanged(nameof(IsOtaBusy)); + OnPropertyChanged(nameof(CanInstallFirmware)); + ((Command)InstallFirmwareCommand).ChangeCanExecute(); + } +} diff --git a/PowerControlHubApp/Views/BasePowerControlHubContentPage.cs b/PowerControlHubApp/Views/BasePowerControlHubContentPage.cs new file mode 100644 index 0000000..ab14118 --- /dev/null +++ b/PowerControlHubApp/Views/BasePowerControlHubContentPage.cs @@ -0,0 +1,26 @@ +using PowerControlHubApp.ViewModels; + +namespace PowerControlHubApp.Views +{ + public partial class BasePowerControlHubContentPage : ContentPage + { + private readonly BaseViewModel _viewModel; + + public BasePowerControlHubContentPage(BaseViewModel baseViewModel) + { + _viewModel = baseViewModel ?? throw new ArgumentNullException(nameof(baseViewModel)); + } + + protected override void OnAppearing() + { + base.OnAppearing(); + _viewModel.StartAutoRefresh(); + } + + protected override void OnDisappearing() + { + base.OnDisappearing(); + _viewModel.StopAutoRefresh(); + } + } +} diff --git a/PowerControlHubApp/Views/DashboardPage.xaml b/PowerControlHubApp/Views/DashboardPage.xaml index 22cd8a8..0be5085 100644 --- a/PowerControlHubApp/Views/DashboardPage.xaml +++ b/PowerControlHubApp/Views/DashboardPage.xaml @@ -1,13 +1,14 @@ - - + - + - + - -