micrOSDevToolKit 2.9.11__tar.gz → 2.10.5__tar.gz

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.

Potentially problematic release.


This version of micrOSDevToolKit might be problematic. Click here for more details.

Files changed (401) hide show
  1. {microsdevtoolkit-2.9.11/micrOSDevToolKit.egg-info → microsdevtoolkit-2.10.5}/PKG-INFO +13 -15
  2. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/README.md +10 -13
  3. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +37 -29
  4. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Common.py +5 -5
  5. microsdevtoolkit-2.10.5/micrOS/source/Espnow.py +282 -0
  6. microsdevtoolkit-2.10.5/micrOS/source/Files.py +101 -0
  7. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/InterConnect.py +14 -11
  8. {microsdevtoolkit-2.9.11/toolkit/workspace/precompiled → microsdevtoolkit-2.10.5/micrOS/source}/LM_espnow.py +10 -7
  9. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_intercon.py +3 -0
  10. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_light_sensor.py +7 -15
  11. microsdevtoolkit-2.10.5/micrOS/source/LM_mqtt_pro.py +211 -0
  12. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_oled_ui.py +18 -22
  13. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_oledui.py +13 -16
  14. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_pacman.py +37 -57
  15. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_presence.py +8 -11
  16. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_system.py +8 -7
  17. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_telegram.py +21 -16
  18. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Logger.py +5 -11
  19. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Shell.py +37 -30
  20. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Tasks.py +32 -17
  21. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Web.py +3 -2
  22. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
  23. microsdevtoolkit-2.10.5/micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
  24. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/microIO.py +3 -2
  25. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/urequests.py +10 -1
  26. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5/micrOSDevToolKit.egg-info}/PKG-INFO +13 -15
  27. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOSDevToolKit.egg-info/SOURCES.txt +4 -0
  28. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/setup.py +1 -1
  29. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/SystemTest.py +17 -6
  30. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/micrOSClient.py +25 -6
  31. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
  32. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/uos.py +5 -5
  33. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/socketClient.py +2 -3
  34. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/Common.mpy +0 -0
  35. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/Espnow.mpy +0 -0
  36. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/Files.mpy +0 -0
  37. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  38. {microsdevtoolkit-2.9.11/micrOS/source → microsdevtoolkit-2.10.5/toolkit/workspace/precompiled}/LM_espnow.py +10 -7
  39. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_intercon.mpy +0 -0
  40. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/LM_light_sensor.mpy +0 -0
  41. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/LM_mqtt_pro.py +211 -0
  42. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
  43. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/LM_oledui.mpy +0 -0
  44. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/LM_pacman.mpy +0 -0
  45. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/LM_presence.mpy +0 -0
  46. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/LM_system.mpy +0 -0
  47. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/LM_telegram.mpy +0 -0
  48. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/Logger.mpy +0 -0
  49. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/Shell.mpy +0 -0
  50. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/Tasks.mpy +0 -0
  51. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/Web.mpy +0 -0
  52. microsdevtoolkit-2.10.5/toolkit/workspace/precompiled/microIO.mpy +0 -0
  53. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/urequests.mpy +0 -0
  54. microsdevtoolkit-2.9.11/micrOS/source/Espnow.py +0 -160
  55. microsdevtoolkit-2.9.11/micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
  56. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/Common.mpy +0 -0
  57. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/Espnow.mpy +0 -0
  58. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  59. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/LM_light_sensor.mpy +0 -0
  60. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
  61. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/LM_oledui.mpy +0 -0
  62. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/LM_pacman.mpy +0 -0
  63. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/LM_presence.mpy +0 -0
  64. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/LM_system.mpy +0 -0
  65. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/LM_telegram.mpy +0 -0
  66. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/Logger.mpy +0 -0
  67. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/Shell.mpy +0 -0
  68. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/Tasks.mpy +0 -0
  69. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/Web.mpy +0 -0
  70. microsdevtoolkit-2.9.11/toolkit/workspace/precompiled/microIO.mpy +0 -0
  71. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/LICENSE +0 -0
  72. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/MANIFEST.in +0 -0
  73. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/devToolKit.py +0 -0
  74. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/__init__.py +0 -0
  75. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/.DS_Store +0 -0
  76. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
  77. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
  78. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
  79. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
  80. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
  81. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
  82. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
  83. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
  84. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
  85. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
  86. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
  87. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
  88. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
  89. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/media/__init__.py +0 -0
  90. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/media/dnd.png +0 -0
  91. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/media/logo.png +0 -0
  92. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/media/logo_mini.png +0 -0
  93. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/media/usb_port_icon.png +0 -0
  94. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/media/wifi_icon.png +0 -0
  95. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/__init__.py +0 -0
  96. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/esp32-20241129-v1.24.1.bin +0 -0
  97. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/esp32c3-20240222-v1.22.2.bin +0 -0
  98. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
  99. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/esp32s2-20240602-v1.23.0.bin +0 -0
  100. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/esp32s2-LOLIN_MINI-20220618-v1.19.1.bin +0 -0
  101. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/esp32s2-LOLIN_MINI-20240602-v1.23.0.bin +0 -0
  102. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/esp32s3-20240105-v1.22.1.bin +0 -0
  103. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/esp32s3-20241129-v1.24.1.bin +0 -0
  104. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin +0 -0
  105. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/esp32s3_spiram_oct-20241129-v1.24.1.bin +0 -0
  106. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/rpi-pico-w-20241129-v1.24.1.uf2 +0 -0
  107. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/micropython/tinypico-20241129-v1.24.1.bin +0 -0
  108. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/.DS_Store +0 -0
  109. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Config.py +0 -0
  110. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Debug.py +0 -0
  111. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Hooks.py +0 -0
  112. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/IO_esp32.py +0 -0
  113. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/IO_esp32c3.py +0 -0
  114. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/IO_esp32s2.py +0 -0
  115. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/IO_esp32s3.py +0 -0
  116. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/IO_m5stamp.py +0 -0
  117. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/IO_qtpy.py +0 -0
  118. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/IO_rp2.py +0 -0
  119. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/IO_tinypico.py +0 -0
  120. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Interrupts.py +0 -0
  121. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_L298N_DCmotor.py +0 -0
  122. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_L9110_DCmotor.py +0 -0
  123. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_OV2640.py +0 -0
  124. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_VL53L0X.py +0 -0
  125. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_aht10.py +0 -0
  126. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_bme280.py +0 -0
  127. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_buzzer.py +0 -0
  128. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_catgame.py +0 -0
  129. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_cct.py +0 -0
  130. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_co2.py +0 -0
  131. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_dashboard_be.py +0 -0
  132. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_demo.py +0 -0
  133. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_dht11.py +0 -0
  134. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_dht22.py +0 -0
  135. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_dimmer.py +0 -0
  136. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_distance.py +0 -0
  137. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_ds18.py +0 -0
  138. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_esp32.py +0 -0
  139. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_gameOfLife.py +0 -0
  140. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_genIO.py +0 -0
  141. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_haptic.py +0 -0
  142. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_i2c.py +0 -0
  143. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_i2s_mic.py +0 -0
  144. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_keychain.py +0 -0
  145. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_ld2410.py +0 -0
  146. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_neoeffects.py +0 -0
  147. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_neopixel.py +0 -0
  148. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_oled.py +0 -0
  149. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_oled_sh1106.py +0 -0
  150. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_pet_feeder.py +0 -0
  151. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_ph_sensor.py +0 -0
  152. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_rencoder.py +0 -0
  153. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_rest.py +0 -0
  154. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_rgb.py +0 -0
  155. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_rgbcct.py +0 -0
  156. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_roboarm.py +0 -0
  157. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_robustness.py +0 -0
  158. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_rp2w.py +0 -0
  159. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_sdcard.py +0 -0
  160. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_servo.py +0 -0
  161. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_sound_event.py +0 -0
  162. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_stepper.py +0 -0
  163. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_switch.py +0 -0
  164. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_tinyrgb.py +0 -0
  165. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_trackball.py +0 -0
  166. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/LM_veml7700.py +0 -0
  167. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Network.py +0 -0
  168. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Notify.py +0 -0
  169. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Scheduler.py +0 -0
  170. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Server.py +0 -0
  171. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Time.py +0 -0
  172. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/Types.py +0 -0
  173. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
  174. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/dashboard.html +0 -0
  175. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/index.html +0 -0
  176. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/main.py +0 -0
  177. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/micrOS.py +0 -0
  178. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/micrOSloader.py +0 -0
  179. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/reset.py +0 -0
  180. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/uapi.js +0 -0
  181. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/udashboard.js +0 -0
  182. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/ustyle.css +0 -0
  183. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/uwidgets.js +0 -0
  184. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOS/source/uwidgets_pro.js +0 -0
  185. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
  186. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOSDevToolKit.egg-info/requires.txt +0 -0
  187. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
  188. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/setup.cfg +0 -0
  189. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/DevEnvCompile.py +0 -0
  190. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/DevEnvOTA.py +0 -0
  191. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/DevEnvUSB.py +0 -0
  192. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/Gateway.py +0 -0
  193. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/LM_to_compile.dat +0 -0
  194. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/MicrOSDevEnv.py +0 -0
  195. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/WebRepl.py +0 -0
  196. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/__init__.py +0 -0
  197. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/BackupRestore.py +0 -0
  198. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/CCTDemo.py +0 -0
  199. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/CCTTest.py +0 -0
  200. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/CamStream.py +0 -0
  201. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/CatGame.py +0 -0
  202. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/Dimmer.py +0 -0
  203. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/GetVersion.py +0 -0
  204. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
  205. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
  206. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
  207. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/PresenceTest.py +0 -0
  208. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/RGBTest.py +0 -0
  209. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/RoboArm.py +0 -0
  210. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/SED_test.py +0 -0
  211. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/SensorsTest.py +0 -0
  212. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/Template_app.py +0 -0
  213. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/__init__.py +0 -0
  214. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/_app_base.py +0 -0
  215. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/_capture.py +0 -0
  216. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/_micPlotting.py +0 -0
  217. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
  218. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/dashboard_apps/uLightDemo.py +0 -0
  219. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/img_stream.html +0 -0
  220. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/index.html +0 -0
  221. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/LocalMachine.py +0 -0
  222. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/Repository.py +0 -0
  223. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/SafeInput.py +0 -0
  224. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/SearchDevices.py +0 -0
  225. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/SerialDriverHandler.py +0 -0
  226. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/TerminalColors.py +0 -0
  227. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/__init__.py +0 -0
  228. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/file_extensions.py +0 -0
  229. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/macroScript.py +0 -0
  230. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/micrOSClientHistory.py +0 -0
  231. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/lib/pip_package_installer.py +0 -0
  232. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/micrOSdashboard.py +0 -0
  233. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/micrOSlint.py +0 -0
  234. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/.DS_Store +0 -0
  235. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/IO_darwin.py +0 -0
  236. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
  237. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/aioespnow.cpython-312.pyc +0 -0
  238. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
  239. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
  240. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
  241. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
  242. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
  243. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
  244. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
  245. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
  246. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
  247. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
  248. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
  249. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
  250. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
  251. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
  252. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
  253. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
  254. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
  255. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
  256. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
  257. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
  258. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
  259. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
  260. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
  261. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
  262. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
  263. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
  264. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
  265. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
  266. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
  267. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
  268. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
  269. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc +0 -0
  270. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/sim_console.cpython-38.pyc +0 -0
  271. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/sim_console.cpython-39.pyc +0 -0
  272. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
  273. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
  274. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
  275. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
  276. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
  277. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
  278. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
  279. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
  280. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
  281. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
  282. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
  283. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
  284. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
  285. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
  286. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
  287. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
  288. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
  289. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
  290. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
  291. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
  292. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
  293. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
  294. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/aioespnow.py +0 -0
  295. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/camera.py +0 -0
  296. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/dht.py +0 -0
  297. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/dotstar.py +0 -0
  298. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/ds18x20.py +0 -0
  299. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/esp32.py +0 -0
  300. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/framebuf.py +0 -0
  301. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/machine.py +0 -0
  302. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/micropython.py +0 -0
  303. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/neopixel.py +0 -0
  304. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/network.py +0 -0
  305. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/node_config.json +0 -0
  306. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/ntptime.py +0 -0
  307. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/onewire.py +0 -0
  308. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/sim_console.py +0 -0
  309. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/simgc.py +0 -0
  310. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/simulator.py +0 -0
  311. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/tinypico.py +0 -0
  312. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/uasyncio.py +0 -0
  313. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/usocket.py +0 -0
  314. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/ussl.py +0 -0
  315. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/ustruct.py +0 -0
  316. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/utime.py +0 -0
  317. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/view01.jpg +0 -0
  318. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/view02.jpg +0 -0
  319. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/simulator_lib/webrepl.py +0 -0
  320. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/user_data/.include +0 -0
  321. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/user_data/webhooks/generic.py +0 -0
  322. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/user_data/webhooks/macro.py +0 -0
  323. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/user_data/webhooks/template.macro +0 -0
  324. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/user_data/webhooks/template.py +0 -0
  325. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/__init__.py +0 -0
  326. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/Config.mpy +0 -0
  327. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/Debug.mpy +0 -0
  328. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/Hooks.mpy +0 -0
  329. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/IO_esp32.mpy +0 -0
  330. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/IO_esp32c3.mpy +0 -0
  331. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/IO_esp32s2.mpy +0 -0
  332. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/IO_esp32s3.mpy +0 -0
  333. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/IO_m5stamp.mpy +0 -0
  334. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/IO_qtpy.mpy +0 -0
  335. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/IO_rp2.mpy +0 -0
  336. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/IO_tinypico.mpy +0 -0
  337. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
  338. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_L298N_DCmotor.mpy +0 -0
  339. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_L9110_DCmotor.py +0 -0
  340. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_OV2640.mpy +0 -0
  341. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_VL53L0X.py +0 -0
  342. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_aht10.mpy +0 -0
  343. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_bme280.mpy +0 -0
  344. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_buzzer.mpy +0 -0
  345. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_catgame.py +0 -0
  346. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_cct.mpy +0 -0
  347. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_co2.mpy +0 -0
  348. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_dashboard_be.py +0 -0
  349. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_demo.py +0 -0
  350. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_dht11.mpy +0 -0
  351. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_dht22.mpy +0 -0
  352. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_dimmer.mpy +0 -0
  353. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_distance.mpy +0 -0
  354. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_ds18.mpy +0 -0
  355. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_esp32.py +0 -0
  356. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_gameOfLife.mpy +0 -0
  357. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_genIO.mpy +0 -0
  358. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_haptic.mpy +0 -0
  359. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_i2c.py +0 -0
  360. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_i2s_mic.mpy +0 -0
  361. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_keychain.mpy +0 -0
  362. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_ld2410.mpy +0 -0
  363. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_neoeffects.mpy +0 -0
  364. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_neopixel.mpy +0 -0
  365. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_oled.mpy +0 -0
  366. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_oled_sh1106.mpy +0 -0
  367. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_pet_feeder.py +0 -0
  368. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_ph_sensor.py +0 -0
  369. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_rencoder.py +0 -0
  370. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_rest.mpy +0 -0
  371. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_rgb.mpy +0 -0
  372. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_rgbcct.mpy +0 -0
  373. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_roboarm.mpy +0 -0
  374. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_robustness.py +0 -0
  375. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_rp2w.py +0 -0
  376. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_sdcard.py +0 -0
  377. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_servo.mpy +0 -0
  378. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_sound_event.mpy +0 -0
  379. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_stepper.mpy +0 -0
  380. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_switch.mpy +0 -0
  381. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_tinyrgb.mpy +0 -0
  382. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_trackball.mpy +0 -0
  383. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/LM_veml7700.mpy +0 -0
  384. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/Network.mpy +0 -0
  385. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/Notify.mpy +0 -0
  386. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
  387. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/Server.mpy +0 -0
  388. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/Time.mpy +0 -0
  389. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/Types.mpy +0 -0
  390. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/_mpy.version +0 -0
  391. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/dashboard.html +0 -0
  392. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/index.html +0 -0
  393. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/main.py +0 -0
  394. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/micrOS.mpy +0 -0
  395. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  396. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/reset.mpy +0 -0
  397. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/uapi.js +0 -0
  398. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/udashboard.js +0 -0
  399. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/ustyle.css +0 -0
  400. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/uwidgets.js +0 -0
  401. {microsdevtoolkit-2.9.11 → microsdevtoolkit-2.10.5}/toolkit/workspace/precompiled/uwidgets_pro.js +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 2.9.11
