@alteriom/painlessmesh 1.7.2 → 1.7.4

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.
Files changed (1735) hide show
  1. package/CHANGELOG.md +473 -381
  2. package/LICENSE +674 -674
  3. package/README.md +491 -477
  4. package/RELEASE_GUIDE.md +504 -504
  5. package/docs/DOCUMENTATION_MIGRATION_PLAN.md +175 -175
  6. package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +1062 -1062
  7. package/docs/MESH_TOPOLOGY_GUIDE.md +992 -992
  8. package/docs/MESH_TOPOLOGY_PROGRESS.md +422 -422
  9. package/docs/MQTT_BRIDGE_COMMANDS.md +894 -894
  10. package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +324 -324
  11. package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +576 -576
  12. package/docs/MQTT_SCHEMA_COMPLIANCE.md +285 -285
  13. package/docs/MQTT_SCHEMA_PROPOSALS.md +446 -446
  14. package/docs/MQTT_SCHEMA_REVIEW.md +690 -690
  15. package/docs/OTA_COMMANDS_REFERENCE.md +554 -554
  16. package/docs/PHASE1_GUIDE.md +349 -349
  17. package/docs/PHASE2_GUIDE.md +543 -543
  18. package/docs/README.md +130 -78
  19. package/docs/SCHEMA_VALIDATION_CHECKLIST.md +222 -222
  20. package/docs/alteriom/overview.md +507 -507
  21. package/docs/api/core-api.md +606 -606
  22. package/docs/architecture/mesh-architecture.md +378 -378
  23. package/docs/architecture/plugin-system.md +516 -516
  24. package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +166 -0
  25. package/docs/{improvements → archive}/FEATURE_PROPOSALS.md +337 -337
  26. package/docs/archive/LIBRARY_JSON_FIX.md +98 -0
  27. package/docs/archive/LIBRARY_STRUCTURE_FIX.md +215 -0
  28. package/docs/{improvements → archive}/PHASE1_IMPLEMENTATION.md +325 -325
  29. package/docs/{improvements → archive}/PHASE2_IMPLEMENTATION.md +567 -567
  30. package/docs/archive/RELEASE_SUMMARY.md +173 -0
  31. package/docs/archive/SCONS_BUILD_FIX.md +313 -0
  32. package/docs/archive/TRIGGER_RELEASE.md +280 -0
  33. package/docs/archive/VECTOR_INCLUDE_FIX.md +129 -0
  34. package/docs/{improvements → archive}/ota-and-status-enhancements.md +911 -911
  35. package/docs/{improvements → archive}/ota-status-architecture-diagrams.md +658 -658
  36. package/docs/{improvements → archive}/ota-status-quick-reference.md +284 -284
  37. package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +71 -0
  38. package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +1011 -0
  39. package/docs/development/DOCKER_TESTING.md +196 -0
  40. package/docs/development/PLATFORMIO_USAGE.md +180 -0
  41. package/docs/development/TESTING_SUMMARY.md +126 -0
  42. package/docs/development/contributing.md +301 -0
  43. package/docs/development/documentation.md +583 -0
  44. package/docs/getting-started/first-mesh.md +409 -409
  45. package/docs/getting-started/installation.md +274 -274
  46. package/docs/getting-started/quickstart.md +157 -157
  47. package/docs/improvements/FUTURE_PROPOSALS.md +1016 -0
  48. package/docs/improvements/IMPLEMENTATION_HISTORY.md +1091 -0
  49. package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +709 -0
  50. package/docs/improvements/README.md +212 -87
  51. package/docs/platformio-publishing.md +254 -254
  52. package/docs/platformio-setup-summary.md +120 -120
  53. package/docs/releases/FEATURE_HISTORY.md +543 -0
  54. package/docs/releases/PATCH_v1.7.2.md +262 -0
  55. package/docs/releases/PATCH_v1.7.3.md +262 -0
  56. package/docs/releases/PATCH_v1.7.4.md +219 -0
  57. package/docs/releases/PHASE1_SUMMARY.md +246 -0
  58. package/docs/releases/PHASE2_SUMMARY.md +499 -0
  59. package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +253 -0
  60. package/docs/releases/RELEASE_NOTES_1.7.0.md +539 -0
  61. package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +276 -0
  62. package/docs/troubleshooting/CRASH_QUICK_REF.md +93 -0
  63. package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +288 -0
  64. package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +267 -0
  65. package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +164 -0
  66. package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +257 -0
  67. package/docs/troubleshooting/common-issues.md +520 -520
  68. package/docs/troubleshooting/debugging.md +455 -0
  69. package/docs/troubleshooting/faq.md +472 -472
  70. package/docs/tutorials/basic-examples.md +717 -717
  71. package/docs/wiki/API-Reference.md +245 -245
  72. package/docs/wiki/Complete-Documentation.md +122 -122
  73. package/examples/alteriom/.pio/build/esp32/.sconsign311.dblite +0 -0
  74. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Esp.cpp.d +146 -0
  75. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Esp.cpp.o +0 -0
  76. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/FirmwareMSC.cpp.d +5 -0
  77. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/FirmwareMSC.cpp.o +0 -0
  78. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/FunctionalInterrupt.cpp.d +137 -0
  79. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/FunctionalInterrupt.cpp.o +0 -0
  80. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/HWCDC.cpp.d +4 -0
  81. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/HWCDC.cpp.o +0 -0
  82. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/HardwareSerial.cpp.d +138 -0
  83. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/HardwareSerial.cpp.o +0 -0
  84. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/IPAddress.cpp.d +137 -0
  85. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/IPAddress.cpp.o +0 -0
  86. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/IPv6Address.cpp.d +138 -0
  87. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/IPv6Address.cpp.o +0 -0
  88. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/MD5Builder.cpp.d +138 -0
  89. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/MD5Builder.cpp.o +0 -0
  90. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Print.cpp.d +136 -0
  91. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Print.cpp.o +0 -0
  92. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Stream.cpp.d +136 -0
  93. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Stream.cpp.o +0 -0
  94. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/StreamString.cpp.d +137 -0
  95. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/StreamString.cpp.o +0 -0
  96. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Tone.cpp.d +136 -0
  97. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/Tone.cpp.o +0 -0
  98. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USB.cpp.d +4 -0
  99. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USB.cpp.o +0 -0
  100. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USBCDC.cpp.d +4 -0
  101. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USBCDC.cpp.o +0 -0
  102. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USBMSC.cpp.d +4 -0
  103. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/USBMSC.cpp.o +0 -0
  104. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/WMath.cpp.d +18 -0
  105. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/WMath.cpp.o +0 -0
  106. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/WString.cpp.d +136 -0
  107. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/WString.cpp.o +0 -0
  108. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/base64.cpp.d +139 -0
  109. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/base64.cpp.o +0 -0
  110. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/cbuf.cpp.d +3 -0
  111. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/cbuf.cpp.o +0 -0
  112. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-adc.c.d +110 -0
  113. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-adc.c.o +0 -0
  114. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-bt.c.d +107 -0
  115. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-bt.c.o +0 -0
  116. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-cpu.c.d +123 -0
  117. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-cpu.c.o +0 -0
  118. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-dac.c.d +108 -0
  119. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-dac.c.o +0 -0
  120. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-gpio.c.d +122 -0
  121. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-gpio.c.o +0 -0
  122. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-i2c-slave.c.d +92 -0
  123. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-i2c-slave.c.o +0 -0
  124. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-i2c.c.d +114 -0
  125. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-i2c.c.o +0 -0
  126. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-ledc.c.d +108 -0
  127. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-ledc.c.o +0 -0
  128. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-matrix.c.d +105 -0
  129. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-matrix.c.o +0 -0
  130. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-misc.c.d +136 -0
  131. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-misc.c.o +0 -0
  132. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-psram.c.d +104 -0
  133. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-psram.c.o +0 -0
  134. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-rgb-led.c.d +104 -0
  135. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-rgb-led.c.o +0 -0
  136. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-rmt.c.d +108 -0
  137. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-rmt.c.o +0 -0
  138. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-sigmadelta.c.d +109 -0
  139. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-sigmadelta.c.o +0 -0
  140. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-spi.c.d +122 -0
  141. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-spi.c.o +0 -0
  142. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-time.c.d +145 -0
  143. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-time.c.o +0 -0
  144. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-timer.c.d +110 -0
  145. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-timer.c.o +0 -0
  146. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-tinyusb.c.d +3 -0
  147. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-tinyusb.c.o +0 -0
  148. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-touch.c.d +107 -0
  149. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-touch.c.o +0 -0
  150. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-uart.c.d +121 -0
  151. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/esp32-hal-uart.c.o +0 -0
  152. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/firmware_msc_fat.c.d +3 -0
  153. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/firmware_msc_fat.c.o +0 -0
  154. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/libb64/cdecode.c.d +3 -0
  155. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/libb64/cdecode.c.o +0 -0
  156. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/libb64/cencode.c.d +3 -0
  157. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/libb64/cencode.c.o +0 -0
  158. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/main.cpp.d +139 -0
  159. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/main.cpp.o +0 -0
  160. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/stdlib_noniso.c.d +12 -0
  161. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/stdlib_noniso.c.o +0 -0
  162. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/wiring_pulse.c.d +111 -0
  163. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/wiring_pulse.c.o +0 -0
  164. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/wiring_shift.c.d +111 -0
  165. package/examples/alteriom/.pio/build/esp32/FrameworkArduino/wiring_shift.c.o +0 -0
  166. package/examples/alteriom/.pio/build/esp32/bootloader.bin +0 -0
  167. package/examples/alteriom/.pio/build/esp32/firmware.bin +0 -0
  168. package/examples/alteriom/.pio/build/esp32/firmware.elf +0 -0
  169. package/examples/alteriom/.pio/build/esp32/firmware.map +102570 -0
  170. package/examples/alteriom/.pio/build/esp32/lib373/LittleFS/LittleFS.cpp.d +142 -0
  171. package/examples/alteriom/.pio/build/esp32/lib373/LittleFS/LittleFS.cpp.o +0 -0
  172. package/examples/alteriom/.pio/build/esp32/lib373/libLittleFS.a +0 -0
  173. package/examples/alteriom/.pio/build/esp32/lib399/TaskScheduler/TaskScheduler.cpp.d +2 -0
  174. package/examples/alteriom/.pio/build/esp32/lib399/TaskScheduler/TaskScheduler.cpp.o +0 -0
  175. package/examples/alteriom/.pio/build/esp32/lib399/libTaskScheduler.a +0 -0
  176. package/examples/alteriom/.pio/build/esp32/lib4f2/FS/FS.cpp.d +138 -0
  177. package/examples/alteriom/.pio/build/esp32/lib4f2/FS/FS.cpp.o +0 -0
  178. package/examples/alteriom/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.d +139 -0
  179. package/examples/alteriom/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.o +0 -0
  180. package/examples/alteriom/.pio/build/esp32/lib4f2/libFS.a +0 -0
  181. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.d +203 -0
  182. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.o +0 -0
  183. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.d +204 -0
  184. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.o +0 -0
  185. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.d +209 -0
  186. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.o +0 -0
  187. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.d +206 -0
  188. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.o +0 -0
  189. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.d +199 -0
  190. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.o +0 -0
  191. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.d +206 -0
  192. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.o +0 -0
  193. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.d +204 -0
  194. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.o +0 -0
  195. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.d +172 -0
  196. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.o +0 -0
  197. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.d +171 -0
  198. package/examples/alteriom/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.o +0 -0
  199. package/examples/alteriom/.pio/build/esp32/lib71a/libWiFi.a +0 -0
  200. package/examples/alteriom/.pio/build/esp32/lib7d0/AsyncTCP/AsyncTCP.cpp.d +189 -0
  201. package/examples/alteriom/.pio/build/esp32/lib7d0/AsyncTCP/AsyncTCP.cpp.o +0 -0
  202. package/examples/alteriom/.pio/build/esp32/lib7d0/libAsyncTCP.a +0 -0
  203. package/examples/alteriom/.pio/build/esp32/lib837/libsrc.a +0 -0
  204. package/examples/alteriom/.pio/build/esp32/lib837/src/painlessMeshSTA.cpp.d +229 -0
  205. package/examples/alteriom/.pio/build/esp32/lib837/src/painlessMeshSTA.cpp.o +0 -0
  206. package/examples/alteriom/.pio/build/esp32/lib837/src/scheduler.cpp.d +139 -0
  207. package/examples/alteriom/.pio/build/esp32/lib837/src/scheduler.cpp.o +0 -0
  208. package/examples/alteriom/.pio/build/esp32/lib837/src/wifi.cpp.d +227 -0
  209. package/examples/alteriom/.pio/build/esp32/lib837/src/wifi.cpp.o +0 -0
  210. package/examples/alteriom/.pio/build/esp32/lib97a/SPIFFS/SPIFFS.cpp.d +142 -0
  211. package/examples/alteriom/.pio/build/esp32/lib97a/SPIFFS/SPIFFS.cpp.o +0 -0
  212. package/examples/alteriom/.pio/build/esp32/lib97a/libSPIFFS.a +0 -0
  213. package/examples/alteriom/.pio/build/esp32/libFrameworkArduino.a +0 -0
  214. package/examples/alteriom/.pio/build/esp32/libf48/Update/HttpsOTAUpdate.cpp.d +120 -0
  215. package/examples/alteriom/.pio/build/esp32/libf48/Update/HttpsOTAUpdate.cpp.o +0 -0
  216. package/examples/alteriom/.pio/build/esp32/libf48/Update/Updater.cpp.d +144 -0
  217. package/examples/alteriom/.pio/build/esp32/libf48/Update/Updater.cpp.o +0 -0
  218. package/examples/alteriom/.pio/build/esp32/libf48/libUpdate.a +0 -0
  219. package/examples/alteriom/.pio/build/esp32/partitions.bin +0 -0
  220. package/examples/alteriom/.pio/build/esp32/src/alteriom.ino.cpp.d +240 -0
  221. package/examples/alteriom/.pio/build/esp32/src/alteriom.ino.cpp.o +0 -0
  222. package/examples/alteriom/.pio/build/esp32/tmprz74bdta.tmp +1 -0
  223. package/examples/alteriom/.pio/build/esp32/tmps5iu5vvf.tmp +1 -0
  224. package/examples/alteriom/.pio/build/esp32/tmptxf7cu25.tmp +1 -0
  225. package/examples/alteriom/.pio/build/esp32/tmpuwwn0jz2.tmp +1 -0
  226. package/examples/alteriom/.pio/build/esp32/tmpz4zb75rq.tmp +1 -0
  227. package/examples/alteriom/.pio/build/esp8266/.sconsign311.dblite +0 -0
  228. package/examples/alteriom/.pio/build/esp8266/FrameworkArduino/Crypto.cpp.o +0 -0
  229. package/examples/alteriom/.pio/build/esp8266/FrameworkArduino/Esp-frag.cpp.o +0 -0
  230. package/examples/alteriom/.pio/build/esp8266/FrameworkArduino/Esp-version.cpp.o +0 -0
  231. package/examples/alteriom/.pio/build/esp8266/ld/local.eagle.app.v6.common.ld +285 -0
  232. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/CertStoreBearSSL.cpp.o +0 -0
  233. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFi.cpp.o +0 -0
  234. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiAP.cpp.o +0 -0
  235. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o +0 -0
  236. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiGratuitous.cpp.o +0 -0
  237. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o +0 -0
  238. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiScan.cpp.o +0 -0
  239. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiClient.cpp.o +0 -0
  240. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o +0 -0
  241. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o +0 -0
  242. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiUdp.cpp.o +0 -0
  243. package/examples/alteriom/.pio/build/esp8266/lib720/ESP8266WiFi/enable_wifi_at_boot_time.cpp.o +0 -0
  244. package/examples/alteriom/.pio/build/esp8266/lib837/src/painlessMeshSTA.cpp.o +0 -0
  245. package/examples/alteriom/.pio/build/esp8266/lib837/src/scheduler.cpp.o +0 -0
  246. package/examples/alteriom/.pio/build/esp8266/lib837/src/wifi.cpp.o +0 -0
  247. package/examples/alteriom/.pio/build/esp8266/lib875/TaskScheduler/TaskScheduler.cpp.o +0 -0
  248. package/examples/alteriom/.pio/build/esp8266/lib875/libTaskScheduler.a +0 -0
  249. package/examples/alteriom/.pio/build/esp8266/libFrameworkArduinoVariant.a +1 -0
  250. package/examples/alteriom/.pio/build/esp8266/libdb3/LittleFS/LittleFS.cpp.o +0 -0
  251. package/examples/alteriom/.pio/build/esp8266/libdb3/LittleFS/lfs_util.c.o +0 -0
  252. package/examples/alteriom/.pio/build/esp8266/libf33/ESPAsyncTCP/AsyncPrinter.cpp.o +0 -0
  253. package/examples/alteriom/.pio/build/esp8266/libf33/ESPAsyncTCP/ESPAsyncTCP.cpp.o +0 -0
  254. package/examples/alteriom/.pio/build/esp8266/libf33/ESPAsyncTCP/ESPAsyncTCPbuffer.cpp.o +0 -0
  255. package/examples/alteriom/.pio/build/esp8266/libf33/ESPAsyncTCP/SyncClient.cpp.o +0 -0
  256. package/examples/alteriom/.pio/build/esp8266/libf33/ESPAsyncTCP/tcp_axtls.c.o +0 -0
  257. package/examples/alteriom/.pio/build/esp8266/src/alteriom.ino.cpp.o +0 -0
  258. package/examples/alteriom/.pio/build/project.checksum +1 -0
  259. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/.piopm +1 -0
  260. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/ArduinoJson.h +5 -0
  261. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/LICENSE.txt +10 -0
  262. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/README.md +153 -0
  263. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino +152 -0
  264. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino +64 -0
  265. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino +65 -0
  266. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino +125 -0
  267. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino +65 -0
  268. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonServer/JsonServer.ino +118 -0
  269. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino +106 -0
  270. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino +61 -0
  271. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino +63 -0
  272. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/examples/StringExample/StringExample.ino +76 -0
  273. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/library.json +23 -0
  274. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/library.properties +11 -0
  275. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp +66 -0
  276. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +79 -0
  277. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +75 -0
  278. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +219 -0
  279. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +133 -0
  280. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +96 -0
  281. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +112 -0
  282. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +122 -0
  283. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +137 -0
  284. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Configuration.hpp +285 -0
  285. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +106 -0
  286. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp +35 -0
  287. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +77 -0
  288. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +32 -0
  289. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +74 -0
  290. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +30 -0
  291. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +18 -0
  292. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +56 -0
  293. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +42 -0
  294. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +49 -0
  295. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +29 -0
  296. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +19 -0
  297. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +79 -0
  298. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +426 -0
  299. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +40 -0
  300. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +720 -0
  301. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +165 -0
  302. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +56 -0
  303. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +110 -0
  304. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +177 -0
  305. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +67 -0
  306. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +46 -0
  307. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +60 -0
  308. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp +49 -0
  309. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +110 -0
  310. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp +214 -0
  311. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp +131 -0
  312. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp +52 -0
  313. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp +79 -0
  314. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +88 -0
  315. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp +75 -0
  316. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp +102 -0
  317. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +71 -0
  318. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackBinary.hpp +97 -0
  319. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +487 -0
  320. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackExtension.hpp +120 -0
  321. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +244 -0
  322. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp +46 -0
  323. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +18 -0
  324. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Namespace.hpp +42 -0
  325. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +95 -0
  326. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +212 -0
  327. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp +18 -0
  328. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp +28 -0
  329. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +116 -0
  330. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +145 -0
  331. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +238 -0
  332. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +245 -0
  333. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +166 -0
  334. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp +83 -0
  335. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp +70 -0
  336. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +77 -0
  337. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp +70 -0
  338. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +92 -0
  339. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +30 -0
  340. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +14 -0
  341. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +45 -0
  342. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +21 -0
  343. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp +34 -0
  344. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +45 -0
  345. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +27 -0
  346. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +27 -0
  347. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +144 -0
  348. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +67 -0
  349. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +33 -0
  350. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +25 -0
  351. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp +33 -0
  352. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +14 -0
  353. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +23 -0
  354. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp +27 -0
  355. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +22 -0
  356. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +22 -0
  357. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +27 -0
  358. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +23 -0
  359. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +18 -0
  360. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +46 -0
  361. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +22 -0
  362. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +19 -0
  363. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +32 -0
  364. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +17 -0
  365. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +18 -0
  366. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +26 -0
  367. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +24 -0
  368. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +44 -0
  369. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +24 -0
  370. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +31 -0
  371. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +24 -0
  372. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +16 -0
  373. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp +20 -0
  374. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +27 -0
  375. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +33 -0
  376. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +33 -0
  377. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +47 -0
  378. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +55 -0
  379. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +22 -0
  380. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +29 -0
  381. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +36 -0
  382. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +32 -0
  383. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +42 -0
  384. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +20 -0
  385. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +50 -0
  386. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp +93 -0
  387. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp +118 -0
  388. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp +48 -0
  389. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +19 -0
  390. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp +100 -0
  391. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp +47 -0
  392. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +72 -0
  393. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp +73 -0
  394. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp +23 -0
  395. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +406 -0
  396. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +78 -0
  397. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +197 -0
  398. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp +34 -0
  399. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp +61 -0
  400. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +35 -0
  401. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +211 -0
  402. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +82 -0
  403. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +609 -0
  404. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp +24 -0
  405. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +146 -0
  406. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +188 -0
  407. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +313 -0
  408. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp +175 -0
  409. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp +16 -0
  410. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +34 -0
  411. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/compatibility.hpp +144 -0
  412. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/version.hpp +11 -0
  413. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.h +17 -0
  414. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.hpp +65 -0
  415. package/examples/alteriom/.pio/libdeps/esp32/ArduinoJson/src/CMakeLists.txt +91 -0
  416. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/.piopm +1 -0
  417. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/LICENSE +165 -0
  418. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/README.md +55 -0
  419. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/examples/AsyncSend/AsyncSend.ino +169 -0
  420. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/examples/Client/Client.ino +87 -0
  421. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/examples/FetchWebsite/FetchWebsite.ino +107 -0
  422. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/library.json +31 -0
  423. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/library.properties +11 -0
  424. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.cpp +1612 -0
  425. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.h +335 -0
  426. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPLogging.h +66 -0
  427. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPSimpleIntrusiveList.h +134 -0
  428. package/examples/alteriom/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPVersion.h +40 -0
  429. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/.github/FUNDING.yml +1 -0
  430. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/.github/workflows/doxygen.yml +310 -0
  431. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/.github/workflows/main.yml +309 -0
  432. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/.github/workflows/test.yml +523 -0
  433. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/.piopm +1 -0
  434. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/LICENSE.txt +27 -0
  435. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/README.md +157 -0
  436. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink/Scheduler_example00_Blink.ino +303 -0
  437. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink_Namespace/Scheduler_example00_Blink_Namespace.ino +302 -0
  438. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example01/Scheduler_example01.ino +84 -0
  439. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example02/Scheduler_example02.ino +78 -0
  440. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example03/Scheduler_example03.ino +80 -0
  441. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example04_StatusRequest/Scheduler_example04_StatusRequest.ino +90 -0
  442. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example05_StatusRequest/Scheduler_example05_StatusRequest.ino +181 -0
  443. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example06_IDLE/Scheduler_example06_IDLE.ino +117 -0
  444. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example07_WDT/Scheduler_example07_WDT.ino +133 -0
  445. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example08_LTS/Scheduler_example08_LTS.ino +147 -0
  446. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example09_TimeCritical/Scheduler_example09_TimeCritical.ino +57 -0
  447. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example10_Benchmark/Scheduler_example10_Benchmark.ino +106 -0
  448. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example11_Priority/Scheduler_example11_Priority.ino +105 -0
  449. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example12_Priority/Scheduler_example12_Priority.ino +136 -0
  450. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example13_Micros/Scheduler_example13_Micros.ino +71 -0
  451. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example14_Yield/Scheduler_example14_Yield.ino +339 -0
  452. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example15_STDFunction/Scheduler_example15_STDFunction.ino +53 -0
  453. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/Scheduler_example16_Multitab.ino +18 -0
  454. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file1.cpp +31 -0
  455. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file2.cpp +55 -0
  456. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/header.hpp +15 -0
  457. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/ts.cpp +20 -0
  458. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example17_Timeout/Scheduler_example17_Timeout.ino +90 -0
  459. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example18_StatusRequest_LTS_WDT_Timeout/Scheduler_example18_StatusRequest_LTS_WDT_Timeout.ino +172 -0
  460. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks/Scheduler_example19_Dynamic_Tasks.ino +137 -0
  461. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_SelfDestruct/Scheduler_example19_Dynamic_Tasks_SelfDestruct.ino +130 -0
  462. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_stdQueue/Scheduler_example19_Dynamic_Tasks_stdQueue.ino +137 -0
  463. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object.ino +185 -0
  464. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.cpp +36 -0
  465. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.h +25 -0
  466. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.cpp +66 -0
  467. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.h +34 -0
  468. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Scheduler_example21_OO_Callbacks.ino +76 -0
  469. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.cpp +83 -0
  470. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.h +44 -0
  471. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.cpp +21 -0
  472. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.h +28 -0
  473. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example23_IDLE_Callback/Scheduler_example23_IDLE_Callback.ino +157 -0
  474. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example24_CPU_LOAD/Scheduler_example24_CPU_LOAD.ino +87 -0
  475. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example25_SCHEDULER_CHAIN/Scheduler_example25_SCHEDULER_CHAIN.ino +127 -0
  476. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example26_SCHEDULING_OPTIONS/Scheduler_example26_SCHEDULING_OPTIONS.ino +181 -0
  477. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/README +39 -0
  478. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/led.h +12 -0
  479. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/main.h +25 -0
  480. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/lib/README +46 -0
  481. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/platformio.ini +37 -0
  482. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/led.cpp +11 -0
  483. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/main.cpp +254 -0
  484. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/test/README +11 -0
  485. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example28_Tickless/Scheduler_example28_Tickless.ino +105 -0
  486. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/README +39 -0
  487. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/led.h +12 -0
  488. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/main.h +27 -0
  489. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/lib/README +46 -0
  490. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/platformio.ini +38 -0
  491. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/led.cpp +13 -0
  492. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/main.cpp +267 -0
  493. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/test/README +11 -0
  494. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/README.md +232 -0
  495. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/platformio.ini +44 -0
  496. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/src/main.cpp +310 -0
  497. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_template/Scheduler_template.ino +166 -0
  498. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/keywords.txt +161 -0
  499. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/library.json +22 -0
  500. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/library.properties +9 -0
  501. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TScheduler.hpp +29 -0
  502. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TSchedulerDeclarations.hpp +29 -0
  503. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.cpp +3 -0
  504. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.h +1811 -0
  505. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerDeclarations.h +3096 -0
  506. package/examples/alteriom/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerSleepMethods.h +399 -0
  507. package/examples/alteriom/.pio/libdeps/esp32/integrity.dat +3 -0
  508. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/.piopm +1 -0
  509. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/ArduinoJson.h +5 -0
  510. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/LICENSE.txt +10 -0
  511. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/README.md +153 -0
  512. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino +152 -0
  513. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino +64 -0
  514. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino +65 -0
  515. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino +125 -0
  516. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino +65 -0
  517. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonServer/JsonServer.ino +118 -0
  518. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino +106 -0
  519. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino +61 -0
  520. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino +63 -0
  521. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/examples/StringExample/StringExample.ino +76 -0
  522. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/library.json +23 -0
  523. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/library.properties +11 -0
  524. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp +66 -0
  525. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +79 -0
  526. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +75 -0
  527. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +219 -0
  528. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +133 -0
  529. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +96 -0
  530. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +112 -0
  531. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +122 -0
  532. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +137 -0
  533. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Configuration.hpp +285 -0
  534. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +106 -0
  535. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp +35 -0
  536. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +77 -0
  537. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +32 -0
  538. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +74 -0
  539. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +30 -0
  540. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +18 -0
  541. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +56 -0
  542. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +42 -0
  543. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +49 -0
  544. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +29 -0
  545. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +19 -0
  546. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +79 -0
  547. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +426 -0
  548. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +40 -0
  549. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +720 -0
  550. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +165 -0
  551. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +56 -0
  552. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +110 -0
  553. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +177 -0
  554. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +67 -0
  555. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +46 -0
  556. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +60 -0
  557. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp +49 -0
  558. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +110 -0
  559. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp +214 -0
  560. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp +131 -0
  561. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp +52 -0
  562. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp +79 -0
  563. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +88 -0
  564. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp +75 -0
  565. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp +102 -0
  566. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +71 -0
  567. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackBinary.hpp +97 -0
  568. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +487 -0
  569. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackExtension.hpp +120 -0
  570. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +244 -0
  571. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp +46 -0
  572. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +18 -0
  573. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Namespace.hpp +42 -0
  574. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +95 -0
  575. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +212 -0
  576. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp +18 -0
  577. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp +28 -0
  578. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +116 -0
  579. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +145 -0
  580. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +238 -0
  581. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +245 -0
  582. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +166 -0
  583. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp +83 -0
  584. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp +70 -0
  585. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +77 -0
  586. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp +70 -0
  587. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +92 -0
  588. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +30 -0
  589. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +14 -0
  590. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +45 -0
  591. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +21 -0
  592. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp +34 -0
  593. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +45 -0
  594. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +27 -0
  595. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +27 -0
  596. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +144 -0
  597. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +67 -0
  598. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +33 -0
  599. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +25 -0
  600. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp +33 -0
  601. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +14 -0
  602. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +23 -0
  603. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp +27 -0
  604. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +22 -0
  605. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +22 -0
  606. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +27 -0
  607. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +23 -0
  608. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +18 -0
  609. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +46 -0
  610. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +22 -0
  611. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +19 -0
  612. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +32 -0
  613. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +17 -0
  614. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +18 -0
  615. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +26 -0
  616. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +24 -0
  617. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +44 -0
  618. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +24 -0
  619. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +31 -0
  620. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +24 -0
  621. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +16 -0
  622. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp +20 -0
  623. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +27 -0
  624. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +33 -0
  625. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +33 -0
  626. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +47 -0
  627. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +55 -0
  628. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +22 -0
  629. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +29 -0
  630. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +36 -0
  631. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +32 -0
  632. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +42 -0
  633. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +20 -0
  634. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +50 -0
  635. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp +93 -0
  636. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp +118 -0
  637. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp +48 -0
  638. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +19 -0
  639. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp +100 -0
  640. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp +47 -0
  641. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +72 -0
  642. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp +73 -0
  643. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp +23 -0
  644. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +406 -0
  645. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +78 -0
  646. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +197 -0
  647. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp +34 -0
  648. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp +61 -0
  649. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +35 -0
  650. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +211 -0
  651. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +82 -0
  652. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +609 -0
  653. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp +24 -0
  654. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +146 -0
  655. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +188 -0
  656. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +313 -0
  657. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp +175 -0
  658. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp +16 -0
  659. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +34 -0
  660. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/compatibility.hpp +144 -0
  661. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/version.hpp +11 -0
  662. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.h +17 -0
  663. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.hpp +65 -0
  664. package/examples/alteriom/.pio/libdeps/esp8266/ArduinoJson/src/CMakeLists.txt +91 -0
  665. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-arduino-core-esp8266.sh +29 -0
  666. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-arduino-ide.sh +220 -0
  667. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-platformio.sh +133 -0
  668. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/on-push.sh +64 -0
  669. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/stale.yml +31 -0
  670. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.github/workflows/push.yml +30 -0
  671. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/.piopm +1 -0
  672. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/LICENSE.txt +165 -0
  673. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/README.md +43 -0
  674. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/Client.ino +62 -0
  675. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/config.h +23 -0
  676. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/Server.ino +73 -0
  677. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/config.h +23 -0
  678. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/SyncClient/.esp31b.skip +0 -0
  679. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/examples/SyncClient/SyncClient.ino +54 -0
  680. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/library.json +19 -0
  681. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/library.properties +10 -0
  682. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.cpp +214 -0
  683. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.h +73 -0
  684. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/DebugPrintMacros.h +112 -0
  685. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.cpp +1406 -0
  686. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.h +324 -0
  687. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.cpp +555 -0
  688. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.h +118 -0
  689. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.cpp +414 -0
  690. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.h +109 -0
  691. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/async_config.h +42 -0
  692. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.c +613 -0
  693. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.h +98 -0
  694. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/gen_server_cert.sh +36 -0
  695. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/server.cer +0 -0
  696. package/examples/alteriom/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/server.key +0 -0
  697. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/.github/FUNDING.yml +1 -0
  698. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/doxygen.yml +310 -0
  699. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/main.yml +309 -0
  700. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/test.yml +523 -0
  701. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/.piopm +1 -0
  702. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/LICENSE.txt +27 -0
  703. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/README.md +157 -0
  704. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example00_Blink/Scheduler_example00_Blink.ino +303 -0
  705. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example00_Blink_Namespace/Scheduler_example00_Blink_Namespace.ino +302 -0
  706. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example01/Scheduler_example01.ino +84 -0
  707. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example02/Scheduler_example02.ino +78 -0
  708. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example03/Scheduler_example03.ino +80 -0
  709. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example04_StatusRequest/Scheduler_example04_StatusRequest.ino +90 -0
  710. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example05_StatusRequest/Scheduler_example05_StatusRequest.ino +181 -0
  711. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example06_IDLE/Scheduler_example06_IDLE.ino +117 -0
  712. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example07_WDT/Scheduler_example07_WDT.ino +133 -0
  713. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example08_LTS/Scheduler_example08_LTS.ino +147 -0
  714. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example09_TimeCritical/Scheduler_example09_TimeCritical.ino +57 -0
  715. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example10_Benchmark/Scheduler_example10_Benchmark.ino +106 -0
  716. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example11_Priority/Scheduler_example11_Priority.ino +105 -0
  717. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example12_Priority/Scheduler_example12_Priority.ino +136 -0
  718. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example13_Micros/Scheduler_example13_Micros.ino +71 -0
  719. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example14_Yield/Scheduler_example14_Yield.ino +339 -0
  720. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example15_STDFunction/Scheduler_example15_STDFunction.ino +53 -0
  721. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/Scheduler_example16_Multitab.ino +18 -0
  722. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/file1.cpp +31 -0
  723. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/file2.cpp +55 -0
  724. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/header.hpp +15 -0
  725. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/ts.cpp +20 -0
  726. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example17_Timeout/Scheduler_example17_Timeout.ino +90 -0
  727. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example18_StatusRequest_LTS_WDT_Timeout/Scheduler_example18_StatusRequest_LTS_WDT_Timeout.ino +172 -0
  728. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks/Scheduler_example19_Dynamic_Tasks.ino +137 -0
  729. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_SelfDestruct/Scheduler_example19_Dynamic_Tasks_SelfDestruct.ino +130 -0
  730. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_stdQueue/Scheduler_example19_Dynamic_Tasks_stdQueue.ino +137 -0
  731. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object.ino +185 -0
  732. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.cpp +36 -0
  733. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.h +25 -0
  734. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.cpp +66 -0
  735. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.h +34 -0
  736. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Scheduler_example21_OO_Callbacks.ino +76 -0
  737. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.cpp +83 -0
  738. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.h +44 -0
  739. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.cpp +21 -0
  740. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.h +28 -0
  741. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example23_IDLE_Callback/Scheduler_example23_IDLE_Callback.ino +157 -0
  742. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example24_CPU_LOAD/Scheduler_example24_CPU_LOAD.ino +87 -0
  743. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example25_SCHEDULER_CHAIN/Scheduler_example25_SCHEDULER_CHAIN.ino +127 -0
  744. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example26_SCHEDULING_OPTIONS/Scheduler_example26_SCHEDULING_OPTIONS.ino +181 -0
  745. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/README +39 -0
  746. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/led.h +12 -0
  747. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/main.h +25 -0
  748. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/lib/README +46 -0
  749. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/platformio.ini +37 -0
  750. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/led.cpp +11 -0
  751. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/main.cpp +254 -0
  752. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/test/README +11 -0
  753. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example28_Tickless/Scheduler_example28_Tickless.ino +105 -0
  754. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/README +39 -0
  755. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/led.h +12 -0
  756. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/main.h +27 -0
  757. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/lib/README +46 -0
  758. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/platformio.ini +38 -0
  759. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/src/led.cpp +13 -0
  760. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/src/main.cpp +267 -0
  761. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/test/README +11 -0
  762. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/README.md +232 -0
  763. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/platformio.ini +44 -0
  764. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/src/main.cpp +310 -0
  765. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_template/Scheduler_template.ino +166 -0
  766. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/keywords.txt +161 -0
  767. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/library.json +22 -0
  768. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/library.properties +9 -0
  769. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TScheduler.hpp +29 -0
  770. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TSchedulerDeclarations.hpp +29 -0
  771. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TaskScheduler.cpp +3 -0
  772. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TaskScheduler.h +1811 -0
  773. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TaskSchedulerDeclarations.h +3096 -0
  774. package/examples/alteriom/.pio/libdeps/esp8266/TaskScheduler/src/TaskSchedulerSleepMethods.h +399 -0
  775. package/examples/alteriom/.pio/libdeps/esp8266/integrity.dat +3 -0
  776. package/examples/alteriom/README.md +139 -139
  777. package/examples/alteriom/alteriom.ino +186 -186
  778. package/examples/alteriom/alteriom_sensor_package.hpp +240 -240
  779. package/examples/alteriom/platformio.ini +24 -24
  780. package/examples/alteriomImproved/alteriom_sensor_package.hpp +223 -223
  781. package/examples/alteriomImproved/improved_sensor_node.ino +245 -245
  782. package/examples/alteriomImproved/platformio.ini +24 -24
  783. package/examples/alteriomPhase1/alteriom_sensor_package.hpp +223 -223
  784. package/examples/alteriomPhase1/phase1_features.ino +242 -242
  785. package/examples/alteriomPhase1/platformio.ini +24 -24
  786. package/examples/alteriomPhase2/alteriom_sensor_package.hpp +223 -223
  787. package/examples/alteriomPhase2/phase2_features.ino +186 -186
  788. package/examples/alteriomPhase2/platformio.ini +24 -24
  789. package/examples/alteriomSensorNode/alteriom_sensor_node.ino +183 -183
  790. package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +223 -223
  791. package/examples/alteriomSensorNode/platformio.ini +24 -24
  792. package/examples/basic/.pio/build/esp32/.sconsign311.dblite +0 -0
  793. package/examples/basic/.pio/build/esp32/bootloader.bin +0 -0
  794. package/examples/basic/.pio/build/esp32/lib241/TaskScheduler/TaskScheduler.cpp.d +2 -0
  795. package/examples/basic/.pio/build/esp32/lib241/TaskScheduler/TaskScheduler.cpp.o +0 -0
  796. package/examples/basic/.pio/build/esp32/lib241/libTaskScheduler.a +0 -0
  797. package/examples/basic/.pio/build/esp32/lib4f2/FS/FS.cpp.d +138 -0
  798. package/examples/basic/.pio/build/esp32/lib4f2/FS/FS.cpp.o +0 -0
  799. package/examples/basic/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.d +139 -0
  800. package/examples/basic/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.o +0 -0
  801. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.d +203 -0
  802. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.o +0 -0
  803. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.d +204 -0
  804. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.o +0 -0
  805. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.d +209 -0
  806. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.o +0 -0
  807. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.d +206 -0
  808. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.o +0 -0
  809. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.d +199 -0
  810. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.o +0 -0
  811. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.d +206 -0
  812. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.o +0 -0
  813. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.d +204 -0
  814. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.o +0 -0
  815. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.d +172 -0
  816. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.o +0 -0
  817. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.d +171 -0
  818. package/examples/basic/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.o +0 -0
  819. package/examples/basic/.pio/build/esp32/lib8c7/AsyncTCP/AsyncTCP.cpp.d +189 -0
  820. package/examples/basic/.pio/build/esp32/lib8c7/AsyncTCP/AsyncTCP.cpp.o +0 -0
  821. package/examples/basic/.pio/build/esp32/partitions.bin +0 -0
  822. package/examples/basic/.pio/build/esp32/src/basic.ino.cpp.d +238 -0
  823. package/examples/basic/.pio/build/esp32/src/basic.ino.cpp.o +0 -0
  824. package/examples/basic/.pio/build/esp8266/.sconsign311.dblite +0 -0
  825. package/examples/basic/.pio/build/esp8266/FrameworkArduino/Esp-frag.cpp.o +0 -0
  826. package/examples/basic/.pio/build/esp8266/FrameworkArduino/Esp-version.cpp.o +0 -0
  827. package/examples/basic/.pio/build/esp8266/FrameworkArduino/Esp.cpp.o +0 -0
  828. package/examples/basic/.pio/build/esp8266/FrameworkArduino/FS.cpp.o +0 -0
  829. package/examples/basic/.pio/build/esp8266/FrameworkArduino/FSnoop.cpp.o +0 -0
  830. package/examples/basic/.pio/build/esp8266/FrameworkArduino/FunctionalInterrupt.cpp.o +0 -0
  831. package/examples/basic/.pio/build/esp8266/ld/local.eagle.app.v6.common.ld +285 -0
  832. package/examples/basic/.pio/build/esp8266/lib5e7/TaskScheduler/TaskScheduler.cpp.o +0 -0
  833. package/examples/basic/.pio/build/esp8266/lib5e7/libTaskScheduler.a +0 -0
  834. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/BearSSLHelpers.cpp.o +0 -0
  835. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/CertStoreBearSSL.cpp.o +0 -0
  836. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFi.cpp.o +0 -0
  837. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiAP.cpp.o +0 -0
  838. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o +0 -0
  839. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiGratuitous.cpp.o +0 -0
  840. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiMulti.cpp.o +0 -0
  841. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o +0 -0
  842. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiSTA.cpp.o +0 -0
  843. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/ESP8266WiFiScan.cpp.o +0 -0
  844. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiClient.cpp.o +0 -0
  845. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o +0 -0
  846. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o +0 -0
  847. package/examples/basic/.pio/build/esp8266/lib720/ESP8266WiFi/WiFiUdp.cpp.o +0 -0
  848. package/examples/basic/.pio/build/esp8266/lib837/src/scheduler.cpp.o +0 -0
  849. package/examples/basic/.pio/build/esp8266/libFrameworkArduinoVariant.a +1 -0
  850. package/examples/basic/.pio/build/esp8266/libdb3/LittleFS/LittleFS.cpp.o +0 -0
  851. package/examples/basic/.pio/build/esp8266/libdb3/LittleFS/lfs_util.c.o +0 -0
  852. package/examples/basic/.pio/build/esp8266/libf28/ESPAsyncTCP/AsyncPrinter.cpp.o +0 -0
  853. package/examples/basic/.pio/build/esp8266/libf28/ESPAsyncTCP/ESPAsyncTCP.cpp.o +0 -0
  854. package/examples/basic/.pio/build/esp8266/libf28/ESPAsyncTCP/ESPAsyncTCPbuffer.cpp.o +0 -0
  855. package/examples/basic/.pio/build/esp8266/libf28/ESPAsyncTCP/SyncClient.cpp.o +0 -0
  856. package/examples/basic/.pio/build/esp8266/libf28/ESPAsyncTCP/tcp_axtls.c.o +0 -0
  857. package/examples/basic/.pio/build/esp8266/src/basic.ino.cpp.o +0 -0
  858. package/examples/basic/.pio/build/project.checksum +1 -0
  859. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/.piopm +1 -0
  860. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/ArduinoJson.h +5 -0
  861. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/LICENSE.txt +10 -0
  862. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/README.md +153 -0
  863. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino +152 -0
  864. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino +64 -0
  865. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino +65 -0
  866. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino +125 -0
  867. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino +65 -0
  868. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonServer/JsonServer.ino +118 -0
  869. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino +106 -0
  870. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino +61 -0
  871. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino +63 -0
  872. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/examples/StringExample/StringExample.ino +76 -0
  873. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/library.json +23 -0
  874. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/library.properties +11 -0
  875. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp +66 -0
  876. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +79 -0
  877. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +75 -0
  878. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +219 -0
  879. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +133 -0
  880. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +96 -0
  881. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +112 -0
  882. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +122 -0
  883. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +137 -0
  884. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Configuration.hpp +285 -0
  885. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +106 -0
  886. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp +35 -0
  887. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +77 -0
  888. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +32 -0
  889. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +74 -0
  890. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +30 -0
  891. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +18 -0
  892. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +56 -0
  893. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +42 -0
  894. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +49 -0
  895. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +29 -0
  896. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +19 -0
  897. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +79 -0
  898. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +426 -0
  899. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +40 -0
  900. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +720 -0
  901. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +165 -0
  902. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +56 -0
  903. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +110 -0
  904. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +177 -0
  905. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +67 -0
  906. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +46 -0
  907. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +60 -0
  908. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp +49 -0
  909. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +110 -0
  910. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp +214 -0
  911. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp +131 -0
  912. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp +52 -0
  913. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp +79 -0
  914. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +88 -0
  915. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp +75 -0
  916. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp +102 -0
  917. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +71 -0
  918. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackBinary.hpp +97 -0
  919. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +487 -0
  920. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackExtension.hpp +120 -0
  921. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +244 -0
  922. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp +46 -0
  923. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +18 -0
  924. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Namespace.hpp +42 -0
  925. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +95 -0
  926. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +212 -0
  927. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp +18 -0
  928. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp +28 -0
  929. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +116 -0
  930. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +145 -0
  931. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +238 -0
  932. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +245 -0
  933. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +166 -0
  934. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp +83 -0
  935. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp +70 -0
  936. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +77 -0
  937. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp +70 -0
  938. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +92 -0
  939. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +30 -0
  940. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +14 -0
  941. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +45 -0
  942. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +21 -0
  943. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp +34 -0
  944. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +45 -0
  945. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +27 -0
  946. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +27 -0
  947. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +144 -0
  948. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +67 -0
  949. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +33 -0
  950. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +25 -0
  951. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp +33 -0
  952. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +14 -0
  953. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +23 -0
  954. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp +27 -0
  955. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +22 -0
  956. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +22 -0
  957. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +27 -0
  958. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +23 -0
  959. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +18 -0
  960. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +46 -0
  961. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +22 -0
  962. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +19 -0
  963. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +32 -0
  964. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +17 -0
  965. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +18 -0
  966. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +26 -0
  967. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +24 -0
  968. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +44 -0
  969. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +24 -0
  970. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +31 -0
  971. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +24 -0
  972. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +16 -0
  973. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp +20 -0
  974. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +27 -0
  975. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +33 -0
  976. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +33 -0
  977. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +47 -0
  978. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +55 -0
  979. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +22 -0
  980. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +29 -0
  981. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +36 -0
  982. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +32 -0
  983. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +42 -0
  984. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +20 -0
  985. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +50 -0
  986. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp +93 -0
  987. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp +118 -0
  988. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp +48 -0
  989. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +19 -0
  990. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp +100 -0
  991. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp +47 -0
  992. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +72 -0
  993. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp +73 -0
  994. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp +23 -0
  995. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +406 -0
  996. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +78 -0
  997. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +197 -0
  998. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp +34 -0
  999. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp +61 -0
  1000. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +35 -0
  1001. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +211 -0
  1002. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +82 -0
  1003. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +609 -0
  1004. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp +24 -0
  1005. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +146 -0
  1006. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +188 -0
  1007. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +313 -0
  1008. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp +175 -0
  1009. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp +16 -0
  1010. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +34 -0
  1011. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/compatibility.hpp +144 -0
  1012. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/version.hpp +11 -0
  1013. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.h +17 -0
  1014. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.hpp +65 -0
  1015. package/examples/basic/.pio/libdeps/esp32/ArduinoJson/src/CMakeLists.txt +91 -0
  1016. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/.piopm +1 -0
  1017. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/LICENSE +165 -0
  1018. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/README.md +55 -0
  1019. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/examples/AsyncSend/AsyncSend.ino +169 -0
  1020. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/examples/Client/Client.ino +87 -0
  1021. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/examples/FetchWebsite/FetchWebsite.ino +107 -0
  1022. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/library.json +31 -0
  1023. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/library.properties +11 -0
  1024. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.cpp +1612 -0
  1025. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.h +335 -0
  1026. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPLogging.h +66 -0
  1027. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPSimpleIntrusiveList.h +134 -0
  1028. package/examples/basic/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCPVersion.h +40 -0
  1029. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/.github/FUNDING.yml +1 -0
  1030. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/.github/workflows/doxygen.yml +310 -0
  1031. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/.github/workflows/main.yml +309 -0
  1032. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/.github/workflows/test.yml +523 -0
  1033. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/.piopm +1 -0
  1034. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/LICENSE.txt +27 -0
  1035. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/README.md +157 -0
  1036. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink/Scheduler_example00_Blink.ino +303 -0
  1037. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink_Namespace/Scheduler_example00_Blink_Namespace.ino +302 -0
  1038. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example01/Scheduler_example01.ino +84 -0
  1039. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example02/Scheduler_example02.ino +78 -0
  1040. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example03/Scheduler_example03.ino +80 -0
  1041. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example04_StatusRequest/Scheduler_example04_StatusRequest.ino +90 -0
  1042. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example05_StatusRequest/Scheduler_example05_StatusRequest.ino +181 -0
  1043. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example06_IDLE/Scheduler_example06_IDLE.ino +117 -0
  1044. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example07_WDT/Scheduler_example07_WDT.ino +133 -0
  1045. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example08_LTS/Scheduler_example08_LTS.ino +147 -0
  1046. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example09_TimeCritical/Scheduler_example09_TimeCritical.ino +57 -0
  1047. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example10_Benchmark/Scheduler_example10_Benchmark.ino +106 -0
  1048. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example11_Priority/Scheduler_example11_Priority.ino +105 -0
  1049. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example12_Priority/Scheduler_example12_Priority.ino +136 -0
  1050. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example13_Micros/Scheduler_example13_Micros.ino +71 -0
  1051. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example14_Yield/Scheduler_example14_Yield.ino +339 -0
  1052. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example15_STDFunction/Scheduler_example15_STDFunction.ino +53 -0
  1053. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/Scheduler_example16_Multitab.ino +18 -0
  1054. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file1.cpp +31 -0
  1055. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file2.cpp +55 -0
  1056. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/header.hpp +15 -0
  1057. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/ts.cpp +20 -0
  1058. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example17_Timeout/Scheduler_example17_Timeout.ino +90 -0
  1059. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example18_StatusRequest_LTS_WDT_Timeout/Scheduler_example18_StatusRequest_LTS_WDT_Timeout.ino +172 -0
  1060. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks/Scheduler_example19_Dynamic_Tasks.ino +137 -0
  1061. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_SelfDestruct/Scheduler_example19_Dynamic_Tasks_SelfDestruct.ino +130 -0
  1062. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_stdQueue/Scheduler_example19_Dynamic_Tasks_stdQueue.ino +137 -0
  1063. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object.ino +185 -0
  1064. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.cpp +36 -0
  1065. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.h +25 -0
  1066. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.cpp +66 -0
  1067. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.h +34 -0
  1068. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Scheduler_example21_OO_Callbacks.ino +76 -0
  1069. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.cpp +83 -0
  1070. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.h +44 -0
  1071. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.cpp +21 -0
  1072. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.h +28 -0
  1073. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example23_IDLE_Callback/Scheduler_example23_IDLE_Callback.ino +157 -0
  1074. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example24_CPU_LOAD/Scheduler_example24_CPU_LOAD.ino +87 -0
  1075. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example25_SCHEDULER_CHAIN/Scheduler_example25_SCHEDULER_CHAIN.ino +127 -0
  1076. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example26_SCHEDULING_OPTIONS/Scheduler_example26_SCHEDULING_OPTIONS.ino +181 -0
  1077. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/README +39 -0
  1078. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/led.h +12 -0
  1079. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/main.h +25 -0
  1080. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/lib/README +46 -0
  1081. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/platformio.ini +37 -0
  1082. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/led.cpp +11 -0
  1083. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/main.cpp +254 -0
  1084. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/test/README +11 -0
  1085. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example28_Tickless/Scheduler_example28_Tickless.ino +105 -0
  1086. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/README +39 -0
  1087. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/led.h +12 -0
  1088. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/main.h +27 -0
  1089. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/lib/README +46 -0
  1090. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/platformio.ini +38 -0
  1091. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/led.cpp +13 -0
  1092. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/main.cpp +267 -0
  1093. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/test/README +11 -0
  1094. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/README.md +232 -0
  1095. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/platformio.ini +44 -0
  1096. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/src/main.cpp +310 -0
  1097. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_template/Scheduler_template.ino +166 -0
  1098. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/keywords.txt +161 -0
  1099. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/library.json +22 -0
  1100. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/library.properties +9 -0
  1101. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TScheduler.hpp +29 -0
  1102. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TSchedulerDeclarations.hpp +29 -0
  1103. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.cpp +3 -0
  1104. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.h +1811 -0
  1105. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerDeclarations.h +3096 -0
  1106. package/examples/basic/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerSleepMethods.h +399 -0
  1107. package/examples/basic/.pio/libdeps/esp32/integrity.dat +3 -0
  1108. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/.piopm +1 -0
  1109. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/ArduinoJson.h +5 -0
  1110. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/LICENSE.txt +10 -0
  1111. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/README.md +153 -0
  1112. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino +152 -0
  1113. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino +64 -0
  1114. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino +65 -0
  1115. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino +125 -0
  1116. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino +65 -0
  1117. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonServer/JsonServer.ino +118 -0
  1118. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino +106 -0
  1119. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino +61 -0
  1120. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino +63 -0
  1121. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/examples/StringExample/StringExample.ino +76 -0
  1122. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/library.json +23 -0
  1123. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/library.properties +11 -0
  1124. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp +66 -0
  1125. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +79 -0
  1126. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +75 -0
  1127. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +219 -0
  1128. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +133 -0
  1129. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +96 -0
  1130. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +112 -0
  1131. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +122 -0
  1132. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +137 -0
  1133. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Configuration.hpp +285 -0
  1134. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +106 -0
  1135. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp +35 -0
  1136. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +77 -0
  1137. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +32 -0
  1138. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +74 -0
  1139. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +30 -0
  1140. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +18 -0
  1141. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +56 -0
  1142. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +42 -0
  1143. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +49 -0
  1144. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +29 -0
  1145. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +19 -0
  1146. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +79 -0
  1147. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +426 -0
  1148. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +40 -0
  1149. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +720 -0
  1150. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +165 -0
  1151. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +56 -0
  1152. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +110 -0
  1153. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +177 -0
  1154. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +67 -0
  1155. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +46 -0
  1156. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +60 -0
  1157. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp +49 -0
  1158. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +110 -0
  1159. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp +214 -0
  1160. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp +131 -0
  1161. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp +52 -0
  1162. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp +79 -0
  1163. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +88 -0
  1164. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp +75 -0
  1165. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp +102 -0
  1166. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +71 -0
  1167. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackBinary.hpp +97 -0
  1168. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +487 -0
  1169. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackExtension.hpp +120 -0
  1170. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +244 -0
  1171. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp +46 -0
  1172. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +18 -0
  1173. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Namespace.hpp +42 -0
  1174. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +95 -0
  1175. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +212 -0
  1176. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp +18 -0
  1177. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp +28 -0
  1178. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +116 -0
  1179. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +145 -0
  1180. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +238 -0
  1181. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +245 -0
  1182. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +166 -0
  1183. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp +83 -0
  1184. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp +70 -0
  1185. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +77 -0
  1186. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp +70 -0
  1187. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +92 -0
  1188. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +30 -0
  1189. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +14 -0
  1190. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +45 -0
  1191. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +21 -0
  1192. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp +34 -0
  1193. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +45 -0
  1194. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +27 -0
  1195. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +27 -0
  1196. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +144 -0
  1197. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +67 -0
  1198. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +33 -0
  1199. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +25 -0
  1200. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp +33 -0
  1201. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +14 -0
  1202. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +23 -0
  1203. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp +27 -0
  1204. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +22 -0
  1205. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +22 -0
  1206. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +27 -0
  1207. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +23 -0
  1208. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +18 -0
  1209. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +46 -0
  1210. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +22 -0
  1211. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +19 -0
  1212. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +32 -0
  1213. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +17 -0
  1214. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +18 -0
  1215. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +26 -0
  1216. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +24 -0
  1217. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +44 -0
  1218. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +24 -0
  1219. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +31 -0
  1220. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +24 -0
  1221. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +16 -0
  1222. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp +20 -0
  1223. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +27 -0
  1224. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +33 -0
  1225. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +33 -0
  1226. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +47 -0
  1227. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +55 -0
  1228. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +22 -0
  1229. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +29 -0
  1230. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +36 -0
  1231. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +32 -0
  1232. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +42 -0
  1233. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +20 -0
  1234. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +50 -0
  1235. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp +93 -0
  1236. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp +118 -0
  1237. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp +48 -0
  1238. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +19 -0
  1239. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp +100 -0
  1240. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp +47 -0
  1241. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +72 -0
  1242. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp +73 -0
  1243. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp +23 -0
  1244. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +406 -0
  1245. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +78 -0
  1246. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +197 -0
  1247. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp +34 -0
  1248. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp +61 -0
  1249. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +35 -0
  1250. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +211 -0
  1251. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +82 -0
  1252. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +609 -0
  1253. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp +24 -0
  1254. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +146 -0
  1255. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +188 -0
  1256. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +313 -0
  1257. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp +175 -0
  1258. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp +16 -0
  1259. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +34 -0
  1260. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/compatibility.hpp +144 -0
  1261. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson/version.hpp +11 -0
  1262. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.h +17 -0
  1263. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/ArduinoJson.hpp +65 -0
  1264. package/examples/basic/.pio/libdeps/esp8266/ArduinoJson/src/CMakeLists.txt +91 -0
  1265. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-arduino-core-esp8266.sh +29 -0
  1266. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-arduino-ide.sh +220 -0
  1267. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/install-platformio.sh +133 -0
  1268. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/scripts/on-push.sh +64 -0
  1269. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/stale.yml +31 -0
  1270. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.github/workflows/push.yml +30 -0
  1271. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/.piopm +1 -0
  1272. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/LICENSE.txt +165 -0
  1273. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/README.md +43 -0
  1274. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/Client.ino +62 -0
  1275. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Client/config.h +23 -0
  1276. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/Server.ino +73 -0
  1277. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/ClientServer/Server/config.h +23 -0
  1278. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/SyncClient/.esp31b.skip +0 -0
  1279. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/examples/SyncClient/SyncClient.ino +54 -0
  1280. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/library.json +19 -0
  1281. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/library.properties +10 -0
  1282. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.cpp +214 -0
  1283. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/AsyncPrinter.h +73 -0
  1284. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/DebugPrintMacros.h +112 -0
  1285. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.cpp +1406 -0
  1286. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCP.h +324 -0
  1287. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.cpp +555 -0
  1288. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/ESPAsyncTCPbuffer.h +118 -0
  1289. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.cpp +414 -0
  1290. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/SyncClient.h +109 -0
  1291. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/async_config.h +42 -0
  1292. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.c +613 -0
  1293. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/src/tcp_axtls.h +98 -0
  1294. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/gen_server_cert.sh +36 -0
  1295. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/server.cer +0 -0
  1296. package/examples/basic/.pio/libdeps/esp8266/ESPAsyncTCP/ssl/server.key +0 -0
  1297. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/.github/FUNDING.yml +1 -0
  1298. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/doxygen.yml +310 -0
  1299. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/main.yml +309 -0
  1300. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/.github/workflows/test.yml +523 -0
  1301. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/.piopm +1 -0
  1302. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/LICENSE.txt +27 -0
  1303. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/README.md +157 -0
  1304. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example00_Blink/Scheduler_example00_Blink.ino +303 -0
  1305. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example00_Blink_Namespace/Scheduler_example00_Blink_Namespace.ino +302 -0
  1306. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example01/Scheduler_example01.ino +84 -0
  1307. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example02/Scheduler_example02.ino +78 -0
  1308. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example03/Scheduler_example03.ino +80 -0
  1309. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example04_StatusRequest/Scheduler_example04_StatusRequest.ino +90 -0
  1310. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example05_StatusRequest/Scheduler_example05_StatusRequest.ino +181 -0
  1311. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example06_IDLE/Scheduler_example06_IDLE.ino +117 -0
  1312. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example07_WDT/Scheduler_example07_WDT.ino +133 -0
  1313. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example08_LTS/Scheduler_example08_LTS.ino +147 -0
  1314. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example09_TimeCritical/Scheduler_example09_TimeCritical.ino +57 -0
  1315. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example10_Benchmark/Scheduler_example10_Benchmark.ino +106 -0
  1316. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example11_Priority/Scheduler_example11_Priority.ino +105 -0
  1317. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example12_Priority/Scheduler_example12_Priority.ino +136 -0
  1318. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example13_Micros/Scheduler_example13_Micros.ino +71 -0
  1319. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example14_Yield/Scheduler_example14_Yield.ino +339 -0
  1320. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example15_STDFunction/Scheduler_example15_STDFunction.ino +53 -0
  1321. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/Scheduler_example16_Multitab.ino +18 -0
  1322. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/file1.cpp +31 -0
  1323. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/file2.cpp +55 -0
  1324. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/header.hpp +15 -0
  1325. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example16_Multitab/ts.cpp +20 -0
  1326. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example17_Timeout/Scheduler_example17_Timeout.ino +90 -0
  1327. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example18_StatusRequest_LTS_WDT_Timeout/Scheduler_example18_StatusRequest_LTS_WDT_Timeout.ino +172 -0
  1328. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks/Scheduler_example19_Dynamic_Tasks.ino +137 -0
  1329. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_SelfDestruct/Scheduler_example19_Dynamic_Tasks_SelfDestruct.ino +130 -0
  1330. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_stdQueue/Scheduler_example19_Dynamic_Tasks_stdQueue.ino +137 -0
  1331. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object.ino +185 -0
  1332. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.cpp +36 -0
  1333. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.h +25 -0
  1334. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.cpp +66 -0
  1335. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.h +34 -0
  1336. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Scheduler_example21_OO_Callbacks.ino +76 -0
  1337. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.cpp +83 -0
  1338. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.h +44 -0
  1339. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.cpp +21 -0
  1340. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.h +28 -0
  1341. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example23_IDLE_Callback/Scheduler_example23_IDLE_Callback.ino +157 -0
  1342. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example24_CPU_LOAD/Scheduler_example24_CPU_LOAD.ino +87 -0
  1343. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example25_SCHEDULER_CHAIN/Scheduler_example25_SCHEDULER_CHAIN.ino +127 -0
  1344. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example26_SCHEDULING_OPTIONS/Scheduler_example26_SCHEDULING_OPTIONS.ino +181 -0
  1345. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/README +39 -0
  1346. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/led.h +12 -0
  1347. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/main.h +25 -0
  1348. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/lib/README +46 -0
  1349. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/platformio.ini +37 -0
  1350. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/led.cpp +11 -0
  1351. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/main.cpp +254 -0
  1352. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example27_PlatformIO/test/README +11 -0
  1353. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example28_Tickless/Scheduler_example28_Tickless.ino +105 -0
  1354. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/README +39 -0
  1355. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/led.h +12 -0
  1356. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/include/main.h +27 -0
  1357. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/lib/README +46 -0
  1358. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/platformio.ini +38 -0
  1359. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/src/led.cpp +13 -0
  1360. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/src/main.cpp +267 -0
  1361. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example29_NonArduino/test/README +11 -0
  1362. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/README.md +232 -0
  1363. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/platformio.ini +44 -0
  1364. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/src/main.cpp +310 -0
  1365. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/examples/Scheduler_template/Scheduler_template.ino +166 -0
  1366. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/keywords.txt +161 -0
  1367. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/library.json +22 -0
  1368. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/library.properties +9 -0
  1369. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TScheduler.hpp +29 -0
  1370. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TSchedulerDeclarations.hpp +29 -0
  1371. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TaskScheduler.cpp +3 -0
  1372. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TaskScheduler.h +1811 -0
  1373. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TaskSchedulerDeclarations.h +3096 -0
  1374. package/examples/basic/.pio/libdeps/esp8266/TaskScheduler/src/TaskSchedulerSleepMethods.h +399 -0
  1375. package/examples/basic/.pio/libdeps/esp8266/integrity.dat +3 -0
  1376. package/examples/basic/basic.ino +66 -66
  1377. package/examples/basic/platformio.ini +25 -25
  1378. package/examples/bridge/bridge.ino +51 -51
  1379. package/examples/bridge/mesh_event_publisher.hpp +253 -253
  1380. package/examples/bridge/mesh_topology_reporter.hpp +303 -303
  1381. package/examples/bridge/mqtt_command_bridge.hpp +459 -459
  1382. package/examples/bridge/mqtt_status_bridge.hpp +519 -519
  1383. package/examples/bridge/platformio.ini +25 -25
  1384. package/examples/echoNode/echoNode.ino +33 -33
  1385. package/examples/echoNode/platformio.ini +25 -25
  1386. package/examples/logClient/logClient.ino +109 -109
  1387. package/examples/logClient/platformio.ini +25 -25
  1388. package/examples/logServer/logServer.ino +81 -81
  1389. package/examples/logServer/platformio.ini +25 -25
  1390. package/examples/meshCommandNode/.pio/build/esp32/.sconsign311.dblite +0 -0
  1391. package/examples/meshCommandNode/.pio/build/esp32/bootloader.bin +0 -0
  1392. package/examples/meshCommandNode/.pio/build/esp32/lib327/TaskScheduler/TaskScheduler.cpp.d +2 -0
  1393. package/examples/meshCommandNode/.pio/build/esp32/lib327/TaskScheduler/TaskScheduler.cpp.o +0 -0
  1394. package/examples/meshCommandNode/.pio/build/esp32/lib373/LittleFS/LittleFS.cpp.d +142 -0
  1395. package/examples/meshCommandNode/.pio/build/esp32/lib373/LittleFS/LittleFS.cpp.o +0 -0
  1396. package/examples/meshCommandNode/.pio/build/esp32/lib4f2/FS/FS.cpp.d +138 -0
  1397. package/examples/meshCommandNode/.pio/build/esp32/lib4f2/FS/FS.cpp.o +0 -0
  1398. package/examples/meshCommandNode/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.d +139 -0
  1399. package/examples/meshCommandNode/.pio/build/esp32/lib4f2/FS/vfs_api.cpp.o +0 -0
  1400. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.d +203 -0
  1401. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFi.cpp.o +0 -0
  1402. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.d +204 -0
  1403. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiAP.cpp.o +0 -0
  1404. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.d +209 -0
  1405. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiClient.cpp.o +0 -0
  1406. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.d +206 -0
  1407. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiGeneric.cpp.o +0 -0
  1408. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.d +199 -0
  1409. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiMulti.cpp.o +0 -0
  1410. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.d +206 -0
  1411. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiSTA.cpp.o +0 -0
  1412. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.d +204 -0
  1413. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiScan.cpp.o +0 -0
  1414. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.d +172 -0
  1415. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiServer.cpp.o +0 -0
  1416. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.d +171 -0
  1417. package/examples/meshCommandNode/.pio/build/esp32/lib71a/WiFi/WiFiUdp.cpp.o +0 -0
  1418. package/examples/meshCommandNode/.pio/build/esp32/lib97a/SPIFFS/SPIFFS.cpp.d +142 -0
  1419. package/examples/meshCommandNode/.pio/build/esp32/lib97a/SPIFFS/SPIFFS.cpp.o +0 -0
  1420. package/examples/meshCommandNode/.pio/build/esp32/libf48/Update/HttpsOTAUpdate.cpp.d +120 -0
  1421. package/examples/meshCommandNode/.pio/build/esp32/libf48/Update/HttpsOTAUpdate.cpp.o +0 -0
  1422. package/examples/meshCommandNode/.pio/build/esp32/libf48/Update/Updater.cpp.d +144 -0
  1423. package/examples/meshCommandNode/.pio/build/esp32/libf48/Update/Updater.cpp.o +0 -0
  1424. package/examples/meshCommandNode/.pio/build/esp32/partitions.bin +0 -0
  1425. package/examples/meshCommandNode/.pio/build/esp32/src/meshCommandNode.ino.cpp.d +238 -0
  1426. package/examples/meshCommandNode/.pio/build/esp32/tmpkxz_1u4u.tmp +1 -0
  1427. package/examples/meshCommandNode/.pio/build/esp32/tmpo9qt_9vc.tmp +1 -0
  1428. package/examples/meshCommandNode/.pio/build/esp32/tmprrmligyc.tmp +1 -0
  1429. package/examples/meshCommandNode/.pio/build/esp32/tmpt8s9ha45.tmp +1 -0
  1430. package/examples/meshCommandNode/.pio/build/project.checksum +1 -0
  1431. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/.piopm +1 -0
  1432. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/ArduinoJson.h +5 -0
  1433. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/LICENSE.txt +10 -0
  1434. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/README.md +153 -0
  1435. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonConfigFile/JsonConfigFile.ino +152 -0
  1436. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonFilterExample/JsonFilterExample.ino +64 -0
  1437. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonGeneratorExample/JsonGeneratorExample.ino +65 -0
  1438. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonHttpClient/JsonHttpClient.ino +125 -0
  1439. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonParserExample/JsonParserExample.ino +65 -0
  1440. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonServer/JsonServer.ino +118 -0
  1441. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/JsonUdpBeacon/JsonUdpBeacon.ino +106 -0
  1442. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/MsgPackParser/MsgPackParser.ino +61 -0
  1443. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/ProgmemExample/ProgmemExample.ino +63 -0
  1444. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/examples/StringExample/StringExample.ino +76 -0
  1445. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/library.json +23 -0
  1446. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/library.properties +11 -0
  1447. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp +66 -0
  1448. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp +79 -0
  1449. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +75 -0
  1450. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +219 -0
  1451. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +133 -0
  1452. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +96 -0
  1453. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +112 -0
  1454. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +122 -0
  1455. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +137 -0
  1456. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Configuration.hpp +285 -0
  1457. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +106 -0
  1458. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp +35 -0
  1459. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +77 -0
  1460. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +32 -0
  1461. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +74 -0
  1462. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +30 -0
  1463. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +18 -0
  1464. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +56 -0
  1465. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +42 -0
  1466. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +49 -0
  1467. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +29 -0
  1468. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +19 -0
  1469. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +79 -0
  1470. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +426 -0
  1471. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp +40 -0
  1472. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp +720 -0
  1473. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +165 -0
  1474. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Latch.hpp +56 -0
  1475. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +110 -0
  1476. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp +177 -0
  1477. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp +67 -0
  1478. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp +46 -0
  1479. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp +60 -0
  1480. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp +49 -0
  1481. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPool.hpp +110 -0
  1482. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/MemoryPoolList.hpp +214 -0
  1483. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp +131 -0
  1484. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/ResourceManagerImpl.hpp +52 -0
  1485. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuffer.hpp +79 -0
  1486. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp +88 -0
  1487. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp +75 -0
  1488. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp +102 -0
  1489. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp +71 -0
  1490. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackBinary.hpp +97 -0
  1491. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +487 -0
  1492. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackExtension.hpp +120 -0
  1493. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +244 -0
  1494. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/endianness.hpp +46 -0
  1495. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp +18 -0
  1496. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Namespace.hpp +42 -0
  1497. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp +95 -0
  1498. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp +212 -0
  1499. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp +18 -0
  1500. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp +28 -0
  1501. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp +116 -0
  1502. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp +145 -0
  1503. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp +238 -0
  1504. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +245 -0
  1505. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +166 -0
  1506. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp +83 -0
  1507. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp +70 -0
  1508. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +77 -0
  1509. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp +70 -0
  1510. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp +92 -0
  1511. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp +30 -0
  1512. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp +14 -0
  1513. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +45 -0
  1514. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +21 -0
  1515. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp +34 -0
  1516. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp +45 -0
  1517. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +27 -0
  1518. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp +27 -0
  1519. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp +144 -0
  1520. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp +67 -0
  1521. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp +33 -0
  1522. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp +25 -0
  1523. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/decay.hpp +33 -0
  1524. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp +14 -0
  1525. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp +23 -0
  1526. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/function_traits.hpp +27 -0
  1527. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp +22 -0
  1528. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp +22 -0
  1529. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp +27 -0
  1530. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp +23 -0
  1531. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp +18 -0
  1532. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp +46 -0
  1533. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp +22 -0
  1534. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp +19 -0
  1535. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp +32 -0
  1536. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp +17 -0
  1537. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp +18 -0
  1538. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp +26 -0
  1539. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp +24 -0
  1540. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp +44 -0
  1541. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp +24 -0
  1542. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp +31 -0
  1543. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp +24 -0
  1544. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp +16 -0
  1545. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/void_t.hpp +20 -0
  1546. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp +27 -0
  1547. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp +33 -0
  1548. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp +33 -0
  1549. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp +47 -0
  1550. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp +55 -0
  1551. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp +22 -0
  1552. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp +29 -0
  1553. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp +36 -0
  1554. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp +32 -0
  1555. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +42 -0
  1556. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp +20 -0
  1557. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp +50 -0
  1558. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp +93 -0
  1559. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp +118 -0
  1560. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp +48 -0
  1561. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp +19 -0
  1562. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp +100 -0
  1563. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp +47 -0
  1564. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp +72 -0
  1565. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp +73 -0
  1566. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp +23 -0
  1567. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +406 -0
  1568. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +78 -0
  1569. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +197 -0
  1570. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp +34 -0
  1571. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp +61 -0
  1572. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +35 -0
  1573. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp +211 -0
  1574. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp +82 -0
  1575. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp +609 -0
  1576. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp +24 -0
  1577. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantImpl.hpp +146 -0
  1578. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp +188 -0
  1579. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +313 -0
  1580. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp +175 -0
  1581. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp +16 -0
  1582. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp +34 -0
  1583. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/compatibility.hpp +144 -0
  1584. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson/version.hpp +11 -0
  1585. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.h +17 -0
  1586. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/ArduinoJson.hpp +65 -0
  1587. package/examples/meshCommandNode/.pio/libdeps/esp32/ArduinoJson/src/CMakeLists.txt +91 -0
  1588. package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/.piopm +1 -0
  1589. package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/LICENSE +165 -0
  1590. package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/README.md +62 -0
  1591. package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/examples/Client/Client.ino +81 -0
  1592. package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/library.json +35 -0
  1593. package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/library.properties +10 -0
  1594. package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.cpp +1661 -0
  1595. package/examples/meshCommandNode/.pio/libdeps/esp32/AsyncTCP/src/AsyncTCP.h +344 -0
  1596. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/.github/FUNDING.yml +1 -0
  1597. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/.github/workflows/doxygen.yml +310 -0
  1598. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/.github/workflows/main.yml +309 -0
  1599. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/.github/workflows/test.yml +523 -0
  1600. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/.piopm +1 -0
  1601. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/LICENSE.txt +27 -0
  1602. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/README.md +157 -0
  1603. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink/Scheduler_example00_Blink.ino +303 -0
  1604. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example00_Blink_Namespace/Scheduler_example00_Blink_Namespace.ino +302 -0
  1605. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example01/Scheduler_example01.ino +84 -0
  1606. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example02/Scheduler_example02.ino +78 -0
  1607. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example03/Scheduler_example03.ino +80 -0
  1608. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example04_StatusRequest/Scheduler_example04_StatusRequest.ino +90 -0
  1609. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example05_StatusRequest/Scheduler_example05_StatusRequest.ino +181 -0
  1610. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example06_IDLE/Scheduler_example06_IDLE.ino +117 -0
  1611. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example07_WDT/Scheduler_example07_WDT.ino +133 -0
  1612. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example08_LTS/Scheduler_example08_LTS.ino +147 -0
  1613. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example09_TimeCritical/Scheduler_example09_TimeCritical.ino +57 -0
  1614. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example10_Benchmark/Scheduler_example10_Benchmark.ino +106 -0
  1615. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example11_Priority/Scheduler_example11_Priority.ino +105 -0
  1616. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example12_Priority/Scheduler_example12_Priority.ino +136 -0
  1617. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example13_Micros/Scheduler_example13_Micros.ino +71 -0
  1618. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example14_Yield/Scheduler_example14_Yield.ino +339 -0
  1619. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example15_STDFunction/Scheduler_example15_STDFunction.ino +53 -0
  1620. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/Scheduler_example16_Multitab.ino +18 -0
  1621. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file1.cpp +31 -0
  1622. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/file2.cpp +55 -0
  1623. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/header.hpp +15 -0
  1624. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example16_Multitab/ts.cpp +20 -0
  1625. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example17_Timeout/Scheduler_example17_Timeout.ino +90 -0
  1626. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example18_StatusRequest_LTS_WDT_Timeout/Scheduler_example18_StatusRequest_LTS_WDT_Timeout.ino +172 -0
  1627. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks/Scheduler_example19_Dynamic_Tasks.ino +137 -0
  1628. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_SelfDestruct/Scheduler_example19_Dynamic_Tasks_SelfDestruct.ino +130 -0
  1629. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example19_Dynamic_Tasks_stdQueue/Scheduler_example19_Dynamic_Tasks_stdQueue.ino +137 -0
  1630. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object.ino +185 -0
  1631. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.cpp +36 -0
  1632. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example20_StatusRequest_LTS_WDT_Timeout_Object/SuperSensor.h +25 -0
  1633. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.cpp +66 -0
  1634. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Calculator.h +34 -0
  1635. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Scheduler_example21_OO_Callbacks.ino +76 -0
  1636. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.cpp +83 -0
  1637. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/SuperSensor.h +44 -0
  1638. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.cpp +21 -0
  1639. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example21_OO_Callbacks/Ticker.h +28 -0
  1640. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example23_IDLE_Callback/Scheduler_example23_IDLE_Callback.ino +157 -0
  1641. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example24_CPU_LOAD/Scheduler_example24_CPU_LOAD.ino +87 -0
  1642. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example25_SCHEDULER_CHAIN/Scheduler_example25_SCHEDULER_CHAIN.ino +127 -0
  1643. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example26_SCHEDULING_OPTIONS/Scheduler_example26_SCHEDULING_OPTIONS.ino +181 -0
  1644. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/README +39 -0
  1645. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/led.h +12 -0
  1646. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/include/main.h +25 -0
  1647. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/lib/README +46 -0
  1648. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/platformio.ini +37 -0
  1649. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/led.cpp +11 -0
  1650. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/src/main.cpp +254 -0
  1651. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example27_PlatformIO/test/README +11 -0
  1652. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example28_Tickless/Scheduler_example28_Tickless.ino +105 -0
  1653. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/README +39 -0
  1654. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/led.h +12 -0
  1655. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/include/main.h +27 -0
  1656. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/lib/README +46 -0
  1657. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/platformio.ini +38 -0
  1658. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/led.cpp +13 -0
  1659. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/src/main.cpp +267 -0
  1660. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example29_NonArduino/test/README +11 -0
  1661. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/README.md +232 -0
  1662. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/platformio.ini +44 -0
  1663. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_example30_THREAD_SAFE/src/main.cpp +310 -0
  1664. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/examples/Scheduler_template/Scheduler_template.ino +166 -0
  1665. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/keywords.txt +161 -0
  1666. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/library.json +22 -0
  1667. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/library.properties +9 -0
  1668. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TScheduler.hpp +29 -0
  1669. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TSchedulerDeclarations.hpp +29 -0
  1670. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.cpp +3 -0
  1671. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TaskScheduler.h +1811 -0
  1672. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerDeclarations.h +3096 -0
  1673. package/examples/meshCommandNode/.pio/libdeps/esp32/TaskScheduler/src/TaskSchedulerSleepMethods.h +399 -0
  1674. package/examples/meshCommandNode/.pio/libdeps/esp32/integrity.dat +3 -0
  1675. package/examples/meshCommandNode/alteriom_sensor_package.hpp +234 -234
  1676. package/examples/meshCommandNode/meshCommandNode.ino +263 -263
  1677. package/examples/meshCommandNode/platformio.ini +25 -25
  1678. package/examples/mqttBridge/mqttBridge.ino +118 -118
  1679. package/examples/mqttBridge/platformio.ini +26 -26
  1680. package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +234 -234
  1681. package/examples/mqttCommandBridge/mesh_event_publisher.hpp +253 -253
  1682. package/examples/mqttCommandBridge/mesh_topology_reporter.hpp +303 -303
  1683. package/examples/mqttCommandBridge/mqttCommandBridge.ino +252 -252
  1684. package/examples/mqttCommandBridge/mqtt_command_bridge.hpp +462 -459
  1685. package/examples/mqttCommandBridge/platformio.ini +26 -26
  1686. package/examples/mqttStatusBridge/mqttStatusBridge.ino +216 -216
  1687. package/examples/mqttStatusBridge/mqtt_status_bridge.hpp +522 -522
  1688. package/examples/mqttStatusBridge/platformio.ini +26 -26
  1689. package/examples/mqttTopologyTest/README.md +467 -467
  1690. package/examples/mqttTopologyTest/mqttTopologyTest.ino +748 -748
  1691. package/examples/mqttTopologyTest/platformio.ini +26 -26
  1692. package/examples/namedMesh/namedMesh.ino +97 -97
  1693. package/examples/namedMesh/platformio.ini +25 -25
  1694. package/examples/otaReceiver/otaReceiver.ino +79 -79
  1695. package/examples/otaReceiver/platformio.ini +25 -25
  1696. package/examples/otaSender/otaSender.ino +160 -160
  1697. package/examples/otaSender/platformio.ini +25 -25
  1698. package/examples/startHere/platformio.ini +25 -25
  1699. package/examples/startHere/startHere.ino +159 -159
  1700. package/examples/webServer/platformio.ini +27 -27
  1701. package/examples/webServer/webServer.ino +89 -89
  1702. package/keywords.txt +48 -48
  1703. package/library.json +55 -55
  1704. package/library.properties +10 -10
  1705. package/package.json +86 -86
  1706. package/src/AlteriomPainlessMesh.h +97 -97
  1707. package/src/arduino/wifi.hpp +365 -365
  1708. package/src/boost/asynctcp.hpp +279 -279
  1709. package/src/painlessMesh.h +70 -70
  1710. package/src/painlessMeshSTA.cpp +236 -236
  1711. package/src/painlessMeshSTA.h +58 -58
  1712. package/src/painlessTaskOptions.h +11 -4
  1713. package/src/painlessmesh/base64.hpp +111 -111
  1714. package/src/painlessmesh/buffer.hpp +229 -229
  1715. package/src/painlessmesh/callback.hpp +91 -91
  1716. package/src/painlessmesh/configuration.hpp +77 -77
  1717. package/src/painlessmesh/connection.hpp +192 -192
  1718. package/src/painlessmesh/layout.hpp +188 -188
  1719. package/src/painlessmesh/logger.hpp +158 -158
  1720. package/src/painlessmesh/memory.hpp +119 -119
  1721. package/src/painlessmesh/mesh.hpp +772 -761
  1722. package/src/painlessmesh/metrics.hpp +322 -322
  1723. package/src/painlessmesh/ntp.hpp +263 -263
  1724. package/src/painlessmesh/ota.hpp +582 -582
  1725. package/src/painlessmesh/plugin.hpp +188 -188
  1726. package/src/painlessmesh/protocol.hpp +813 -813
  1727. package/src/painlessmesh/router.hpp +338 -322
  1728. package/src/painlessmesh/scheduler_queue.cpp +77 -0
  1729. package/src/painlessmesh/scheduler_queue.hpp +34 -0
  1730. package/src/painlessmesh/tcp.hpp +71 -71
  1731. package/src/painlessmesh/validation.hpp +238 -238
  1732. package/src/plugin/performance.hpp +214 -214
  1733. package/src/plugin/remote.hpp +64 -64
  1734. package/src/scheduler.cpp +10 -10
  1735. package/src/wifi.cpp +2 -2
