@alteriom/painlessmesh 1.7.4 → 1.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +519 -473
- package/LICENSE +674 -674
- package/README.md +491 -491
- package/RELEASE_GUIDE.md +504 -504
- package/docs/DOCUMENTATION_MIGRATION_PLAN.md +175 -175
- package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +1062 -1062
- package/docs/MESH_TOPOLOGY_GUIDE.md +992 -992
- package/docs/MESH_TOPOLOGY_PROGRESS.md +422 -422
- package/docs/MQTT_BRIDGE_COMMANDS.md +894 -894
- package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +324 -324
- package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +576 -576
- package/docs/MQTT_SCHEMA_COMPLIANCE.md +285 -285
- package/docs/MQTT_SCHEMA_PROPOSALS.md +446 -446
- package/docs/MQTT_SCHEMA_REVIEW.md +690 -690
- package/docs/OTA_COMMANDS_REFERENCE.md +554 -554
- package/docs/PHASE1_GUIDE.md +349 -349
- package/docs/PHASE2_GUIDE.md +543 -543
- package/docs/README.md +130 -130
- package/docs/SCHEMA_VALIDATION_CHECKLIST.md +222 -222
- package/docs/alteriom/overview.md +507 -507
- package/docs/api/core-api.md +606 -606
- package/docs/architecture/mesh-architecture.md +378 -378
- package/docs/architecture/plugin-system.md +516 -516
- package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +165 -165
- package/docs/archive/FEATURE_PROPOSALS.md +337 -337
- package/docs/archive/LIBRARY_JSON_FIX.md +98 -98
- package/docs/archive/LIBRARY_STRUCTURE_FIX.md +215 -215
- package/docs/archive/PHASE1_IMPLEMENTATION.md +325 -325
- package/docs/archive/PHASE2_IMPLEMENTATION.md +567 -567
- package/docs/archive/RELEASE_SUMMARY.md +172 -172
- package/docs/archive/SCONS_BUILD_FIX.md +313 -313
- package/docs/archive/TRIGGER_RELEASE.md +279 -279
- package/docs/archive/VECTOR_INCLUDE_FIX.md +129 -129
- package/docs/archive/ota-and-status-enhancements.md +911 -911
- package/docs/archive/ota-status-architecture-diagrams.md +658 -658
- package/docs/archive/ota-status-quick-reference.md +284 -284
- package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +70 -70
- package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +1011 -1011
- package/docs/development/DOCKER_TESTING.md +196 -196
- package/docs/development/PLATFORMIO_USAGE.md +180 -180
- package/docs/development/TESTING_SUMMARY.md +126 -126
- package/docs/development/contributing.md +301 -301
- package/docs/development/documentation.md +583 -583
- package/docs/getting-started/first-mesh.md +409 -409
- package/docs/getting-started/installation.md +274 -274
- package/docs/getting-started/quickstart.md +157 -157
- package/docs/improvements/FUTURE_PROPOSALS.md +1016 -1016
- package/docs/improvements/IMPLEMENTATION_HISTORY.md +1091 -1091
- package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +709 -709
- package/docs/improvements/README.md +211 -211
- package/docs/platformio-publishing.md +254 -254
- package/docs/platformio-setup-summary.md +120 -120
- package/docs/releases/FEATURE_HISTORY.md +543 -543
- package/docs/releases/PATCH_v1.7.2.md +262 -262
- package/docs/releases/PATCH_v1.7.3.md +262 -262
- package/docs/releases/PATCH_v1.7.4.md +219 -219
- package/docs/releases/PHASE1_SUMMARY.md +246 -246
- package/docs/releases/PHASE2_SUMMARY.md +499 -499
- package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +253 -253
- package/docs/releases/RELEASE_NOTES_1.7.0.md +539 -539
- package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +276 -276
- package/docs/releases/RELEASE_SUMMARY_v1.7.5.md +322 -0
- package/docs/troubleshooting/CRASH_QUICK_REF.md +93 -93
- package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +288 -288
- package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +267 -267
- package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +164 -164
- package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +264 -257
- package/docs/troubleshooting/common-issues.md +520 -520
- package/docs/troubleshooting/debugging.md +455 -455
- package/docs/troubleshooting/faq.md +472 -472
- package/docs/tutorials/basic-examples.md +717 -717
- package/docs/wiki/API-Reference.md +245 -245
- package/docs/wiki/Complete-Documentation.md +122 -122
- package/examples/alteriom/README.md +139 -139
- package/examples/alteriom/alteriom.ino +186 -186
- package/examples/alteriom/alteriom_sensor_package.hpp +240 -240
- package/examples/alteriom/platformio.ini +25 -24
- package/examples/alteriomImproved/alteriom_sensor_package.hpp +223 -223
- package/examples/alteriomImproved/improved_sensor_node.ino +247 -245
- package/examples/alteriomImproved/platformio.ini +31 -24
- package/examples/alteriomPhase1/alteriom_sensor_package.hpp +223 -223
- package/examples/alteriomPhase1/phase1_features.ino +242 -242
- package/examples/alteriomPhase1/platformio.ini +25 -24
- package/examples/alteriomPhase2/alteriom_sensor_package.hpp +223 -223
- package/examples/alteriomPhase2/phase2_features.ino +186 -186
- package/examples/alteriomPhase2/platformio.ini +25 -24
- package/examples/alteriomSensorNode/alteriom_sensor_node.ino +185 -183
- package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +223 -223
- package/examples/alteriomSensorNode/platformio.ini +25 -24
- package/examples/basic/basic.ino +66 -66
- package/examples/basic/platformio.ini +26 -25
- package/examples/bridge/bridge.ino +51 -51
- package/examples/bridge/mesh_event_publisher.hpp +253 -253
- package/examples/bridge/mesh_topology_reporter.hpp +303 -303
- package/examples/bridge/mqtt_command_bridge.hpp +459 -459
- package/examples/bridge/mqtt_status_bridge.hpp +519 -519
- package/examples/bridge/platformio.ini +26 -25
- package/examples/echoNode/echoNode.ino +33 -33
- package/examples/echoNode/platformio.ini +26 -25
- package/examples/logClient/logClient.ino +109 -109
- package/examples/logClient/platformio.ini +26 -25
- package/examples/logServer/logServer.ino +81 -81
- package/examples/logServer/platformio.ini +26 -25
- package/examples/meshCommandNode/alteriom_sensor_package.hpp +234 -234
- package/examples/meshCommandNode/meshCommandNode.ino +265 -263
- package/examples/meshCommandNode/platformio.ini +26 -25
- package/examples/mqttBridge/mqttBridge.ino +118 -118
- package/examples/mqttBridge/platformio.ini +27 -26
- package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +234 -234
- package/examples/mqttCommandBridge/mesh_event_publisher.hpp +253 -253
- package/examples/mqttCommandBridge/mesh_topology_reporter.hpp +303 -303
- package/examples/mqttCommandBridge/mqttCommandBridge.ino +254 -252
- package/examples/mqttCommandBridge/mqtt_command_bridge.hpp +462 -462
- package/examples/mqttCommandBridge/platformio.ini +27 -26
- package/examples/mqttStatusBridge/mqttStatusBridge.ino +218 -216
- package/examples/mqttStatusBridge/mqtt_status_bridge.hpp +522 -522
- package/examples/mqttStatusBridge/platformio.ini +27 -26
- package/examples/mqttTopologyTest/README.md +467 -467
- package/examples/mqttTopologyTest/mqttTopologyTest.ino +750 -748
- package/examples/mqttTopologyTest/platformio.ini +27 -26
- package/examples/namedMesh/namedMesh.ino +97 -97
- package/examples/namedMesh/platformio.ini +26 -25
- package/examples/otaReceiver/otaReceiver.ino +79 -79
- package/examples/otaReceiver/platformio.ini +26 -25
- package/examples/otaSender/otaSender.ino +160 -160
- package/examples/otaSender/platformio.ini +26 -25
- package/examples/startHere/platformio.ini +26 -25
- package/examples/startHere/startHere.ino +159 -159
- package/examples/webServer/platformio.ini +28 -27
- package/examples/webServer/webServer.ino +89 -89
- package/keywords.txt +48 -48
- package/library.json +55 -55
- package/library.properties +10 -10
- package/package.json +86 -86
- package/src/AlteriomPainlessMesh.h +97 -97
- package/src/arduino/wifi.hpp +365 -365
- package/src/boost/asynctcp.hpp +279 -279
- package/src/painlessMesh.h +70 -70
- package/src/painlessMeshSTA.cpp +236 -236
- package/src/painlessMeshSTA.h +58 -58
- package/src/painlessTaskOptions.h +19 -11
- package/src/painlessmesh/base64.hpp +111 -111
- package/src/painlessmesh/buffer.hpp +229 -229
- package/src/painlessmesh/callback.hpp +91 -91
- package/src/painlessmesh/configuration.hpp +77 -77
- package/src/painlessmesh/connection.hpp +192 -192
- package/src/painlessmesh/layout.hpp +188 -188
- package/src/painlessmesh/logger.hpp +158 -158
- package/src/painlessmesh/memory.hpp +119 -119
- package/src/painlessmesh/mesh.hpp +772 -772
- package/src/painlessmesh/metrics.hpp +322 -322
- package/src/painlessmesh/ntp.hpp +263 -263
- package/src/painlessmesh/ota.hpp +582 -582
- package/src/painlessmesh/plugin.hpp +188 -188
- package/src/painlessmesh/protocol.hpp +813 -813
- package/src/painlessmesh/router.hpp +338 -338
- package/src/painlessmesh/scheduler_queue.cpp +77 -77
- package/src/painlessmesh/scheduler_queue.hpp +34 -34
- package/src/painlessmesh/tcp.hpp +71 -71
- package/src/painlessmesh/validation.hpp +238 -238
- package/src/plugin/performance.hpp +214 -214
- package/src/plugin/remote.hpp +64 -64
- package/src/scheduler.cpp +10 -10
- package/src/wifi.cpp +2 -2
- package/examples/alteriom/.pio/build/esp32/.sconsign311.dblite +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Esp.cpp.d +0 -146
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Esp.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/FirmwareMSC.cpp.d +0 -5
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/FirmwareMSC.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/FunctionalInterrupt.cpp.d +0 -137
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/FunctionalInterrupt.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/HWCDC.cpp.d +0 -4
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/HWCDC.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/HardwareSerial.cpp.d +0 -138
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/HardwareSerial.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/IPAddress.cpp.d +0 -137
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/IPAddress.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/IPv6Address.cpp.d +0 -138
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/IPv6Address.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/MD5Builder.cpp.d +0 -138
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/MD5Builder.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Print.cpp.d +0 -136
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Print.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Stream.cpp.d +0 -136
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Stream.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/StreamString.cpp.d +0 -137
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/StreamString.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Tone.cpp.d +0 -136
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Tone.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USB.cpp.d +0 -4
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USB.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USBCDC.cpp.d +0 -4
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USBCDC.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USBMSC.cpp.d +0 -4
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USBMSC.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/WMath.cpp.d +0 -18
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/WMath.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/WString.cpp.d +0 -136
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/WString.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/base64.cpp.d +0 -139
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/base64.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/cbuf.cpp.d +0 -3
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/cbuf.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-adc.c.d +0 -110
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-adc.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-bt.c.d +0 -107
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-bt.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-cpu.c.d +0 -123
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-cpu.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-dac.c.d +0 -108
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-dac.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-gpio.c.d +0 -122
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-gpio.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-i2c-slave.c.d +0 -92
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-i2c-slave.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-i2c.c.d +0 -114
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-i2c.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-ledc.c.d +0 -108
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-ledc.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-matrix.c.d +0 -105
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-matrix.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-misc.c.d +0 -136
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-misc.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-psram.c.d +0 -104
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-psram.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-rgb-led.c.d +0 -104
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-rgb-led.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-rmt.c.d +0 -108
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-rmt.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-sigmadelta.c.d +0 -109
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-sigmadelta.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-spi.c.d +0 -122
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-spi.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-time.c.d +0 -145
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-time.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-timer.c.d +0 -110
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-timer.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-tinyusb.c.d +0 -3
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-tinyusb.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-touch.c.d +0 -107
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-touch.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-uart.c.d +0 -121
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-uart.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/firmware_msc_fat.c.d +0 -3
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/firmware_msc_fat.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/libb64/cdecode.c.d +0 -3
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/libb64/cdecode.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/libb64/cencode.c.d +0 -3
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/libb64/cencode.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/main.cpp.d +0 -139
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/main.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/stdlib_noniso.c.d +0 -12
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/stdlib_noniso.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/wiring_pulse.c.d +0 -111
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/wiring_pulse.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/wiring_shift.c.d +0 -111
- package/examples/alteriom/.pio/build/esp32/FrameworkArduino/wiring_shift.c.o +0 -0
- package/examples/alteriom/.pio/build/esp32/bootloader.bin +0 -0
- package/examples/alteriom/.pio/build/esp32/firmware.bin +0 -0
- package/examples/alteriom/.pio/build/esp32/firmware.elf +0 -0
- package/examples/alteriom/.pio/build/esp32/firmware.map +0 -102570
- package/examples/alteriom/.pio/build/esp32/lib373/LittleFS/LittleFS.cpp.d +0 -142
- package/examples/alteriom/.pio/build/esp32/lib373/LittleFS/LittleFS.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib373/libLittleFS.a +0 -0
- package/examples/alteriom/.pio/build/esp32/lib399/TaskScheduler/TaskScheduler.cpp.d +0 -2
- package/examples/alteriom/.pio/build/esp32/lib399/TaskScheduler/TaskScheduler.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib399/libTaskScheduler.a +0 -0
- package/examples/alteriom/.pio/build/esp32/lib4f2/FS/FS.cpp.d +0 -138
- package/examples/alteriom/.pio/build/esp32/lib4f2/FS/FS.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.d +0 -139
- package/examples/alteriom/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib4f2/libFS.a +0 -0
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.d +0 -203
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.d +0 -204
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.d +0 -209
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.d +0 -206
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.d +0 -199
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.d +0 -206
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.d +0 -204
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.d +0 -172
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.d +0 -171
- package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib71a/libWiFi.a +0 -0
- package/examples/alteriom/.pio/build/esp32/lib7d0/AsyncTCP/AsyncTCP.cpp.d +0 -189
- package/examples/alteriom/.pio/build/esp32/lib7d0/AsyncTCP/AsyncTCP.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib7d0/libAsyncTCP.a +0 -0
- package/examples/alteriom/.pio/build/esp32/lib837/libsrc.a +0 -0
- package/examples/alteriom/.pio/build/esp32/lib837/src/painlessMeshSTA.cpp.d +0 -229
- package/examples/alteriom/.pio/build/esp32/lib837/src/painlessMeshSTA.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib837/src/scheduler.cpp.d +0 -139
- package/examples/alteriom/.pio/build/esp32/lib837/src/scheduler.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib837/src/wifi.cpp.d +0 -227
- package/examples/alteriom/.pio/build/esp32/lib837/src/wifi.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib97a/SPIFFS/SPIFFS.cpp.d +0 -142
- package/examples/alteriom/.pio/build/esp32/lib97a/SPIFFS/SPIFFS.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/lib97a/libSPIFFS.a +0 -0
- package/examples/alteriom/.pio/build/esp32/libFrameworkArduino.a +0 -0
- package/examples/alteriom/.pio/build/esp32/libf48/Update/HttpsOTAUpdate.cpp.d +0 -120
- package/examples/alteriom/.pio/build/esp32/libf48/Update/HttpsOTAUpdate.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/libf48/Update/Updater.cpp.d +0 -144
- package/examples/alteriom/.pio/build/esp32/libf48/Update/Updater.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/libf48/libUpdate.a +0 -0
- package/examples/alteriom/.pio/build/esp32/partitions.bin +0 -0
- package/examples/alteriom/.pio/build/esp32/src/alteriom.ino.cpp.d +0 -240
- package/examples/alteriom/.pio/build/esp32/src/alteriom.ino.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp32/tmprz74bdta.tmp +0 -1
- package/examples/alteriom/.pio/build/esp32/tmps5iu5vvf.tmp +0 -1
- package/examples/alteriom/.pio/build/esp32/tmptxf7cu25.tmp +0 -1
- package/examples/alteriom/.pio/build/esp32/tmpuwwn0jz2.tmp +0 -1
- package/examples/alteriom/.pio/build/esp32/tmpz4zb75rq.tmp +0 -1
- package/examples/alteriom/.pio/build/esp8266/.sconsign311.dblite +0 -0
- package/examples/alteriom/.pio/build/esp8266/FrameworkArduino/Crypto.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/FrameworkArduino/Esp-frag.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/FrameworkArduino/Esp-version.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/ld/local.eagle.app.v6.common.ld +0 -285
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/CertStoreBearSSL.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFi.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiAP.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiGratuitous.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiScan.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiClient.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiUdp.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/enable_wifi_at_boot_time.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib837/src/painlessMeshSTA.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib837/src/scheduler.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib837/src/wifi.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib875/TaskScheduler/TaskScheduler.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/lib875/libTaskScheduler.a +0 -0
- package/examples/alteriom/.pio/build/esp8266/libFrameworkArduinoVariant.a +0 -1
- package/examples/alteriom/.pio/build/esp8266/libdb3/LittleFS/LittleFS.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/libdb3/LittleFS/lfs_util.c.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/libf33/ESPAsyncTCP/AsyncPrinter.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/libf33/ESPAsyncTCP/ESPAsyncTCP.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/libf33/ESPAsyncTCP/ESPAsyncTCPbuffer.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/libf33/ESPAsyncTCP/SyncClient.cpp.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/libf33/ESPAsyncTCP/tcp_axtls.c.o +0 -0
- package/examples/alteriom/.pio/build/esp8266/src/alteriom.ino.cpp.o +0 -0
- package/examples/alteriom/.pio/build/project.checksum +0 -1
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/.piopm +0 -1
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/ArduinoJson.h +0 -5
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/LICENSE.txt +0 -10
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/README.md +0 -153
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino +0 -152
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino +0 -64
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino +0 -65
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino +0 -125
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino +0 -65
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonServer/JsonServer.ino +0 -118
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino +0 -106
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino +0 -61
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino +0 -63
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/StringExample/StringExample.ino +0 -76
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/library.json +0 -23
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/library.properties +0 -11
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp +0 -66
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +0 -79
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +0 -75
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +0 -219
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +0 -133
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +0 -96
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +0 -112
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +0 -122
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +0 -137
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Configuration.hpp +0 -285
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +0 -106
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp +0 -35
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +0 -77
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +0 -32
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +0 -74
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +0 -30
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +0 -18
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +0 -56
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +0 -42
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +0 -49
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +0 -29
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +0 -19
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +0 -79
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +0 -426
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +0 -40
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +0 -720
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +0 -165
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +0 -56
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +0 -110
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +0 -177
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +0 -67
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +0 -46
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +0 -60
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp +0 -49
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +0 -110
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp +0 -214
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp +0 -131
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp +0 -52
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp +0 -79
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +0 -88
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp +0 -75
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp +0 -102
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +0 -71
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackBinary.hpp +0 -97
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +0 -487
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackExtension.hpp +0 -120
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +0 -244
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp +0 -46
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +0 -18
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Namespace.hpp +0 -42
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +0 -95
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +0 -212
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp +0 -18
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp +0 -28
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +0 -116
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +0 -145
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +0 -238
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +0 -245
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +0 -166
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp +0 -83
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp +0 -70
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +0 -77
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp +0 -70
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +0 -92
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +0 -30
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +0 -14
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +0 -45
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +0 -21
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp +0 -34
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +0 -45
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +0 -27
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +0 -27
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +0 -144
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +0 -67
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +0 -33
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +0 -25
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp +0 -33
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +0 -14
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +0 -23
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp +0 -27
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +0 -22
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +0 -22
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +0 -27
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +0 -23
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +0 -18
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +0 -46
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +0 -22
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +0 -19
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +0 -32
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +0 -17
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +0 -18
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +0 -26
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +0 -24
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +0 -44
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +0 -24
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +0 -31
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +0 -24
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +0 -16
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp +0 -20
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +0 -27
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +0 -33
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +0 -33
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +0 -47
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +0 -55
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +0 -22
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +0 -29
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +0 -36
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +0 -32
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +0 -42
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +0 -20
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +0 -50
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp +0 -93
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp +0 -118
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp +0 -48
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +0 -19
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp +0 -100
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp +0 -47
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +0 -72
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp +0 -73
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp +0 -23
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +0 -406
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +0 -78
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +0 -197
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp +0 -34
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp +0 -61
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +0 -35
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +0 -211
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +0 -82
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +0 -609
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp +0 -24
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +0 -146
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +0 -188
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +0 -313
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp +0 -175
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp +0 -16
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +0 -34
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/compatibility.hpp +0 -144
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/version.hpp +0 -11
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.h +0 -17
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.hpp +0 -65
- package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/CMakeLists.txt +0 -91
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/.piopm +0 -1
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/LICENSE +0 -165
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/README.md +0 -55
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/examples/AsyncSend/AsyncSend.ino +0 -169
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/examples/Client/Client.ino +0 -87
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/examples/FetchWebsite/FetchWebsite.ino +0 -107
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/library.json +0 -31
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/library.properties +0 -11
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.cpp +0 -1612
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.h +0 -335
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPLogging.h +0 -66
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPSimpleIntrusiveList.h +0 -134
- package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPVersion.h +0 -40
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/.github/FUNDING.yml +0 -1
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/.github/workflows/doxygen.yml +0 -310
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/.github/workflows/main.yml +0 -309
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/.github/workflows/test.yml +0 -523
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/.piopm +0 -1
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/LICENSE.txt +0 -27
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/README.md +0 -157
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink/Scheduler_example00_Blink.ino +0 -303
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink_Namespace/Scheduler_example00_Blink_Namespace.ino +0 -302
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example01/Scheduler_example01.ino +0 -84
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example02/Scheduler_example02.ino +0 -78
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example03/Scheduler_example03.ino +0 -80
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example04_StatusRequest/Scheduler_example04_StatusRequest.ino +0 -90
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example05_StatusRequest/Scheduler_example05_StatusRequest.ino +0 -181
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example06_IDLE/Scheduler_example06_IDLE.ino +0 -117
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example07_WDT/Scheduler_example07_WDT.ino +0 -133
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example08_LTS/Scheduler_example08_LTS.ino +0 -147
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example09_TimeCritical/Scheduler_example09_TimeCritical.ino +0 -57
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example10_Benchmark/Scheduler_example10_Benchmark.ino +0 -106
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example11_Priority/Scheduler_example11_Priority.ino +0 -105
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example12_Priority/Scheduler_example12_Priority.ino +0 -136
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example13_Micros/Scheduler_example13_Micros.ino +0 -71
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example14_Yield/Scheduler_example14_Yield.ino +0 -339
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example15_STDFunction/Scheduler_example15_STDFunction.ino +0 -53
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/Scheduler_example16_Multitab.ino +0 -18
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file1.cpp +0 -31
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file2.cpp +0 -55
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/header.hpp +0 -15
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/ts.cpp +0 -20
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example17_Timeout/Scheduler_example17_Timeout.ino +0 -90
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example18_StatusRequest_LTS_WDT_Timeout/Scheduler_example18_StatusRequest_LTS_WDT_Timeout.ino +0 -172
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks/Scheduler_example19_Dynamic_Tasks.ino +0 -137
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_SelfDestruct/Scheduler_example19_Dynamic_Tasks_SelfDestruct.ino +0 -130
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_stdQueue/Scheduler_example19_Dynamic_Tasks_stdQueue.ino +0 -137
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object.ino +0 -185
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.cpp +0 -36
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.h +0 -25
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.cpp +0 -66
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.h +0 -34
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Scheduler_example21_OO_Callbacks.ino +0 -76
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.cpp +0 -83
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.h +0 -44
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.cpp +0 -21
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.h +0 -28
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example23_IDLE_Callback/Scheduler_example23_IDLE_Callback.ino +0 -157
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example24_CPU_LOAD/Scheduler_example24_CPU_LOAD.ino +0 -87
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example25_SCHEDULER_CHAIN/Scheduler_example25_SCHEDULER_CHAIN.ino +0 -127
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example26_SCHEDULING_OPTIONS/Scheduler_example26_SCHEDULING_OPTIONS.ino +0 -181
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/README +0 -39
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/led.h +0 -12
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/main.h +0 -25
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/lib/README +0 -46
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/platformio.ini +0 -37
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/led.cpp +0 -11
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/main.cpp +0 -254
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/test/README +0 -11
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example28_Tickless/Scheduler_example28_Tickless.ino +0 -105
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/README +0 -39
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/led.h +0 -12
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/main.h +0 -27
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/lib/README +0 -46
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/platformio.ini +0 -38
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/led.cpp +0 -13
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/main.cpp +0 -267
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/test/README +0 -11
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/README.md +0 -232
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/platformio.ini +0 -44
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/src/main.cpp +0 -310
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_template/Scheduler_template.ino +0 -166
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/keywords.txt +0 -161
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/library.json +0 -22
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/library.properties +0 -9
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TScheduler.hpp +0 -29
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TSchedulerDeclarations.hpp +0 -29
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.cpp +0 -3
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.h +0 -1811
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerDeclarations.h +0 -3096
- package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerSleepMethods.h +0 -399
- package/examples/alteriom/.pio/libdeps/esp32/integrity.dat +0 -3
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/.piopm +0 -1
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/ArduinoJson.h +0 -5
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/LICENSE.txt +0 -10
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/README.md +0 -153
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino +0 -152
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino +0 -64
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino +0 -65
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino +0 -125
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino +0 -65
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonServer/JsonServer.ino +0 -118
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino +0 -106
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino +0 -61
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino +0 -63
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/StringExample/StringExample.ino +0 -76
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/library.json +0 -23
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/library.properties +0 -11
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp +0 -66
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +0 -79
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +0 -75
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +0 -219
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +0 -133
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +0 -96
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +0 -112
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +0 -122
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +0 -137
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Configuration.hpp +0 -285
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +0 -106
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp +0 -35
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +0 -77
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +0 -32
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +0 -74
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +0 -30
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +0 -18
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +0 -56
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +0 -42
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +0 -49
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +0 -29
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +0 -19
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +0 -79
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +0 -426
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +0 -40
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +0 -720
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +0 -165
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +0 -56
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +0 -110
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +0 -177
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +0 -67
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +0 -46
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +0 -60
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp +0 -49
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +0 -110
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp +0 -214
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp +0 -131
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp +0 -52
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp +0 -79
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +0 -88
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp +0 -75
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp +0 -102
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +0 -71
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackBinary.hpp +0 -97
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +0 -487
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackExtension.hpp +0 -120
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +0 -244
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp +0 -46
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +0 -18
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Namespace.hpp +0 -42
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +0 -95
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +0 -212
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp +0 -18
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp +0 -28
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +0 -116
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +0 -145
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +0 -238
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +0 -245
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +0 -166
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp +0 -83
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp +0 -70
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +0 -77
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp +0 -70
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +0 -92
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +0 -30
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +0 -14
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +0 -45
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +0 -21
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp +0 -34
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +0 -45
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +0 -27
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +0 -27
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +0 -144
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +0 -67
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +0 -33
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +0 -25
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp +0 -33
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +0 -14
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +0 -23
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp +0 -27
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +0 -22
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +0 -22
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +0 -27
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +0 -23
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +0 -18
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +0 -46
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +0 -22
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +0 -19
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +0 -32
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +0 -17
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +0 -18
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +0 -26
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +0 -24
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +0 -44
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +0 -24
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +0 -31
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +0 -24
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +0 -16
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp +0 -20
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +0 -27
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +0 -33
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +0 -33
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +0 -47
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +0 -55
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +0 -22
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +0 -29
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +0 -36
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +0 -32
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +0 -42
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +0 -20
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +0 -50
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp +0 -93
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp +0 -118
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp +0 -48
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +0 -19
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp +0 -100
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp +0 -47
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +0 -72
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp +0 -73
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp +0 -23
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +0 -406
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +0 -78
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +0 -197
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp +0 -34
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp +0 -61
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +0 -35
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +0 -211
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +0 -82
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +0 -609
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp +0 -24
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +0 -146
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +0 -188
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +0 -313
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp +0 -175
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp +0 -16
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +0 -34
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/compatibility.hpp +0 -144
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/version.hpp +0 -11
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.h +0 -17
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.hpp +0 -65
- package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/CMakeLists.txt +0 -91
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-arduino-core-esp8266.sh +0 -29
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-arduino-ide.sh +0 -220
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-platformio.sh +0 -133
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/on-push.sh +0 -64
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/stale.yml +0 -31
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/workflows/push.yml +0 -30
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.piopm +0 -1
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/LICENSE.txt +0 -165
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/README.md +0 -43
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/Client.ino +0 -62
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/config.h +0 -23
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/Server.ino +0 -73
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/config.h +0 -23
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/SyncClient/.esp31b.skip +0 -0
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/SyncClient/SyncClient.ino +0 -54
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/library.json +0 -19
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/library.properties +0 -10
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.cpp +0 -214
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.h +0 -73
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/DebugPrintMacros.h +0 -112
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.cpp +0 -1406
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.h +0 -324
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.cpp +0 -555
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.h +0 -118
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.cpp +0 -414
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.h +0 -109
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/async_config.h +0 -42
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.c +0 -613
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.h +0 -98
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/gen_server_cert.sh +0 -36
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/server.cer +0 -0
- package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/server.key +0 -0
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/.github/FUNDING.yml +0 -1
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/doxygen.yml +0 -310
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/main.yml +0 -309
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/test.yml +0 -523
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/.piopm +0 -1
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/LICENSE.txt +0 -27
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/README.md +0 -157
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example00_Blink/Scheduler_example00_Blink.ino +0 -303
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example00_Blink_Namespace/Scheduler_example00_Blink_Namespace.ino +0 -302
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example01/Scheduler_example01.ino +0 -84
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example02/Scheduler_example02.ino +0 -78
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example03/Scheduler_example03.ino +0 -80
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example04_StatusRequest/Scheduler_example04_StatusRequest.ino +0 -90
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example05_StatusRequest/Scheduler_example05_StatusRequest.ino +0 -181
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example06_IDLE/Scheduler_example06_IDLE.ino +0 -117
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example07_WDT/Scheduler_example07_WDT.ino +0 -133
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example08_LTS/Scheduler_example08_LTS.ino +0 -147
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example09_TimeCritical/Scheduler_example09_TimeCritical.ino +0 -57
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example10_Benchmark/Scheduler_example10_Benchmark.ino +0 -106
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example11_Priority/Scheduler_example11_Priority.ino +0 -105
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example12_Priority/Scheduler_example12_Priority.ino +0 -136
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example13_Micros/Scheduler_example13_Micros.ino +0 -71
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example14_Yield/Scheduler_example14_Yield.ino +0 -339
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example15_STDFunction/Scheduler_example15_STDFunction.ino +0 -53
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/Scheduler_example16_Multitab.ino +0 -18
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/file1.cpp +0 -31
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/file2.cpp +0 -55
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/header.hpp +0 -15
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/ts.cpp +0 -20
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example17_Timeout/Scheduler_example17_Timeout.ino +0 -90
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example18_StatusRequest_LTS_WDT_Timeout/Scheduler_example18_StatusRequest_LTS_WDT_Timeout.ino +0 -172
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks/Scheduler_example19_Dynamic_Tasks.ino +0 -137
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_SelfDestruct/Scheduler_example19_Dynamic_Tasks_SelfDestruct.ino +0 -130
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_stdQueue/Scheduler_example19_Dynamic_Tasks_stdQueue.ino +0 -137
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object.ino +0 -185
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.cpp +0 -36
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.h +0 -25
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.cpp +0 -66
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.h +0 -34
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Scheduler_example21_OO_Callbacks.ino +0 -76
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.cpp +0 -83
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.h +0 -44
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.cpp +0 -21
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.h +0 -28
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example23_IDLE_Callback/Scheduler_example23_IDLE_Callback.ino +0 -157
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example24_CPU_LOAD/Scheduler_example24_CPU_LOAD.ino +0 -87
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example25_SCHEDULER_CHAIN/Scheduler_example25_SCHEDULER_CHAIN.ino +0 -127
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example26_SCHEDULING_OPTIONS/Scheduler_example26_SCHEDULING_OPTIONS.ino +0 -181
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/README +0 -39
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/led.h +0 -12
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/main.h +0 -25
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/lib/README +0 -46
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/platformio.ini +0 -37
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/led.cpp +0 -11
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/main.cpp +0 -254
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/test/README +0 -11
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example28_Tickless/Scheduler_example28_Tickless.ino +0 -105
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/README +0 -39
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/led.h +0 -12
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/main.h +0 -27
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/lib/README +0 -46
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/platformio.ini +0 -38
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/src/led.cpp +0 -13
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/src/main.cpp +0 -267
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/test/README +0 -11
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/README.md +0 -232
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/platformio.ini +0 -44
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/src/main.cpp +0 -310
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_template/Scheduler_template.ino +0 -166
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/keywords.txt +0 -161
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/library.json +0 -22
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/library.properties +0 -9
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TScheduler.hpp +0 -29
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TSchedulerDeclarations.hpp +0 -29
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TaskScheduler.cpp +0 -3
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TaskScheduler.h +0 -1811
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TaskSchedulerDeclarations.h +0 -3096
- package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TaskSchedulerSleepMethods.h +0 -399
- package/examples/alteriom/.pio/libdeps/esp8266/integrity.dat +0 -3
- package/examples/basic/.pio/build/esp32/.sconsign311.dblite +0 -0
- package/examples/basic/.pio/build/esp32/bootloader.bin +0 -0
- package/examples/basic/.pio/build/esp32/lib241/TaskScheduler/TaskScheduler.cpp.d +0 -2
- package/examples/basic/.pio/build/esp32/lib241/TaskScheduler/TaskScheduler.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib241/libTaskScheduler.a +0 -0
- package/examples/basic/.pio/build/esp32/lib4f2/FS/FS.cpp.d +0 -138
- package/examples/basic/.pio/build/esp32/lib4f2/FS/FS.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.d +0 -139
- package/examples/basic/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.d +0 -203
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.d +0 -204
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.d +0 -209
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.d +0 -206
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.d +0 -199
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.d +0 -206
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.d +0 -204
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.d +0 -172
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.d +0 -171
- package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/lib8c7/AsyncTCP/AsyncTCP.cpp.d +0 -189
- package/examples/basic/.pio/build/esp32/lib8c7/AsyncTCP/AsyncTCP.cpp.o +0 -0
- package/examples/basic/.pio/build/esp32/partitions.bin +0 -0
- package/examples/basic/.pio/build/esp32/src/basic.ino.cpp.d +0 -238
- package/examples/basic/.pio/build/esp32/src/basic.ino.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/.sconsign311.dblite +0 -0
- package/examples/basic/.pio/build/esp8266/FrameworkArduino/Esp-frag.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/FrameworkArduino/Esp-version.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/FrameworkArduino/Esp.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/FrameworkArduino/FS.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/FrameworkArduino/FSnoop.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/FrameworkArduino/FunctionalInterrupt.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/ld/local.eagle.app.v6.common.ld +0 -285
- package/examples/basic/.pio/build/esp8266/lib5e7/TaskScheduler/TaskScheduler.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib5e7/libTaskScheduler.a +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/BearSSLHelpers.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/CertStoreBearSSL.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFi.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiAP.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiGratuitous.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiMulti.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiSTA.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiScan.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiClient.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiUdp.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/lib837/src/scheduler.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/libFrameworkArduinoVariant.a +0 -1
- package/examples/basic/.pio/build/esp8266/libdb3/LittleFS/LittleFS.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/libdb3/LittleFS/lfs_util.c.o +0 -0
- package/examples/basic/.pio/build/esp8266/libf28/ESPAsyncTCP/AsyncPrinter.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/libf28/ESPAsyncTCP/ESPAsyncTCP.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/libf28/ESPAsyncTCP/ESPAsyncTCPbuffer.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/libf28/ESPAsyncTCP/SyncClient.cpp.o +0 -0
- package/examples/basic/.pio/build/esp8266/libf28/ESPAsyncTCP/tcp_axtls.c.o +0 -0
- package/examples/basic/.pio/build/esp8266/src/basic.ino.cpp.o +0 -0
- package/examples/basic/.pio/build/project.checksum +0 -1
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/.piopm +0 -1
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/ArduinoJson.h +0 -5
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/LICENSE.txt +0 -10
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/README.md +0 -153
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino +0 -152
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino +0 -64
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino +0 -65
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino +0 -125
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino +0 -65
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonServer/JsonServer.ino +0 -118
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino +0 -106
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino +0 -61
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino +0 -63
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/StringExample/StringExample.ino +0 -76
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/library.json +0 -23
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/library.properties +0 -11
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp +0 -66
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +0 -79
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +0 -75
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +0 -219
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +0 -133
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +0 -96
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +0 -112
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +0 -122
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +0 -137
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Configuration.hpp +0 -285
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +0 -106
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp +0 -35
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +0 -77
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +0 -32
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +0 -74
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +0 -30
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +0 -18
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +0 -56
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +0 -42
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +0 -49
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +0 -29
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +0 -19
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +0 -79
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +0 -426
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +0 -40
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +0 -720
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +0 -165
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +0 -56
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +0 -110
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +0 -177
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +0 -67
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +0 -46
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +0 -60
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp +0 -49
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +0 -110
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp +0 -214
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp +0 -131
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp +0 -52
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp +0 -79
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +0 -88
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp +0 -75
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp +0 -102
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +0 -71
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackBinary.hpp +0 -97
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +0 -487
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackExtension.hpp +0 -120
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +0 -244
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp +0 -46
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +0 -18
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Namespace.hpp +0 -42
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +0 -95
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +0 -212
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp +0 -18
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp +0 -28
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +0 -116
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +0 -145
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +0 -238
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +0 -245
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +0 -166
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp +0 -83
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp +0 -70
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +0 -77
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp +0 -70
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +0 -92
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +0 -30
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +0 -14
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +0 -45
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +0 -21
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp +0 -34
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +0 -45
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +0 -27
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +0 -27
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +0 -144
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +0 -67
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +0 -33
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +0 -25
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp +0 -33
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +0 -14
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +0 -23
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp +0 -27
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +0 -22
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +0 -22
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +0 -27
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +0 -23
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +0 -18
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +0 -46
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +0 -22
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +0 -19
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +0 -32
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +0 -17
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +0 -18
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +0 -26
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +0 -24
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +0 -44
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +0 -24
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +0 -31
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +0 -24
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +0 -16
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp +0 -20
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +0 -27
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +0 -33
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +0 -33
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +0 -47
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +0 -55
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +0 -22
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +0 -29
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +0 -36
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +0 -32
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +0 -42
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +0 -20
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +0 -50
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp +0 -93
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp +0 -118
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp +0 -48
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +0 -19
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp +0 -100
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp +0 -47
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +0 -72
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp +0 -73
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp +0 -23
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +0 -406
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +0 -78
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +0 -197
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp +0 -34
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp +0 -61
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +0 -35
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +0 -211
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +0 -82
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +0 -609
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp +0 -24
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +0 -146
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +0 -188
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +0 -313
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp +0 -175
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp +0 -16
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +0 -34
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/compatibility.hpp +0 -144
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/version.hpp +0 -11
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.h +0 -17
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.hpp +0 -65
- package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/CMakeLists.txt +0 -91
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/.piopm +0 -1
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/LICENSE +0 -165
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/README.md +0 -55
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/examples/AsyncSend/AsyncSend.ino +0 -169
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/examples/Client/Client.ino +0 -87
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/examples/FetchWebsite/FetchWebsite.ino +0 -107
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/library.json +0 -31
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/library.properties +0 -11
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.cpp +0 -1612
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.h +0 -335
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPLogging.h +0 -66
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPSimpleIntrusiveList.h +0 -134
- package/examples/basic/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPVersion.h +0 -40
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/.github/FUNDING.yml +0 -1
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/.github/workflows/doxygen.yml +0 -310
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/.github/workflows/main.yml +0 -309
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/.github/workflows/test.yml +0 -523
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/.piopm +0 -1
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/LICENSE.txt +0 -27
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/README.md +0 -157
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink/Scheduler_example00_Blink.ino +0 -303
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink_Namespace/Scheduler_example00_Blink_Namespace.ino +0 -302
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example01/Scheduler_example01.ino +0 -84
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example02/Scheduler_example02.ino +0 -78
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example03/Scheduler_example03.ino +0 -80
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example04_StatusRequest/Scheduler_example04_StatusRequest.ino +0 -90
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example05_StatusRequest/Scheduler_example05_StatusRequest.ino +0 -181
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example06_IDLE/Scheduler_example06_IDLE.ino +0 -117
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example07_WDT/Scheduler_example07_WDT.ino +0 -133
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example08_LTS/Scheduler_example08_LTS.ino +0 -147
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example09_TimeCritical/Scheduler_example09_TimeCritical.ino +0 -57
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example10_Benchmark/Scheduler_example10_Benchmark.ino +0 -106
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example11_Priority/Scheduler_example11_Priority.ino +0 -105
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example12_Priority/Scheduler_example12_Priority.ino +0 -136
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example13_Micros/Scheduler_example13_Micros.ino +0 -71
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example14_Yield/Scheduler_example14_Yield.ino +0 -339
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example15_STDFunction/Scheduler_example15_STDFunction.ino +0 -53
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/Scheduler_example16_Multitab.ino +0 -18
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file1.cpp +0 -31
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file2.cpp +0 -55
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/header.hpp +0 -15
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/ts.cpp +0 -20
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example17_Timeout/Scheduler_example17_Timeout.ino +0 -90
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example18_StatusRequest_LTS_WDT_Timeout/Scheduler_example18_StatusRequest_LTS_WDT_Timeout.ino +0 -172
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks/Scheduler_example19_Dynamic_Tasks.ino +0 -137
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_SelfDestruct/Scheduler_example19_Dynamic_Tasks_SelfDestruct.ino +0 -130
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_stdQueue/Scheduler_example19_Dynamic_Tasks_stdQueue.ino +0 -137
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object.ino +0 -185
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.cpp +0 -36
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.h +0 -25
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.cpp +0 -66
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.h +0 -34
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Scheduler_example21_OO_Callbacks.ino +0 -76
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.cpp +0 -83
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.h +0 -44
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.cpp +0 -21
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.h +0 -28
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example23_IDLE_Callback/Scheduler_example23_IDLE_Callback.ino +0 -157
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example24_CPU_LOAD/Scheduler_example24_CPU_LOAD.ino +0 -87
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example25_SCHEDULER_CHAIN/Scheduler_example25_SCHEDULER_CHAIN.ino +0 -127
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example26_SCHEDULING_OPTIONS/Scheduler_example26_SCHEDULING_OPTIONS.ino +0 -181
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/README +0 -39
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/led.h +0 -12
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/main.h +0 -25
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/lib/README +0 -46
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/platformio.ini +0 -37
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/led.cpp +0 -11
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/main.cpp +0 -254
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/test/README +0 -11
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example28_Tickless/Scheduler_example28_Tickless.ino +0 -105
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/README +0 -39
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/led.h +0 -12
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/main.h +0 -27
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/lib/README +0 -46
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/platformio.ini +0 -38
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/led.cpp +0 -13
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/main.cpp +0 -267
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/test/README +0 -11
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/README.md +0 -232
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/platformio.ini +0 -44
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/src/main.cpp +0 -310
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_template/Scheduler_template.ino +0 -166
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/keywords.txt +0 -161
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/library.json +0 -22
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/library.properties +0 -9
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TScheduler.hpp +0 -29
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TSchedulerDeclarations.hpp +0 -29
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.cpp +0 -3
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.h +0 -1811
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerDeclarations.h +0 -3096
- package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerSleepMethods.h +0 -399
- package/examples/basic/.pio/libdeps/esp32/integrity.dat +0 -3
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/.piopm +0 -1
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/ArduinoJson.h +0 -5
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/LICENSE.txt +0 -10
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/README.md +0 -153
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino +0 -152
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino +0 -64
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino +0 -65
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino +0 -125
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino +0 -65
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonServer/JsonServer.ino +0 -118
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino +0 -106
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino +0 -61
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino +0 -63
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/StringExample/StringExample.ino +0 -76
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/library.json +0 -23
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/library.properties +0 -11
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp +0 -66
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +0 -79
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +0 -75
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +0 -219
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +0 -133
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +0 -96
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +0 -112
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +0 -122
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +0 -137
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Configuration.hpp +0 -285
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +0 -106
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp +0 -35
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +0 -77
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +0 -32
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +0 -74
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +0 -30
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +0 -18
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +0 -56
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +0 -42
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +0 -49
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +0 -29
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +0 -19
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +0 -79
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +0 -426
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +0 -40
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +0 -720
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +0 -165
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +0 -56
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +0 -110
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +0 -177
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +0 -67
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +0 -46
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +0 -60
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp +0 -49
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +0 -110
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp +0 -214
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp +0 -131
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp +0 -52
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp +0 -79
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +0 -88
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp +0 -75
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp +0 -102
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +0 -71
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackBinary.hpp +0 -97
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +0 -487
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackExtension.hpp +0 -120
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +0 -244
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp +0 -46
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +0 -18
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Namespace.hpp +0 -42
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +0 -95
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +0 -212
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp +0 -18
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp +0 -28
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +0 -116
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +0 -145
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +0 -238
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +0 -245
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +0 -166
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp +0 -83
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp +0 -70
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +0 -77
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp +0 -70
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +0 -92
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +0 -30
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +0 -14
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +0 -45
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +0 -21
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp +0 -34
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +0 -45
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +0 -27
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +0 -27
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +0 -144
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +0 -67
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +0 -33
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +0 -25
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp +0 -33
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +0 -14
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +0 -23
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp +0 -27
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +0 -22
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +0 -22
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +0 -27
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +0 -23
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +0 -18
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +0 -46
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +0 -22
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +0 -19
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +0 -32
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +0 -17
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +0 -18
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +0 -26
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +0 -24
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +0 -44
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +0 -24
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +0 -31
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +0 -24
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +0 -16
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp +0 -20
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +0 -27
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +0 -33
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +0 -33
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +0 -47
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +0 -55
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +0 -22
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +0 -29
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +0 -36
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +0 -32
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +0 -42
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +0 -20
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +0 -50
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp +0 -93
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp +0 -118
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp +0 -48
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +0 -19
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp +0 -100
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp +0 -47
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +0 -72
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp +0 -73
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp +0 -23
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +0 -406
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +0 -78
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +0 -197
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp +0 -34
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp +0 -61
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +0 -35
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +0 -211
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +0 -82
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +0 -609
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp +0 -24
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +0 -146
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +0 -188
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +0 -313
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp +0 -175
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp +0 -16
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +0 -34
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/compatibility.hpp +0 -144
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/version.hpp +0 -11
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.h +0 -17
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.hpp +0 -65
- package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/CMakeLists.txt +0 -91
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-arduino-core-esp8266.sh +0 -29
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-arduino-ide.sh +0 -220
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-platformio.sh +0 -133
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/on-push.sh +0 -64
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/stale.yml +0 -31
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/workflows/push.yml +0 -30
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.piopm +0 -1
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/LICENSE.txt +0 -165
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/README.md +0 -43
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/Client.ino +0 -62
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/config.h +0 -23
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/Server.ino +0 -73
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/config.h +0 -23
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/SyncClient/.esp31b.skip +0 -0
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/SyncClient/SyncClient.ino +0 -54
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/library.json +0 -19
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/library.properties +0 -10
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.cpp +0 -214
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.h +0 -73
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/DebugPrintMacros.h +0 -112
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.cpp +0 -1406
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.h +0 -324
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.cpp +0 -555
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.h +0 -118
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.cpp +0 -414
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.h +0 -109
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/async_config.h +0 -42
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.c +0 -613
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.h +0 -98
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/gen_server_cert.sh +0 -36
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/server.cer +0 -0
- package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/server.key +0 -0
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/.github/FUNDING.yml +0 -1
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/doxygen.yml +0 -310
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/main.yml +0 -309
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/test.yml +0 -523
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/.piopm +0 -1
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/LICENSE.txt +0 -27
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/README.md +0 -157
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example00_Blink/Scheduler_example00_Blink.ino +0 -303
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example00_Blink_Namespace/Scheduler_example00_Blink_Namespace.ino +0 -302
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example01/Scheduler_example01.ino +0 -84
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example02/Scheduler_example02.ino +0 -78
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example03/Scheduler_example03.ino +0 -80
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example04_StatusRequest/Scheduler_example04_StatusRequest.ino +0 -90
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example05_StatusRequest/Scheduler_example05_StatusRequest.ino +0 -181
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example06_IDLE/Scheduler_example06_IDLE.ino +0 -117
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example07_WDT/Scheduler_example07_WDT.ino +0 -133
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example08_LTS/Scheduler_example08_LTS.ino +0 -147
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example09_TimeCritical/Scheduler_example09_TimeCritical.ino +0 -57
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example10_Benchmark/Scheduler_example10_Benchmark.ino +0 -106
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example11_Priority/Scheduler_example11_Priority.ino +0 -105
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example12_Priority/Scheduler_example12_Priority.ino +0 -136
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example13_Micros/Scheduler_example13_Micros.ino +0 -71
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example14_Yield/Scheduler_example14_Yield.ino +0 -339
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example15_STDFunction/Scheduler_example15_STDFunction.ino +0 -53
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/Scheduler_example16_Multitab.ino +0 -18
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/file1.cpp +0 -31
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/file2.cpp +0 -55
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/header.hpp +0 -15
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/ts.cpp +0 -20
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example17_Timeout/Scheduler_example17_Timeout.ino +0 -90
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example18_StatusRequest_LTS_WDT_Timeout/Scheduler_example18_StatusRequest_LTS_WDT_Timeout.ino +0 -172
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks/Scheduler_example19_Dynamic_Tasks.ino +0 -137
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_SelfDestruct/Scheduler_example19_Dynamic_Tasks_SelfDestruct.ino +0 -130
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_stdQueue/Scheduler_example19_Dynamic_Tasks_stdQueue.ino +0 -137
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object.ino +0 -185
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.cpp +0 -36
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.h +0 -25
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.cpp +0 -66
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.h +0 -34
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Scheduler_example21_OO_Callbacks.ino +0 -76
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.cpp +0 -83
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.h +0 -44
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.cpp +0 -21
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.h +0 -28
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example23_IDLE_Callback/Scheduler_example23_IDLE_Callback.ino +0 -157
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example24_CPU_LOAD/Scheduler_example24_CPU_LOAD.ino +0 -87
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example25_SCHEDULER_CHAIN/Scheduler_example25_SCHEDULER_CHAIN.ino +0 -127
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example26_SCHEDULING_OPTIONS/Scheduler_example26_SCHEDULING_OPTIONS.ino +0 -181
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/README +0 -39
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/led.h +0 -12
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/main.h +0 -25
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/lib/README +0 -46
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/platformio.ini +0 -37
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/led.cpp +0 -11
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/main.cpp +0 -254
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/test/README +0 -11
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example28_Tickless/Scheduler_example28_Tickless.ino +0 -105
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/README +0 -39
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/led.h +0 -12
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/main.h +0 -27
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/lib/README +0 -46
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/platformio.ini +0 -38
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/src/led.cpp +0 -13
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/src/main.cpp +0 -267
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/test/README +0 -11
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/README.md +0 -232
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/platformio.ini +0 -44
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/src/main.cpp +0 -310
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_template/Scheduler_template.ino +0 -166
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/keywords.txt +0 -161
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/library.json +0 -22
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/library.properties +0 -9
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TScheduler.hpp +0 -29
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TSchedulerDeclarations.hpp +0 -29
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TaskScheduler.cpp +0 -3
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TaskScheduler.h +0 -1811
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TaskSchedulerDeclarations.h +0 -3096
- package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TaskSchedulerSleepMethods.h +0 -399
- package/examples/basic/.pio/libdeps/esp8266/integrity.dat +0 -3
- package/examples/meshCommandNode/.pio/build/esp32/.sconsign311.dblite +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/bootloader.bin +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib327/TaskScheduler/TaskScheduler.cpp.d +0 -2
- package/examples/meshCommandNode/.pio/build/esp32/lib327/TaskScheduler/TaskScheduler.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib373/LittleFS/LittleFS.cpp.d +0 -142
- package/examples/meshCommandNode/.pio/build/esp32/lib373/LittleFS/LittleFS.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib4f2/FS/FS.cpp.d +0 -138
- package/examples/meshCommandNode/.pio/build/esp32/lib4f2/FS/FS.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.d +0 -139
- package/examples/meshCommandNode/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.d +0 -203
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.d +0 -204
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.d +0 -209
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.d +0 -206
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.d +0 -199
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.d +0 -206
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.d +0 -204
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.d +0 -172
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.d +0 -171
- package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/lib97a/SPIFFS/SPIFFS.cpp.d +0 -142
- package/examples/meshCommandNode/.pio/build/esp32/lib97a/SPIFFS/SPIFFS.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/libf48/Update/HttpsOTAUpdate.cpp.d +0 -120
- package/examples/meshCommandNode/.pio/build/esp32/libf48/Update/HttpsOTAUpdate.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/libf48/Update/Updater.cpp.d +0 -144
- package/examples/meshCommandNode/.pio/build/esp32/libf48/Update/Updater.cpp.o +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/partitions.bin +0 -0
- package/examples/meshCommandNode/.pio/build/esp32/src/meshCommandNode.ino.cpp.d +0 -238
- package/examples/meshCommandNode/.pio/build/esp32/tmpkxz_1u4u.tmp +0 -1
- package/examples/meshCommandNode/.pio/build/esp32/tmpo9qt_9vc.tmp +0 -1
- package/examples/meshCommandNode/.pio/build/esp32/tmprrmligyc.tmp +0 -1
- package/examples/meshCommandNode/.pio/build/esp32/tmpt8s9ha45.tmp +0 -1
- package/examples/meshCommandNode/.pio/build/project.checksum +0 -1
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/.piopm +0 -1
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/ArduinoJson.h +0 -5
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/LICENSE.txt +0 -10
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/README.md +0 -153
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino +0 -152
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino +0 -64
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino +0 -65
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino +0 -125
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino +0 -65
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonServer/JsonServer.ino +0 -118
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino +0 -106
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino +0 -61
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino +0 -63
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/StringExample/StringExample.ino +0 -76
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/library.json +0 -23
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/library.properties +0 -11
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp +0 -66
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +0 -79
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +0 -75
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +0 -219
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +0 -133
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +0 -96
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +0 -112
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +0 -122
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +0 -137
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Configuration.hpp +0 -285
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +0 -106
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp +0 -35
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +0 -77
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +0 -32
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +0 -74
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +0 -30
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +0 -18
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +0 -56
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +0 -42
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +0 -49
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +0 -29
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +0 -19
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +0 -79
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +0 -426
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +0 -40
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +0 -720
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +0 -165
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +0 -56
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +0 -110
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +0 -177
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +0 -67
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +0 -46
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +0 -60
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp +0 -49
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +0 -110
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp +0 -214
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp +0 -131
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp +0 -52
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp +0 -79
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +0 -88
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp +0 -75
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp +0 -102
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +0 -71
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackBinary.hpp +0 -97
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +0 -487
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackExtension.hpp +0 -120
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +0 -244
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp +0 -46
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +0 -18
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Namespace.hpp +0 -42
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +0 -95
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +0 -212
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp +0 -18
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp +0 -28
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +0 -116
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +0 -145
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +0 -238
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +0 -245
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +0 -166
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp +0 -83
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp +0 -70
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +0 -77
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp +0 -70
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +0 -92
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +0 -30
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +0 -14
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +0 -45
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +0 -21
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp +0 -34
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +0 -45
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +0 -27
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +0 -27
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +0 -144
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +0 -67
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +0 -33
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +0 -25
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp +0 -33
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +0 -14
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +0 -23
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp +0 -27
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +0 -22
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +0 -22
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +0 -27
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +0 -23
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +0 -18
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +0 -46
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +0 -22
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +0 -19
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +0 -32
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +0 -17
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +0 -18
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +0 -26
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +0 -24
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +0 -44
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +0 -24
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +0 -31
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +0 -24
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +0 -16
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp +0 -20
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +0 -27
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +0 -33
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +0 -33
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +0 -47
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +0 -55
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +0 -22
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +0 -29
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +0 -36
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +0 -32
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +0 -42
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +0 -20
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +0 -50
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp +0 -93
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp +0 -118
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp +0 -48
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +0 -19
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp +0 -100
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp +0 -47
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +0 -72
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp +0 -73
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp +0 -23
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +0 -406
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +0 -78
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +0 -197
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp +0 -34
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp +0 -61
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +0 -35
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +0 -211
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +0 -82
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +0 -609
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp +0 -24
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +0 -146
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +0 -188
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +0 -313
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp +0 -175
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp +0 -16
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +0 -34
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/compatibility.hpp +0 -144
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/version.hpp +0 -11
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.h +0 -17
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.hpp +0 -65
- package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/CMakeLists.txt +0 -91
- package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/.piopm +0 -1
- package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/LICENSE +0 -165
- package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/README.md +0 -62
- package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/examples/Client/Client.ino +0 -81
- package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/library.json +0 -35
- package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/library.properties +0 -10
- package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.cpp +0 -1661
- package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.h +0 -344
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/.github/FUNDING.yml +0 -1
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/.github/workflows/doxygen.yml +0 -310
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/.github/workflows/main.yml +0 -309
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/.github/workflows/test.yml +0 -523
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/.piopm +0 -1
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/LICENSE.txt +0 -27
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/README.md +0 -157
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink/Scheduler_example00_Blink.ino +0 -303
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink_Namespace/Scheduler_example00_Blink_Namespace.ino +0 -302
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example01/Scheduler_example01.ino +0 -84
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example02/Scheduler_example02.ino +0 -78
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example03/Scheduler_example03.ino +0 -80
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example04_StatusRequest/Scheduler_example04_StatusRequest.ino +0 -90
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example05_StatusRequest/Scheduler_example05_StatusRequest.ino +0 -181
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example06_IDLE/Scheduler_example06_IDLE.ino +0 -117
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example07_WDT/Scheduler_example07_WDT.ino +0 -133
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example08_LTS/Scheduler_example08_LTS.ino +0 -147
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example09_TimeCritical/Scheduler_example09_TimeCritical.ino +0 -57
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example10_Benchmark/Scheduler_example10_Benchmark.ino +0 -106
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example11_Priority/Scheduler_example11_Priority.ino +0 -105
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example12_Priority/Scheduler_example12_Priority.ino +0 -136
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example13_Micros/Scheduler_example13_Micros.ino +0 -71
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example14_Yield/Scheduler_example14_Yield.ino +0 -339
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example15_STDFunction/Scheduler_example15_STDFunction.ino +0 -53
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/Scheduler_example16_Multitab.ino +0 -18
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file1.cpp +0 -31
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file2.cpp +0 -55
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/header.hpp +0 -15
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/ts.cpp +0 -20
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example17_Timeout/Scheduler_example17_Timeout.ino +0 -90
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example18_StatusRequest_LTS_WDT_Timeout/Scheduler_example18_StatusRequest_LTS_WDT_Timeout.ino +0 -172
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks/Scheduler_example19_Dynamic_Tasks.ino +0 -137
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_SelfDestruct/Scheduler_example19_Dynamic_Tasks_SelfDestruct.ino +0 -130
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_stdQueue/Scheduler_example19_Dynamic_Tasks_stdQueue.ino +0 -137
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object.ino +0 -185
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.cpp +0 -36
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.h +0 -25
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.cpp +0 -66
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.h +0 -34
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Scheduler_example21_OO_Callbacks.ino +0 -76
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.cpp +0 -83
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.h +0 -44
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.cpp +0 -21
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.h +0 -28
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example23_IDLE_Callback/Scheduler_example23_IDLE_Callback.ino +0 -157
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example24_CPU_LOAD/Scheduler_example24_CPU_LOAD.ino +0 -87
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example25_SCHEDULER_CHAIN/Scheduler_example25_SCHEDULER_CHAIN.ino +0 -127
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example26_SCHEDULING_OPTIONS/Scheduler_example26_SCHEDULING_OPTIONS.ino +0 -181
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/README +0 -39
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/led.h +0 -12
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/main.h +0 -25
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/lib/README +0 -46
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/platformio.ini +0 -37
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/led.cpp +0 -11
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/main.cpp +0 -254
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/test/README +0 -11
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example28_Tickless/Scheduler_example28_Tickless.ino +0 -105
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/README +0 -39
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/led.h +0 -12
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/main.h +0 -27
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/lib/README +0 -46
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/platformio.ini +0 -38
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/led.cpp +0 -13
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/main.cpp +0 -267
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/test/README +0 -11
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/README.md +0 -232
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/platformio.ini +0 -44
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/src/main.cpp +0 -310
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_template/Scheduler_template.ino +0 -166
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/keywords.txt +0 -161
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/library.json +0 -22
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/library.properties +0 -9
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TScheduler.hpp +0 -29
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TSchedulerDeclarations.hpp +0 -29
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.cpp +0 -3
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.h +0 -1811
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerDeclarations.h +0 -3096
- package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerSleepMethods.h +0 -399
- package/examples/meshCommandNode/.pio/libdeps/esp32/integrity.dat +0 -3
|
@@ -1,911 +1,911 @@
|
|
|
1
|
-
# OTA and Mesh Status Enhancement Options
|
|
2
|
-
|
|
3
|
-
**Date:** December 2024
|
|
4
|
-
**Version:** 1.0
|
|
5
|
-
**Status:** Proposal for Discussion
|
|
6
|
-
|
|
7
|
-
## Executive Summary
|
|
8
|
-
|
|
9
|
-
This document explores enhancement options for two key features in painlessMesh:
|
|
10
|
-
|
|
11
|
-
1. **OTA Distribution Improvements** - More efficient firmware distribution across mesh networks
|
|
12
|
-
2. **Mesh Network Status Retrieval** - Comprehensive status monitoring and reporting capabilities
|
|
13
|
-
|
|
14
|
-
Both features are critical for production IoT deployments where remote management, monitoring, and updates are essential.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Current State Analysis
|
|
19
|
-
|
|
20
|
-
### Existing OTA Implementation
|
|
21
|
-
|
|
22
|
-
painlessMesh already includes a functional OTA system (enabled with `PAINLESSMESH_ENABLE_OTA`):
|
|
23
|
-
|
|
24
|
-
**Current Architecture:**
|
|
25
|
-
- **Three-message protocol**: `Announce` → `DataRequest` → `Data`
|
|
26
|
-
- **Role-based targeting**: Firmware can target specific node roles (e.g., "sensor", "gateway")
|
|
27
|
-
- **Hardware detection**: Automatically distinguishes ESP32 vs ESP8266
|
|
28
|
-
- **MD5 validation**: Ensures firmware integrity
|
|
29
|
-
- **Broadcast mode**: Optional optimization where root node requests on behalf of all nodes
|
|
30
|
-
- **Persistent state**: Tracks OTA progress across reboots
|
|
31
|
-
|
|
32
|
-
**Current Workflow:**
|
|
33
|
-
1. Sender node (typically root) announces firmware availability via periodic broadcasts
|
|
34
|
-
2. Nodes check if firmware matches their role/hardware and has different MD5
|
|
35
|
-
3. Nodes request firmware chunks (configurable size, e.g., 1024 bytes)
|
|
36
|
-
4. Sender responds with Base64-encoded firmware data
|
|
37
|
-
5. Nodes write to flash and reboot when complete
|
|
38
|
-
|
|
39
|
-
**Current Limitations:**
|
|
40
|
-
1. **Single-threaded distribution**: Each node requests independently, creating network congestion
|
|
41
|
-
2. **No resume capability**: Interrupted updates restart from beginning
|
|
42
|
-
3. **Limited progress visibility**: No centralized view of update progress across mesh
|
|
43
|
-
4. **Relies on external storage**: Sender needs SD card or other storage (as shown in examples)
|
|
44
|
-
5. **MQTT dependency**: Users currently rely on MQTT commands to trigger updates
|
|
45
|
-
6. **No rollback mechanism**: Failed updates may brick nodes
|
|
46
|
-
|
|
47
|
-
### Existing Mesh Status Capabilities
|
|
48
|
-
|
|
49
|
-
painlessMesh has several status/monitoring features:
|
|
50
|
-
|
|
51
|
-
**Available APIs:**
|
|
52
|
-
- `getNodeList()` - Get all connected node IDs
|
|
53
|
-
- `isConnected(nodeId)` - Check if node is reachable
|
|
54
|
-
- `subConnectionJson()` - Get mesh topology as JSON
|
|
55
|
-
- `getNodeTime()` - Get synchronized mesh time
|
|
56
|
-
- `onNodeDelayReceived()` - Network delay measurements
|
|
57
|
-
- `metrics.hpp` - Comprehensive performance metrics (MessageStats, MemoryStats, TopologyStats)
|
|
58
|
-
|
|
59
|
-
**Alteriom StatusPackage (Type 202):**
|
|
60
|
-
```cpp
|
|
61
|
-
class StatusPackage {
|
|
62
|
-
uint8_t deviceStatus;
|
|
63
|
-
uint32_t uptime;
|
|
64
|
-
uint16_t freeMemory;
|
|
65
|
-
uint8_t wifiStrength;
|
|
66
|
-
TSTRING firmwareVersion;
|
|
67
|
-
};
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**Current Limitations:**
|
|
71
|
-
1. **No centralized status aggregation**: Each node maintains its own status
|
|
72
|
-
2. **Manual status collection**: Application code must poll each node
|
|
73
|
-
3. **Limited standardization**: Status format varies by implementation
|
|
74
|
-
4. **No historical data**: No built-in trending or alerting
|
|
75
|
-
5. **Network-intensive**: Gathering mesh-wide status requires many messages
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## Feature 1: Enhanced OTA Distribution
|
|
80
|
-
|
|
81
|
-
### Option 1A: Mesh-Wide Broadcast OTA (Plugin Extension)
|
|
82
|
-
|
|
83
|
-
**Description:** Extend the existing OTA plugin with true mesh-wide broadcast distribution, where firmware chunks are broadcast to all nodes simultaneously.
|
|
84
|
-
|
|
85
|
-
**Architecture:**
|
|
86
|
-
```
|
|
87
|
-
Sender Node (Root)
|
|
88
|
-
├─> Broadcast: Announce(firmware_info)
|
|
89
|
-
├─> Broadcast: Data(chunk_0) ────┐
|
|
90
|
-
├─> Broadcast: Data(chunk_1) ├─> All Nodes Receive
|
|
91
|
-
├─> Broadcast: Data(chunk_2) │ and Cache Chunks
|
|
92
|
-
└─> Broadcast: Data(chunk_N) ────┘
|
|
93
|
-
|
|
94
|
-
Nodes:
|
|
95
|
-
├─> Listen for broadcasts
|
|
96
|
-
├─> Assemble chunks in order
|
|
97
|
-
├─> Send ACK when complete
|
|
98
|
-
└─> Reboot into new firmware
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**Implementation Details:**
|
|
102
|
-
- New `BroadcastMode::MESH_WIDE` option in OTA plugin
|
|
103
|
-
- Sender broadcasts all chunks at controlled rate (e.g., 1 chunk/second)
|
|
104
|
-
- Nodes maintain chunk bitmap to track received chunks
|
|
105
|
-
- Out-of-order chunk assembly with gap detection
|
|
106
|
-
- Negative acknowledgment (NAK) for missing chunks
|
|
107
|
-
- Adaptive rate control based on network congestion
|
|
108
|
-
|
|
109
|
-
**Pros:**
|
|
110
|
-
- ✅ Dramatically reduces network traffic (single broadcast vs N unicasts)
|
|
111
|
-
- ✅ Faster distribution to large meshes (parallel vs sequential)
|
|
112
|
-
- ✅ Works with existing OTA infrastructure
|
|
113
|
-
- ✅ Backward compatible (nodes can opt-in)
|
|
114
|
-
- ✅ Natural fit for mesh topology
|
|
115
|
-
- ✅ Efficient use of mesh broadcast capabilities
|
|
116
|
-
|
|
117
|
-
**Cons:**
|
|
118
|
-
- ❌ Higher memory requirements (chunk caching)
|
|
119
|
-
- ❌ Potential for broadcast storms if not rate-limited
|
|
120
|
-
- ❌ Requires reliable broadcast delivery (mesh may drop packets)
|
|
121
|
-
- ❌ All nodes must support same firmware (less flexible)
|
|
122
|
-
- ❌ Difficult to target specific nodes
|
|
123
|
-
- ❌ May overwhelm small nodes with limited RAM
|
|
124
|
-
|
|
125
|
-
**Memory Impact:** +2-5KB per node (chunk bitmap + buffer)
|
|
126
|
-
|
|
127
|
-
**Code Changes:**
|
|
128
|
-
- Extend `ota.hpp` with broadcast mode
|
|
129
|
-
- Add chunk bitmap tracking
|
|
130
|
-
- Implement NAK/retransmission logic
|
|
131
|
-
- Add rate limiting
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
### Option 1B: Progressive Rollout OTA (Plugin)
|
|
136
|
-
|
|
137
|
-
**Description:** New plugin that distributes firmware in waves, starting with a test group and progressively expanding.
|
|
138
|
-
|
|
139
|
-
**Architecture:**
|
|
140
|
-
```
|
|
141
|
-
Phase 1: Canary (1-2 nodes)
|
|
142
|
-
└─> Monitor for 5-10 minutes
|
|
143
|
-
|
|
144
|
-
Phase 2: Early Adopters (10-20% of nodes)
|
|
145
|
-
└─> Monitor for stability
|
|
146
|
-
|
|
147
|
-
Phase 3: General Rollout (remaining nodes)
|
|
148
|
-
└─> Automatic or manual trigger
|
|
149
|
-
|
|
150
|
-
Rollback: If failures detected
|
|
151
|
-
└─> Halt distribution, report issues
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
**Implementation Details:**
|
|
155
|
-
- New `ProgressiveOTA` plugin class
|
|
156
|
-
- Configurable phases with node selection criteria
|
|
157
|
-
- Health monitoring between phases
|
|
158
|
-
- Automatic rollback on failures
|
|
159
|
-
- Progress tracking and reporting
|
|
160
|
-
- Integration with mesh status APIs
|
|
161
|
-
|
|
162
|
-
**Pros:**
|
|
163
|
-
- ✅ Production-safe deployments
|
|
164
|
-
- ✅ Early failure detection
|
|
165
|
-
- ✅ Reduced risk of mesh-wide failures
|
|
166
|
-
- ✅ Clear audit trail
|
|
167
|
-
- ✅ Operator control over rollout speed
|
|
168
|
-
- ✅ Statistical validation before full deployment
|
|
169
|
-
|
|
170
|
-
**Cons:**
|
|
171
|
-
- ❌ Slower overall deployment time
|
|
172
|
-
- ❌ More complex implementation
|
|
173
|
-
- ❌ Requires centralized coordination
|
|
174
|
-
- ❌ May leave mesh in mixed-version state
|
|
175
|
-
- ❌ Additional logic for version compatibility
|
|
176
|
-
- ❌ Higher development effort
|
|
177
|
-
|
|
178
|
-
**Memory Impact:** +3-7KB (rollout state tracking)
|
|
179
|
-
|
|
180
|
-
**Code Changes:**
|
|
181
|
-
- New `progressive_ota.hpp` plugin
|
|
182
|
-
- Phase management logic
|
|
183
|
-
- Health check integration
|
|
184
|
-
- Rollback mechanism
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
### Option 1C: Peer-to-Peer OTA Distribution (Protocol Enhancement)
|
|
189
|
-
|
|
190
|
-
**Description:** Nodes that complete OTA can become distribution points, creating a viral propagation pattern.
|
|
191
|
-
|
|
192
|
-
**Architecture:**
|
|
193
|
-
```
|
|
194
|
-
Initial State:
|
|
195
|
-
Sender ─> Node A, Node B, Node C (first wave)
|
|
196
|
-
|
|
197
|
-
After completion:
|
|
198
|
-
Sender ─> Node D, Node E
|
|
199
|
-
Node A ─> Node F, Node G
|
|
200
|
-
Node B ─> Node H, Node I
|
|
201
|
-
Node C ─> Node J, Node K
|
|
202
|
-
|
|
203
|
-
Result: Exponential distribution speed
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
**Implementation Details:**
|
|
207
|
-
- Updated nodes cache firmware in flash
|
|
208
|
-
- Nodes advertise available firmware
|
|
209
|
-
- Automatic peer discovery for OTA
|
|
210
|
-
- Load balancing across multiple sources
|
|
211
|
-
- Chunk verification and forwarding
|
|
212
|
-
- Bandwidth management
|
|
213
|
-
|
|
214
|
-
**Pros:**
|
|
215
|
-
- ✅ Exponential distribution speed
|
|
216
|
-
- ✅ Reduces load on single sender
|
|
217
|
-
- ✅ Fault-tolerant (multiple sources)
|
|
218
|
-
- ✅ Scales to very large meshes
|
|
219
|
-
- ✅ Leverages mesh redundancy
|
|
220
|
-
- ✅ Self-healing distribution
|
|
221
|
-
|
|
222
|
-
**Cons:**
|
|
223
|
-
- ❌ Significant flash memory requirements (~200-500KB per node)
|
|
224
|
-
- ❌ Complex state management
|
|
225
|
-
- ❌ Version fragmentation risks
|
|
226
|
-
- ❌ Security concerns (firmware validation critical)
|
|
227
|
-
- ❌ Flash wear concerns
|
|
228
|
-
- ❌ Not suitable for resource-constrained devices
|
|
229
|
-
|
|
230
|
-
**Memory Impact:** +200-500KB flash (cached firmware)
|
|
231
|
-
|
|
232
|
-
**Code Changes:**
|
|
233
|
-
- Major refactor of OTA system
|
|
234
|
-
- Firmware caching mechanism
|
|
235
|
-
- Peer discovery protocol
|
|
236
|
-
- Multi-source download logic
|
|
237
|
-
|
|
238
|
-
---
|
|
239
|
-
|
|
240
|
-
### Option 1D: MQTT-Integrated OTA Bridge (Bridge Plugin)
|
|
241
|
-
|
|
242
|
-
**Description:** Standardized MQTT interface for OTA operations, integrating with existing MQTT bridge functionality.
|
|
243
|
-
|
|
244
|
-
**Architecture:**
|
|
245
|
-
```
|
|
246
|
-
MQTT Broker
|
|
247
|
-
├─> Topic: mesh/ota/announce
|
|
248
|
-
├─> Topic: mesh/ota/status
|
|
249
|
-
└─> Topic: mesh/ota/control
|
|
250
|
-
|
|
251
|
-
Bridge Node (Root)
|
|
252
|
-
├─> Subscribe to MQTT topics
|
|
253
|
-
├─> Translate to mesh OTA protocol
|
|
254
|
-
├─> Aggregate status from nodes
|
|
255
|
-
└─> Publish progress to MQTT
|
|
256
|
-
|
|
257
|
-
External Tools:
|
|
258
|
-
├─> Upload firmware to broker
|
|
259
|
-
├─> Monitor progress via MQTT
|
|
260
|
-
└─> Control rollout parameters
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
**Implementation Details:**
|
|
264
|
-
- New `MqttOtaBridge` plugin
|
|
265
|
-
- MQTT topic schema for OTA operations
|
|
266
|
-
- Firmware chunking over MQTT
|
|
267
|
-
- Status aggregation and reporting
|
|
268
|
-
- Integration with existing MQTT bridge example
|
|
269
|
-
- Support for external OTA tools
|
|
270
|
-
|
|
271
|
-
**Pros:**
|
|
272
|
-
- ✅ Leverages existing MQTT infrastructure
|
|
273
|
-
- ✅ Easy integration with cloud platforms
|
|
274
|
-
- ✅ Centralized management and monitoring
|
|
275
|
-
- ✅ Works with standard MQTT tools
|
|
276
|
-
- ✅ Supports remote firmware uploads
|
|
277
|
-
- ✅ Audit logging through MQTT
|
|
278
|
-
|
|
279
|
-
**Cons:**
|
|
280
|
-
- ❌ Requires MQTT broker infrastructure
|
|
281
|
-
- ❌ Bridge node is single point of failure
|
|
282
|
-
- ❌ Additional network dependency
|
|
283
|
-
- ❌ MQTT overhead for large firmware files
|
|
284
|
-
- ❌ Limited to nodes with MQTT bridge connectivity
|
|
285
|
-
- ❌ Not standalone (requires external components)
|
|
286
|
-
|
|
287
|
-
**Memory Impact:** +5-10KB (MQTT integration)
|
|
288
|
-
|
|
289
|
-
**Code Changes:**
|
|
290
|
-
- New `mqtt_ota_bridge.hpp` plugin
|
|
291
|
-
- MQTT topic handlers
|
|
292
|
-
- Firmware buffer management
|
|
293
|
-
- Status reporting
|
|
294
|
-
|
|
295
|
-
---
|
|
296
|
-
|
|
297
|
-
### Option 1E: Compressed OTA Transfer (Plugin Enhancement)
|
|
298
|
-
|
|
299
|
-
**Description:** Add firmware compression to reduce transfer time and network bandwidth.
|
|
300
|
-
|
|
301
|
-
**Architecture:**
|
|
302
|
-
```
|
|
303
|
-
Build Process:
|
|
304
|
-
firmware.bin ─> gzip ─> firmware.bin.gz
|
|
305
|
-
|
|
306
|
-
Distribution:
|
|
307
|
-
1. Sender announces compressed firmware
|
|
308
|
-
2. Nodes download compressed chunks
|
|
309
|
-
3. Nodes decompress during flash write
|
|
310
|
-
4. Verification using original MD5
|
|
311
|
-
|
|
312
|
-
Compression Ratio: 40-60% typical
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
**Implementation Details:**
|
|
316
|
-
- Integration with lightweight compression (heatshrink, miniz)
|
|
317
|
-
- Streaming decompression during flash write
|
|
318
|
-
- Backward compatibility with uncompressed
|
|
319
|
-
- Compression flag in Announce message
|
|
320
|
-
- Adjusted chunk sizes for compressed data
|
|
321
|
-
|
|
322
|
-
**Pros:**
|
|
323
|
-
- ✅ 40-60% bandwidth reduction
|
|
324
|
-
- ✅ Faster distribution over mesh
|
|
325
|
-
- ✅ Works with all distribution methods
|
|
326
|
-
- ✅ Can combine with other options
|
|
327
|
-
- ✅ Reduced congestion on network
|
|
328
|
-
- ✅ Lower energy consumption
|
|
329
|
-
|
|
330
|
-
**Cons:**
|
|
331
|
-
- ❌ Additional RAM for decompression buffer (4-8KB)
|
|
332
|
-
- ❌ CPU overhead for decompression
|
|
333
|
-
- ❌ More complex error handling
|
|
334
|
-
- ❌ Requires compatible compression tools
|
|
335
|
-
- ❌ May not help with already-compressed code
|
|
336
|
-
- ❌ Slightly slower flash writes
|
|
337
|
-
|
|
338
|
-
**Memory Impact:** +4-8KB RAM (decompression buffer)
|
|
339
|
-
|
|
340
|
-
**Code Changes:**
|
|
341
|
-
- Add compression library
|
|
342
|
-
- Update OTA handlers
|
|
343
|
-
- Streaming decompression logic
|
|
344
|
-
- Build process updates
|
|
345
|
-
|
|
346
|
-
---
|
|
347
|
-
|
|
348
|
-
### OTA Options Comparison Matrix
|
|
349
|
-
|
|
350
|
-
| Option | Speed | Complexity | Memory | Scalability | Safety | Compatibility |
|
|
351
|
-
|--------|-------|------------|--------|-------------|--------|---------------|
|
|
352
|
-
| 1A: Mesh-Wide Broadcast | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | +2-5KB | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
|
|
353
|
-
| 1B: Progressive Rollout | ⭐⭐ | ⭐⭐⭐⭐ | +3-7KB | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
|
354
|
-
| 1C: Peer-to-Peer | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | +200-500KB | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
|
|
355
|
-
| 1D: MQTT Bridge | ⭐⭐⭐ | ⭐⭐⭐ | +5-10KB | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
356
|
-
| 1E: Compression | ⭐⭐⭐⭐ | ⭐⭐ | +4-8KB | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
357
|
-
|
|
358
|
-
---
|
|
359
|
-
|
|
360
|
-
## Feature 2: Mesh Network Status Retrieval
|
|
361
|
-
|
|
362
|
-
### Option 2A: Alteriom StatusPackage Enhancement (Package Extension)
|
|
363
|
-
|
|
364
|
-
**Description:** Extend the existing Alteriom `StatusPackage` (Type 202) with comprehensive health metrics.
|
|
365
|
-
|
|
366
|
-
**Enhanced StatusPackage:**
|
|
367
|
-
```cpp
|
|
368
|
-
class EnhancedStatusPackage : public BroadcastPackage {
|
|
369
|
-
public:
|
|
370
|
-
// Device Health
|
|
371
|
-
uint8_t deviceStatus; // Status flags
|
|
372
|
-
uint32_t uptime; // Uptime in seconds
|
|
373
|
-
uint16_t freeMemory; // Free heap (KB)
|
|
374
|
-
uint8_t wifiStrength; // RSSI percentage
|
|
375
|
-
TSTRING firmwareVersion; // Current version
|
|
376
|
-
TSTRING firmwareMD5; // Firmware hash
|
|
377
|
-
|
|
378
|
-
// Mesh Statistics
|
|
379
|
-
uint16_t nodeCount; // Known nodes
|
|
380
|
-
uint8_t connectionCount; // Direct connections
|
|
381
|
-
uint32_t messagesReceived; // Message counter
|
|
382
|
-
uint32_t messagesSent; // Message counter
|
|
383
|
-
uint32_t messagesDropped; // Error counter
|
|
384
|
-
|
|
385
|
-
// Performance Metrics
|
|
386
|
-
uint16_t avgLatency; // Average latency (ms)
|
|
387
|
-
uint8_t packetLossRate; // Loss rate percentage
|
|
388
|
-
uint16_t throughput; // Bytes/sec
|
|
389
|
-
|
|
390
|
-
// Warnings/Alerts
|
|
391
|
-
uint8_t alertFlags; // Bit flags for issues
|
|
392
|
-
TSTRING lastError; // Last error message
|
|
393
|
-
};
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
**Implementation Details:**
|
|
397
|
-
- Extend existing `StatusPackage` class
|
|
398
|
-
- Integrate with `metrics.hpp` data
|
|
399
|
-
- Periodic status broadcasts (configurable interval)
|
|
400
|
-
- Emergency status on critical events
|
|
401
|
-
- Version compatibility checks
|
|
402
|
-
|
|
403
|
-
**Pros:**
|
|
404
|
-
- ✅ Builds on existing Alteriom infrastructure
|
|
405
|
-
- ✅ Familiar API for Alteriom users
|
|
406
|
-
- ✅ Type-safe serialization
|
|
407
|
-
- ✅ Easy integration with current apps
|
|
408
|
-
- ✅ Minimal learning curve
|
|
409
|
-
- ✅ Consistent with other Alteriom packages
|
|
410
|
-
|
|
411
|
-
**Cons:**
|
|
412
|
-
- ❌ Limited to Alteriom fork users
|
|
413
|
-
- ❌ Still requires active status collection
|
|
414
|
-
- ❌ No built-in aggregation
|
|
415
|
-
- ❌ Broadcast overhead for frequent updates
|
|
416
|
-
- ❌ Not standardized in upstream painlessMesh
|
|
417
|
-
- ❌ Manual integration with monitoring tools
|
|
418
|
-
|
|
419
|
-
**Memory Impact:** +300-500 bytes per status report
|
|
420
|
-
|
|
421
|
-
**Code Changes:**
|
|
422
|
-
- Update `alteriom_sensor_package.hpp`
|
|
423
|
-
- Add integration with `metrics.hpp`
|
|
424
|
-
- Update examples
|
|
425
|
-
|
|
426
|
-
---
|
|
427
|
-
|
|
428
|
-
### Option 2B: Mesh Status Service (Plugin)
|
|
429
|
-
|
|
430
|
-
**Description:** New plugin that provides a query-based status service, allowing centralized status collection.
|
|
431
|
-
|
|
432
|
-
**Architecture:**
|
|
433
|
-
```
|
|
434
|
-
Root/Bridge Node:
|
|
435
|
-
└─> Sends: StatusQuery(nodeList)
|
|
436
|
-
|
|
437
|
-
Target Nodes:
|
|
438
|
-
└─> Respond: StatusReport(metrics)
|
|
439
|
-
|
|
440
|
-
Root/Bridge Node:
|
|
441
|
-
├─> Aggregates responses
|
|
442
|
-
├─> Builds mesh-wide status
|
|
443
|
-
└─> Publishes via MQTT/API
|
|
444
|
-
|
|
445
|
-
Status Includes:
|
|
446
|
-
├─> Per-node health metrics
|
|
447
|
-
├─> Network topology map
|
|
448
|
-
├─> Performance statistics
|
|
449
|
-
└─> Alert summaries
|
|
450
|
-
```
|
|
451
|
-
|
|
452
|
-
**Implementation Details:**
|
|
453
|
-
- New `MeshStatusService` plugin (Type 210-215)
|
|
454
|
-
- Query/response protocol
|
|
455
|
-
- Timeout handling for non-responsive nodes
|
|
456
|
-
- Status caching at root node
|
|
457
|
-
- REST API or MQTT publishing
|
|
458
|
-
- Configurable query intervals
|
|
459
|
-
|
|
460
|
-
**Pros:**
|
|
461
|
-
- ✅ On-demand status collection (reduces traffic)
|
|
462
|
-
- ✅ Centralized aggregation
|
|
463
|
-
- ✅ Standardized status format
|
|
464
|
-
- ✅ Easy integration with monitoring systems
|
|
465
|
-
- ✅ Historical data possible
|
|
466
|
-
- ✅ Selective querying (specific nodes or all)
|
|
467
|
-
|
|
468
|
-
**Cons:**
|
|
469
|
-
- ❌ Increased implementation complexity
|
|
470
|
-
- ❌ Root node becomes performance bottleneck
|
|
471
|
-
- ❌ Query overhead on large meshes
|
|
472
|
-
- ❌ Not real-time (polling-based)
|
|
473
|
-
- ❌ May miss transient issues
|
|
474
|
-
- ❌ Requires root/bridge node
|
|
475
|
-
|
|
476
|
-
**Memory Impact:** +2-4KB per node, +10-20KB at root (aggregation)
|
|
477
|
-
|
|
478
|
-
**Code Changes:**
|
|
479
|
-
- New `mesh_status_service.hpp` plugin
|
|
480
|
-
- Query/response handlers
|
|
481
|
-
- Aggregation logic at root
|
|
482
|
-
- API/MQTT publishing
|
|
483
|
-
|
|
484
|
-
---
|
|
485
|
-
|
|
486
|
-
### Option 2C: Mesh Telemetry Stream (Protocol Extension)
|
|
487
|
-
|
|
488
|
-
**Description:** Continuous low-bandwidth telemetry stream from all nodes to root/bridge.
|
|
489
|
-
|
|
490
|
-
**Architecture:**
|
|
491
|
-
```
|
|
492
|
-
Each Node:
|
|
493
|
-
Every 30-60 seconds ────┐
|
|
494
|
-
├─> Send: TelemetryUpdate(minimal_stats)
|
|
495
|
-
└─> Only send changes/deltas
|
|
496
|
-
|
|
497
|
-
Root Node:
|
|
498
|
-
├─> Receive telemetry streams
|
|
499
|
-
├─> Update internal state model
|
|
500
|
-
├─> Detect anomalies
|
|
501
|
-
├─> Trigger alerts
|
|
502
|
-
└─> Export to monitoring systems
|
|
503
|
-
|
|
504
|
-
Telemetry Format:
|
|
505
|
-
- Fixed-size binary packets (64 bytes)
|
|
506
|
-
- Delta encoding for bandwidth efficiency
|
|
507
|
-
- Prioritized critical metrics
|
|
508
|
-
```
|
|
509
|
-
|
|
510
|
-
**Implementation Details:**
|
|
511
|
-
- Compact binary telemetry format
|
|
512
|
-
- Delta encoding (only send changes)
|
|
513
|
-
- Priority-based transmission
|
|
514
|
-
- Root node maintains mesh state model
|
|
515
|
-
- Alerting on anomaly detection
|
|
516
|
-
- Time-series data export
|
|
517
|
-
|
|
518
|
-
**Pros:**
|
|
519
|
-
- ✅ Near real-time status visibility
|
|
520
|
-
- ✅ Minimal network overhead (delta encoding)
|
|
521
|
-
- ✅ Automatic anomaly detection
|
|
522
|
-
- ✅ Historical trending
|
|
523
|
-
- ✅ Proactive alerting
|
|
524
|
-
- ✅ Scalable to large meshes
|
|
525
|
-
|
|
526
|
-
**Cons:**
|
|
527
|
-
- ❌ Continuous bandwidth usage
|
|
528
|
-
- ❌ Root node storage requirements
|
|
529
|
-
- ❌ Complex state synchronization
|
|
530
|
-
- ❌ May miss brief events between updates
|
|
531
|
-
- ❌ Binary format less human-readable
|
|
532
|
-
- ❌ Higher development effort
|
|
533
|
-
|
|
534
|
-
**Memory Impact:** +1-2KB per node (telemetry buffer), +50-100KB at root (state model)
|
|
535
|
-
|
|
536
|
-
**Code Changes:**
|
|
537
|
-
- New telemetry protocol
|
|
538
|
-
- Binary serialization
|
|
539
|
-
- Delta encoding logic
|
|
540
|
-
- State model at root
|
|
541
|
-
- Alerting engine
|
|
542
|
-
|
|
543
|
-
---
|
|
544
|
-
|
|
545
|
-
### Option 2D: Mesh Health Dashboard Package (Application Layer)
|
|
546
|
-
|
|
547
|
-
**Description:** Complete monitoring package with web UI, API, and persistent storage.
|
|
548
|
-
|
|
549
|
-
**Architecture:**
|
|
550
|
-
```
|
|
551
|
-
Components:
|
|
552
|
-
1. Dashboard Node (ESP32 with display/web server)
|
|
553
|
-
2. Collector Service (gathers mesh status)
|
|
554
|
-
3. Web Interface (real-time monitoring)
|
|
555
|
-
4. REST API (programmatic access)
|
|
556
|
-
5. SQLite/LittleFS storage (history)
|
|
557
|
-
6. Alert system (email/notifications)
|
|
558
|
-
|
|
559
|
-
Features:
|
|
560
|
-
├─> Live mesh topology visualization
|
|
561
|
-
├─> Per-node performance graphs
|
|
562
|
-
├─> Alert history and management
|
|
563
|
-
├─> Firmware version tracking
|
|
564
|
-
└─> Network health score
|
|
565
|
-
```
|
|
566
|
-
|
|
567
|
-
**Implementation Details:**
|
|
568
|
-
- Dedicated dashboard application
|
|
569
|
-
- AsyncWebServer for UI
|
|
570
|
-
- ChartJS for graphs
|
|
571
|
-
- JSON API for status queries
|
|
572
|
-
- LittleFS for data persistence
|
|
573
|
-
- SMTP or webhook alerts
|
|
574
|
-
- Mobile-responsive design
|
|
575
|
-
|
|
576
|
-
**Pros:**
|
|
577
|
-
- ✅ Complete monitoring solution
|
|
578
|
-
- ✅ Professional visualization
|
|
579
|
-
- ✅ Historical data and trends
|
|
580
|
-
- ✅ User-friendly interface
|
|
581
|
-
- ✅ Alert management
|
|
582
|
-
- ✅ Production-ready
|
|
583
|
-
|
|
584
|
-
**Cons:**
|
|
585
|
-
- ❌ Requires dedicated ESP32 node
|
|
586
|
-
- ❌ Complex deployment
|
|
587
|
-
- ❌ Large codebase to maintain
|
|
588
|
-
- ❌ Web UI development overhead
|
|
589
|
-
- ❌ Not suitable for headless deployments
|
|
590
|
-
- ❌ May require external dependencies
|
|
591
|
-
|
|
592
|
-
**Memory Impact:** +50-100KB application code, +200KB+ flash (web assets)
|
|
593
|
-
|
|
594
|
-
**Code Changes:**
|
|
595
|
-
- New example/dashboard application
|
|
596
|
-
- Web server implementation
|
|
597
|
-
- Data storage layer
|
|
598
|
-
- Visualization components
|
|
599
|
-
|
|
600
|
-
---
|
|
601
|
-
|
|
602
|
-
### Option 2E: MQTT Status Bridge (Bridge Extension)
|
|
603
|
-
|
|
604
|
-
**Description:** Extend existing MQTT bridge to publish comprehensive mesh status to MQTT topics.
|
|
605
|
-
|
|
606
|
-
**Architecture:**
|
|
607
|
-
```
|
|
608
|
-
MQTT Topics:
|
|
609
|
-
mesh/status/nodes → Node list with states
|
|
610
|
-
mesh/status/topology → Mesh structure JSON
|
|
611
|
-
mesh/status/metrics → Performance metrics
|
|
612
|
-
mesh/status/alerts → Active alerts
|
|
613
|
-
mesh/status/node/{id}/health → Per-node health
|
|
614
|
-
|
|
615
|
-
External Integration:
|
|
616
|
-
├─> Grafana/InfluxDB (metrics)
|
|
617
|
-
├─> Prometheus (monitoring)
|
|
618
|
-
├─> Home Assistant (automation)
|
|
619
|
-
├─> Node-RED (processing)
|
|
620
|
-
└─> Custom dashboards
|
|
621
|
-
```
|
|
622
|
-
|
|
623
|
-
**Implementation Details:**
|
|
624
|
-
- Extend existing MQTT bridge example
|
|
625
|
-
- Status collection and aggregation
|
|
626
|
-
- Periodic MQTT publishing
|
|
627
|
-
- Configurable topic schema
|
|
628
|
-
- JSON payload format
|
|
629
|
-
- Integration with standard monitoring tools
|
|
630
|
-
|
|
631
|
-
**Pros:**
|
|
632
|
-
- ✅ Leverages existing MQTT infrastructure
|
|
633
|
-
- ✅ Easy integration with monitoring platforms
|
|
634
|
-
- ✅ Standardized format (JSON/MQTT)
|
|
635
|
-
- ✅ Flexible consumption (many tools support MQTT)
|
|
636
|
-
- ✅ Minimal mesh network overhead
|
|
637
|
-
- ✅ Cloud-ready architecture
|
|
638
|
-
|
|
639
|
-
**Cons:**
|
|
640
|
-
- ❌ Requires MQTT broker
|
|
641
|
-
- ❌ Bridge node is single point of failure
|
|
642
|
-
- ❌ Periodic updates may miss events
|
|
643
|
-
- ❌ MQTT bandwidth for large meshes
|
|
644
|
-
- ❌ External dependency
|
|
645
|
-
- ❌ Limited to MQTT-capable nodes
|
|
646
|
-
|
|
647
|
-
**Memory Impact:** +5-8KB (MQTT status publishing)
|
|
648
|
-
|
|
649
|
-
**Code Changes:**
|
|
650
|
-
- Extend MQTT bridge example
|
|
651
|
-
- Status collection logic
|
|
652
|
-
- MQTT topic handlers
|
|
653
|
-
- JSON formatting
|
|
654
|
-
|
|
655
|
-
---
|
|
656
|
-
|
|
657
|
-
### Status Options Comparison Matrix
|
|
658
|
-
|
|
659
|
-
| Option | Real-time | Overhead | Complexity | Integration | Completeness | Deployment |
|
|
660
|
-
|--------|-----------|----------|------------|-------------|--------------|------------|
|
|
661
|
-
| 2A: Enhanced StatusPackage | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
662
|
-
| 2B: Status Service | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
|
663
|
-
| 2C: Telemetry Stream | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
664
|
-
| 2D: Health Dashboard | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ |
|
|
665
|
-
| 2E: MQTT Bridge | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
|
666
|
-
|
|
667
|
-
---
|
|
668
|
-
|
|
669
|
-
## Recommended Implementation Strategy
|
|
670
|
-
|
|
671
|
-
### Phase 1: Foundation (Quick Wins)
|
|
672
|
-
|
|
673
|
-
**Priority 1: Option 1E + Option 2A (3-4 weeks)**
|
|
674
|
-
- Implement compressed OTA transfers
|
|
675
|
-
- Enhance Alteriom StatusPackage with metrics integration
|
|
676
|
-
- Low complexity, high value
|
|
677
|
-
- Builds on existing infrastructure
|
|
678
|
-
- Immediate benefits for current users
|
|
679
|
-
|
|
680
|
-
**Benefits:**
|
|
681
|
-
- 40-60% faster OTA distribution
|
|
682
|
-
- Standardized status reporting
|
|
683
|
-
- Minimal risk
|
|
684
|
-
- Easy adoption
|
|
685
|
-
|
|
686
|
-
### Phase 2: Core Improvements (Medium Term)
|
|
687
|
-
|
|
688
|
-
**Priority 2: Option 1A + Option 2E (6-8 weeks)**
|
|
689
|
-
- Implement mesh-wide broadcast OTA
|
|
690
|
-
- Create MQTT status bridge
|
|
691
|
-
- Significant performance improvements
|
|
692
|
-
- Better monitoring capabilities
|
|
693
|
-
- Production-ready features
|
|
694
|
-
|
|
695
|
-
**Benefits:**
|
|
696
|
-
- Scalable OTA distribution
|
|
697
|
-
- Cloud integration
|
|
698
|
-
- Professional monitoring
|
|
699
|
-
- Enterprise-ready
|
|
700
|
-
|
|
701
|
-
### Phase 3: Advanced Features (Long Term)
|
|
702
|
-
|
|
703
|
-
**Priority 3: Option 1B + Option 2C (3-4 months)**
|
|
704
|
-
- Add progressive rollout OTA
|
|
705
|
-
- Implement telemetry streaming
|
|
706
|
-
- Production-safe deployments
|
|
707
|
-
- Real-time monitoring
|
|
708
|
-
- Large-scale deployment support
|
|
709
|
-
|
|
710
|
-
**Benefits:**
|
|
711
|
-
- Zero-downtime updates
|
|
712
|
-
- Proactive issue detection
|
|
713
|
-
- Enterprise-grade reliability
|
|
714
|
-
- Advanced diagnostics
|
|
715
|
-
|
|
716
|
-
### Phase 4: Optional Enhancements
|
|
717
|
-
|
|
718
|
-
**Consider if needed:**
|
|
719
|
-
- **Option 1C (Peer-to-Peer OTA)**: Only if mesh size > 50 nodes
|
|
720
|
-
- **Option 1D (MQTT OTA Bridge)**: If MQTT already used
|
|
721
|
-
- **Option 2D (Health Dashboard)**: For user-facing deployments
|
|
722
|
-
|
|
723
|
-
---
|
|
724
|
-
|
|
725
|
-
## Implementation Details
|
|
726
|
-
|
|
727
|
-
### For OTA Enhancements:
|
|
728
|
-
|
|
729
|
-
**Common Requirements:**
|
|
730
|
-
```cpp
|
|
731
|
-
// Enable OTA in configuration
|
|
732
|
-
#define PAINLESSMESH_ENABLE_OTA
|
|
733
|
-
|
|
734
|
-
// New configuration options
|
|
735
|
-
#define OTA_BROADCAST_MODE // Enable broadcast distribution
|
|
736
|
-
#define OTA_COMPRESSION // Enable compressed transfers
|
|
737
|
-
#define OTA_PROGRESSIVE_ROLLOUT // Enable phased deployments
|
|
738
|
-
#define OTA_MAX_CHUNK_SIZE 1024
|
|
739
|
-
#define OTA_COMPRESSION_LEVEL 6
|
|
740
|
-
```
|
|
741
|
-
|
|
742
|
-
**API Example (Compressed Broadcast OTA):**
|
|
743
|
-
```cpp
|
|
744
|
-
// Sender node
|
|
745
|
-
mesh.initOTASend(firmwareCallback, OTA_PART_SIZE);
|
|
746
|
-
auto task = mesh.offerOTA(
|
|
747
|
-
"sensor", // role
|
|
748
|
-
"ESP32", // hardware
|
|
749
|
-
firmwareMD5, // MD5 hash
|
|
750
|
-
numParts, // total chunks
|
|
751
|
-
false, // not forced
|
|
752
|
-
true, // broadcast mode
|
|
753
|
-
true // compressed
|
|
754
|
-
);
|
|
755
|
-
|
|
756
|
-
// Receiver node
|
|
757
|
-
mesh.initOTAReceive(
|
|
758
|
-
"sensor", // my role
|
|
759
|
-
progressCallback, // progress reporting
|
|
760
|
-
true, // accept compressed
|
|
761
|
-
true // accept broadcast
|
|
762
|
-
);
|
|
763
|
-
```
|
|
764
|
-
|
|
765
|
-
### For Status Enhancements:
|
|
766
|
-
|
|
767
|
-
**Enhanced StatusPackage API:**
|
|
768
|
-
```cpp
|
|
769
|
-
#include "examples/alteriom/alteriom_sensor_package.hpp"
|
|
770
|
-
#include "painlessmesh/metrics.hpp"
|
|
771
|
-
|
|
772
|
-
// Create enhanced status
|
|
773
|
-
alteriom::EnhancedStatusPackage status;
|
|
774
|
-
status.deviceStatus = DEVICE_OK;
|
|
775
|
-
status.uptime = mesh.getNodeTime() / 1000000;
|
|
776
|
-
status.freeMemory = ESP.getFreeHeap() / 1024;
|
|
777
|
-
status.firmwareVersion = "v2.1.3";
|
|
778
|
-
status.firmwareMD5 = currentFirmwareMD5;
|
|
779
|
-
|
|
780
|
-
// Integrate metrics
|
|
781
|
-
auto& metrics = mesh.getMetrics();
|
|
782
|
-
status.messagesReceived = metrics.message_stats().messages_received;
|
|
783
|
-
status.messagesSent = metrics.message_stats().messages_sent;
|
|
784
|
-
status.avgLatency = metrics.message_stats().average_latency_ms();
|
|
785
|
-
status.nodeCount = mesh.getNodeList().size();
|
|
786
|
-
|
|
787
|
-
// Broadcast status
|
|
788
|
-
mesh.sendBroadcast(status.toJsonString());
|
|
789
|
-
```
|
|
790
|
-
|
|
791
|
-
**MQTT Status Bridge API:**
|
|
792
|
-
```cpp
|
|
793
|
-
#include "examples/bridge/mqtt_status_bridge.hpp"
|
|
794
|
-
|
|
795
|
-
MqttStatusBridge statusBridge(mesh, mqttClient);
|
|
796
|
-
statusBridge.setPublishInterval(30000); // 30 seconds
|
|
797
|
-
statusBridge.enableTopology(true);
|
|
798
|
-
statusBridge.enableMetrics(true);
|
|
799
|
-
statusBridge.enableAlerts(true);
|
|
800
|
-
statusBridge.begin();
|
|
801
|
-
|
|
802
|
-
// Status automatically published to:
|
|
803
|
-
// - mesh/status/nodes
|
|
804
|
-
// - mesh/status/topology
|
|
805
|
-
// - mesh/status/metrics
|
|
806
|
-
// - mesh/status/alerts
|
|
807
|
-
```
|
|
808
|
-
|
|
809
|
-
---
|
|
810
|
-
|
|
811
|
-
## Risk Assessment
|
|
812
|
-
|
|
813
|
-
### Technical Risks
|
|
814
|
-
|
|
815
|
-
| Risk | Probability | Impact | Mitigation |
|
|
816
|
-
|------|------------|--------|------------|
|
|
817
|
-
| OTA failures brick nodes | Medium | Critical | Rollback mechanism, phased rollout |
|
|
818
|
-
| Network congestion | Medium | High | Rate limiting, adaptive throttling |
|
|
819
|
-
| Memory exhaustion | Low | High | Careful buffer management, testing |
|
|
820
|
-
| Security vulnerabilities | Low | Critical | Signature verification, encryption |
|
|
821
|
-
| Backward compatibility | Medium | Medium | Feature flags, version negotiation |
|
|
822
|
-
|
|
823
|
-
### Operational Risks
|
|
824
|
-
|
|
825
|
-
| Risk | Probability | Impact | Mitigation |
|
|
826
|
-
|------|------------|--------|------------|
|
|
827
|
-
| Increased support burden | Medium | Medium | Good documentation, examples |
|
|
828
|
-
| Performance degradation | Low | High | Extensive testing, benchmarking |
|
|
829
|
-
| User adoption challenges | Medium | Low | Gradual rollout, clear migration path |
|
|
830
|
-
| Maintenance overhead | Medium | Medium | Modular design, comprehensive tests |
|
|
831
|
-
|
|
832
|
-
---
|
|
833
|
-
|
|
834
|
-
## Success Metrics
|
|
835
|
-
|
|
836
|
-
### OTA Improvements
|
|
837
|
-
- ✅ 50%+ reduction in OTA completion time for 10+ node mesh
|
|
838
|
-
- ✅ 90%+ OTA success rate
|
|
839
|
-
- ✅ Zero permanently bricked nodes in testing
|
|
840
|
-
- ✅ Support for 100+ node meshes
|
|
841
|
-
- ✅ < 5% memory overhead
|
|
842
|
-
|
|
843
|
-
### Status Monitoring
|
|
844
|
-
- ✅ Sub-minute status freshness
|
|
845
|
-
- ✅ 99%+ node visibility
|
|
846
|
-
- ✅ Integration with 3+ monitoring platforms
|
|
847
|
-
- ✅ Real-time alerting (< 1 min detection)
|
|
848
|
-
- ✅ < 2% network overhead
|
|
849
|
-
|
|
850
|
-
---
|
|
851
|
-
|
|
852
|
-
## Next Steps
|
|
853
|
-
|
|
854
|
-
### Immediate Actions (Week 1-2)
|
|
855
|
-
1. ✅ Review this proposal with stakeholders
|
|
856
|
-
2. ⏳ Select priority options for Phase 1
|
|
857
|
-
3. ⏳ Create detailed design documents for selected options
|
|
858
|
-
4. ⏳ Set up development branch
|
|
859
|
-
5. ⏳ Create test mesh network (10+ nodes)
|
|
860
|
-
|
|
861
|
-
### Development Phase (Week 3-12)
|
|
862
|
-
1. ⏳ Implement Phase 1 features (Option 1E + 2A)
|
|
863
|
-
2. ⏳ Write comprehensive tests
|
|
864
|
-
3. ⏳ Create example applications
|
|
865
|
-
4. ⏳ Update documentation
|
|
866
|
-
5. ⏳ Beta testing with Alteriom users
|
|
867
|
-
|
|
868
|
-
### Release Phase (Week 13+)
|
|
869
|
-
1. ⏳ Gather feedback, iterate
|
|
870
|
-
2. ⏳ Finalize API
|
|
871
|
-
3. ⏳ Complete documentation
|
|
872
|
-
4. ⏳ Release as minor version update
|
|
873
|
-
5. ⏳ Plan Phase 2 features
|
|
874
|
-
|
|
875
|
-
---
|
|
876
|
-
|
|
877
|
-
## Conclusion
|
|
878
|
-
|
|
879
|
-
This proposal presents multiple viable options for enhancing painlessMesh's OTA distribution and status monitoring capabilities. The recommended phased approach balances:
|
|
880
|
-
|
|
881
|
-
- **Quick wins** (compressed OTA, enhanced status) with minimal risk
|
|
882
|
-
- **Core improvements** (broadcast OTA, MQTT bridge) for production readiness
|
|
883
|
-
- **Advanced features** (progressive rollout, telemetry) for enterprise deployments
|
|
884
|
-
|
|
885
|
-
**Recommended Start:** Implement **Option 1E (Compression)** and **Option 2A (Enhanced StatusPackage)** as Phase 1, providing immediate value with low complexity.
|
|
886
|
-
|
|
887
|
-
All proposed solutions are designed as plugins or extensions, maintaining backward compatibility and allowing gradual adoption by users.
|
|
888
|
-
|
|
889
|
-
---
|
|
890
|
-
|
|
891
|
-
## Appendix A: Related Work
|
|
892
|
-
|
|
893
|
-
- **ESP-IDF OTA**: ESP32's native OTA (HTTPS/HTTP based)
|
|
894
|
-
- **ArduinoOTA**: Arduino's standard OTA library
|
|
895
|
-
- **ESPHome OTA**: Home Assistant's ESP OTA implementation
|
|
896
|
-
- **AWS IoT Jobs**: Cloud-based device management
|
|
897
|
-
- **Mender**: Over-the-air updater for embedded Linux
|
|
898
|
-
|
|
899
|
-
## Appendix B: References
|
|
900
|
-
|
|
901
|
-
- painlessMesh OTA Example: `examples/otaSender/otaSender.ino`
|
|
902
|
-
- painlessMesh Metrics: `src/painlessmesh/metrics.hpp`
|
|
903
|
-
- Alteriom Packages: `examples/alteriom/alteriom_sensor_package.hpp`
|
|
904
|
-
- painlessMesh Architecture: `docs/architecture/mesh-architecture.md`
|
|
905
|
-
|
|
906
|
-
---
|
|
907
|
-
|
|
908
|
-
**Document Version:** 1.0
|
|
909
|
-
**Last Updated:** December 2024
|
|
910
|
-
**Authors:** painlessMesh Development Team
|
|
911
|
-
**Status:** Ready for Review
|
|
1
|
+
# OTA and Mesh Status Enhancement Options
|
|
2
|
+
|
|
3
|
+
**Date:** December 2024
|
|
4
|
+
**Version:** 1.0
|
|
5
|
+
**Status:** Proposal for Discussion
|
|
6
|
+
|
|
7
|
+
## Executive Summary
|
|
8
|
+
|
|
9
|
+
This document explores enhancement options for two key features in painlessMesh:
|
|
10
|
+
|
|
11
|
+
1. **OTA Distribution Improvements** - More efficient firmware distribution across mesh networks
|
|
12
|
+
2. **Mesh Network Status Retrieval** - Comprehensive status monitoring and reporting capabilities
|
|
13
|
+
|
|
14
|
+
Both features are critical for production IoT deployments where remote management, monitoring, and updates are essential.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Current State Analysis
|
|
19
|
+
|
|
20
|
+
### Existing OTA Implementation
|
|
21
|
+
|
|
22
|
+
painlessMesh already includes a functional OTA system (enabled with `PAINLESSMESH_ENABLE_OTA`):
|
|
23
|
+
|
|
24
|
+
**Current Architecture:**
|
|
25
|
+
- **Three-message protocol**: `Announce` → `DataRequest` → `Data`
|
|
26
|
+
- **Role-based targeting**: Firmware can target specific node roles (e.g., "sensor", "gateway")
|
|
27
|
+
- **Hardware detection**: Automatically distinguishes ESP32 vs ESP8266
|
|
28
|
+
- **MD5 validation**: Ensures firmware integrity
|
|
29
|
+
- **Broadcast mode**: Optional optimization where root node requests on behalf of all nodes
|
|
30
|
+
- **Persistent state**: Tracks OTA progress across reboots
|
|
31
|
+
|
|
32
|
+
**Current Workflow:**
|
|
33
|
+
1. Sender node (typically root) announces firmware availability via periodic broadcasts
|
|
34
|
+
2. Nodes check if firmware matches their role/hardware and has different MD5
|
|
35
|
+
3. Nodes request firmware chunks (configurable size, e.g., 1024 bytes)
|
|
36
|
+
4. Sender responds with Base64-encoded firmware data
|
|
37
|
+
5. Nodes write to flash and reboot when complete
|
|
38
|
+
|
|
39
|
+
**Current Limitations:**
|
|
40
|
+
1. **Single-threaded distribution**: Each node requests independently, creating network congestion
|
|
41
|
+
2. **No resume capability**: Interrupted updates restart from beginning
|
|
42
|
+
3. **Limited progress visibility**: No centralized view of update progress across mesh
|
|
43
|
+
4. **Relies on external storage**: Sender needs SD card or other storage (as shown in examples)
|
|
44
|
+
5. **MQTT dependency**: Users currently rely on MQTT commands to trigger updates
|
|
45
|
+
6. **No rollback mechanism**: Failed updates may brick nodes
|
|
46
|
+
|
|
47
|
+
### Existing Mesh Status Capabilities
|
|
48
|
+
|
|
49
|
+
painlessMesh has several status/monitoring features:
|
|
50
|
+
|
|
51
|
+
**Available APIs:**
|
|
52
|
+
- `getNodeList()` - Get all connected node IDs
|
|
53
|
+
- `isConnected(nodeId)` - Check if node is reachable
|
|
54
|
+
- `subConnectionJson()` - Get mesh topology as JSON
|
|
55
|
+
- `getNodeTime()` - Get synchronized mesh time
|
|
56
|
+
- `onNodeDelayReceived()` - Network delay measurements
|
|
57
|
+
- `metrics.hpp` - Comprehensive performance metrics (MessageStats, MemoryStats, TopologyStats)
|
|
58
|
+
|
|
59
|
+
**Alteriom StatusPackage (Type 202):**
|
|
60
|
+
```cpp
|
|
61
|
+
class StatusPackage {
|
|
62
|
+
uint8_t deviceStatus;
|
|
63
|
+
uint32_t uptime;
|
|
64
|
+
uint16_t freeMemory;
|
|
65
|
+
uint8_t wifiStrength;
|
|
66
|
+
TSTRING firmwareVersion;
|
|
67
|
+
};
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Current Limitations:**
|
|
71
|
+
1. **No centralized status aggregation**: Each node maintains its own status
|
|
72
|
+
2. **Manual status collection**: Application code must poll each node
|
|
73
|
+
3. **Limited standardization**: Status format varies by implementation
|
|
74
|
+
4. **No historical data**: No built-in trending or alerting
|
|
75
|
+
5. **Network-intensive**: Gathering mesh-wide status requires many messages
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Feature 1: Enhanced OTA Distribution
|
|
80
|
+
|
|
81
|
+
### Option 1A: Mesh-Wide Broadcast OTA (Plugin Extension)
|
|
82
|
+
|
|
83
|
+
**Description:** Extend the existing OTA plugin with true mesh-wide broadcast distribution, where firmware chunks are broadcast to all nodes simultaneously.
|
|
84
|
+
|
|
85
|
+
**Architecture:**
|
|
86
|
+
```
|
|
87
|
+
Sender Node (Root)
|
|
88
|
+
├─> Broadcast: Announce(firmware_info)
|
|
89
|
+
├─> Broadcast: Data(chunk_0) ────┐
|
|
90
|
+
├─> Broadcast: Data(chunk_1) ├─> All Nodes Receive
|
|
91
|
+
├─> Broadcast: Data(chunk_2) │ and Cache Chunks
|
|
92
|
+
└─> Broadcast: Data(chunk_N) ────┘
|
|
93
|
+
|
|
94
|
+
Nodes:
|
|
95
|
+
├─> Listen for broadcasts
|
|
96
|
+
├─> Assemble chunks in order
|
|
97
|
+
├─> Send ACK when complete
|
|
98
|
+
└─> Reboot into new firmware
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Implementation Details:**
|
|
102
|
+
- New `BroadcastMode::MESH_WIDE` option in OTA plugin
|
|
103
|
+
- Sender broadcasts all chunks at controlled rate (e.g., 1 chunk/second)
|
|
104
|
+
- Nodes maintain chunk bitmap to track received chunks
|
|
105
|
+
- Out-of-order chunk assembly with gap detection
|
|
106
|
+
- Negative acknowledgment (NAK) for missing chunks
|
|
107
|
+
- Adaptive rate control based on network congestion
|
|
108
|
+
|
|
109
|
+
**Pros:**
|
|
110
|
+
- ✅ Dramatically reduces network traffic (single broadcast vs N unicasts)
|
|
111
|
+
- ✅ Faster distribution to large meshes (parallel vs sequential)
|
|
112
|
+
- ✅ Works with existing OTA infrastructure
|
|
113
|
+
- ✅ Backward compatible (nodes can opt-in)
|
|
114
|
+
- ✅ Natural fit for mesh topology
|
|
115
|
+
- ✅ Efficient use of mesh broadcast capabilities
|
|
116
|
+
|
|
117
|
+
**Cons:**
|
|
118
|
+
- ❌ Higher memory requirements (chunk caching)
|
|
119
|
+
- ❌ Potential for broadcast storms if not rate-limited
|
|
120
|
+
- ❌ Requires reliable broadcast delivery (mesh may drop packets)
|
|
121
|
+
- ❌ All nodes must support same firmware (less flexible)
|
|
122
|
+
- ❌ Difficult to target specific nodes
|
|
123
|
+
- ❌ May overwhelm small nodes with limited RAM
|
|
124
|
+
|
|
125
|
+
**Memory Impact:** +2-5KB per node (chunk bitmap + buffer)
|
|
126
|
+
|
|
127
|
+
**Code Changes:**
|
|
128
|
+
- Extend `ota.hpp` with broadcast mode
|
|
129
|
+
- Add chunk bitmap tracking
|
|
130
|
+
- Implement NAK/retransmission logic
|
|
131
|
+
- Add rate limiting
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### Option 1B: Progressive Rollout OTA (Plugin)
|
|
136
|
+
|
|
137
|
+
**Description:** New plugin that distributes firmware in waves, starting with a test group and progressively expanding.
|
|
138
|
+
|
|
139
|
+
**Architecture:**
|
|
140
|
+
```
|
|
141
|
+
Phase 1: Canary (1-2 nodes)
|
|
142
|
+
└─> Monitor for 5-10 minutes
|
|
143
|
+
|
|
144
|
+
Phase 2: Early Adopters (10-20% of nodes)
|
|
145
|
+
└─> Monitor for stability
|
|
146
|
+
|
|
147
|
+
Phase 3: General Rollout (remaining nodes)
|
|
148
|
+
└─> Automatic or manual trigger
|
|
149
|
+
|
|
150
|
+
Rollback: If failures detected
|
|
151
|
+
└─> Halt distribution, report issues
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Implementation Details:**
|
|
155
|
+
- New `ProgressiveOTA` plugin class
|
|
156
|
+
- Configurable phases with node selection criteria
|
|
157
|
+
- Health monitoring between phases
|
|
158
|
+
- Automatic rollback on failures
|
|
159
|
+
- Progress tracking and reporting
|
|
160
|
+
- Integration with mesh status APIs
|
|
161
|
+
|
|
162
|
+
**Pros:**
|
|
163
|
+
- ✅ Production-safe deployments
|
|
164
|
+
- ✅ Early failure detection
|
|
165
|
+
- ✅ Reduced risk of mesh-wide failures
|
|
166
|
+
- ✅ Clear audit trail
|
|
167
|
+
- ✅ Operator control over rollout speed
|
|
168
|
+
- ✅ Statistical validation before full deployment
|
|
169
|
+
|
|
170
|
+
**Cons:**
|
|
171
|
+
- ❌ Slower overall deployment time
|
|
172
|
+
- ❌ More complex implementation
|
|
173
|
+
- ❌ Requires centralized coordination
|
|
174
|
+
- ❌ May leave mesh in mixed-version state
|
|
175
|
+
- ❌ Additional logic for version compatibility
|
|
176
|
+
- ❌ Higher development effort
|
|
177
|
+
|
|
178
|
+
**Memory Impact:** +3-7KB (rollout state tracking)
|
|
179
|
+
|
|
180
|
+
**Code Changes:**
|
|
181
|
+
- New `progressive_ota.hpp` plugin
|
|
182
|
+
- Phase management logic
|
|
183
|
+
- Health check integration
|
|
184
|
+
- Rollback mechanism
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
### Option 1C: Peer-to-Peer OTA Distribution (Protocol Enhancement)
|
|
189
|
+
|
|
190
|
+
**Description:** Nodes that complete OTA can become distribution points, creating a viral propagation pattern.
|
|
191
|
+
|
|
192
|
+
**Architecture:**
|
|
193
|
+
```
|
|
194
|
+
Initial State:
|
|
195
|
+
Sender ─> Node A, Node B, Node C (first wave)
|
|
196
|
+
|
|
197
|
+
After completion:
|
|
198
|
+
Sender ─> Node D, Node E
|
|
199
|
+
Node A ─> Node F, Node G
|
|
200
|
+
Node B ─> Node H, Node I
|
|
201
|
+
Node C ─> Node J, Node K
|
|
202
|
+
|
|
203
|
+
Result: Exponential distribution speed
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**Implementation Details:**
|
|
207
|
+
- Updated nodes cache firmware in flash
|
|
208
|
+
- Nodes advertise available firmware
|
|
209
|
+
- Automatic peer discovery for OTA
|
|
210
|
+
- Load balancing across multiple sources
|
|
211
|
+
- Chunk verification and forwarding
|
|
212
|
+
- Bandwidth management
|
|
213
|
+
|
|
214
|
+
**Pros:**
|
|
215
|
+
- ✅ Exponential distribution speed
|
|
216
|
+
- ✅ Reduces load on single sender
|
|
217
|
+
- ✅ Fault-tolerant (multiple sources)
|
|
218
|
+
- ✅ Scales to very large meshes
|
|
219
|
+
- ✅ Leverages mesh redundancy
|
|
220
|
+
- ✅ Self-healing distribution
|
|
221
|
+
|
|
222
|
+
**Cons:**
|
|
223
|
+
- ❌ Significant flash memory requirements (~200-500KB per node)
|
|
224
|
+
- ❌ Complex state management
|
|
225
|
+
- ❌ Version fragmentation risks
|
|
226
|
+
- ❌ Security concerns (firmware validation critical)
|
|
227
|
+
- ❌ Flash wear concerns
|
|
228
|
+
- ❌ Not suitable for resource-constrained devices
|
|
229
|
+
|
|
230
|
+
**Memory Impact:** +200-500KB flash (cached firmware)
|
|
231
|
+
|
|
232
|
+
**Code Changes:**
|
|
233
|
+
- Major refactor of OTA system
|
|
234
|
+
- Firmware caching mechanism
|
|
235
|
+
- Peer discovery protocol
|
|
236
|
+
- Multi-source download logic
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
### Option 1D: MQTT-Integrated OTA Bridge (Bridge Plugin)
|
|
241
|
+
|
|
242
|
+
**Description:** Standardized MQTT interface for OTA operations, integrating with existing MQTT bridge functionality.
|
|
243
|
+
|
|
244
|
+
**Architecture:**
|
|
245
|
+
```
|
|
246
|
+
MQTT Broker
|
|
247
|
+
├─> Topic: mesh/ota/announce
|
|
248
|
+
├─> Topic: mesh/ota/status
|
|
249
|
+
└─> Topic: mesh/ota/control
|
|
250
|
+
|
|
251
|
+
Bridge Node (Root)
|
|
252
|
+
├─> Subscribe to MQTT topics
|
|
253
|
+
├─> Translate to mesh OTA protocol
|
|
254
|
+
├─> Aggregate status from nodes
|
|
255
|
+
└─> Publish progress to MQTT
|
|
256
|
+
|
|
257
|
+
External Tools:
|
|
258
|
+
├─> Upload firmware to broker
|
|
259
|
+
├─> Monitor progress via MQTT
|
|
260
|
+
└─> Control rollout parameters
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Implementation Details:**
|
|
264
|
+
- New `MqttOtaBridge` plugin
|
|
265
|
+
- MQTT topic schema for OTA operations
|
|
266
|
+
- Firmware chunking over MQTT
|
|
267
|
+
- Status aggregation and reporting
|
|
268
|
+
- Integration with existing MQTT bridge example
|
|
269
|
+
- Support for external OTA tools
|
|
270
|
+
|
|
271
|
+
**Pros:**
|
|
272
|
+
- ✅ Leverages existing MQTT infrastructure
|
|
273
|
+
- ✅ Easy integration with cloud platforms
|
|
274
|
+
- ✅ Centralized management and monitoring
|
|
275
|
+
- ✅ Works with standard MQTT tools
|
|
276
|
+
- ✅ Supports remote firmware uploads
|
|
277
|
+
- ✅ Audit logging through MQTT
|
|
278
|
+
|
|
279
|
+
**Cons:**
|
|
280
|
+
- ❌ Requires MQTT broker infrastructure
|
|
281
|
+
- ❌ Bridge node is single point of failure
|
|
282
|
+
- ❌ Additional network dependency
|
|
283
|
+
- ❌ MQTT overhead for large firmware files
|
|
284
|
+
- ❌ Limited to nodes with MQTT bridge connectivity
|
|
285
|
+
- ❌ Not standalone (requires external components)
|
|
286
|
+
|
|
287
|
+
**Memory Impact:** +5-10KB (MQTT integration)
|
|
288
|
+
|
|
289
|
+
**Code Changes:**
|
|
290
|
+
- New `mqtt_ota_bridge.hpp` plugin
|
|
291
|
+
- MQTT topic handlers
|
|
292
|
+
- Firmware buffer management
|
|
293
|
+
- Status reporting
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
### Option 1E: Compressed OTA Transfer (Plugin Enhancement)
|
|
298
|
+
|
|
299
|
+
**Description:** Add firmware compression to reduce transfer time and network bandwidth.
|
|
300
|
+
|
|
301
|
+
**Architecture:**
|
|
302
|
+
```
|
|
303
|
+
Build Process:
|
|
304
|
+
firmware.bin ─> gzip ─> firmware.bin.gz
|
|
305
|
+
|
|
306
|
+
Distribution:
|
|
307
|
+
1. Sender announces compressed firmware
|
|
308
|
+
2. Nodes download compressed chunks
|
|
309
|
+
3. Nodes decompress during flash write
|
|
310
|
+
4. Verification using original MD5
|
|
311
|
+
|
|
312
|
+
Compression Ratio: 40-60% typical
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
**Implementation Details:**
|
|
316
|
+
- Integration with lightweight compression (heatshrink, miniz)
|
|
317
|
+
- Streaming decompression during flash write
|
|
318
|
+
- Backward compatibility with uncompressed
|
|
319
|
+
- Compression flag in Announce message
|
|
320
|
+
- Adjusted chunk sizes for compressed data
|
|
321
|
+
|
|
322
|
+
**Pros:**
|
|
323
|
+
- ✅ 40-60% bandwidth reduction
|
|
324
|
+
- ✅ Faster distribution over mesh
|
|
325
|
+
- ✅ Works with all distribution methods
|
|
326
|
+
- ✅ Can combine with other options
|
|
327
|
+
- ✅ Reduced congestion on network
|
|
328
|
+
- ✅ Lower energy consumption
|
|
329
|
+
|
|
330
|
+
**Cons:**
|
|
331
|
+
- ❌ Additional RAM for decompression buffer (4-8KB)
|
|
332
|
+
- ❌ CPU overhead for decompression
|
|
333
|
+
- ❌ More complex error handling
|
|
334
|
+
- ❌ Requires compatible compression tools
|
|
335
|
+
- ❌ May not help with already-compressed code
|
|
336
|
+
- ❌ Slightly slower flash writes
|
|
337
|
+
|
|
338
|
+
**Memory Impact:** +4-8KB RAM (decompression buffer)
|
|
339
|
+
|
|
340
|
+
**Code Changes:**
|
|
341
|
+
- Add compression library
|
|
342
|
+
- Update OTA handlers
|
|
343
|
+
- Streaming decompression logic
|
|
344
|
+
- Build process updates
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
### OTA Options Comparison Matrix
|
|
349
|
+
|
|
350
|
+
| Option | Speed | Complexity | Memory | Scalability | Safety | Compatibility |
|
|
351
|
+
|--------|-------|------------|--------|-------------|--------|---------------|
|
|
352
|
+
| 1A: Mesh-Wide Broadcast | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | +2-5KB | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
|
|
353
|
+
| 1B: Progressive Rollout | ⭐⭐ | ⭐⭐⭐⭐ | +3-7KB | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
|
354
|
+
| 1C: Peer-to-Peer | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | +200-500KB | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
|
|
355
|
+
| 1D: MQTT Bridge | ⭐⭐⭐ | ⭐⭐⭐ | +5-10KB | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
356
|
+
| 1E: Compression | ⭐⭐⭐⭐ | ⭐⭐ | +4-8KB | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## Feature 2: Mesh Network Status Retrieval
|
|
361
|
+
|
|
362
|
+
### Option 2A: Alteriom StatusPackage Enhancement (Package Extension)
|
|
363
|
+
|
|
364
|
+
**Description:** Extend the existing Alteriom `StatusPackage` (Type 202) with comprehensive health metrics.
|
|
365
|
+
|
|
366
|
+
**Enhanced StatusPackage:**
|
|
367
|
+
```cpp
|
|
368
|
+
class EnhancedStatusPackage : public BroadcastPackage {
|
|
369
|
+
public:
|
|
370
|
+
// Device Health
|
|
371
|
+
uint8_t deviceStatus; // Status flags
|
|
372
|
+
uint32_t uptime; // Uptime in seconds
|
|
373
|
+
uint16_t freeMemory; // Free heap (KB)
|
|
374
|
+
uint8_t wifiStrength; // RSSI percentage
|
|
375
|
+
TSTRING firmwareVersion; // Current version
|
|
376
|
+
TSTRING firmwareMD5; // Firmware hash
|
|
377
|
+
|
|
378
|
+
// Mesh Statistics
|
|
379
|
+
uint16_t nodeCount; // Known nodes
|
|
380
|
+
uint8_t connectionCount; // Direct connections
|
|
381
|
+
uint32_t messagesReceived; // Message counter
|
|
382
|
+
uint32_t messagesSent; // Message counter
|
|
383
|
+
uint32_t messagesDropped; // Error counter
|
|
384
|
+
|
|
385
|
+
// Performance Metrics
|
|
386
|
+
uint16_t avgLatency; // Average latency (ms)
|
|
387
|
+
uint8_t packetLossRate; // Loss rate percentage
|
|
388
|
+
uint16_t throughput; // Bytes/sec
|
|
389
|
+
|
|
390
|
+
// Warnings/Alerts
|
|
391
|
+
uint8_t alertFlags; // Bit flags for issues
|
|
392
|
+
TSTRING lastError; // Last error message
|
|
393
|
+
};
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
**Implementation Details:**
|
|
397
|
+
- Extend existing `StatusPackage` class
|
|
398
|
+
- Integrate with `metrics.hpp` data
|
|
399
|
+
- Periodic status broadcasts (configurable interval)
|
|
400
|
+
- Emergency status on critical events
|
|
401
|
+
- Version compatibility checks
|
|
402
|
+
|
|
403
|
+
**Pros:**
|
|
404
|
+
- ✅ Builds on existing Alteriom infrastructure
|
|
405
|
+
- ✅ Familiar API for Alteriom users
|
|
406
|
+
- ✅ Type-safe serialization
|
|
407
|
+
- ✅ Easy integration with current apps
|
|
408
|
+
- ✅ Minimal learning curve
|
|
409
|
+
- ✅ Consistent with other Alteriom packages
|
|
410
|
+
|
|
411
|
+
**Cons:**
|
|
412
|
+
- ❌ Limited to Alteriom fork users
|
|
413
|
+
- ❌ Still requires active status collection
|
|
414
|
+
- ❌ No built-in aggregation
|
|
415
|
+
- ❌ Broadcast overhead for frequent updates
|
|
416
|
+
- ❌ Not standardized in upstream painlessMesh
|
|
417
|
+
- ❌ Manual integration with monitoring tools
|
|
418
|
+
|
|
419
|
+
**Memory Impact:** +300-500 bytes per status report
|
|
420
|
+
|
|
421
|
+
**Code Changes:**
|
|
422
|
+
- Update `alteriom_sensor_package.hpp`
|
|
423
|
+
- Add integration with `metrics.hpp`
|
|
424
|
+
- Update examples
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
### Option 2B: Mesh Status Service (Plugin)
|
|
429
|
+
|
|
430
|
+
**Description:** New plugin that provides a query-based status service, allowing centralized status collection.
|
|
431
|
+
|
|
432
|
+
**Architecture:**
|
|
433
|
+
```
|
|
434
|
+
Root/Bridge Node:
|
|
435
|
+
└─> Sends: StatusQuery(nodeList)
|
|
436
|
+
|
|
437
|
+
Target Nodes:
|
|
438
|
+
└─> Respond: StatusReport(metrics)
|
|
439
|
+
|
|
440
|
+
Root/Bridge Node:
|
|
441
|
+
├─> Aggregates responses
|
|
442
|
+
├─> Builds mesh-wide status
|
|
443
|
+
└─> Publishes via MQTT/API
|
|
444
|
+
|
|
445
|
+
Status Includes:
|
|
446
|
+
├─> Per-node health metrics
|
|
447
|
+
├─> Network topology map
|
|
448
|
+
├─> Performance statistics
|
|
449
|
+
└─> Alert summaries
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
**Implementation Details:**
|
|
453
|
+
- New `MeshStatusService` plugin (Type 210-215)
|
|
454
|
+
- Query/response protocol
|
|
455
|
+
- Timeout handling for non-responsive nodes
|
|
456
|
+
- Status caching at root node
|
|
457
|
+
- REST API or MQTT publishing
|
|
458
|
+
- Configurable query intervals
|
|
459
|
+
|
|
460
|
+
**Pros:**
|
|
461
|
+
- ✅ On-demand status collection (reduces traffic)
|
|
462
|
+
- ✅ Centralized aggregation
|
|
463
|
+
- ✅ Standardized status format
|
|
464
|
+
- ✅ Easy integration with monitoring systems
|
|
465
|
+
- ✅ Historical data possible
|
|
466
|
+
- ✅ Selective querying (specific nodes or all)
|
|
467
|
+
|
|
468
|
+
**Cons:**
|
|
469
|
+
- ❌ Increased implementation complexity
|
|
470
|
+
- ❌ Root node becomes performance bottleneck
|
|
471
|
+
- ❌ Query overhead on large meshes
|
|
472
|
+
- ❌ Not real-time (polling-based)
|
|
473
|
+
- ❌ May miss transient issues
|
|
474
|
+
- ❌ Requires root/bridge node
|
|
475
|
+
|
|
476
|
+
**Memory Impact:** +2-4KB per node, +10-20KB at root (aggregation)
|
|
477
|
+
|
|
478
|
+
**Code Changes:**
|
|
479
|
+
- New `mesh_status_service.hpp` plugin
|
|
480
|
+
- Query/response handlers
|
|
481
|
+
- Aggregation logic at root
|
|
482
|
+
- API/MQTT publishing
|
|
483
|
+
|
|
484
|
+
---
|
|
485
|
+
|
|
486
|
+
### Option 2C: Mesh Telemetry Stream (Protocol Extension)
|
|
487
|
+
|
|
488
|
+
**Description:** Continuous low-bandwidth telemetry stream from all nodes to root/bridge.
|
|
489
|
+
|
|
490
|
+
**Architecture:**
|
|
491
|
+
```
|
|
492
|
+
Each Node:
|
|
493
|
+
Every 30-60 seconds ────┐
|
|
494
|
+
├─> Send: TelemetryUpdate(minimal_stats)
|
|
495
|
+
└─> Only send changes/deltas
|
|
496
|
+
|
|
497
|
+
Root Node:
|
|
498
|
+
├─> Receive telemetry streams
|
|
499
|
+
├─> Update internal state model
|
|
500
|
+
├─> Detect anomalies
|
|
501
|
+
├─> Trigger alerts
|
|
502
|
+
└─> Export to monitoring systems
|
|
503
|
+
|
|
504
|
+
Telemetry Format:
|
|
505
|
+
- Fixed-size binary packets (64 bytes)
|
|
506
|
+
- Delta encoding for bandwidth efficiency
|
|
507
|
+
- Prioritized critical metrics
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
**Implementation Details:**
|
|
511
|
+
- Compact binary telemetry format
|
|
512
|
+
- Delta encoding (only send changes)
|
|
513
|
+
- Priority-based transmission
|
|
514
|
+
- Root node maintains mesh state model
|
|
515
|
+
- Alerting on anomaly detection
|
|
516
|
+
- Time-series data export
|
|
517
|
+
|
|
518
|
+
**Pros:**
|
|
519
|
+
- ✅ Near real-time status visibility
|
|
520
|
+
- ✅ Minimal network overhead (delta encoding)
|
|
521
|
+
- ✅ Automatic anomaly detection
|
|
522
|
+
- ✅ Historical trending
|
|
523
|
+
- ✅ Proactive alerting
|
|
524
|
+
- ✅ Scalable to large meshes
|
|
525
|
+
|
|
526
|
+
**Cons:**
|
|
527
|
+
- ❌ Continuous bandwidth usage
|
|
528
|
+
- ❌ Root node storage requirements
|
|
529
|
+
- ❌ Complex state synchronization
|
|
530
|
+
- ❌ May miss brief events between updates
|
|
531
|
+
- ❌ Binary format less human-readable
|
|
532
|
+
- ❌ Higher development effort
|
|
533
|
+
|
|
534
|
+
**Memory Impact:** +1-2KB per node (telemetry buffer), +50-100KB at root (state model)
|
|
535
|
+
|
|
536
|
+
**Code Changes:**
|
|
537
|
+
- New telemetry protocol
|
|
538
|
+
- Binary serialization
|
|
539
|
+
- Delta encoding logic
|
|
540
|
+
- State model at root
|
|
541
|
+
- Alerting engine
|
|
542
|
+
|
|
543
|
+
---
|
|
544
|
+
|
|
545
|
+
### Option 2D: Mesh Health Dashboard Package (Application Layer)
|
|
546
|
+
|
|
547
|
+
**Description:** Complete monitoring package with web UI, API, and persistent storage.
|
|
548
|
+
|
|
549
|
+
**Architecture:**
|
|
550
|
+
```
|
|
551
|
+
Components:
|
|
552
|
+
1. Dashboard Node (ESP32 with display/web server)
|
|
553
|
+
2. Collector Service (gathers mesh status)
|
|
554
|
+
3. Web Interface (real-time monitoring)
|
|
555
|
+
4. REST API (programmatic access)
|
|
556
|
+
5. SQLite/LittleFS storage (history)
|
|
557
|
+
6. Alert system (email/notifications)
|
|
558
|
+
|
|
559
|
+
Features:
|
|
560
|
+
├─> Live mesh topology visualization
|
|
561
|
+
├─> Per-node performance graphs
|
|
562
|
+
├─> Alert history and management
|
|
563
|
+
├─> Firmware version tracking
|
|
564
|
+
└─> Network health score
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
**Implementation Details:**
|
|
568
|
+
- Dedicated dashboard application
|
|
569
|
+
- AsyncWebServer for UI
|
|
570
|
+
- ChartJS for graphs
|
|
571
|
+
- JSON API for status queries
|
|
572
|
+
- LittleFS for data persistence
|
|
573
|
+
- SMTP or webhook alerts
|
|
574
|
+
- Mobile-responsive design
|
|
575
|
+
|
|
576
|
+
**Pros:**
|
|
577
|
+
- ✅ Complete monitoring solution
|
|
578
|
+
- ✅ Professional visualization
|
|
579
|
+
- ✅ Historical data and trends
|
|
580
|
+
- ✅ User-friendly interface
|
|
581
|
+
- ✅ Alert management
|
|
582
|
+
- ✅ Production-ready
|
|
583
|
+
|
|
584
|
+
**Cons:**
|
|
585
|
+
- ❌ Requires dedicated ESP32 node
|
|
586
|
+
- ❌ Complex deployment
|
|
587
|
+
- ❌ Large codebase to maintain
|
|
588
|
+
- ❌ Web UI development overhead
|
|
589
|
+
- ❌ Not suitable for headless deployments
|
|
590
|
+
- ❌ May require external dependencies
|
|
591
|
+
|
|
592
|
+
**Memory Impact:** +50-100KB application code, +200KB+ flash (web assets)
|
|
593
|
+
|
|
594
|
+
**Code Changes:**
|
|
595
|
+
- New example/dashboard application
|
|
596
|
+
- Web server implementation
|
|
597
|
+
- Data storage layer
|
|
598
|
+
- Visualization components
|
|
599
|
+
|
|
600
|
+
---
|
|
601
|
+
|
|
602
|
+
### Option 2E: MQTT Status Bridge (Bridge Extension)
|
|
603
|
+
|
|
604
|
+
**Description:** Extend existing MQTT bridge to publish comprehensive mesh status to MQTT topics.
|
|
605
|
+
|
|
606
|
+
**Architecture:**
|
|
607
|
+
```
|
|
608
|
+
MQTT Topics:
|
|
609
|
+
mesh/status/nodes → Node list with states
|
|
610
|
+
mesh/status/topology → Mesh structure JSON
|
|
611
|
+
mesh/status/metrics → Performance metrics
|
|
612
|
+
mesh/status/alerts → Active alerts
|
|
613
|
+
mesh/status/node/{id}/health → Per-node health
|
|
614
|
+
|
|
615
|
+
External Integration:
|
|
616
|
+
├─> Grafana/InfluxDB (metrics)
|
|
617
|
+
├─> Prometheus (monitoring)
|
|
618
|
+
├─> Home Assistant (automation)
|
|
619
|
+
├─> Node-RED (processing)
|
|
620
|
+
└─> Custom dashboards
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
**Implementation Details:**
|
|
624
|
+
- Extend existing MQTT bridge example
|
|
625
|
+
- Status collection and aggregation
|
|
626
|
+
- Periodic MQTT publishing
|
|
627
|
+
- Configurable topic schema
|
|
628
|
+
- JSON payload format
|
|
629
|
+
- Integration with standard monitoring tools
|
|
630
|
+
|
|
631
|
+
**Pros:**
|
|
632
|
+
- ✅ Leverages existing MQTT infrastructure
|
|
633
|
+
- ✅ Easy integration with monitoring platforms
|
|
634
|
+
- ✅ Standardized format (JSON/MQTT)
|
|
635
|
+
- ✅ Flexible consumption (many tools support MQTT)
|
|
636
|
+
- ✅ Minimal mesh network overhead
|
|
637
|
+
- ✅ Cloud-ready architecture
|
|
638
|
+
|
|
639
|
+
**Cons:**
|
|
640
|
+
- ❌ Requires MQTT broker
|
|
641
|
+
- ❌ Bridge node is single point of failure
|
|
642
|
+
- ❌ Periodic updates may miss events
|
|
643
|
+
- ❌ MQTT bandwidth for large meshes
|
|
644
|
+
- ❌ External dependency
|
|
645
|
+
- ❌ Limited to MQTT-capable nodes
|
|
646
|
+
|
|
647
|
+
**Memory Impact:** +5-8KB (MQTT status publishing)
|
|
648
|
+
|
|
649
|
+
**Code Changes:**
|
|
650
|
+
- Extend MQTT bridge example
|
|
651
|
+
- Status collection logic
|
|
652
|
+
- MQTT topic handlers
|
|
653
|
+
- JSON formatting
|
|
654
|
+
|
|
655
|
+
---
|
|
656
|
+
|
|
657
|
+
### Status Options Comparison Matrix
|
|
658
|
+
|
|
659
|
+
| Option | Real-time | Overhead | Complexity | Integration | Completeness | Deployment |
|
|
660
|
+
|--------|-----------|----------|------------|-------------|--------------|------------|
|
|
661
|
+
| 2A: Enhanced StatusPackage | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
|
662
|
+
| 2B: Status Service | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
|
663
|
+
| 2C: Telemetry Stream | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
|
|
664
|
+
| 2D: Health Dashboard | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ |
|
|
665
|
+
| 2E: MQTT Bridge | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
|
|
666
|
+
|
|
667
|
+
---
|
|
668
|
+
|
|
669
|
+
## Recommended Implementation Strategy
|
|
670
|
+
|
|
671
|
+
### Phase 1: Foundation (Quick Wins)
|
|
672
|
+
|
|
673
|
+
**Priority 1: Option 1E + Option 2A (3-4 weeks)**
|
|
674
|
+
- Implement compressed OTA transfers
|
|
675
|
+
- Enhance Alteriom StatusPackage with metrics integration
|
|
676
|
+
- Low complexity, high value
|
|
677
|
+
- Builds on existing infrastructure
|
|
678
|
+
- Immediate benefits for current users
|
|
679
|
+
|
|
680
|
+
**Benefits:**
|
|
681
|
+
- 40-60% faster OTA distribution
|
|
682
|
+
- Standardized status reporting
|
|
683
|
+
- Minimal risk
|
|
684
|
+
- Easy adoption
|
|
685
|
+
|
|
686
|
+
### Phase 2: Core Improvements (Medium Term)
|
|
687
|
+
|
|
688
|
+
**Priority 2: Option 1A + Option 2E (6-8 weeks)**
|
|
689
|
+
- Implement mesh-wide broadcast OTA
|
|
690
|
+
- Create MQTT status bridge
|
|
691
|
+
- Significant performance improvements
|
|
692
|
+
- Better monitoring capabilities
|
|
693
|
+
- Production-ready features
|
|
694
|
+
|
|
695
|
+
**Benefits:**
|
|
696
|
+
- Scalable OTA distribution
|
|
697
|
+
- Cloud integration
|
|
698
|
+
- Professional monitoring
|
|
699
|
+
- Enterprise-ready
|
|
700
|
+
|
|
701
|
+
### Phase 3: Advanced Features (Long Term)
|
|
702
|
+
|
|
703
|
+
**Priority 3: Option 1B + Option 2C (3-4 months)**
|
|
704
|
+
- Add progressive rollout OTA
|
|
705
|
+
- Implement telemetry streaming
|
|
706
|
+
- Production-safe deployments
|
|
707
|
+
- Real-time monitoring
|
|
708
|
+
- Large-scale deployment support
|
|
709
|
+
|
|
710
|
+
**Benefits:**
|
|
711
|
+
- Zero-downtime updates
|
|
712
|
+
- Proactive issue detection
|
|
713
|
+
- Enterprise-grade reliability
|
|
714
|
+
- Advanced diagnostics
|
|
715
|
+
|
|
716
|
+
### Phase 4: Optional Enhancements
|
|
717
|
+
|
|
718
|
+
**Consider if needed:**
|
|
719
|
+
- **Option 1C (Peer-to-Peer OTA)**: Only if mesh size > 50 nodes
|
|
720
|
+
- **Option 1D (MQTT OTA Bridge)**: If MQTT already used
|
|
721
|
+
- **Option 2D (Health Dashboard)**: For user-facing deployments
|
|
722
|
+
|
|
723
|
+
---
|
|
724
|
+
|
|
725
|
+
## Implementation Details
|
|
726
|
+
|
|
727
|
+
### For OTA Enhancements:
|
|
728
|
+
|
|
729
|
+
**Common Requirements:**
|
|
730
|
+
```cpp
|
|
731
|
+
// Enable OTA in configuration
|
|
732
|
+
#define PAINLESSMESH_ENABLE_OTA
|
|
733
|
+
|
|
734
|
+
// New configuration options
|
|
735
|
+
#define OTA_BROADCAST_MODE // Enable broadcast distribution
|
|
736
|
+
#define OTA_COMPRESSION // Enable compressed transfers
|
|
737
|
+
#define OTA_PROGRESSIVE_ROLLOUT // Enable phased deployments
|
|
738
|
+
#define OTA_MAX_CHUNK_SIZE 1024
|
|
739
|
+
#define OTA_COMPRESSION_LEVEL 6
|
|
740
|
+
```
|
|
741
|
+
|
|
742
|
+
**API Example (Compressed Broadcast OTA):**
|
|
743
|
+
```cpp
|
|
744
|
+
// Sender node
|
|
745
|
+
mesh.initOTASend(firmwareCallback, OTA_PART_SIZE);
|
|
746
|
+
auto task = mesh.offerOTA(
|
|
747
|
+
"sensor", // role
|
|
748
|
+
"ESP32", // hardware
|
|
749
|
+
firmwareMD5, // MD5 hash
|
|
750
|
+
numParts, // total chunks
|
|
751
|
+
false, // not forced
|
|
752
|
+
true, // broadcast mode
|
|
753
|
+
true // compressed
|
|
754
|
+
);
|
|
755
|
+
|
|
756
|
+
// Receiver node
|
|
757
|
+
mesh.initOTAReceive(
|
|
758
|
+
"sensor", // my role
|
|
759
|
+
progressCallback, // progress reporting
|
|
760
|
+
true, // accept compressed
|
|
761
|
+
true // accept broadcast
|
|
762
|
+
);
|
|
763
|
+
```
|
|
764
|
+
|
|
765
|
+
### For Status Enhancements:
|
|
766
|
+
|
|
767
|
+
**Enhanced StatusPackage API:**
|
|
768
|
+
```cpp
|
|
769
|
+
#include "examples/alteriom/alteriom_sensor_package.hpp"
|
|
770
|
+
#include "painlessmesh/metrics.hpp"
|
|
771
|
+
|
|
772
|
+
// Create enhanced status
|
|
773
|
+
alteriom::EnhancedStatusPackage status;
|
|
774
|
+
status.deviceStatus = DEVICE_OK;
|
|
775
|
+
status.uptime = mesh.getNodeTime() / 1000000;
|
|
776
|
+
status.freeMemory = ESP.getFreeHeap() / 1024;
|
|
777
|
+
status.firmwareVersion = "v2.1.3";
|
|
778
|
+
status.firmwareMD5 = currentFirmwareMD5;
|
|
779
|
+
|
|
780
|
+
// Integrate metrics
|
|
781
|
+
auto& metrics = mesh.getMetrics();
|
|
782
|
+
status.messagesReceived = metrics.message_stats().messages_received;
|
|
783
|
+
status.messagesSent = metrics.message_stats().messages_sent;
|
|
784
|
+
status.avgLatency = metrics.message_stats().average_latency_ms();
|
|
785
|
+
status.nodeCount = mesh.getNodeList().size();
|
|
786
|
+
|
|
787
|
+
// Broadcast status
|
|
788
|
+
mesh.sendBroadcast(status.toJsonString());
|
|
789
|
+
```
|
|
790
|
+
|
|
791
|
+
**MQTT Status Bridge API:**
|
|
792
|
+
```cpp
|
|
793
|
+
#include "examples/bridge/mqtt_status_bridge.hpp"
|
|
794
|
+
|
|
795
|
+
MqttStatusBridge statusBridge(mesh, mqttClient);
|
|
796
|
+
statusBridge.setPublishInterval(30000); // 30 seconds
|
|
797
|
+
statusBridge.enableTopology(true);
|
|
798
|
+
statusBridge.enableMetrics(true);
|
|
799
|
+
statusBridge.enableAlerts(true);
|
|
800
|
+
statusBridge.begin();
|
|
801
|
+
|
|
802
|
+
// Status automatically published to:
|
|
803
|
+
// - mesh/status/nodes
|
|
804
|
+
// - mesh/status/topology
|
|
805
|
+
// - mesh/status/metrics
|
|
806
|
+
// - mesh/status/alerts
|
|
807
|
+
```
|
|
808
|
+
|
|
809
|
+
---
|
|
810
|
+
|
|
811
|
+
## Risk Assessment
|
|
812
|
+
|
|
813
|
+
### Technical Risks
|
|
814
|
+
|
|
815
|
+
| Risk | Probability | Impact | Mitigation |
|
|
816
|
+
|------|------------|--------|------------|
|
|
817
|
+
| OTA failures brick nodes | Medium | Critical | Rollback mechanism, phased rollout |
|
|
818
|
+
| Network congestion | Medium | High | Rate limiting, adaptive throttling |
|
|
819
|
+
| Memory exhaustion | Low | High | Careful buffer management, testing |
|
|
820
|
+
| Security vulnerabilities | Low | Critical | Signature verification, encryption |
|
|
821
|
+
| Backward compatibility | Medium | Medium | Feature flags, version negotiation |
|
|
822
|
+
|
|
823
|
+
### Operational Risks
|
|
824
|
+
|
|
825
|
+
| Risk | Probability | Impact | Mitigation |
|
|
826
|
+
|------|------------|--------|------------|
|
|
827
|
+
| Increased support burden | Medium | Medium | Good documentation, examples |
|
|
828
|
+
| Performance degradation | Low | High | Extensive testing, benchmarking |
|
|
829
|
+
| User adoption challenges | Medium | Low | Gradual rollout, clear migration path |
|
|
830
|
+
| Maintenance overhead | Medium | Medium | Modular design, comprehensive tests |
|
|
831
|
+
|
|
832
|
+
---
|
|
833
|
+
|
|
834
|
+
## Success Metrics
|
|
835
|
+
|
|
836
|
+
### OTA Improvements
|
|
837
|
+
- ✅ 50%+ reduction in OTA completion time for 10+ node mesh
|
|
838
|
+
- ✅ 90%+ OTA success rate
|
|
839
|
+
- ✅ Zero permanently bricked nodes in testing
|
|
840
|
+
- ✅ Support for 100+ node meshes
|
|
841
|
+
- ✅ < 5% memory overhead
|
|
842
|
+
|
|
843
|
+
### Status Monitoring
|
|
844
|
+
- ✅ Sub-minute status freshness
|
|
845
|
+
- ✅ 99%+ node visibility
|
|
846
|
+
- ✅ Integration with 3+ monitoring platforms
|
|
847
|
+
- ✅ Real-time alerting (< 1 min detection)
|
|
848
|
+
- ✅ < 2% network overhead
|
|
849
|
+
|
|
850
|
+
---
|
|
851
|
+
|
|
852
|
+
## Next Steps
|
|
853
|
+
|
|
854
|
+
### Immediate Actions (Week 1-2)
|
|
855
|
+
1. ✅ Review this proposal with stakeholders
|
|
856
|
+
2. ⏳ Select priority options for Phase 1
|
|
857
|
+
3. ⏳ Create detailed design documents for selected options
|
|
858
|
+
4. ⏳ Set up development branch
|
|
859
|
+
5. ⏳ Create test mesh network (10+ nodes)
|
|
860
|
+
|
|
861
|
+
### Development Phase (Week 3-12)
|
|
862
|
+
1. ⏳ Implement Phase 1 features (Option 1E + 2A)
|
|
863
|
+
2. ⏳ Write comprehensive tests
|
|
864
|
+
3. ⏳ Create example applications
|
|
865
|
+
4. ⏳ Update documentation
|
|
866
|
+
5. ⏳ Beta testing with Alteriom users
|
|
867
|
+
|
|
868
|
+
### Release Phase (Week 13+)
|
|
869
|
+
1. ⏳ Gather feedback, iterate
|
|
870
|
+
2. ⏳ Finalize API
|
|
871
|
+
3. ⏳ Complete documentation
|
|
872
|
+
4. ⏳ Release as minor version update
|
|
873
|
+
5. ⏳ Plan Phase 2 features
|
|
874
|
+
|
|
875
|
+
---
|
|
876
|
+
|
|
877
|
+
## Conclusion
|
|
878
|
+
|
|
879
|
+
This proposal presents multiple viable options for enhancing painlessMesh's OTA distribution and status monitoring capabilities. The recommended phased approach balances:
|
|
880
|
+
|
|
881
|
+
- **Quick wins** (compressed OTA, enhanced status) with minimal risk
|
|
882
|
+
- **Core improvements** (broadcast OTA, MQTT bridge) for production readiness
|
|
883
|
+
- **Advanced features** (progressive rollout, telemetry) for enterprise deployments
|
|
884
|
+
|
|
885
|
+
**Recommended Start:** Implement **Option 1E (Compression)** and **Option 2A (Enhanced StatusPackage)** as Phase 1, providing immediate value with low complexity.
|
|
886
|
+
|
|
887
|
+
All proposed solutions are designed as plugins or extensions, maintaining backward compatibility and allowing gradual adoption by users.
|
|
888
|
+
|
|
889
|
+
---
|
|
890
|
+
|
|
891
|
+
## Appendix A: Related Work
|
|
892
|
+
|
|
893
|
+
- **ESP-IDF OTA**: ESP32's native OTA (HTTPS/HTTP based)
|
|
894
|
+
- **ArduinoOTA**: Arduino's standard OTA library
|
|
895
|
+
- **ESPHome OTA**: Home Assistant's ESP OTA implementation
|
|
896
|
+
- **AWS IoT Jobs**: Cloud-based device management
|
|
897
|
+
- **Mender**: Over-the-air updater for embedded Linux
|
|
898
|
+
|
|
899
|
+
## Appendix B: References
|
|
900
|
+
|
|
901
|
+
- painlessMesh OTA Example: `examples/otaSender/otaSender.ino`
|
|
902
|
+
- painlessMesh Metrics: `src/painlessmesh/metrics.hpp`
|
|
903
|
+
- Alteriom Packages: `examples/alteriom/alteriom_sensor_package.hpp`
|
|
904
|
+
- painlessMesh Architecture: `docs/architecture/mesh-architecture.md`
|
|
905
|
+
|
|
906
|
+
---
|
|
907
|
+
|
|
908
|
+
**Document Version:** 1.0
|
|
909
|
+
**Last Updated:** December 2024
|
|
910
|
+
**Authors:** painlessMesh Development Team
|
|
911
|
+
**Status:** Ready for Review
|