3
+ Version: 2.10.5
4
4
  Summary: Development and deployment environment for micrOS, the diy micropython automation OS (IoT)
5
5
  Home-page: https://github.com/BxNxM/micrOS
6
6
  Author: Marcell Ban
@@ -31,6 +31,7 @@ Dynamic: description
31
31
  Dynamic: description-content-type
32
32
  Dynamic: home-page
33
33
  Dynamic: license
34
+ Dynamic: license-file
34
35
  Dynamic: project-url
35
36
  Dynamic: requires-dist
36
37
  Dynamic: summary
@@ -494,11 +495,11 @@ Version **3.0.0-0** `micrOS-Autonomous`
494
495
  - (1) Async SSL/TLS integration (micropython 1.22+ required) [DONE]
495
496
  - urequest module async redesign for rest clients [OK]
496
497
  - LM_telegram (Notify) + server (listener - chatbot) [OK]
497
- - (2) ESP-NOW (peer-to-peer communication) integration into InterCon [PoC][TODO]
498
- - (3) New intercon syntax - command level integration: [TODO]
498
+ - (2) ESP-NOW (peer-to-peer communication) integration into InterCon [PoC:OK][TODO]
499
+ - (3) New intercon syntax - command level integration: [DONE]
499
500
  - rgb toggle >>RingLight.local