@@ -1,1062 +1,1062 @@
1
- # painlessMesh Implementation Plan for MQTT Schema v0.5.0
2
-
3
- **Date:** October 12, 2025
4
- **Target:** Support mesh_topology.schema.json and mesh_event.schema.json
5
- **Status:** 📋 IMPLEMENTATION PLAN
6
-
7
- ---
8
-
9
- ## Executive Summary
10
-
11
- Assuming @alteriom/mqtt-schema v0.5.0 is released with the new mesh topology and event schemas, this document outlines **all required implementations** in the painlessMesh library to fully support these features.
12
-
13
- ### What's Already Done ✅
14
-
15
- 1. ✅ **Command Bridge** - MqttCommandBridge class (417 lines)
16
- 2. ✅ **Gateway Example** - mqttCommandBridge.ino with basic topology
17
- 3. ✅ **Node Handler** - mesh_command_node.ino with command responses
18
- 4. ✅ **Status Packages** - Enhanced StatusPackage with response tracking
19
- 5. ✅ **Basic Topology** - Simple node list publishing every 30s
20
-
21
- ### What Needs Implementation ⚠️
22
-
23
- 1. ⚠️ **Schema-Compliant Topology Reporter** - Full mesh structure with connections
24
- 2. ⚠️ **Connection Quality Tracking** - RSSI, latency, hop count per link
25
- 3. ⚠️ **Mesh Event Publisher** - Real-time node join/leave notifications
26
- 4. ⚠️ **Topology Command Handler** - `get_topology` command support
27
- 5. ⚠️ **Enhanced Gateway Bridge** - Schema v0.5.0 compliance
28
- 6. ⚠️ **Connection Metadata API** - Expose connection details from painlessMesh core
29
-
30
- ---
31
-
32
- ## Part 1: Core Library Enhancements
33
-
34
- ### 1.1 Add Connection Metadata API
35
-
36
- **File:** `src/painlessmesh/mesh.hpp`
37
-
38
- **Problem:** painlessMesh tracks connections internally but doesn't expose connection quality metrics (RSSI, latency, hop count).
39
-
40
- **Solution:** Add public API to retrieve connection metadata.
41
-
42
- #### New Public Methods
43
-
44
- ```cpp
45
- /**
46
- * @brief Get connection quality for a specific link
47
- * @param fromNode Source node ID
48
- * @param toNode Destination node ID
49
- * @return Connection quality (0-100) or -1 if not connected
50
- */
51
- int getConnectionQuality(uint32_t fromNode, uint32_t toNode);
52
-
53
- /**
54
- * @brief Get RSSI for a direct connection
55
- * @param nodeId Connected node ID
56
- * @return RSSI in dBm (typically -30 to -90) or 0 if not available
57
- */
58
- int getConnectionRSSI(uint32_t nodeId);
59
-
60
- /**
61
- * @brief Get average latency to a node
62
- * @param nodeId Target node ID
63
- * @return Latency in milliseconds or -1 if not available
64
- */
65
- int getConnectionLatency(uint32_t nodeId);
66
-
67
- /**
68
- * @brief Get hop count to a node
69
- * @param nodeId Target node ID
70
- * @return Number of hops or -1 if unreachable
71
- */
72
- int getHopCount(uint32_t nodeId);
73
-
74
- /**
75
- * @brief Get all direct connections with metadata
76
- * @return List of connection objects with quality metrics
77
- */
78
- std::vector<ConnectionInfo> getConnectionDetails();
79
-
80
- /**
81
- * @brief Get routing table for mesh visualization
82
- * @return Map of destination -> next hop mappings
83
- */
84
- std::map<uint32_t, uint32_t> getRoutingTable();
85
- ```
86
-
87
- #### New Data Structure
88
-
89
- ```cpp
90
- struct ConnectionInfo {
91
- uint32_t nodeId; // Connected node ID
92
- uint32_t lastSeen; // Timestamp of last message (ms)
93
- int rssi; // Signal strength (dBm)
94
- int avgLatency; // Average round-trip time (ms)
95
- int hopCount; // Hops from current node
96
- int quality; // Connection quality (0-100)
97
- uint32_t messagesRx; // Messages received
98
- uint32_t messagesTx; // Messages sent
99
- uint32_t messagesDropped; // Failed transmissions
100
- };
101
- ```
102
-
103
- #### Implementation Location
104
-
105
- **File to modify:** `src/painlessmesh/mesh.hpp`
106
-
107
- **Add after line 365 (after `subConnectionJson()`):**
108
-
109
- ```cpp
110
- /**
111
- * Get detailed connection information for all direct neighbors
112
- */
113
- std::vector<ConnectionInfo> getConnectionDetails() {
114
- std::vector<ConnectionInfo> connections;
115
-
116
- for (auto conn : this->connections) {
117
- if (conn->isConnected()) {
118
- ConnectionInfo info;
119
- info.nodeId = conn->nodeId;
120
- info.lastSeen = conn->timeLastReceived;
121
- info.rssi = conn->getRSSI(); // Need to add this to Connection class
122
- info.avgLatency = conn->getLatency(); // Need to add this
123
- info.hopCount = 1; // Direct connection
124
- info.quality = conn->getQuality(); // Need to add this
125
- info.messagesRx = conn->messagesRx; // Need to add counter
126
- info.messagesTx = conn->messagesTx; // Need to add counter
127
- info.messagesDropped = conn->messagesDropped; // Need to add counter
128
-
129
- connections.push_back(info);
130
- }
131
- }
132
-
133
- return connections;
134
- }
135
-
136
- /**
137
- * Get hop count to specific node using routing table
138
- */
139
- int getHopCount(uint32_t nodeId) {
140
- auto route = this->findRoute(nodeId);
141
- if (route.empty()) return -1;
142
- return route.size() - 1; // Don't count source node
143
- }
144
-
145
- /**
146
- * Get routing table as map (destination -> next hop)
147
- */
148
- std::map<uint32_t, uint32_t> getRoutingTable() {
149
- std::map<uint32_t, uint32_t> table;
150
- auto nodeList = this->getNodeList(false);
151
-
152
- for (auto destNode : nodeList) {
153
- auto route = this->findRoute(destNode);
154
- if (!route.empty() && route.size() > 1) {
155
- table[destNode] = route[1]; // Next hop after source
156
- }
157
- }
158
-
159
- return table;
160
- }
161
- ```
162
-
163
- **Estimated Effort:** 4-6 hours (requires adding metrics tracking to Connection class)
164
-
165
- ---
166
-
167
- ### 1.2 Enhance Connection Class with Metrics
168
-
169
- **File:** `src/painlessmesh/tcp.hpp` (or wherever Connection is defined)
170
-
171
- **Add to Connection class:**
172
-
173
- ```cpp
174
- class Connection {
175
- public:
176
- // Existing members...
177
-
178
- // New metrics tracking
179
- uint32_t messagesRx = 0;
180
- uint32_t messagesTx = 0;
181
- uint32_t messagesDropped = 0;
182
- uint32_t timeLastReceived = 0;
183
-
184
- // Latency tracking
185
- std::vector<uint32_t> latencySamples;
186
- const size_t MAX_LATENCY_SAMPLES = 10;
187
-
188
- /**
189
- * Record message received timestamp
190
- */
191
- void onMessageReceived() {
192
- messagesRx++;
193
- timeLastReceived = millis();
194
- }
195
-
196
- /**
197
- * Record message sent
198
- */
199
- void onMessageSent(bool success) {
200
- if (success) {
201
- messagesTx++;
202
- } else {
203
- messagesDropped++;
204
- }
205
- }
206
-
207
- /**
208
- * Record round-trip time sample
209
- */
210
- void recordLatency(uint32_t latencyMs) {
211
- latencySamples.push_back(latencyMs);
212
- if (latencySamples.size() > MAX_LATENCY_SAMPLES) {
213
- latencySamples.erase(latencySamples.begin());
214
- }
215
- }
216
-
217
- /**
218
- * Get average latency from recent samples
219
- */
220
- int getLatency() {
221
- if (latencySamples.empty()) return -1;
222
-
223
- uint32_t sum = 0;
224
- for (auto sample : latencySamples) {
225
- sum += sample;
226
- }
227
- return sum / latencySamples.size();
228
- }
229
-
230
- /**
231
- * Calculate connection quality (0-100)
232
- * Based on: latency, packet loss, RSSI
233
- */
234
- int getQuality() {
235
- // Simple quality calculation
236
- int quality = 100;
237
-
238
- // Penalize high latency (>100ms)
239
- int latency = getLatency();
240
- if (latency > 100) quality -= (latency - 100) / 5;
241
-
242
- // Penalize packet loss
243
- if (messagesTx > 0) {
244
- int lossRate = (messagesDropped * 100) / messagesTx;
245
- quality -= lossRate;
246
- }
247
-
248
- // Penalize weak RSSI (if available)
249
- int rssi = getRSSI();
250
- if (rssi < -80) quality -= (80 + rssi);
251
-
252
- return max(0, min(100, quality));
253
- }
254
-
255
- /**
256
- * Get WiFi RSSI if available
257
- * Note: Requires ESP8266/ESP32 specific code
258
- */
259
- int getRSSI() {
260
- #if defined(ESP32) || defined(ESP8266)
261
- // This needs platform-specific implementation
262
- // For now, return placeholder
263
- return -60; // TODO: Get actual RSSI from WiFi
264
- #else
265
- return 0; // Not available on non-WiFi platforms
266
- #endif
267
- }
268
- };
269
- ```
270
-
271
- **Estimated Effort:** 6-8 hours (requires testing on ESP32/ESP8266)
272
-
273
- ---
274
-
275
- ## Part 2: Topology Reporter Implementation
276
-
277
- ### 2.1 Create MeshTopologyReporter Class
278
-
279
- **File:** `examples/bridge/mesh_topology_reporter.hpp` (NEW)
280
-
281
- **Purpose:** Generate schema-compliant topology messages
282
-
283
- ```cpp
284
- #ifndef MESH_TOPOLOGY_REPORTER_HPP
285
- #define MESH_TOPOLOGY_REPORTER_HPP
286
-
287
- #include "painlessMesh.h"
288
- #include <ArduinoJson.h>
289
-
290
- class MeshTopologyReporter {
291
- private:
292
- painlessMesh& mesh;
293
- String meshId;
294
- String lastTopologyHash; // Detect changes
295
-
296
- public:
297
- MeshTopologyReporter(painlessMesh& mesh, const String& meshId)
298
- : mesh(mesh), meshId(meshId) {}
299
-
300
- /**
301
- * Generate full topology message (schema v0.5.0 compliant)
302
- */
303
- String generateFullTopology() {
304
- DynamicJsonDocument doc(8192); // Large buffer for full topology
305
-
306
- // Envelope fields (from @alteriom/mqtt-schema)
307
- doc["schema_version"] = 1;
308
- doc["device_id"] = String(mesh.getNodeId());
309
- doc["device_type"] = "gateway";
310
- doc["timestamp"] = getISO8601Timestamp();
311
- doc["firmware_version"] = "GW 2.3.4"; // Make configurable
312
-
313
- // Event discriminator
314
- doc["event"] = "mesh_topology";
315
-
316
- // Mesh identification
317
- doc["mesh_id"] = meshId;
318
- doc["gateway_node_id"] = String(mesh.getNodeId());
319
-
320
- // Nodes array
321
- JsonArray nodes = doc.createNestedArray("nodes");
322
- addNodeInfo(nodes, mesh.getNodeId(), "gateway"); // Self
323
-
324
- auto nodeList = mesh.getNodeList(false);
325
- for (auto nodeId : nodeList) {
326
- addNodeInfo(nodes, nodeId, "sensor"); // Assume sensor role
327
- }
328
-
329
- // Connections array
330
- JsonArray connections = doc.createNestedArray("connections");
331
- addConnectionInfo(connections);
332
-
333
- // Network metrics
334
- JsonObject metrics = doc.createNestedObject("metrics");
335
- metrics["total_nodes"] = nodeList.size() + 1; // +1 for gateway
336
- metrics["online_nodes"] = nodeList.size() + 1;
337
- metrics["network_diameter"] = calculateNetworkDiameter();
338
- metrics["avg_connection_quality"] = calculateAvgQuality();
339
- metrics["messages_per_second"] = calculateThroughput();
340
-
341
- doc["update_type"] = "full";
342
-
343
- String output;
344
- serializeJson(doc, output);
345
- return output;
346
- }
347
-
348
- /**
349
- * Generate incremental topology update
350
- */
351
- String generateIncrementalUpdate(uint32_t nodeId, bool joined) {
352
- DynamicJsonDocument doc(2048);
353
-
354
- // Envelope fields
355
- doc["schema_version"] = 1;
356
- doc["device_id"] = String(mesh.getNodeId());
357
- doc["device_type"] = "gateway";
358
- doc["timestamp"] = getISO8601Timestamp();
359
- doc["firmware_version"] = "GW 2.3.4";
360
-
361
- doc["event"] = "mesh_topology";
362
- doc["mesh_id"] = meshId;
363
- doc["gateway_node_id"] = String(mesh.getNodeId());
364
-
365
- // Node that changed
366
- JsonArray nodes = doc.createNestedArray("nodes");
367
- if (joined) {
368
- addNodeInfo(nodes, nodeId, "sensor");
369
- } else {
370
- // For node leaving, mark as offline
371
- JsonObject node = nodes.createNestedObject();
372
- node["node_id"] = String(nodeId);
373
- node["status"] = "offline";
374
- }
375
-
376
- // Update connections
377
- JsonArray connections = doc.createNestedArray("connections");
378
- // Add connections related to this node
379
-
380
- doc["update_type"] = "incremental";
381
-
382
- String output;
383
- serializeJson(doc, output);
384
- return output;
385
- }
386
-
387
- /**
388
- * Check if topology has changed
389
- */
390
- bool hasTopologyChanged() {
391
- String currentHash = calculateTopologyHash();
392
- if (currentHash != lastTopologyHash) {
393
- lastTopologyHash = currentHash;
394
- return true;
395
- }
396
- return false;
397
- }
398
-
399
- private:
400
- /**
401
- * Add node information to JSON array
402
- */
403
- void addNodeInfo(JsonArray& nodes, uint32_t nodeId, const char* role) {
404
- JsonObject node = nodes.createNestedObject();
405
- node["node_id"] = String(nodeId);
406
- node["role"] = role;
407
- node["status"] = "online";
408
- node["last_seen"] = getISO8601Timestamp();
409
-
410
- // If we have connection to this node, add metrics
411
- // This requires connection metadata API
412
- node["uptime_seconds"] = 0; // TODO: Track per-node uptime
413
- node["free_memory_kb"] = 0; // TODO: Get from node status messages
414
- node["connection_count"] = 0; // TODO: Calculate from mesh structure
415
-
416
- // Gateway node has additional info
417
- if (nodeId == mesh.getNodeId()) {
418
- node["uptime_seconds"] = millis() / 1000;
419
- node["free_memory_kb"] = ESP.getFreeHeap() / 1024;
420
- node["connection_count"] = mesh.getNodeList().size();
421
- }
422
- }
423
-
424
- /**
425
- * Add connection information to JSON array
426
- */
427
- void addConnectionInfo(JsonArray& connections) {
428
- // Get direct connections with quality metrics
429
- // This requires new API: mesh.getConnectionDetails()
430
-
431
- auto nodeList = mesh.getNodeList(false);
432
- uint32_t gatewayId = mesh.getNodeId();
433
-
434
- // For now, create basic connection data
435
- // TODO: Use actual connection quality API
436
- for (auto nodeId : nodeList) {
437
- JsonObject conn = connections.createNestedObject();
438
- conn["from_node"] = String(gatewayId);
439
- conn["to_node"] = String(nodeId);
440
- conn["quality"] = 85; // TODO: Get actual quality
441
- conn["latency_ms"] = 20; // TODO: Get actual latency
442
- conn["rssi"] = -55; // TODO: Get actual RSSI
443
- conn["hop_count"] = 1; // TODO: Calculate hop count
444
- }
445
- }
446
-
447
- /**
448
- * Calculate network diameter (max hop count)
449
- */
450
- int calculateNetworkDiameter() {
451
- int maxHops = 0;
452
- auto nodeList = mesh.getNodeList(false);
453
-
454
- for (auto nodeId : nodeList) {
455
- // TODO: Use mesh.getHopCount(nodeId)
456
- // For now assume max 2 hops
457
- maxHops = max(maxHops, 2);
458
- }
459
-
460
- return maxHops;
461
- }
462
-
463
- /**
464
- * Calculate average connection quality
465
- */
466
- float calculateAvgQuality() {
467
- // TODO: Use connection quality API
468
- // For now return placeholder
469
- return 85.0;
470
- }
471
-
472
- /**
473
- * Calculate network throughput
474
- */
475
- float calculateThroughput() {
476
- // TODO: Track message rates
477
- // For now return placeholder
478
- return 12.4;
479
- }
480
-
481
- /**
482
- * Calculate topology hash for change detection
483
- */
484
- String calculateTopologyHash() {
485
- auto nodeList = mesh.getNodeList(true);
486
- String hash = String(nodeList.size());
487
- for (auto nodeId : nodeList) {
488
- hash += String(nodeId);
489
- }
490
- return hash;
491
- }
492
-
493
- /**
494
- * Get current timestamp in ISO 8601 format
495
- */
496
- String getISO8601Timestamp() {
497
- // TODO: Use proper NTP time if available
498
- // For now return epoch-based timestamp
499
- unsigned long ms = millis();
500
- char timestamp[32];
501
- snprintf(timestamp, sizeof(timestamp), "2025-10-12T%02lu:%02lu:%02luZ",
502
- (ms / 3600000) % 24,
503
- (ms / 60000) % 60,
504
- (ms / 1000) % 60);
505
- return String(timestamp);
506
- }
507
- };
508
-
509
- #endif // MESH_TOPOLOGY_REPORTER_HPP
510
- ```
511
-
512
- **Estimated Effort:** 8-10 hours (initial implementation + testing)
513
-
514
- ---
515
-
516
- ### 2.2 Create MeshEventPublisher Class
517
-
518
- **File:** `examples/bridge/mesh_event_publisher.hpp` (NEW)
519
-
520
- **Purpose:** Publish real-time mesh events
521
-
522
- ```cpp
523
- #ifndef MESH_EVENT_PUBLISHER_HPP
524
- #define MESH_EVENT_PUBLISHER_HPP
525
-
526
- #include "painlessMesh.h"
527
- #include <PubSubClient.h>
528
- #include <ArduinoJson.h>
529
-
530
- class MeshEventPublisher {
531
- private:
532
- painlessMesh& mesh;
533
- PubSubClient& mqttClient;
534
- String meshId;
535
- String eventTopic;
536
-
537
- public:
538
- MeshEventPublisher(painlessMesh& mesh, PubSubClient& mqttClient,
539
- const String& meshId, const String& topic = "mesh/events")
540
- : mesh(mesh), mqttClient(mqttClient), meshId(meshId), eventTopic(topic) {}
541
-
542
- /**
543
- * Publish node join event
544
- */
545
- void publishNodeJoin(uint32_t nodeId) {
546
- DynamicJsonDocument doc(1024);
547
-
548
- // Envelope
549
- doc["schema_version"] = 1;
550
- doc["device_id"] = String(mesh.getNodeId());
551
- doc["device_type"] = "gateway";
552
- doc["timestamp"] = getISO8601Timestamp();
553
- doc["firmware_version"] = "GW 2.3.4";
554
-
555
- // Event
556
- doc["event"] = "mesh_event";
557
- doc["event_type"] = "node_join";
558
- doc["mesh_id"] = meshId;
559
-
560
- JsonArray affected = doc.createNestedArray("affected_nodes");
561
- affected.add(String(nodeId));
562
-
563
- JsonObject details = doc.createNestedObject("details");
564
- details["total_nodes"] = mesh.getNodeList().size() + 1;
565
- details["timestamp"] = getISO8601Timestamp();
566
-
567
- publishEvent(doc);
568
- }
569
-
570
- /**
571
- * Publish node leave event
572
- */
573
- void publishNodeLeave(uint32_t nodeId) {
574
- DynamicJsonDocument doc(1024);
575
-
576
- // Envelope
577
- doc["schema_version"] = 1;
578
- doc["device_id"] = String(mesh.getNodeId());
579
- doc["device_type"] = "gateway";
580
- doc["timestamp"] = getISO8601Timestamp();
581
- doc["firmware_version"] = "GW 2.3.4";
582
-
583
- // Event
584
- doc["event"] = "mesh_event";
585
- doc["event_type"] = "node_leave";
586
- doc["mesh_id"] = meshId;
587
-
588
- JsonArray affected = doc.createNestedArray("affected_nodes");
589
- affected.add(String(nodeId));
590
-
591
- JsonObject details = doc.createNestedObject("details");
592
- details["reason"] = "connection_lost";
593
- details["last_seen"] = getISO8601Timestamp();
594
- details["total_nodes"] = mesh.getNodeList().size() + 1;
595
-
596
- publishEvent(doc);
597
- }
598
-
599
- /**
600
- * Publish connection lost event
601
- */
602
- void publishConnectionLost(uint32_t nodeId) {
603
- DynamicJsonDocument doc(1024);
604
-
605
- doc["schema_version"] = 1;
606
- doc["device_id"] = String(mesh.getNodeId());
607
- doc["device_type"] = "gateway";
608
- doc["timestamp"] = getISO8601Timestamp();
609
- doc["firmware_version"] = "GW 2.3.4";
610
-
611
- doc["event"] = "mesh_event";
612
- doc["event_type"] = "connection_lost";
613
- doc["mesh_id"] = meshId;
614
-
615
- JsonArray affected = doc.createNestedArray("affected_nodes");
616
- affected.add(String(nodeId));
617
-
618
- publishEvent(doc);
619
- }
620
-
621
- /**
622
- * Publish connection restored event
623
- */
624
- void publishConnectionRestored(uint32_t nodeId) {
625
- DynamicJsonDocument doc(1024);
626
-
627
- doc["schema_version"] = 1;
628
- doc["device_id"] = String(mesh.getNodeId());
629
- doc["device_type"] = "gateway";
630
- doc["timestamp"] = getISO8601Timestamp();
631
- doc["firmware_version"] = "GW 2.3.4";
632
-
633
- doc["event"] = "mesh_event";
634
- doc["event_type"] = "connection_restored";
635
- doc["mesh_id"] = meshId;
636
-
637
- JsonArray affected = doc.createNestedArray("affected_nodes");
638
- affected.add(String(nodeId));
639
-
640
- publishEvent(doc);
641
- }
642
-
643
- private:
644
- void publishEvent(const DynamicJsonDocument& doc) {
645
- if (!mqttClient.connected()) return;
646
-
647
- String payload;
648
- serializeJson(doc, payload);
649
-
650
- mqttClient.publish(eventTopic.c_str(), payload.c_str());
651
-
652
- Serial.printf("[Event] Published: %s\n",
653
- doc["event_type"].as<const char*>());
654
- }
655
-
656
- String getISO8601Timestamp() {
657
- unsigned long ms = millis();
658
- char timestamp[32];
659
- snprintf(timestamp, sizeof(timestamp), "2025-10-12T%02lu:%02lu:%02luZ",
660
- (ms / 3600000) % 24,
661
- (ms / 60000) % 60,
662
- (ms / 1000) % 60);
663
- return String(timestamp);
664
- }
665
- };
666
-
667
- #endif // MESH_EVENT_PUBLISHER_HPP
668
- ```
669
-
670
- **Estimated Effort:** 4-6 hours
671
-
672
- ---
673
-
674
- ## Part 3: Enhanced Gateway Bridge
675
-
676
- ### 3.1 Update mqttCommandBridge.ino
677
-
678
- **File:** `examples/mqttCommandBridge/mqttCommandBridge.ino`
679
-
680
- **Changes Required:**
681
-
682
- 1. Include new reporters
683
- 2. Replace simple topology with schema-compliant topology
684
- 3. Add event publisher integration
685
- 4. Add topology command handler
686
-
687
- ```cpp
688
- // Add includes
689
- #include "examples/bridge/mesh_topology_reporter.hpp"
690
- #include "examples/bridge/mesh_event_publisher.hpp"
691
-
692
- // Add global instances
693
- MeshTopologyReporter* topologyReporter;
694
- MeshEventPublisher* eventPublisher;
695
-
696
- // Update taskTopology
697
- Task taskTopology(TASK_SECOND * 60, TASK_FOREVER, []() {
698
- if (mqttClient.connected()) {
699
- // Generate schema-compliant topology
700
- String topology = topologyReporter->generateFullTopology();
701
- mqttClient.publish("alteriom/mesh/MESH-001/topology", topology.c_str());
702
-
703
- Serial.println("[Topology] Published full mesh topology");
704
- }
705
- });
706
-
707
- // Add incremental topology task
708
- Task taskTopologyIncremental(TASK_SECOND * 5, TASK_FOREVER, []() {
709
- if (mqttClient.connected() && topologyReporter->hasTopologyChanged()) {
710
- // Publish incremental update only if topology changed
711
- // Note: This requires tracking what changed
712
- Serial.println("[Topology] Topology changed, publishing update");
713
-
714
- // For now, publish full topology
715
- // TODO: Generate incremental updates
716
- String topology = topologyReporter->generateFullTopology();
717
- mqttClient.publish("alteriom/mesh/MESH-001/topology", topology.c_str());
718
- }
719
- });
720
-
721
- // Update setup()
722
- void setup() {
723
- // ... existing setup code ...
724
-
725
- // Initialize topology reporter
726
- topologyReporter = new MeshTopologyReporter(mesh, "MESH-001");
727
-
728
- // Initialize event publisher
729
- eventPublisher = new MeshEventPublisher(mesh, mqttClient, "MESH-001");
730
-
731
- // Update mesh callbacks to use event publisher
732
- mesh.onNewConnection([](uint32_t nodeId) {
733
- Serial.printf("New node connected: %u\n", nodeId);
734
- eventPublisher->publishNodeJoin(nodeId);
735
-
736
- // Trigger topology update
737
- String topology = topologyReporter->generateIncrementalUpdate(nodeId, true);
738
- mqttClient.publish("alteriom/mesh/MESH-001/topology", topology.c_str());
739
- });
740
-
741
- mesh.onDroppedConnection([](uint32_t nodeId) {
742
- Serial.printf("Node disconnected: %u\n", nodeId);
743
- eventPublisher->publishNodeLeave(nodeId);
744
-
745
- // Trigger topology update
746
- String topology = topologyReporter->generateIncrementalUpdate(nodeId, false);
747
- mqttClient.publish("alteriom/mesh/MESH-001/topology", topology.c_str());
748
- });
749
-
750
- // Add incremental topology task
751
- userScheduler.addTask(taskTopologyIncremental);
752
- taskTopologyIncremental.enable();
753
-
754
- // ... rest of setup ...
755
- }
756
- ```
757
-
758
- **Estimated Effort:** 3-4 hours
759
-
760
- ---
761
-
762
- ### 3.2 Add Topology Command Handler
763
-
764
- **Update:** `examples/bridge/mqtt_command_bridge.hpp`
765
-
766
- **Add command 300 (GET_TOPOLOGY):**
767
-
768
- ```cpp
769
- case 300: // GET_TOPOLOGY
770
- Serial.println("Command: GET_TOPOLOGY");
771
- if (cmd.targetDevice == mesh.getNodeId() || cmd.targetDevice == 0) {
772
- // Gateway should respond with full topology
773
- // This requires access to MeshTopologyReporter
774
- // For now, acknowledge and let scheduled task handle it
775
- executeCommand(cmd);
776
- } else {
777
- // Forward to specific node (may not make sense)
778
- forwardCommandToMesh(cmd);
779
- }
780
- break;
781
- ```
782
-
783
- **Estimated Effort:** 2-3 hours
784
-
785
- ---
786
-
787
- ## Part 4: Testing & Validation
788
-
789
- ### 4.1 Create Test Sketch
790
-
791
- **File:** `examples/mqttTopologyTest/mqttTopologyTest.ino` (NEW)
792
-
793
- **Purpose:** Test topology reporting with 3-node mesh
794
-
795
- ```cpp
796
- // Minimal test setup with 3 ESP32s
797
- // - 1 Gateway (publishes topology)
798
- // - 2 Sensor nodes
799
- // Verify:
800
- // - Full topology published every 60s
801
- // - Incremental updates on node join/leave
802
- // - Events published correctly
803
- // - Schema validation passes
804
- ```
805
-
806
- **Estimated Effort:** 4-6 hours (requires physical hardware)
807
-
808
- ---
809
-
810
- ### 4.2 Schema Validation Tests
811
-
812
- **File:** `test/catch/catch_topology_schema.cpp` (NEW)
813
-
814
- **Purpose:** Validate generated topology matches schema
815
-
816
- ```cpp
817
- #define CATCH_CONFIG_MAIN
818
- #include "catch2/catch.hpp"
819
- #include "Arduino.h"
820
- #include "catch_utils.hpp"
821
- #include "../../examples/bridge/mesh_topology_reporter.hpp"
822
-
823
- SCENARIO("Topology message validates against schema") {
824
- GIVEN("A MeshTopologyReporter") {
825
- // Test that generated JSON matches schema requirements
826
- REQUIRE(topology_has_envelope_fields());
827
- REQUIRE(topology_has_nodes_array());
828
- REQUIRE(topology_has_connections_array());
829
- REQUIRE(topology_has_metrics_object());
830
- }
831
- }
832
- ```
833
-
834
- **Estimated Effort:** 6-8 hours
835
-
836
- ---
837
-
838
- ## Part 5: Documentation Updates
839
-
840
- ### 5.1 Update MQTT_BRIDGE_COMMANDS.md
841
-
842
- Add sections:
843
-
844
- - Mesh Topology Reporting
845
- - Mesh Events
846
- - Topology command (300)
847
-
848
- **Estimated Effort:** 2-3 hours
849
-
850
- ---
851
-
852
- ### 5.2 Create MESH_TOPOLOGY_GUIDE.md
853
-
854
- **File:** `docs/MESH_TOPOLOGY_GUIDE.md` (NEW)
855
-
856
- **Content:**
857
-
858
- - How topology reporting works
859
- - How to visualize with D3.js
860
- - Troubleshooting topology issues
861
- - Performance considerations
862
-
863
- **Estimated Effort:** 4-6 hours
864
-
865
- ---
866
-
867
- ## Implementation Summary
868
-
869
- ### Phase 1: Core Library (HIGH PRIORITY)
870
-
871
- | Task | File | Effort | Priority |
872
- |------|------|--------|----------|
873
- | Add ConnectionInfo struct | mesh.hpp | 2h | 🔴 HIGH |
874
- | Add getConnectionDetails() | mesh.hpp | 4h | 🔴 HIGH |
875
- | Add getHopCount() | mesh.hpp | 2h | 🔴 HIGH |
876
- | Add getRoutingTable() | mesh.hpp | 2h | 🔴 HIGH |
877
- | Add Connection metrics | tcp.hpp | 6h | 🔴 HIGH |
878
- | **Subtotal** | | **16h** | |
879
-
880
- ### Phase 2: Topology Reporter (HIGH PRIORITY)
881
-
882
- | Task | File | Effort | Priority |
883
- |------|------|--------|----------|
884
- | Create MeshTopologyReporter | NEW | 8h | 🔴 HIGH |
885
- | Create MeshEventPublisher | NEW | 4h | 🔴 HIGH |
886
- | Update mqttCommandBridge.ino | MODIFY | 4h | 🔴 HIGH |
887
- | Add topology command handler | MODIFY | 2h | 🟡 MEDIUM |
888
- | **Subtotal** | | **18h** | |
889
-
890
- ### Phase 3: Testing (MEDIUM PRIORITY)
891
-
892
- | Task | File | Effort | Priority |
893
- |------|------|--------|----------|
894
- | Physical hardware testing | NEW | 6h | 🟡 MEDIUM |
895
- | Schema validation tests | NEW | 8h | 🟡 MEDIUM |
896
- | Integration testing | VARIOUS | 4h | 🟡 MEDIUM |
897
- | **Subtotal** | | **18h** | |
898
-
899
- ### Phase 4: Documentation (LOW PRIORITY)
900
-
901
- | Task | File | Effort | Priority |
902
- |------|------|--------|----------|
903
- | Update MQTT_BRIDGE_COMMANDS.md | MODIFY | 3h | 🟢 LOW |
904
- | Create MESH_TOPOLOGY_GUIDE.md | NEW | 6h | 🟢 LOW |
905
- | Update README examples | MODIFY | 2h | 🟢 LOW |
906
- | **Subtotal** | | **11h** | |
907
-
908
- ---
909
-
910
- ## Total Implementation Effort
911
-
912
- | Phase | Hours | Priority |
913
- |-------|-------|----------|
914
- | Phase 1: Core Library | 16h | 🔴 HIGH |
915
- | Phase 2: Topology Reporter | 18h | 🔴 HIGH |
916
- | Phase 3: Testing | 18h | 🟡 MEDIUM |
917
- | Phase 4: Documentation | 11h | 🟢 LOW |
918
- | **TOTAL** | **63h** | |
919
-
920
- **Estimated Calendar Time:** 2-3 weeks (assuming 1 developer, part-time)
921
-
922
- ---
923
-
924
- ## Dependencies
925
-
926
- ### External Dependencies
927
-
928
- 1. ✅ **@alteriom/mqtt-schema v0.5.0** - Schema definitions
929
- 2. ✅ **ArduinoJson** - Already used
930
- 3. ✅ **PubSubClient** - Already used
931
- 4. ✅ **TaskScheduler** - Already used
932
-
933
- ### Internal Dependencies
934
-
935
- 1. ⚠️ **painlessMesh core API changes** - Breaking changes to Connection class
936
- 2. ⚠️ **RSSI tracking** - Platform-specific (ESP32/ESP8266)
937
- 3. ⚠️ **NTP time sync** - For accurate ISO 8601 timestamps
938
-
939
- ---
940
-
941
- ## Risk Assessment
942
-
943
- ### High Risk ⚠️
944
-
945
- 1. **Connection metrics API** - Requires changes to core library
946
- - Mitigation: Extensive testing, backward compatibility checks
947
-
948
- 2. **RSSI tracking** - Platform-specific implementation
949
- - Mitigation: Abstract platform differences, provide defaults
950
-
951
- 3. **Memory constraints** - Large JSON documents (8KB topology)
952
- - Mitigation: Use streaming JSON, reduce buffer sizes on ESP8266
953
-
954
- ### Medium Risk 🟡
955
-
956
- 1. **Performance impact** - Additional metric tracking overhead
957
- - Mitigation: Make metrics collection optional, optimize data structures
958
-
959
- 2. **Breaking changes** - Connection class modifications
960
- - Mitigation: Version bump to v1.7.0, update changelog
961
-
962
- ### Low Risk ✅
963
-
964
- 1. **Schema compliance** - Matching @alteriom/mqtt-schema exactly
965
- - Mitigation: Automated schema validation tests
966
-
967
- ---
968
-
969
- ## Backward Compatibility
970
-
971
- ### Breaking Changes ⚠️
972
-
973
- 1. **Connection class** - New public members may break existing code that copies/serializes Connection objects
974
- - **Solution:** Version bump to v1.7.0, deprecation warnings in v1.6.x
975
-
976
- 2. **Memory usage** - Increased RAM usage due to metric tracking
977
- - **Solution:** Make metrics optional via compile-time flag `PAINLESSMESH_ENABLE_METRICS`
978
-
979
- ### Non-Breaking Changes ✅
980
-
981
- 1. **New API methods** - additive, doesn't affect existing code
982
- 2. **MQTT bridge enhancements** - in examples, not core library
983
- 3. **Documentation** - purely additive
984
-
985
- ---
986
-
987
- ## Recommended Implementation Order
988
-
989
- ### Week 1: Foundation
990
-
991
- 1. ✅ Review and approve schema additions
992
- 2. Add ConnectionInfo struct to mesh.hpp
993
- 3. Add basic metric tracking to Connection class
994
- 4. Implement getConnectionDetails() API
995
-
996
- ### Week 2: Topology Reporting
997
-
998
- 1. Create MeshTopologyReporter class
999
- 2. Create MeshEventPublisher class
1000
- 3. Update mqttCommandBridge.ino
1001
- 4. Basic testing with 2-node mesh
1002
-
1003
- ### Week 3: Polish & Testing
1004
-
1005
- 1. Add topology command handler
1006
- 2. Physical hardware testing (3-4 node mesh)
1007
- 3. Schema validation tests
1008
- 4. Documentation updates
1009
-
1010
- ---
1011
-
1012
- ## Success Criteria
1013
-
1014
- ✅ **Must Have (v1.7.0):**
1015
-
1016
- - Schema-compliant topology messages
1017
- - Real-time mesh events (join/leave)
1018
- - Connection quality metrics (RSSI, latency, quality)
1019
- - Full and incremental topology updates
1020
- - Backward compatible with v1.6.x (no breaking changes to public API)
1021
-
1022
- 📋 **Should Have (v1.7.1):**
1023
-
1024
- - Topology command handler (GET_TOPOLOGY)
1025
- - Hop count calculation
1026
- - Routing table export
1027
- - Performance optimization
1028
-
1029
- 🎯 **Nice to Have (v1.8.0):**
1030
-
1031
- - Mesh diagnostics command
1032
- - Per-message route tracking
1033
- - Historical topology storage
1034
- - Advanced quality metrics (jitter, throughput)
1035
-
1036
- ---
1037
-
1038
- ## Next Steps
1039
-
1040
- ### Immediate Actions
1041
-
1042
- 1. 📝 **Review this plan** - Get team approval
1043
- 2. 🔧 **Set up development branch** - `feature/mesh-topology-v0.5`
1044
- 3. 📦 **Create GitHub issues** - Break down tasks
1045
- 4. 🧪 **Set up test hardware** - 3x ESP32 boards
1046
- 5. 📚 **Wait for schema release** - Monitor @alteriom/mqtt-schema repo
1047
-
1048
- ### Development Kickoff
1049
-
1050
- Once @alteriom/mqtt-schema v0.5.0 is released:
1051
-
1052
- 1. Start with Phase 1 (Core Library APIs)
1053
- 2. Weekly progress check-ins
1054
- 3. Code reviews for each major component
1055
- 4. Continuous integration testing
1056
-
1057
- ---
1058
-
1059
- **Prepared By:** Alteriom Development Team
1060
- **Date:** October 12, 2025
1061
- **Status:** 📋 READY FOR IMPLEMENTATION
1062
- **Estimated Completion:** 3 weeks from start
1
+ # painlessMesh Implementation Plan for MQTT Schema v0.5.0
2
+
3
+ **Date:** October 12, 2025
4
+ **Target:** Support mesh_topology.schema.json and mesh_event.schema.json
5
+ **Status:** 📋 IMPLEMENTATION PLAN
6
+
7
+ ---
8
+
9
+ ## Executive Summary
10
+
11
+ Assuming @alteriom/mqtt-schema v0.5.0 is released with the new mesh topology and event schemas, this document outlines **all required implementations** in the painlessMesh library to fully support these features.
12
+
13
+ ### What's Already Done ✅
14
+
15
+ 1. ✅ **Command Bridge** - MqttCommandBridge class (417 lines)
16
+ 2. ✅ **Gateway Example** - mqttCommandBridge.ino with basic topology
17
+ 3. ✅ **Node Handler** - mesh_command_node.ino with command responses
18
+ 4. ✅ **Status Packages** - Enhanced StatusPackage with response tracking
19
+ 5. ✅ **Basic Topology** - Simple node list publishing every 30s
20
+
21
+ ### What Needs Implementation ⚠️
22
+
23
+ 1. ⚠️ **Schema-Compliant Topology Reporter** - Full mesh structure with connections
24
+ 2. ⚠️ **Connection Quality Tracking** - RSSI, latency, hop count per link
25
+ 3. ⚠️ **Mesh Event Publisher** - Real-time node join/leave notifications
26
+ 4. ⚠️ **Topology Command Handler** - `get_topology` command support
27
+ 5. ⚠️ **Enhanced Gateway Bridge** - Schema v0.5.0 compliance
28
+ 6. ⚠️ **Connection Metadata API** - Expose connection details from painlessMesh core
29
+
30
+ ---
31
+
32
+ ## Part 1: Core Library Enhancements
33
+
34
+ ### 1.1 Add Connection Metadata API
35
+
36
+ **File:** `src/painlessmesh/mesh.hpp`
37
+
38
+ **Problem:** painlessMesh tracks connections internally but doesn't expose connection quality metrics (RSSI, latency, hop count).
39
+
40
+ **Solution:** Add public API to retrieve connection metadata.
41
+
42
+ #### New Public Methods
43
+
44
+ ```cpp
45
+ /**
46
+ * @brief Get connection quality for a specific link
47
+ * @param fromNode Source node ID
48
+ * @param toNode Destination node ID
49
+ * @return Connection quality (0-100) or -1 if not connected
50
+ */
51
+ int getConnectionQuality(uint32_t fromNode, uint32_t toNode);
52
+
53
+ /**
54
+ * @brief Get RSSI for a direct connection
55
+ * @param nodeId Connected node ID
56
+ * @return RSSI in dBm (typically -30 to -90) or 0 if not available
57
+ */
58
+ int getConnectionRSSI(uint32_t nodeId);
59
+
60
+ /**
61
+ * @brief Get average latency to a node
62
+ * @param nodeId Target node ID
63
+ * @return Latency in milliseconds or -1 if not available
64
+ */
65
+ int getConnectionLatency(uint32_t nodeId);
66
+
67
+ /**
68
+ * @brief Get hop count to a node
69
+ * @param nodeId Target node ID
70
+ * @return Number of hops or -1 if unreachable
71
+ */
72
+ int getHopCount(uint32_t nodeId);
73
+
74
+ /**
75
+ * @brief Get all direct connections with metadata
76
+ * @return List of connection objects with quality metrics
77
+ */
78
+ std::vector<ConnectionInfo> getConnectionDetails();
79
+
80
+ /**
81
+ * @brief Get routing table for mesh visualization
82
+ * @return Map of destination -> next hop mappings
83
+ */
84
+ std::map<uint32_t, uint32_t> getRoutingTable();
85
+ ```
86
+
87
+ #### New Data Structure
88
+
89
+ ```cpp
90
+ struct ConnectionInfo {
91
+ uint32_t nodeId; // Connected node ID
92
+ uint32_t lastSeen; // Timestamp of last message (ms)
93
+ int rssi; // Signal strength (dBm)
94
+ int avgLatency; // Average round-trip time (ms)
95
+ int hopCount; // Hops from current node
96
+ int quality; // Connection quality (0-100)
97
+ uint32_t messagesRx; // Messages received
98
+ uint32_t messagesTx; // Messages sent
99
+ uint32_t messagesDropped; // Failed transmissions
100
+ };
101
+ ```
102
+
103
+ #### Implementation Location
104
+
105
+ **File to modify:** `src/painlessmesh/mesh.hpp`
106
+
107
+ **Add after line 365 (after `subConnectionJson()`):**
108
+
109
+ ```cpp
110
+ /**
111
+ * Get detailed connection information for all direct neighbors
112
+ */
113
+ std::vector<ConnectionInfo> getConnectionDetails() {
114
+ std::vector<ConnectionInfo> connections;
115
+
116
+ for (auto conn : this->connections) {
117
+ if (conn->isConnected()) {
118
+ ConnectionInfo info;
119
+ info.nodeId = conn->nodeId;
120
+ info.lastSeen = conn->timeLastReceived;
121
+ info.rssi = conn->getRSSI(); // Need to add this to Connection class
122
+ info.avgLatency = conn->getLatency(); // Need to add this
123
+ info.hopCount = 1; // Direct connection
124
+ info.quality = conn->getQuality(); // Need to add this
125
+ info.messagesRx = conn->messagesRx; // Need to add counter
126
+ info.messagesTx = conn->messagesTx; // Need to add counter
127
+ info.messagesDropped = conn->messagesDropped; // Need to add counter
128
+
129
+ connections.push_back(info);
130
+ }
131
+ }
132
+
133
+ return connections;
134
+ }
135
+
136
+ /**
137
+ * Get hop count to specific node using routing table
138
+ */
139
+ int getHopCount(uint32_t nodeId) {
140
+ auto route = this->findRoute(nodeId);
141
+ if (route.empty()) return -1;
142
+ return route.size() - 1; // Don't count source node
143
+ }
144
+
145
+ /**
146
+ * Get routing table as map (destination -> next hop)
147
+ */
148
+ std::map<uint32_t, uint32_t> getRoutingTable() {
149
+ std::map<uint32_t, uint32_t> table;
150
+ auto nodeList = this->getNodeList(false);
151
+
152
+ for (auto destNode : nodeList) {
153
+ auto route = this->findRoute(destNode);
154
+ if (!route.empty() && route.size() > 1) {
155
+ table[destNode] = route[1]; // Next hop after source
156
+ }
157
+ }
158
+
159
+ return table;
160
+ }
161
+ ```
162
+
163
+ **Estimated Effort:** 4-6 hours (requires adding metrics tracking to Connection class)
164
+
165
+ ---
166
+
167
+ ### 1.2 Enhance Connection Class with Metrics
168
+
169
+ **File:** `src/painlessmesh/tcp.hpp` (or wherever Connection is defined)
170
+
171
+ **Add to Connection class:**
172
+
173
+ ```cpp
174
+ class Connection {
175
+ public:
176
+ // Existing members...
177
+
178
+ // New metrics tracking
179
+ uint32_t messagesRx = 0;
180
+ uint32_t messagesTx = 0;
181
+ uint32_t messagesDropped = 0;
182
+ uint32_t timeLastReceived = 0;
183
+
184
+ // Latency tracking
185
+ std::vector<uint32_t> latencySamples;
186
+ const size_t MAX_LATENCY_SAMPLES = 10;
187
+
188
+ /**
189
+ * Record message received timestamp
190
+ */
191
+ void onMessageReceived() {
192
+ messagesRx++;
193
+ timeLastReceived = millis();
194
+ }
195
+
196
+ /**
197
+ * Record message sent
198
+ */
199
+ void onMessageSent(bool success) {
200
+ if (success) {
201
+ messagesTx++;
202
+ } else {
203
+ messagesDropped++;
204
+ }
205
+ }
206
+
207
+ /**
208
+ * Record round-trip time sample
209
+ */
210
+ void recordLatency(uint32_t latencyMs) {
211
+ latencySamples.push_back(latencyMs);
212
+ if (latencySamples.size() > MAX_LATENCY_SAMPLES) {
213
+ latencySamples.erase(latencySamples.begin());
214
+ }
215
+ }
216
+
217
+ /**
218
+ * Get average latency from recent samples
219
+ */
220
+ int getLatency() {
221
+ if (latencySamples.empty()) return -1;
222
+
223
+ uint32_t sum = 0;
224
+ for (auto sample : latencySamples) {
225
+ sum += sample;
226
+ }
227
+ return sum / latencySamples.size();
228
+ }
229
+
230
+ /**
231
+ * Calculate connection quality (0-100)
232
+ * Based on: latency, packet loss, RSSI
233
+ */
234
+ int getQuality() {
235
+ // Simple quality calculation
236
+ int quality = 100;
237
+
238
+ // Penalize high latency (>100ms)
239
+ int latency = getLatency();
240
+ if (latency > 100) quality -= (latency - 100) / 5;
241
+
242
+ // Penalize packet loss
243
+ if (messagesTx > 0) {
244
+ int lossRate = (messagesDropped * 100) / messagesTx;
245
+ quality -= lossRate;
246
+ }
247
+
248
+ // Penalize weak RSSI (if available)
249
+ int rssi = getRSSI();
250
+ if (rssi < -80) quality -= (80 + rssi);
251
+
252
+ return max(0, min(100, quality));
253
+ }
254
+
255
+ /**
256
+ * Get WiFi RSSI if available
257
+ * Note: Requires ESP8266/ESP32 specific code
258
+ */
259
+ int getRSSI() {
260
+ #if defined(ESP32) || defined(ESP8266)
261
+ // This needs platform-specific implementation
262
+ // For now, return placeholder
263
+ return -60; // TODO: Get actual RSSI from WiFi
264
+ #else
265
+ return 0; // Not available on non-WiFi platforms
266
+ #endif
267
+ }
268
+ };
269
+ ```
270
+
271
+ **Estimated Effort:** 6-8 hours (requires testing on ESP32/ESP8266)
272
+
273
+ ---
274
+
275
+ ## Part 2: Topology Reporter Implementation
276
+
277
+ ### 2.1 Create MeshTopologyReporter Class
278
+
279
+ **File:** `examples/bridge/mesh_topology_reporter.hpp` (NEW)
280
+
281
+ **Purpose:** Generate schema-compliant topology messages
282
+
283
+ ```cpp
284
+ #ifndef MESH_TOPOLOGY_REPORTER_HPP
285
+ #define MESH_TOPOLOGY_REPORTER_HPP
286
+
287
+ #include "painlessMesh.h"
288
+ #include <ArduinoJson.h>
289
+
290
+ class MeshTopologyReporter {
291
+ private:
292
+ painlessMesh& mesh;
293
+ String meshId;
294
+ String lastTopologyHash; // Detect changes
295
+
296
+ public:
297
+ MeshTopologyReporter(painlessMesh& mesh, const String& meshId)
298
+ : mesh(mesh), meshId(meshId) {}
299
+
300
+ /**
301
+ * Generate full topology message (schema v0.5.0 compliant)
302
+ */
303
+ String generateFullTopology() {
304
+ DynamicJsonDocument doc(8192); // Large buffer for full topology
305
+
306
+ // Envelope fields (from @alteriom/mqtt-schema)
307
+ doc["schema_version"] = 1;
308
+ doc["device_id"] = String(mesh.getNodeId());
309
+ doc["device_type"] = "gateway";
310
+ doc["timestamp"] = getISO8601Timestamp();
311
+ doc["firmware_version"] = "GW 2.3.4"; // Make configurable
312
+
313
+ // Event discriminator
314
+ doc["event"] = "mesh_topology";
315
+
316
+ // Mesh identification
317
+ doc["mesh_id"] = meshId;
318
+ doc["gateway_node_id"] = String(mesh.getNodeId());
319
+
320
+ // Nodes array
321
+ JsonArray nodes = doc.createNestedArray("nodes");
322
+ addNodeInfo(nodes, mesh.getNodeId(), "gateway"); // Self
323
+
324
+ auto nodeList = mesh.getNodeList(false);
325
+ for (auto nodeId : nodeList) {
326
+ addNodeInfo(nodes, nodeId, "sensor"); // Assume sensor role
327
+ }
328
+
329
+ // Connections array
330
+ JsonArray connections = doc.createNestedArray("connections");
331
+ addConnectionInfo(connections);
332
+
333
+ // Network metrics
334
+ JsonObject metrics = doc.createNestedObject("metrics");
335
+ metrics["total_nodes"] = nodeList.size() + 1; // +1 for gateway
336
+ metrics["online_nodes"] = nodeList.size() + 1;
337
+ metrics["network_diameter"] = calculateNetworkDiameter();
338
+ metrics["avg_connection_quality"] = calculateAvgQuality();
339
+ metrics["messages_per_second"] = calculateThroughput();
340
+
341
+ doc["update_type"] = "full";
342
+
343
+ String output;
344
+ serializeJson(doc, output);
345
+ return output;
346
+ }
347
+
348
+ /**
349
+ * Generate incremental topology update
350
+ */
351
+ String generateIncrementalUpdate(uint32_t nodeId, bool joined) {
352
+ DynamicJsonDocument doc(2048);
353
+
354
+ // Envelope fields
355
+ doc["schema_version"] = 1;
356
+ doc["device_id"] = String(mesh.getNodeId());
357
+ doc["device_type"] = "gateway";
358
+ doc["timestamp"] = getISO8601Timestamp();
359
+ doc["firmware_version"] = "GW 2.3.4";
360
+
361
+ doc["event"] = "mesh_topology";
362
+ doc["mesh_id"] = meshId;
363
+ doc["gateway_node_id"] = String(mesh.getNodeId());
364
+
365
+ // Node that changed
366
+ JsonArray nodes = doc.createNestedArray("nodes");
367
+ if (joined) {
368
+ addNodeInfo(nodes, nodeId, "sensor");
369
+ } else {
370
+ // For node leaving, mark as offline
371
+ JsonObject node = nodes.createNestedObject();
372
+ node["node_id"] = String(nodeId);
373
+ node["status"] = "offline";
374
+ }
375
+
376
+ // Update connections
377
+ JsonArray connections = doc.createNestedArray("connections");
378
+ // Add connections related to this node
379
+
380
+ doc["update_type"] = "incremental";
381
+
382
+ String output;
383
+ serializeJson(doc, output);
384
+ return output;
385
+ }
386
+
387
+ /**
388
+ * Check if topology has changed
389
+ */
390
+ bool hasTopologyChanged() {
391
+ String currentHash = calculateTopologyHash();
392
+ if (currentHash != lastTopologyHash) {
393
+ lastTopologyHash = currentHash;
394
+ return true;
395
+ }
396
+ return false;
397
+ }
398
+
399
+ private:
400
+ /**
401
+ * Add node information to JSON array
402
+ */
403
+ void addNodeInfo(JsonArray& nodes, uint32_t nodeId, const char* role) {
404
+ JsonObject node = nodes.createNestedObject();
405
+ node["node_id"] = String(nodeId);
406
+ node["role"] = role;
407
+ node["status"] = "online";
408
+ node["last_seen"] = getISO8601Timestamp();
409
+
410
+ // If we have connection to this node, add metrics
411
+ // This requires connection metadata API
412
+ node["uptime_seconds"] = 0; // TODO: Track per-node uptime
413
+ node["free_memory_kb"] = 0; // TODO: Get from node status messages
414
+ node["connection_count"] = 0; // TODO: Calculate from mesh structure
415
+
416
+ // Gateway node has additional info
417
+ if (nodeId == mesh.getNodeId()) {
418
+ node["uptime_seconds"] = millis() / 1000;
419
+ node["free_memory_kb"] = ESP.getFreeHeap() / 1024;
420
+ node["connection_count"] = mesh.getNodeList().size();
421
+ }
422
+ }
423
+
424
+ /**
425
+ * Add connection information to JSON array
426
+ */
427
+ void addConnectionInfo(JsonArray& connections) {
428
+ // Get direct connections with quality metrics
429
+ // This requires new API: mesh.getConnectionDetails()
430
+
431
+ auto nodeList = mesh.getNodeList(false);
432
+ uint32_t gatewayId = mesh.getNodeId();
433
+
434
+ // For now, create basic connection data
435
+ // TODO: Use actual connection quality API
436
+ for (auto nodeId : nodeList) {
437
+ JsonObject conn = connections.createNestedObject();
438
+ conn["from_node"] = String(gatewayId);
439
+ conn["to_node"] = String(nodeId);
440
+ conn["quality"] = 85; // TODO: Get actual quality
441
+ conn["latency_ms"] = 20; // TODO: Get actual latency
442
+ conn["rssi"] = -55; // TODO: Get actual RSSI
443
+ conn["hop_count"] = 1; // TODO: Calculate hop count
444
+ }
445
+ }
446
+
447
+ /**
448
+ * Calculate network diameter (max hop count)
449
+ */
450
+ int calculateNetworkDiameter() {
451
+ int maxHops = 0;
452
+ auto nodeList = mesh.getNodeList(false);
453
+
454
+ for (auto nodeId : nodeList) {
455
+ // TODO: Use mesh.getHopCount(nodeId)
456
+ // For now assume max 2 hops
457
+ maxHops = max(maxHops, 2);
458
+ }
459
+
460
+ return maxHops;
461
+ }
462
+
463
+ /**
464
+ * Calculate average connection quality
465
+ */
466
+ float calculateAvgQuality() {
467
+ // TODO: Use connection quality API
468
+ // For now return placeholder
469
+ return 85.0;
470
+ }
471
+
472
+ /**
473
+ * Calculate network throughput
474
+ */
475
+ float calculateThroughput() {
476
+ // TODO: Track message rates
477
+ // For now return placeholder
478
+ return 12.4;
479
+ }
480
+
481
+ /**
482
+ * Calculate topology hash for change detection
483
+ */
484
+ String calculateTopologyHash() {
485
+ auto nodeList = mesh.getNodeList(true);
486
+ String hash = String(nodeList.size());
487
+ for (auto nodeId : nodeList) {
488
+ hash += String(nodeId);
489
+ }
490
+ return hash;
491
+ }
492
+
493
+ /**
494
+ * Get current timestamp in ISO 8601 format
495
+ */
496
+ String getISO8601Timestamp() {
497
+ // TODO: Use proper NTP time if available
498
+ // For now return epoch-based timestamp
499
+ unsigned long ms = millis();
500
+ char timestamp[32];
501
+ snprintf(timestamp, sizeof(timestamp), "2025-10-12T%02lu:%02lu:%02luZ",
502
+ (ms / 3600000) % 24,
503
+ (ms / 60000) % 60,
504
+ (ms / 1000) % 60);
505
+ return String(timestamp);
506
+ }
507
+ };
508
+
509
+ #endif // MESH_TOPOLOGY_REPORTER_HPP
510
+ ```
511
+
512
+ **Estimated Effort:** 8-10 hours (initial implementation + testing)
513
+
514
+ ---
515
+
516
+ ### 2.2 Create MeshEventPublisher Class
517
+
518
+ **File:** `examples/bridge/mesh_event_publisher.hpp` (NEW)
519
+
520
+ **Purpose:** Publish real-time mesh events
521
+
522
+ ```cpp
523
+ #ifndef MESH_EVENT_PUBLISHER_HPP
524
+ #define MESH_EVENT_PUBLISHER_HPP
525
+
526
+ #include "painlessMesh.h"
527
+ #include <PubSubClient.h>
528
+ #include <ArduinoJson.h>
529
+
530
+ class MeshEventPublisher {
531
+ private:
532
+ painlessMesh& mesh;
533
+ PubSubClient& mqttClient;
534
+ String meshId;
535
+ String eventTopic;
536
+
537
+ public:
538
+ MeshEventPublisher(painlessMesh& mesh, PubSubClient& mqttClient,
539
+ const String& meshId, const String& topic = "mesh/events")
540
+ : mesh(mesh), mqttClient(mqttClient), meshId(meshId), eventTopic(topic) {}
541
+
542
+ /**
543
+ * Publish node join event
544
+ */
545
+ void publishNodeJoin(uint32_t nodeId) {
546
+ DynamicJsonDocument doc(1024);
547
+
548
+ // Envelope
549
+ doc["schema_version"] = 1;
550
+ doc["device_id"] = String(mesh.getNodeId());
551
+ doc["device_type"] = "gateway";
552
+ doc["timestamp"] = getISO8601Timestamp();
553
+ doc["firmware_version"] = "GW 2.3.4";
554
+
555
+ // Event
556
+ doc["event"] = "mesh_event";
557
+ doc["event_type"] = "node_join";
558
+ doc["mesh_id"] = meshId;
559
+
560
+ JsonArray affected = doc.createNestedArray("affected_nodes");
561
+ affected.add(String(nodeId));
562
+
563
+ JsonObject details = doc.createNestedObject("details");
564
+ details["total_nodes"] = mesh.getNodeList().size() + 1;
565
+ details["timestamp"] = getISO8601Timestamp();
566
+
567
+ publishEvent(doc);
568
+ }
569
+
570
+ /**
571
+ * Publish node leave event
572
+ */
573
+ void publishNodeLeave(uint32_t nodeId) {
574
+ DynamicJsonDocument doc(1024);
575
+
576
+ // Envelope
577
+ doc["schema_version"] = 1;
578
+ doc["device_id"] = String(mesh.getNodeId());
579
+ doc["device_type"] = "gateway";
580
+ doc["timestamp"] = getISO8601Timestamp();
581
+ doc["firmware_version"] = "GW 2.3.4";
582
+
583
+ // Event
584
+ doc["event"] = "mesh_event";
585
+ doc["event_type"] = "node_leave";
586
+ doc["mesh_id"] = meshId;
587
+
588
+ JsonArray affected = doc.createNestedArray("affected_nodes");
589
+ affected.add(String(nodeId));
590
+
591
+ JsonObject details = doc.createNestedObject("details");
592
+ details["reason"] = "connection_lost";
593
+ details["last_seen"] = getISO8601Timestamp();
594
+ details["total_nodes"] = mesh.getNodeList().size() + 1;
595
+
596
+ publishEvent(doc);
597
+ }
598
+
599
+ /**
600
+ * Publish connection lost event
601
+ */
602
+ void publishConnectionLost(uint32_t nodeId) {
603
+ DynamicJsonDocument doc(1024);
604
+
605
+ doc["schema_version"] = 1;
606
+ doc["device_id"] = String(mesh.getNodeId());
607
+ doc["device_type"] = "gateway";
608
+ doc["timestamp"] = getISO8601Timestamp();
609
+ doc["firmware_version"] = "GW 2.3.4";
610
+
611
+ doc["event"] = "mesh_event";
612
+ doc["event_type"] = "connection_lost";
613
+ doc["mesh_id"] = meshId;
614
+
615
+ JsonArray affected = doc.createNestedArray("affected_nodes");
616
+ affected.add(String(nodeId));
617
+
618
+ publishEvent(doc);
619
+ }
620
+
621
+ /**
622
+ * Publish connection restored event
623
+ */
624
+ void publishConnectionRestored(uint32_t nodeId) {
625
+ DynamicJsonDocument doc(1024);
626
+
627
+ doc["schema_version"] = 1;
628
+ doc["device_id"] = String(mesh.getNodeId());
629
+ doc["device_type"] = "gateway";
630
+ doc["timestamp"] = getISO8601Timestamp();
631
+ doc["firmware_version"] = "GW 2.3.4";
632
+
633
+ doc["event"] = "mesh_event";
634
+ doc["event_type"] = "connection_restored";
635
+ doc["mesh_id"] = meshId;
636
+
637
+ JsonArray affected = doc.createNestedArray("affected_nodes");
638
+ affected.add(String(nodeId));
639
+
640
+ publishEvent(doc);
641
+ }
642
+
643
+ private:
644
+ void publishEvent(const DynamicJsonDocument& doc) {
645
+ if (!mqttClient.connected()) return;
646
+
647
+ String payload;
648
+ serializeJson(doc, payload);
649
+
650
+ mqttClient.publish(eventTopic.c_str(), payload.c_str());
651
+
652
+ Serial.printf("[Event] Published: %s\n",
653
+ doc["event_type"].as<const char*>());
654
+ }
655
+
656
+ String getISO8601Timestamp() {
657
+ unsigned long ms = millis();
658
+ char timestamp[32];
659
+ snprintf(timestamp, sizeof(timestamp), "2025-10-12T%02lu:%02lu:%02luZ",
660
+ (ms / 3600000) % 24,
661
+ (ms / 60000) % 60,
662
+ (ms / 1000) % 60);
663
+ return String(timestamp);
664
+ }
665
+ };
666
+
667
+ #endif // MESH_EVENT_PUBLISHER_HPP
668
+ ```
669
+
670
+ **Estimated Effort:** 4-6 hours
671
+
672
+ ---
673
+
674
+ ## Part 3: Enhanced Gateway Bridge
675
+
676
+ ### 3.1 Update mqttCommandBridge.ino
677
+
678
+ **File:** `examples/mqttCommandBridge/mqttCommandBridge.ino`
679
+
680
+ **Changes Required:**
681
+
682
+ 1. Include new reporters
683
+ 2. Replace simple topology with schema-compliant topology
684
+ 3. Add event publisher integration
685
+ 4. Add topology command handler
686
+
687
+ ```cpp
688
+ // Add includes
689
+ #include "examples/bridge/mesh_topology_reporter.hpp"
690
+ #include "examples/bridge/mesh_event_publisher.hpp"
691
+
692
+ // Add global instances
693
+ MeshTopologyReporter* topologyReporter;
694
+ MeshEventPublisher* eventPublisher;
695
+
696
+ // Update taskTopology
697
+ Task taskTopology(TASK_SECOND * 60, TASK_FOREVER, []() {
698
+ if (mqttClient.connected()) {
699
+ // Generate schema-compliant topology
700
+ String topology = topologyReporter->generateFullTopology();
701
+ mqttClient.publish("alteriom/mesh/MESH-001/topology", topology.c_str());
702
+
703
+ Serial.println("[Topology] Published full mesh topology");
704
+ }
705
+ });
706
+
707
+ // Add incremental topology task
708
+ Task taskTopologyIncremental(TASK_SECOND * 5, TASK_FOREVER, []() {
709
+ if (mqttClient.connected() && topologyReporter->hasTopologyChanged()) {
710
+ // Publish incremental update only if topology changed
711
+ // Note: This requires tracking what changed
712
+ Serial.println("[Topology] Topology changed, publishing update");
713
+
714
+ // For now, publish full topology
715
+ // TODO: Generate incremental updates
716
+ String topology = topologyReporter->generateFullTopology();
717
+ mqttClient.publish("alteriom/mesh/MESH-001/topology", topology.c_str());
718
+ }
719
+ });
720
+
721
+ // Update setup()
722
+ void setup() {
723
+ // ... existing setup code ...
724
+
725
+ // Initialize topology reporter
726
+ topologyReporter = new MeshTopologyReporter(mesh, "MESH-001");
727
+
728
+ // Initialize event publisher
729
+ eventPublisher = new MeshEventPublisher(mesh, mqttClient, "MESH-001");
730
+
731
+ // Update mesh callbacks to use event publisher
732
+ mesh.onNewConnection([](uint32_t nodeId) {
733
+ Serial.printf("New node connected: %u\n", nodeId);
734
+ eventPublisher->publishNodeJoin(nodeId);
735
+
736
+ // Trigger topology update
737
+ String topology = topologyReporter->generateIncrementalUpdate(nodeId, true);
738
+ mqttClient.publish("alteriom/mesh/MESH-001/topology", topology.c_str());
739
+ });
740
+
741
+ mesh.onDroppedConnection([](uint32_t nodeId) {
742
+ Serial.printf("Node disconnected: %u\n", nodeId);
743
+ eventPublisher->publishNodeLeave(nodeId);
744
+
745
+ // Trigger topology update
746
+ String topology = topologyReporter->generateIncrementalUpdate(nodeId, false);
747
+ mqttClient.publish("alteriom/mesh/MESH-001/topology", topology.c_str());
748
+ });
749
+
750
+ // Add incremental topology task
751
+ userScheduler.addTask(taskTopologyIncremental);
752
+ taskTopologyIncremental.enable();
753
+
754
+ // ... rest of setup ...
755
+ }
756
+ ```
757
+
758
+ **Estimated Effort:** 3-4 hours
759
+
760
+ ---
761
+
762
+ ### 3.2 Add Topology Command Handler
763
+
764
+ **Update:** `examples/bridge/mqtt_command_bridge.hpp`
765
+
766
+ **Add command 300 (GET_TOPOLOGY):**
767
+
768
+ ```cpp
769
+ case 300: // GET_TOPOLOGY
770
+ Serial.println("Command: GET_TOPOLOGY");
771
+ if (cmd.targetDevice == mesh.getNodeId() || cmd.targetDevice == 0) {
772
+ // Gateway should respond with full topology
773
+ // This requires access to MeshTopologyReporter
774
+ // For now, acknowledge and let scheduled task handle it
775
+ executeCommand(cmd);
776
+ } else {
777
+ // Forward to specific node (may not make sense)
778
+ forwardCommandToMesh(cmd);
779
+ }
780
+ break;
781
+ ```
782
+
783
+ **Estimated Effort:** 2-3 hours
784
+
785
+ ---
786
+
787
+ ## Part 4: Testing & Validation
788
+
789
+ ### 4.1 Create Test Sketch
790
+
791
+ **File:** `examples/mqttTopologyTest/mqttTopologyTest.ino` (NEW)
792
+
793
+ **Purpose:** Test topology reporting with 3-node mesh
794
+
795
+ ```cpp
796
+ // Minimal test setup with 3 ESP32s
797
+ // - 1 Gateway (publishes topology)
798
+ // - 2 Sensor nodes
799
+ // Verify:
800
+ // - Full topology published every 60s
801
+ // - Incremental updates on node join/leave
802
+ // - Events published correctly
803
+ // - Schema validation passes
804
+ ```
805
+
806
+ **Estimated Effort:** 4-6 hours (requires physical hardware)
807
+
808
+ ---
809
+
810
+ ### 4.2 Schema Validation Tests
811
+
812
+ **File:** `test/catch/catch_topology_schema.cpp` (NEW)
813
+
814
+ **Purpose:** Validate generated topology matches schema
815
+
816
+ ```cpp
817
+ #define CATCH_CONFIG_MAIN
818
+ #include "catch2/catch.hpp"
819
+ #include "Arduino.h"
820
+ #include "catch_utils.hpp"
821
+ #include "../../examples/bridge/mesh_topology_reporter.hpp"
822
+
823
+ SCENARIO("Topology message validates against schema") {
824
+ GIVEN("A MeshTopologyReporter") {
825
+ // Test that generated JSON matches schema requirements
826
+ REQUIRE(topology_has_envelope_fields());
827
+ REQUIRE(topology_has_nodes_array());
828
+ REQUIRE(topology_has_connections_array());
829
+ REQUIRE(topology_has_metrics_object());
830
+ }
831
+ }
832
+ ```
833
+
834
+ **Estimated Effort:** 6-8 hours
835
+
836
+ ---
837
+
838
+ ## Part 5: Documentation Updates
839
+
840
+ ### 5.1 Update MQTT_BRIDGE_COMMANDS.md
841
+
842
+ Add sections:
843
+
844
+ - Mesh Topology Reporting
845
+ - Mesh Events
846
+ - Topology command (300)
847
+
848
+ **Estimated Effort:** 2-3 hours
849
+
850
+ ---
851
+
852
+ ### 5.2 Create MESH_TOPOLOGY_GUIDE.md
853
+
854
+ **File:** `docs/MESH_TOPOLOGY_GUIDE.md` (NEW)
855
+
856
+ **Content:**
857
+
858
+ - How topology reporting works
859
+ - How to visualize with D3.js
860
+ - Troubleshooting topology issues
861
+ - Performance considerations
862
+
863
+ **Estimated Effort:** 4-6 hours
864
+
865
+ ---
866
+
867
+ ## Implementation Summary
868
+
869
+ ### Phase 1: Core Library (HIGH PRIORITY)
870
+
871
+ | Task | File | Effort | Priority |
872
+ |------|------|--------|----------|
873
+ | Add ConnectionInfo struct | mesh.hpp | 2h | 🔴 HIGH |
874
+ | Add getConnectionDetails() | mesh.hpp | 4h | 🔴 HIGH |
875
+ | Add getHopCount() | mesh.hpp | 2h | 🔴 HIGH |
876
+ | Add getRoutingTable() | mesh.hpp | 2h | 🔴 HIGH |
877
+ | Add Connection metrics | tcp.hpp | 6h | 🔴 HIGH |
878
+ | **Subtotal** | | **16h** | |
879
+
880
+ ### Phase 2: Topology Reporter (HIGH PRIORITY)
881
+
882
+ | Task | File | Effort | Priority |
883
+ |------|------|--------|----------|
884
+ | Create MeshTopologyReporter | NEW | 8h | 🔴 HIGH |
885
+ | Create MeshEventPublisher | NEW | 4h | 🔴 HIGH |
886
+ | Update mqttCommandBridge.ino | MODIFY | 4h | 🔴 HIGH |
887
+ | Add topology command handler | MODIFY | 2h | 🟡 MEDIUM |
888
+ | **Subtotal** | | **18h** | |
889
+
890
+ ### Phase 3: Testing (MEDIUM PRIORITY)
891
+
892
+ | Task | File | Effort | Priority |
893
+ |------|------|--------|----------|
894
+ | Physical hardware testing | NEW | 6h | 🟡 MEDIUM |
895
+ | Schema validation tests | NEW | 8h | 🟡 MEDIUM |
896
+ | Integration testing | VARIOUS | 4h | 🟡 MEDIUM |
897
+ | **Subtotal** | | **18h** | |
898
+
899
+ ### Phase 4: Documentation (LOW PRIORITY)
900
+
901
+ | Task | File | Effort | Priority |
902
+ |------|------|--------|----------|
903
+ | Update MQTT_BRIDGE_COMMANDS.md | MODIFY | 3h | 🟢 LOW |
904
+ | Create MESH_TOPOLOGY_GUIDE.md | NEW | 6h | 🟢 LOW |
905
+ | Update README examples | MODIFY | 2h | 🟢 LOW |
906
+ | **Subtotal** | | **11h** | |
907
+
908
+ ---
909
+
910
+ ## Total Implementation Effort
911
+
912
+ | Phase | Hours | Priority |
913
+ |-------|-------|----------|
914
+ | Phase 1: Core Library | 16h | 🔴 HIGH |
915
+ | Phase 2: Topology Reporter | 18h | 🔴 HIGH |
916
+ | Phase 3: Testing | 18h | 🟡 MEDIUM |
917
+ | Phase 4: Documentation | 11h | 🟢 LOW |
918
+ | **TOTAL** | **63h** | |
919
+
920
+ **Estimated Calendar Time:** 2-3 weeks (assuming 1 developer, part-time)
921
+
922
+ ---
923
+
924
+ ## Dependencies
925
+
926
+ ### External Dependencies
927
+
928
+ 1. ✅ **@alteriom/mqtt-schema v0.5.0** - Schema definitions
929
+ 2. ✅ **ArduinoJson** - Already used
930
+ 3. ✅ **PubSubClient** - Already used
931
+ 4. ✅ **TaskScheduler** - Already used
932
+
933
+ ### Internal Dependencies
934
+
935
+ 1. ⚠️ **painlessMesh core API changes** - Breaking changes to Connection class
936
+ 2. ⚠️ **RSSI tracking** - Platform-specific (ESP32/ESP8266)
937
+ 3. ⚠️ **NTP time sync** - For accurate ISO 8601 timestamps
938
+
939
+ ---
940
+
941
+ ## Risk Assessment
942
+
943
+ ### High Risk ⚠️
944
+
945
+ 1. **Connection metrics API** - Requires changes to core library
946
+ - Mitigation: Extensive testing, backward compatibility checks
947
+
948
+ 2. **RSSI tracking** - Platform-specific implementation
949
+ - Mitigation: Abstract platform differences, provide defaults
950
+
951
+ 3. **Memory constraints** - Large JSON documents (8KB topology)
952
+ - Mitigation: Use streaming JSON, reduce buffer sizes on ESP8266
953
+
954
+ ### Medium Risk 🟡
955
+
956
+ 1. **Performance impact** - Additional metric tracking overhead
957
+ - Mitigation: Make metrics collection optional, optimize data structures
958
+
959
+ 2. **Breaking changes** - Connection class modifications
960
+ - Mitigation: Version bump to v1.7.0, update changelog
961
+
962
+ ### Low Risk ✅
963
+
964
+ 1. **Schema compliance** - Matching @alteriom/mqtt-schema exactly
965
+ - Mitigation: Automated schema validation tests
966
+
967
+ ---
968
+
969
+ ## Backward Compatibility
970
+
971
+ ### Breaking Changes ⚠️
972
+
973
+ 1. **Connection class** - New public members may break existing code that copies/serializes Connection objects
974
+ - **Solution:** Version bump to v1.7.0, deprecation warnings in v1.6.x
975
+
976
+ 2. **Memory usage** - Increased RAM usage due to metric tracking
977
+ - **Solution:** Make metrics optional via compile-time flag `PAINLESSMESH_ENABLE_METRICS`
978
+
979
+ ### Non-Breaking Changes ✅
980
+
981
+ 1. **New API methods** - additive, doesn't affect existing code
982
+ 2. **MQTT bridge enhancements** - in examples, not core library
983
+ 3. **Documentation** - purely additive
984
+
985
+ ---
986
+
987
+ ## Recommended Implementation Order
988
+
989
+ ### Week 1: Foundation
990
+
991
+ 1. ✅ Review and approve schema additions
992
+ 2. Add ConnectionInfo struct to mesh.hpp
993
+ 3. Add basic metric tracking to Connection class
994
+ 4. Implement getConnectionDetails() API
995
+
996
+ ### Week 2: Topology Reporting
997
+
998
+ 1. Create MeshTopologyReporter class
999
+ 2. Create MeshEventPublisher class
1000
+ 3. Update mqttCommandBridge.ino
1001
+ 4. Basic testing with 2-node mesh
1002
+
1003
+ ### Week 3: Polish & Testing
1004
+
1005
+ 1. Add topology command handler
1006
+ 2. Physical hardware testing (3-4 node mesh)
1007
+ 3. Schema validation tests
1008
+ 4. Documentation updates
1009
+
1010
+ ---
1011
+
1012
+ ## Success Criteria
1013
+
1014
+ ✅ **Must Have (v1.7.0):**
1015
+
1016
+ - Schema-compliant topology messages
1017
+ - Real-time mesh events (join/leave)
1018
+ - Connection quality metrics (RSSI, latency, quality)
1019
+ - Full and incremental topology updates
1020
+ - Backward compatible with v1.6.x (no breaking changes to public API)
1021
+
1022
+ 📋 **Should Have (v1.7.1):**
1023
+
1024
+ - Topology command handler (GET_TOPOLOGY)
1025
+ - Hop count calculation
1026
+ - Routing table export
1027
+ - Performance optimization
1028
+
1029
+ 🎯 **Nice to Have (v1.8.0):**
1030
+
1031
+ - Mesh diagnostics command
1032
+ - Per-message route tracking
1033
+ - Historical topology storage
1034
+ - Advanced quality metrics (jitter, throughput)
1035
+
1036
+ ---
1037
+
1038
+ ## Next Steps
1039
+
1040
+ ### Immediate Actions
1041
+
1042
+ 1. 📝 **Review this plan** - Get team approval
1043
+ 2. 🔧 **Set up development branch** - `feature/mesh-topology-v0.5`
1044
+ 3. 📦 **Create GitHub issues** - Break down tasks
1045
+ 4. 🧪 **Set up test hardware** - 3x ESP32 boards
1046
+ 5. 📚 **Wait for schema release** - Monitor @alteriom/mqtt-schema repo
1047
+
1048
+ ### Development Kickoff
1049
+
1050
+ Once @alteriom/mqtt-schema v0.5.0 is released:
1051
+
1052
+ 1. Start with Phase 1 (Core Library APIs)
1053
+ 2. Weekly progress check-ins
1054
+ 3. Code reviews for each major component
1055
+ 4. Continuous integration testing
1056
+
1057
+ ---
1058
+
1059
+ **Prepared By:** Alteriom Development Team
1060
+ **Date:** October 12, 2025
1061
+ **Status:** 📋 READY FOR IMPLEMENTATION
1062
+ **Estimated Completion:** 3 weeks from start