500
- - similar as: intercon sendcmd host="RingLight.local" cmd="rgb toggle"
501
- - (4) Create multi level project structure (curret is flat fs) [TODO] FS
501
+ - similar as (obsolete): intercon sendcmd host="RingLight.local" cmd="rgb toggle"
502
+ - (4) Create multi level project structure (curret is flat fs) [TODO?] FS
502
503
  - New micrOS FS structure:
503
504
  - Note:
504
505
  - On device (boot) micrOS Hooks.py/os_dir_fs_hook (check+correct) [Phase1-FS:TODO]
@@ -528,6 +529,9 @@ Version **3.0.0-0** `micrOS-Autonomous`
528
529
  - *.js
529
530
  - *.css
530
531
 
532
+ - /logs
533
+ - still there (created runtime)
534
+
531
535
  - (5) Proper mip installer support (/lib) [TODO]
532
536
  - Note: Autonomous package management over wifi (github)
533
537
  - pacman download
@@ -731,8 +735,6 @@ devToolKit.py -c -p '--dev BedLamp help'
731
735
  help
732
736
  dht22
733
737
  help
734
- intercon
735
- help
736
738
  robustness
737
739
  help
738
740
  system
@@ -862,8 +864,6 @@ BedLamp $ help
862
864
  help
863
865
  dht22
864
866
  help
865
- intercon
866
- help
867
867
  robustness
868
868
  help
869
869
  system
@@ -954,10 +954,9 @@ micrOS Load Module resources
954
954
  43 105 LM_lmpacman.py (mlint: True) (pylint: 8.38) (ref.: 0)
955
955
  44 176 LM_gameOfLife.py (mlint: True) (pylint: 9.29) (ref.: 2)
956
956
  45 58 LM_catgame.py (mlint: True) (pylint: 8.46) (ref.: 0)
957
- 46 42 LM_intercon.py (mlint: True) (pylint: 8.18) (ref.: 3)
958
- 47 43 LM_ds18.py (mlint: True) (pylint: 5.0) (ref.: 2)
959
- 48 250 LM_i2s_mic.py (mlint: False) (pylint: 8.71) (ref.: 1)
960
- 49 34 LM_sdcard.py (mlint: True) (pylint: 7.88) (ref.: 0)
957
+ 46 43 LM_ds18.py (mlint: True) (pylint: 5.0) (ref.: 2)
958
+ 47 250 LM_i2s_mic.py (mlint: False) (pylint: 8.71) (ref.: 1)
959
+ 48 34 LM_sdcard.py (mlint: True) (pylint: 7.88) (ref.: 0)
961
960
 
962
961
  SUM CODE LINES (WITH COMMENTS, WITHOUT EMPTY LINES): 6822
963
962
  ```
@@ -1048,7 +1047,6 @@ micrOS/toolkit/workspace/precompiled
1048
1047
  │   ├── LM_esp32.py
1049
1048
  │   ├── LM_genIO.mpy
1050
1049
  │   ├── LM_i2c.py
1051
- │   ├── LM_intercon.mpy
1052
1050
  │   ├── LM_light_sensor.mpy
1053
1051
  │   ├── LM_neoeffects.mpy
1054
1052
  │   ├── LM_neopixel.mpy
@@ -457,11 +457,11 @@ Version **3.0.0-0** `micrOS-Autonomous`
457
457
  - (1) Async SSL/TLS integration (micropython 1.22+ required) [DONE]
458
458
  - urequest module async redesign for rest clients [OK]
459
459
  - LM_telegram (Notify) + server (listener - chatbot) [OK]
460
- - (2) ESP-NOW (peer-to-peer communication) integration into InterCon [PoC][TODO]
461
- - (3) New intercon syntax - command level integration: [TODO]
460
+ - (2) ESP-NOW (peer-to-peer communication) integration into InterCon [PoC:OK][TODO]
461
+ - (3) New intercon syntax - command level integration: [DONE]
462
462
  - rgb toggle >>RingLight.local
463
- - similar as: intercon sendcmd host="RingLight.local" cmd="rgb toggle"
464
- - (4) Create multi level project structure (curret is flat fs) [TODO] FS
463
+ - similar as (obsolete): intercon sendcmd host="RingLight.local" cmd="rgb toggle"
464
+ - (4) Create multi level project structure (curret is flat fs) [TODO?] FS
465
465
  - New micrOS FS structure:
466
466
  - Note:
467
467
  - On device (boot) micrOS Hooks.py/os_dir_fs_hook (check+correct) [Phase1-FS:TODO]
@@ -491,6 +491,9 @@ Version **3.0.0-0** `micrOS-Autonomous`
491
491
  - *.js
492
492
  - *.css
493
493
 
494
+ - /logs
495
+ - still there (created runtime)
496
+
494
497
  - (5) Proper mip installer support (/lib) [TODO]
495
498
  - Note: Autonomous package management over wifi (github)
496
499
  - pacman download
@@ -694,8 +697,6 @@ devToolKit.py -c -p '--dev BedLamp help'
694
697
  help
695
698
  dht22
696
699
  help
697
- intercon
698
- help
699
700
  robustness
700
701
  help
701
702
  system
@@ -825,8 +826,6 @@ BedLamp $ help
825
826
  help
826
827
  dht22
827
828
  help
828
- intercon
829
- help
830
829
  robustness
831
830
  help
832
831
  system
@@ -917,10 +916,9 @@ micrOS Load Module resources
917
916
  43 105 LM_lmpacman.py (mlint: True) (pylint: 8.38) (ref.: 0)
918
917
  44 176 LM_gameOfLife.py (mlint: True) (pylint: 9.29) (ref.: 2)
919
918
  45 58 LM_catgame.py (mlint: True) (pylint: 8.46) (ref.: 0)
920
- 46 42 LM_intercon.py (mlint: True) (pylint: 8.18) (ref.: 3)
921
- 47 43 LM_ds18.py (mlint: True) (pylint: 5.0) (ref.: 2)
922
- 48 250 LM_i2s_mic.py (mlint: False) (pylint: 8.71) (ref.: 1)
923
- 49 34 LM_sdcard.py (mlint: True) (pylint: 7.88) (ref.: 0)
919
+ 46 43 LM_ds18.py (mlint: True) (pylint: 5.0) (ref.: 2)
920
+ 47 250 LM_i2s_mic.py (mlint: False) (pylint: 8.71) (ref.: 1)
921
+ 48 34 LM_sdcard.py (mlint: True) (pylint: 7.88) (ref.: 0)
924
922
 
925
923
  SUM CODE LINES (WITH COMMENTS, WITHOUT EMPTY LINES): 6822
926
924
  ```
@@ -1011,7 +1009,6 @@ micrOS/toolkit/workspace/precompiled
1011
1009
  │   ├── LM_esp32.py
1012
1010
  │   ├── LM_genIO.mpy
1013
1011
  │   ├── LM_i2c.py
1014
- │   ├── LM_intercon.mpy
1015
1012
  │   ├── LM_light_sensor.mpy
1016
1013
  │   ├── LM_neoeffects.mpy
1017
1014
  │   ├── LM_neopixel.mpy
@@ -4,6 +4,10 @@
4
4
  9.16,
5
5
  7
6
6
  ],
7
+ "Files.py": [
8
+ 9.6,
9
+ 4
10
+ ],
7
11
  "micrOSloader.py": [
8
12
  7.33,
9
13
  1
@@ -21,23 +25,23 @@
21
25
  1
22
26
  ],
23
27
  "Tasks.py": [
24
- 9.55,
28
+ 9.38,
25
29
  12
26
30
  ],
27
31
  "Config.py": [
28
32
  9.48,
29
- 17
33
+ 18
30
34
  ],
31
35
  "reset.py": [
32
36
  10.0,
33
37
  0
34
38
  ],
35
39
  "Shell.py": [
36
- 9.11,
40
+ 9.36,
37
41
  1
38
42
  ],
39
43
  "Notify.py": [
40
- 8.46,
44
+ 9.74,
41
45
  3
42
46
  ],
43
47
  "Types.py": [
@@ -45,16 +49,16 @@
45
49
  29
46
50
  ],
47
51
  "Logger.py": [
48
- 8.85,
52
+ 8.9,
49
53
  4
50
54
  ],
51
55
  "Common.py": [
52
- 8.71,
53
- 34
56
+ 9.78,
57
+ 35
54
58
  ],
55
59
  "InterConnect.py": [
56
- 9.4,
57
- 1
60
+ 9.41,
61
+ 3
58
62
  ],
59
63
  "Debug.py": [
60
64
  8.4,
@@ -65,7 +69,7 @@
65
69
  8
66
70
  ],
67
71
  "Espnow.py": [
68
- 8.86,
72
+ 9.49,
69
73
  1
70
74
  ],
71
75
  "Scheduler.py": [
@@ -73,7 +77,7 @@
73
77
  1
74
78
  ],
75
79
  "microIO.py": [
76
- 9.42,
80
+ 9.43,
77
81
  42
78
82
  ],
79
83
  "micrOS.py": [
@@ -89,7 +93,7 @@
89
93
  0
90
94
  ],
91
95
  "urequests.py": [
92
- 8.99,
96
+ 8.96,
93
97
  5
94
98
  ],
95
99
  "LM_roboarm.py": [
@@ -101,7 +105,7 @@
101
105
  1
102
106
  ],
103
107
  "LM_pacman.py": [
104
- 8.94,
108
+ 8.92,
105
109
  0
106
110
  ],
107
111
  "LM_genIO.py": [
@@ -109,11 +113,11 @@
109
113
  0
110
114
  ],
111
115
  "LM_oled_ui.py": [
112
- 9.02,
116
+ 8.64,
113
117
  0
114
118
  ],
115
119
  "LM_system.py": [
116
- 8.26,
120
+ 8.28,
117
121
  5
118
122
  ],
119
123
  "LM_robustness.py": [
@@ -233,15 +237,15 @@
233
237
  0
234
238
  ],
235
239
  "LM_oledui.py": [
236
- 8.16,
240
+ 7.95,
237
241
  0
238
242
  ],
239
243
  "LM_espnow.py": [
240
- 7.5,
244
+ 7.89,
241
245
  0
242
246
  ],
243
247
  "LM_telegram.py": [
244
- 9.57,
248
+ 9.58,
245
249
  0
246
250
  ],
247
251
  "LM_OV2640.py": [
@@ -261,7 +265,7 @@
261
265
  0
262
266
  ],
263
267
  "LM_light_sensor.py": [
264
- 8.97,
268
+ 9.17,
265
269
  0
266
270
  ],
267
271
  "LM_rp2w.py": [
@@ -269,9 +273,13 @@
269
273
  0
270
274
  ],
271
275
  "LM_presence.py": [
272
- 8.77,
276
+ 8.9,
273
277
  4
274
278
  ],
279
+ "LM_mqtt_pro.py": [
280
+ 9.35,
281
+ 0
282
+ ],
275
283
  "LM_trackball.py": [
276
284
  8.31,
277
285
  1
@@ -298,7 +306,7 @@
298
306
  ],
299
307
  "LM_intercon.py": [
300
308
  8.18,
301
- 4
309
+ 0
302
310
  ],
303
311
  "LM_ds18.py": [
304
312
  6.0,
@@ -315,12 +323,12 @@
315
323
  },
316
324
  "summary": {
317
325
  "core": [
318
- 3367,
319
- 23
326
+ 3550,
327
+ 24
320
328
  ],
321
329
  "load": [
322
- 9087,
323
- 55
330
+ 9217,
331
+ 56
324
332
  ],
325
333
  "core_dep": [
326
334
  true,
@@ -328,10 +336,10 @@
328
336
  ],
329
337
  "load_dep": [
330
338
  true,
331
- 5
339
+ 6
332
340
  ],
333
- "core_score": 9.09,
334
- "load_score": 8.21,
335
- "version": "2.9.9-0"
341
+ "core_score": 9.24,
342
+ "load_score": 8.23,
343
+ "version": "2.10.5-0"
336
344
  }
337
345
  }
@@ -2,7 +2,6 @@
2
2
  micrOS Load Module programming Official API-s
3
3
  Designed by Marcell Ban aka BxNxM
4
4
  """
5
-
6
5
  from Server import Server, WebCli
7
6
  from Debug import errlog_add, console_write
8
7
  from Logger import logger, log_get
@@ -126,18 +125,19 @@ def manage_task(tag, operation):
126
125
  raise Exception(f"Invalid operation: {operation}")
127
126
 
128
127
 
129
- def exec_cmd(cmd, skip_check=False):
128
+ def exec_cmd(cmd:list, jsonify:bool=None, skip_check=False):
130
129
  """
131
130
  [LM] Single (sync) LM execution
132
- :param cmd: command string list
131
+ :param cmd: command string list, ex.: ['system', 'clock']
132
+ :param jsonify: request json output
133
133
  :param skip_check: skip cmd type check, micropython bug
134
134
  return state, output
135
135
  """
136
136
  # [BUG] Solution with isinstance/type is not reliable... micropython 1.22
137
137
  # Invalid type, must be list: <class list>" ...
138
138
  if skip_check:
139
- return lm_exec(cmd)
140
- return lm_exec(cmd) if isinstance(cmd, list) else False, f"Invalid type, must be list: {type(cmd)}"
139
+ return lm_exec(cmd, jsonify=jsonify)
140
+ return lm_exec(cmd, jsonify=jsonify) if isinstance(cmd, list) else False, f"CMD {type(cmd)}, must be list!"
141
141
 
142
142
 
143
143
  def notify(text=None) -> bool:
@@ -0,0 +1,282 @@
1
+ from aioespnow import AIOESPNow
2
+ from binascii import hexlify
3
+ from Tasks import NativeTask, TaskBase, lm_exec, lm_is_loaded
4
+ import uasyncio as asyncio
5
+ from Network import get_mac
6
+ from Config import cfgget
7
+ from Debug import errlog_add
8
+
9
+
10
+ # ----------- PARSE AND RENDER MSG PROTOCOL --------------
11
+
12
+ def render_response(tid, oper, data, prompt) -> str:
13
+ """
14
+ Render ESPNow custom message (protocol)
15
+ """
16
+ if oper not in ("REQ", "RSP"):
17
+ errlog_add(f"[ERR] espnow render_response, unknown oper: {oper}")
18
+ tmp = "{tid}|{oper}|{data}|{prompt}$"
19
+ tmp = tmp.replace("{tid}", str(tid))
20
+ tmp = tmp.replace("{oper}", str(oper))
21
+ tmp = tmp.replace("{data}", str(data))
22
+ tmp = tmp.replace("{prompt}", str(prompt))
23
+ return tmp
24
+
25
+ def parse_request(msg:bytes) -> (bool, dict|str):
26
+ """
27
+ Parse ESPNow custom message protocol
28
+ """
29
+ try:
30
+ msg = msg.decode('utf-8').strip()
31
+ except UnicodeError:
32
+ return False, "Invalid encoding"
33
+ # strip the trailing '$' then split on '|'
34
+ parts = msg.rstrip("$").split("|")
35
+ if len(parts) == 4:
36
+ return True, {"tid": parts[0],
37
+ "oper": parts[1],
38
+ "data": parts[2],
39
+ "prompt": parts[3]}
40
+ return False, f"Missing 4 args: {msg}"
41
+
42
+
43
+ # ----------- ESPNOW SESSION SERVER - LISTENER AND SENDER --------------
44
+ class ResponseRouter:
45
+ """
46
+ Response Router (by mac address)
47
+ to connect sender task with receiver loop (aka server)
48
+ """
49
+ _routes: dict[bytes, "ResponseRouter"] = {}
50
+
51
+ def __init__(self, mac: bytes):
52
+ self.mac = mac
53
+ self.response = None
54
+ self._event = asyncio.Event()
55
+ ResponseRouter._routes[mac] = self
56
+
57
+ async def get_response(self, timeout:int=10) -> str|dict:
58
+ """Wait for one response, then clear the event for reuse."""
59
+ try:
60
+ await asyncio.wait_for(self._event.wait(), timeout)
61
+ except asyncio.TimeoutError:
62
+ return "Timeout has beed exceeded"
63
+ self._event.clear()
64
+ return self.response
65
+
66
+ @staticmethod
67
+ def update_response(mac: bytes, response: str) -> None:
68
+ # USE <tid> for proper session response mapping
69
+ router = ResponseRouter._routes.get(mac)
70
+ if router is None:
71
+ errlog_add(f"[WARN][ESPNOW] No response route for {mac}")
72
+ return
73
+ router.response = response
74
+ router._event.set()
75
+
76
+ def close(self) -> None:
77
+ """Remove routing entry when done."""
78
+ ResponseRouter._routes.pop(self.mac, None)
79
+
80
+
81
+ class ESPNowSS:
82
+ """
83
+ ESPNow Session Server
84
+ """
85
+ _instance = None
86
+
87
+ def __new__(cls, *args, **kwargs):
88
+ if cls._instance is None:
89
+ # first time: actually create it
90
+ cls._instance = super().__new__(cls)
91
+ return cls._instance
92
+
93
+ def __init__(self):
94
+ # __init__ still runs each time, so guard if needed
95
+ if not hasattr(self, '_initialized'):
96
+ self.espnow = AIOESPNow() # Instance with async support
97
+ self.espnow.active(True)
98
+ self.devfid = cfgget('devfid')
99
+ self.devices: dict[bytes, str] = {} # mapping for { "mac address": "devfid" } pairs
100
+ self._initialized = True
101
+ self.server_ready = False
102
+
103
+ # ----------- SERVER METHODS --------------
104
+ def _request_handler(self, msg:bytes, my_task:NativeTask, mac:bytes):
105
+ """
106
+ Handle server input message (request), with REQ/RSP types (oper)
107
+ oper==REQ - command execution
108
+ oper==RSP - command response
109
+ :param msg: valid message format> "{tid}|{oper}|{data}|{prompt}$", {data} is the user input
110
+ :param my_task: Server task instance, for my_task.out update
111
+ :param mac: sender binary mac address
112
+ """
113
+
114
+ state, request = parse_request(msg)
115
+ if not state:
116
+ my_task.out = f"[_ESPNOW] {request}"
117
+ return state, request
118
+
119
+ # parsed request: {"tid": "n/a", "oper": "n/a", "data": "n/a", "prompt": "n/a"}
120
+ operation, prompt, tid = request["oper"], request["prompt"], request["tid"]
121
+ my_task.out = f"[{tid}] {operation} from {prompt}"
122
+ # Update known devices
123
+ self.devices[mac] = request["prompt"]
124
+
125
+ # Check if the module/command is allowed., check oper==REQ/RSP
126
+ if operation == "REQ":
127
+ command = request["data"].split()
128
+ module = command[0]
129
+ if lm_is_loaded(module):
130
+ try:
131
+ state, out = lm_exec(command)
132
+ # rendered_output: "{tid}|{oper}|{data}|{prompt}$"
133
+ rendered_out = render_response(tid="?", oper="RSP", data=out, prompt=self.devfid)
134
+ return state, rendered_out
135
+ except Exception as e:
136
+ # Optionally log the exception here.
137
+ state, out = False, f"[ERR][_ESPNOW] {command}: {e}"
138
+ else:
139
+ state, out = False, f"[WARN][_ESPNOW] NotAllowed {module}"
140
+ return state, out
141
+ if operation == "RSP":
142
+ resp_data = request["data"]
143
+ ResponseRouter.update_response(mac, resp_data) # USE <tid> for proper session response mapping
144
+ return False, f"[_ESPNOW] No action, {request}"
145
+
146
+ async def _server(self, tag:str):
147
+ """
148
+ ESPnow async listener task
149
+ :param tag: micro_task tag for task access
150
+ """
151
+ with TaskBase.TASKS.get(tag, None) as my_task:
152
+ self.server_ready = True
153
+ my_task.out = "ESPNow receiver running"
154
+ async for mac, msg in self.espnow:
155
+ try:
156
+ state, response = self._request_handler(msg, my_task, mac)
157
+ if state:
158
+ await self.__asend_raw(mac, response)
159
+ else:
160
+ errlog_add(response)
161
+ except OSError as err:
162
+ # If the peer is not yet added, add it and retry.
163
+ if len(err.args) > 1 and err.args[1] == 'ESP_ERR_ESPNOW_NOT_FOUND':
164
+ self.add_peer(mac)
165
+ state, response = self._request_handler(msg, my_task, mac)
166
+ if state:
167
+ await self.__asend_raw(mac, response)
168
+ else:
169
+ errlog_add(response)
170
+ else:
171
+ # Optionally handle or log other OSErrors here.
172
+ errlog_add(f"[ERR][NOW SERVER] {err}")
173
+
174
+ def start_server(self):
175
+ """
176
+ Start the async ESPNow receiver server.
177
+ """
178
+ # Create an asynchronous task with tag 'espnow.server'
179
+ tag = 'espnow.server'
180
+ state = NativeTask().create(callback=self._server(tag), tag=tag)
181
+ return "Starting" if state else "Already running"
182
+
183
+ #----------- SEND METHODS --------------
184
+ async def __asend_raw(self, mac:bytes, msg:str):
185
+ """
186
+ ESPnow send message to mac address
187
+ """
188
+ return await self.espnow.asend(mac, msg.encode("utf-8"))
189
+
190
+ async def _asend_task(self, peer:bytes, tag:str, msg:str):
191
+ """
192
+ ESPNow client task: send a command to a peer and update task status.
193
+ """
194
+ with TaskBase.TASKS.get(tag, None) as my_task:
195
+ router = ResponseRouter(peer)
196
+ # rendered_output: "{tid}|{oper}|{data}|{prompt}$"
197
+ rendered_out = render_response(tid="?", oper="REQ", data=msg, prompt=self.devfid)
198
+ if await self.__asend_raw(peer, rendered_out):
199
+ my_task.out = f"[ESPNOW SEND] {rendered_out}"
200
+ my_task.out = await router.get_response()
201
+ else:
202
+ my_task.out = "[ESPNOW SEND] Peer not responding"
203
+ router.close()
204
+
205
+ def mac_by_peer_name(self, peer_name:str) -> bytes|None:
206
+ matches = [k for k, v in self.devices.items() if v == peer_name]
207
+ peer = matches[0] if matches else None
208
+ return peer
209
+
210
+ def send(self, peer:bytes|str, msg:str) -> str:
211
+ """
212
+ Send a command over ESPNow.
213
+ :param peer: Binary MAC address of another device.
214
+ :param msg: String command message to send.
215
+ """
216
+ peer_name = None
217
+ if isinstance(peer, str):
218
+ # Peer as device name (prompt)
219
+ _peer = self.mac_by_peer_name(peer)
220
+ if _peer is None:
221
+ return f"Unknown device: {peer}"
222
+ peer_name = peer
223
+ peer = _peer
224
+
225
+ peer_name = hexlify(peer, ':').decode() if peer_name is None else peer_name
226
+ task_id = f"con.espnow.{peer_name}"
227
+ # Create an asynchronous sending task.
228
+ state = NativeTask().create(callback=INSTANCE._asend_task(peer, task_id, msg), tag=task_id)
229
+ return "Starting" if state else "Already running"
230
+
231
+ # ----------- OTHER METHODS --------------
232
+
233
+ def add_peer(self, peer:bytes, devfid:str=None):
234
+ """
235
+ Add a peer given its MAC address.
236
+ :param peer: Binary MAC address of a peer (e.g. b'\xbb\xbb\xbb\xbb\xbb\xbb').
237
+ :param devfid: optional parameter to register dev uid for mac address
238
+ """
239
+ try:
240
+ self.espnow.add_peer(peer)
241
+ if devfid is not None:
242
+ # Update known devices
243
+ self.devices[peer] = devfid
244
+ except Exception as e:
245
+ return f"Peer error: {e}"
246
+ return "Peer register done"
247
+
248
+ def stats(self):
249
+ """
250
+ Return stats for ESPNow peers.
251
+ stats: tx_pkts, tx_responses, tx_failures, rx_packets, rx_dropped_packets.
252
+ peers: peer, rssi, time_ms.
253
+ """
254
+ try:
255
+ _stats = self.espnow.stats()
256
+ except Exception as e:
257
+ _stats = str(e)
258
+ try:
259
+ _peers = self.espnow.peers_table
260
+ except Exception as e:
261
+ _peers = str(e)
262
+ return {"stats": _stats, "peers": _peers, "map": self.devices, "ready": self.server_ready}
263
+
264
+
265
+ ###################################################
266
+ # Control functions #
267
+ ###################################################
268
+ INSTANCE = ESPNowSS()
269
+
270
+ def initialize():
271
+ # TODO: remove, use ESPNowSS() class instead
272
+ global INSTANCE
273
+ if INSTANCE is None:
274
+ INSTANCE = ESPNowSS()
275
+ return INSTANCE
276
+
277
+
278
+ def mac_address():
279
+ """
280
+ Get the binary MAC address.
281
+ """
282
+ return get_mac()