micrOSDevToolKit 2.8.6__tar.gz → 2.9.0__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 (412) hide show
  1. {microsdevtoolkit-2.8.6/micrOSDevToolKit.egg-info → microsdevtoolkit-2.9.0}/PKG-INFO +2 -2
  2. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/README.md +1 -1
  3. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/.DS_Store +0 -0
  4. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
  5. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
  6. microsdevtoolkit-2.9.0/micrOS/micropython/esp32-20241129-v1.24.1.bin +0 -0
  7. microsdevtoolkit-2.9.0/micrOS/micropython/esp32s3-20241129-v1.24.1.bin +0 -0
  8. microsdevtoolkit-2.9.0/micrOS/micropython/esp32s3_spiram_oct-20241129-v1.24.1.bin +0 -0
  9. microsdevtoolkit-2.9.0/micrOS/micropython/rpi-pico-w-20241129-v1.24.1.uf2 +0 -0
  10. microsdevtoolkit-2.9.0/micrOS/micropython/tinypico-20241129-v1.24.1.bin +0 -0
  11. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +40 -40
  12. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Common.py +12 -17
  13. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Config.py +20 -1
  14. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Hooks.py +25 -15
  15. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_buzzer.py +16 -9
  16. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_cct.py +2 -3
  17. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_dimmer.py +1 -2
  18. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_distance.py +2 -4
  19. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_genIO.py +1 -1
  20. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_i2s_mic.py +4 -4
  21. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_keychain.py +2 -3
  22. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_light_sensor.py +1 -2
  23. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_neoeffects.py +22 -7
  24. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_neopixel.py +2 -3
  25. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_oledui.py +3 -4
  26. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_pet_feeder.py +3 -4
  27. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_ph_sensor.py +2 -2
  28. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_presence.py +2 -3
  29. microsdevtoolkit-2.9.0/micrOS/source/LM_rest.py +83 -0
  30. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_rgb.py +1 -2
  31. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_roboarm.py +1 -2
  32. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_sound_event.py +2 -3
  33. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_system.py +14 -3
  34. microsdevtoolkit-2.8.6/micrOS/source/Notify.py → microsdevtoolkit-2.9.0/micrOS/source/LM_telegram.py +136 -44
  35. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Logger.py +6 -0
  36. microsdevtoolkit-2.9.0/micrOS/source/Notify.py +76 -0
  37. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Scheduler.py +7 -4
  38. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Shell.py +2 -2
  39. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Tasks.py +106 -98
  40. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Types.py +6 -2
  41. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Web.py +32 -8
  42. {microsdevtoolkit-2.8.6/toolkit/workspace/precompiled → microsdevtoolkit-2.9.0/micrOS/source}/dashboard.html +4 -4
  43. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/micrOS.py +5 -10
  44. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/micrOSloader.py +16 -18
  45. {microsdevtoolkit-2.8.6/toolkit/workspace/precompiled → microsdevtoolkit-2.9.0/micrOS/source}/uapi.js +5 -6
  46. microsdevtoolkit-2.9.0/micrOS/source/urequests.py +265 -0
  47. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0/micrOSDevToolKit.egg-info}/PKG-INFO +2 -2
  48. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOSDevToolKit.egg-info/SOURCES.txt +8 -10
  49. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/setup.py +1 -1
  50. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/DevEnvUSB.py +1 -6
  51. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/MicrOSDevEnv.py +8 -5
  52. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
  53. microsdevtoolkit-2.9.0/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
  54. microsdevtoolkit-2.9.0/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
  55. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/simulator.py +14 -0
  56. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/uasyncio.py +2 -2
  57. microsdevtoolkit-2.9.0/toolkit/simulator_lib/usocket.py +12 -0
  58. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/Common.mpy +0 -0
  59. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/Config.mpy +0 -0
  60. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/Hooks.mpy +0 -0
  61. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_buzzer.mpy +0 -0
  62. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_cct.mpy +0 -0
  63. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_dimmer.mpy +0 -0
  64. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_distance.mpy +0 -0
  65. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_genIO.mpy +0 -0
  66. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_i2s_mic.mpy +0 -0
  67. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_keychain.mpy +0 -0
  68. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_light_sensor.mpy +0 -0
  69. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_neoeffects.mpy +0 -0
  70. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_neopixel.mpy +0 -0
  71. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_oledui.mpy +0 -0
  72. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_pet_feeder.py +3 -4
  73. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_ph_sensor.py +2 -2
  74. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_presence.mpy +0 -0
  75. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_rest.mpy +0 -0
  76. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_rgb.mpy +0 -0
  77. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_roboarm.mpy +0 -0
  78. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_sound_event.mpy +0 -0
  79. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_system.mpy +0 -0
  80. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/LM_telegram.mpy +0 -0
  81. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/Logger.mpy +0 -0
  82. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/Notify.mpy +0 -0
  83. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
  84. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/Shell.mpy +0 -0
  85. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/Tasks.mpy +0 -0
  86. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/Types.mpy +0 -0
  87. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/Web.mpy +0 -0
  88. {microsdevtoolkit-2.8.6/micrOS/source → microsdevtoolkit-2.9.0/toolkit/workspace/precompiled}/dashboard.html +4 -4
  89. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/micrOS.mpy +0 -0
  90. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  91. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/node_config.json +1 -0
  92. {microsdevtoolkit-2.8.6/micrOS/source → microsdevtoolkit-2.9.0/toolkit/workspace/precompiled}/uapi.js +5 -6
  93. microsdevtoolkit-2.9.0/toolkit/workspace/precompiled/urequests.mpy +0 -0
  94. microsdevtoolkit-2.8.6/env/driver_cp210x/CH34XSER_MAC/CH34X_DRV_INSTALL_INSTRUCTIONS.pdf +0 -0
  95. microsdevtoolkit-2.8.6/env/driver_cp210x/CH34XSER_MAC/CH34xVCPDriver.pkg +0 -0
  96. microsdevtoolkit-2.8.6/micrOS/micropython/esp32-20231005-v1.21.0.bin +0 -0
  97. microsdevtoolkit-2.8.6/micrOS/micropython/esp32-GENERIC-20240602-v1.23.0.bin +0 -0
  98. microsdevtoolkit-2.8.6/micrOS/micropython/rpi-pico-w-20240602-v1.23.0.uf2 +0 -0
  99. microsdevtoolkit-2.8.6/micrOS/micropython/tinypico-20231005-v1.21.0.bin +0 -0
  100. microsdevtoolkit-2.8.6/micrOS/micropython/tinypico_usbc-UM-20240105-v1.22.1.bin +0 -0
  101. microsdevtoolkit-2.8.6/micrOS/source/LM_rest.py +0 -40
  102. microsdevtoolkit-2.8.6/micrOS/source/LM_telegram.py +0 -129
  103. microsdevtoolkit-2.8.6/micrOS/source/urequests.py +0 -179
  104. microsdevtoolkit-2.8.6/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
  105. microsdevtoolkit-2.8.6/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
  106. microsdevtoolkit-2.8.6/toolkit/simulator_lib/usocket.py +0 -8
  107. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/Common.mpy +0 -0
  108. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/Config.mpy +0 -0
  109. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/Hooks.mpy +0 -0
  110. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_cct.mpy +0 -0
  111. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_dimmer.mpy +0 -0
  112. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_distance.mpy +0 -0
  113. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_keychain.mpy +0 -0
  114. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_light_sensor.mpy +0 -0
  115. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_neoeffects.mpy +0 -0
  116. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_neopixel.mpy +0 -0
  117. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_oledui.mpy +0 -0
  118. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_presence.mpy +0 -0
  119. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_rest.mpy +0 -0
  120. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_rgb.mpy +0 -0
  121. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_roboarm.mpy +0 -0
  122. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_sound_event.mpy +0 -0
  123. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_system.mpy +0 -0
  124. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/LM_telegram.mpy +0 -0
  125. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/Logger.mpy +0 -0
  126. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/Notify.mpy +0 -0
  127. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
  128. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/Tasks.mpy +0 -0
  129. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/Types.mpy +0 -0
  130. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/Web.mpy +0 -0
  131. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/micrOS.mpy +0 -0
  132. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  133. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/node_config.json +0 -1
  134. microsdevtoolkit-2.8.6/toolkit/workspace/precompiled/urequests.mpy +0 -0
  135. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/LICENSE +0 -0
  136. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/MANIFEST.in +0 -0
  137. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/devToolKit.py +0 -0
  138. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/__init__.py +0 -0
  139. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
  140. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
  141. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
  142. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
  143. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
  144. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
  145. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
  146. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
  147. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
  148. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
  149. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
  150. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/media/__init__.py +0 -0
  151. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/media/dnd.png +0 -0
  152. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/media/logo.png +0 -0
  153. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/media/logo_mini.png +0 -0
  154. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/media/usb_port_icon.png +0 -0
  155. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/media/wifi_icon.png +0 -0
  156. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/__init__.py +0 -0
  157. /microsdevtoolkit-2.8.6/micrOS/micropython/esp32c3-GENERIC-20240222-v1.22.2.bin → /microsdevtoolkit-2.9.0/micrOS/micropython/esp32c3-20240222-v1.22.2.bin +0 -0
  158. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
  159. /microsdevtoolkit-2.8.6/micrOS/micropython/esp32s2-GENERIC-20240602-v1.23.0.bin → /microsdevtoolkit-2.9.0/micrOS/micropython/esp32s2-20240602-v1.23.0.bin +0 -0
  160. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/micropython/esp32s2-LOLIN_MINI-20220618-v1.19.1.bin +0 -0
  161. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/micropython/esp32s2-LOLIN_MINI-20240602-v1.23.0.bin +0 -0
  162. /microsdevtoolkit-2.8.6/micrOS/micropython/esp32s3-GENERIC-20240105-v1.22.1.bin → /microsdevtoolkit-2.9.0/micrOS/micropython/esp32s3-20240105-v1.22.1.bin +0 -0
  163. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin +0 -0
  164. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/.DS_Store +0 -0
  165. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Debug.py +0 -0
  166. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Espnow.py +0 -0
  167. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/IO_esp32.py +0 -0
  168. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/IO_esp32c3.py +0 -0
  169. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/IO_esp32s2.py +0 -0
  170. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/IO_esp32s3.py +0 -0
  171. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/IO_m5stamp.py +0 -0
  172. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/IO_qtpy.py +0 -0
  173. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/IO_rp2.py +0 -0
  174. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/IO_tinypico.py +0 -0
  175. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/InterConnect.py +0 -0
  176. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Interrupts.py +0 -0
  177. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_L298N_DCmotor.py +0 -0
  178. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_L9110_DCmotor.py +0 -0
  179. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_OV2640.py +0 -0
  180. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_VL53L0X.py +0 -0
  181. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_aht10.py +0 -0
  182. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_bme280.py +0 -0
  183. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_catgame.py +0 -0
  184. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_co2.py +0 -0
  185. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_dashboard_be.py +0 -0
  186. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_demo.py +0 -0
  187. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_dht11.py +0 -0
  188. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_dht22.py +0 -0
  189. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_ds18.py +0 -0
  190. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_esp32.py +0 -0
  191. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_espnow.py +0 -0
  192. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_gameOfLife.py +0 -0
  193. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_haptic.py +0 -0
  194. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_i2c.py +0 -0
  195. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_intercon.py +0 -0
  196. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_ld2410.py +0 -0
  197. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_lmpacman.py +0 -0
  198. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_oled.py +0 -0
  199. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_oled_sh1106.py +0 -0
  200. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_oled_ui.py +0 -0
  201. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_rencoder.py +0 -0
  202. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_rgbcct.py +0 -0
  203. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_robustness.py +0 -0
  204. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_rp2w.py +0 -0
  205. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_sdcard.py +0 -0
  206. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_servo.py +0 -0
  207. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_stepper.py +0 -0
  208. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_switch.py +0 -0
  209. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_tinyrgb.py +0 -0
  210. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_trackball.py +0 -0
  211. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/LM_veml7700.py +0 -0
  212. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Network.py +0 -0
  213. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Server.py +0 -0
  214. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/Time.py +0 -0
  215. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/index.html +0 -0
  216. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/main.py +0 -0
  217. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/microIO.py +0 -0
  218. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/reset.py +0 -0
  219. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/udashboard.js +0 -0
  220. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/ustyle.css +0 -0
  221. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/uwidgets.js +0 -0
  222. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOS/source/uwidgets_pro.js +0 -0
  223. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
  224. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOSDevToolKit.egg-info/requires.txt +0 -0
  225. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
  226. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/setup.cfg +0 -0
  227. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/DevEnvCompile.py +0 -0
  228. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/DevEnvOTA.py +0 -0
  229. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/Gateway.py +0 -0
  230. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/LM_to_compile.dat +0 -0
  231. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/__init__.py +0 -0
  232. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/AirQualityBME280.py +0 -0
  233. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/AirQualityDHT22_CO2.py +0 -0
  234. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/BackupRestore.py +0 -0
  235. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/CCTDemo.py +0 -0
  236. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/CCTTest.py +0 -0
  237. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/CamStream.py +0 -0
  238. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/CatGame.py +0 -0
  239. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/Dimmer.py +0 -0
  240. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/GetVersion.py +0 -0
  241. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
  242. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
  243. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
  244. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/PresenceTest.py +0 -0
  245. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/RGBTest.py +0 -0
  246. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/RoboArm.py +0 -0
  247. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/SED_test.py +0 -0
  248. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/SystemTest.py +0 -0
  249. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/Template_app.py +0 -0
  250. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/__init__.py +0 -0
  251. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/_capture.py +0 -0
  252. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/_micPlotting.py +0 -0
  253. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
  254. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/dashboard_apps/uLightDemo.py +0 -0
  255. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/img_stream.html +0 -0
  256. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/index.html +0 -0
  257. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/lib/LocalMachine.py +0 -0
  258. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/lib/SafeInput.py +0 -0
  259. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/lib/SearchDevices.py +0 -0
  260. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/lib/SerialDriverHandler.py +0 -0
  261. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/lib/TerminalColors.py +0 -0
  262. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/lib/__init__.py +0 -0
  263. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/lib/file_extensions.py +0 -0
  264. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/lib/macroScript.py +0 -0
  265. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/lib/micrOSClient.py +0 -0
  266. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/lib/pip_package_installer.py +0 -0
  267. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/micrOSdashboard.py +0 -0
  268. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/micrOSlint.py +0 -0
  269. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/.DS_Store +0 -0
  270. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/IO_darwin.py +0 -0
  271. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
  272. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
  273. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
  274. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
  275. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
  276. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
  277. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
  278. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
  279. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
  280. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
  281. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
  282. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
  283. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
  284. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
  285. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
  286. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
  287. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
  288. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
  289. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
  290. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
  291. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
  292. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
  293. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
  294. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
  295. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
  296. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
  297. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
  298. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
  299. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
  300. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
  301. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
  302. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
  303. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc +0 -0
  304. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-38.pyc +0 -0
  305. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-39.pyc +0 -0
  306. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
  307. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
  308. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
  309. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
  310. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
  311. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
  312. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
  313. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
  314. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
  315. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
  316. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
  317. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
  318. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
  319. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
  320. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
  321. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
  322. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
  323. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
  324. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
  325. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/camera.py +0 -0
  326. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/dht.py +0 -0
  327. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/dotstar.py +0 -0
  328. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/ds18x20.py +0 -0
  329. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/esp32.py +0 -0
  330. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/framebuf.py +0 -0
  331. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/machine.py +0 -0
  332. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/micropython.py +0 -0
  333. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/neopixel.py +0 -0
  334. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/network.py +0 -0
  335. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/node_config.json +0 -0
  336. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/ntptime.py +0 -0
  337. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/onewire.py +0 -0
  338. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/sim_console.py +0 -0
  339. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/simgc.py +0 -0
  340. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/tinypico.py +0 -0
  341. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/ussl.py +0 -0
  342. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/ustruct.py +0 -0
  343. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/utime.py +0 -0
  344. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/view01.jpg +0 -0
  345. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/view02.jpg +0 -0
  346. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/simulator_lib/webrepl.py +0 -0
  347. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/socketClient.py +0 -0
  348. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/user_data/.include +0 -0
  349. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/user_data/webhooks/generic.py +0 -0
  350. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/user_data/webhooks/macro.py +0 -0
  351. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/user_data/webhooks/template.macro +0 -0
  352. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/user_data/webhooks/template.py +0 -0
  353. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/__init__.py +0 -0
  354. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/Debug.mpy +0 -0
  355. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/Espnow.mpy +0 -0
  356. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/IO_esp32.mpy +0 -0
  357. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/IO_esp32c3.mpy +0 -0
  358. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/IO_esp32s2.mpy +0 -0
  359. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/IO_esp32s3.mpy +0 -0
  360. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/IO_m5stamp.mpy +0 -0
  361. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/IO_qtpy.mpy +0 -0
  362. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/IO_rp2.mpy +0 -0
  363. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/IO_tinypico.mpy +0 -0
  364. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  365. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
  366. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_L298N_DCmotor.mpy +0 -0
  367. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_L9110_DCmotor.py +0 -0
  368. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_OV2640.mpy +0 -0
  369. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_VL53L0X.py +0 -0
  370. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_aht10.mpy +0 -0
  371. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_bme280.mpy +0 -0
  372. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_catgame.py +0 -0
  373. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_co2.mpy +0 -0
  374. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_dashboard_be.py +0 -0
  375. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_demo.py +0 -0
  376. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_dht11.mpy +0 -0
  377. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_dht22.mpy +0 -0
  378. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_ds18.mpy +0 -0
  379. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_esp32.py +0 -0
  380. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_espnow.py +0 -0
  381. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_gameOfLife.mpy +0 -0
  382. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_haptic.mpy +0 -0
  383. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_i2c.py +0 -0
  384. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_intercon.mpy +0 -0
  385. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_ld2410.mpy +0 -0
  386. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_lmpacman.mpy +0 -0
  387. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_oled.mpy +0 -0
  388. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_oled_sh1106.mpy +0 -0
  389. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
  390. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_rencoder.py +0 -0
  391. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_rgbcct.mpy +0 -0
  392. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_robustness.py +0 -0
  393. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_rp2w.py +0 -0
  394. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_sdcard.py +0 -0
  395. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_servo.mpy +0 -0
  396. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_stepper.mpy +0 -0
  397. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_switch.mpy +0 -0
  398. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_tinyrgb.mpy +0 -0
  399. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_trackball.mpy +0 -0
  400. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/LM_veml7700.mpy +0 -0
  401. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/Network.mpy +0 -0
  402. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/Server.mpy +0 -0
  403. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/Time.mpy +0 -0
  404. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/_mpy.version +0 -0
  405. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/index.html +0 -0
  406. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/main.py +0 -0
  407. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/microIO.mpy +0 -0
  408. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/reset.mpy +0 -0
  409. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/udashboard.js +0 -0
  410. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/ustyle.css +0 -0
  411. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/uwidgets.js +0 -0
  412. {microsdevtoolkit-2.8.6 → microsdevtoolkit-2.9.0}/toolkit/workspace/precompiled/uwidgets_pro.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: micrOSDevToolKit
3
- Version: 2.8.6
3
+ Version: 2.9.0
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
@@ -28,7 +28,7 @@ Requires-Dist: soundfile
28
28
 
29
29
  # ![LOGO](./media/logo_mini.png?raw=true) micrOS
30
30
 
31
- > **"Simple, yet increadbly useful."**
31
+ > **"The mini yet powerful operating system for DIY projects."**
32
32
 
33
33
  ![telnet](https://img.shields.io/badge/wifi-telnet-blue) ![esp32S2](https://img.shields.io/badge/esp32-S2-olive) ![tinypico](https://img.shields.io/badge/esp32-tinypico-olive) ![esp32S3](https://img.shields.io/badge/esp32-S3-olive) ![esp32S3](https://img.shields.io/badge/esp32-S3_RAM-olive) ![PYQT](https://img.shields.io/badge/esp32-PYQT-olive) ![raspberry-pico-w](https://img.shields.io/badge/raspberry-pico_W-critical) ![espCAM-esp-s](https://img.shields.io/badge/esp32-CAM_OV2640-olive) ![esp32-c3](https://img.shields.io/badge/esp32-C3_RISCV-olive) ![OTA](https://img.shields.io/badge/ota-update-blue) ![GPIO](https://img.shields.io/badge/gpio-i2c-success) ![clock](https://img.shields.io/badge/rtc-ntp-success) ![async](https://img.shields.io/badge/async-task_manager-success) ![irq](https://img.shields.io/badge/hardware-IRQs-success) ![socket](https://img.shields.io/badge/socket-STA_or_AP-blue) ![cron](https://img.shields.io/badge/scheduling-cron-success) ![stable](https://img.shields.io/badge/stabile-master_HEAD-success) ![stable](https://img.shields.io/badge/micropython-OS-gold)<br/>
34
34
 
@@ -1,6 +1,6 @@
1
1
  # ![LOGO](./media/logo_mini.png?raw=true) micrOS
2
2
 
3
- > **"Simple, yet increadbly useful."**
3
+ > **"The mini yet powerful operating system for DIY projects."**
4
4
 
5
5
  ![telnet](https://img.shields.io/badge/wifi-telnet-blue) ![esp32S2](https://img.shields.io/badge/esp32-S2-olive) ![tinypico](https://img.shields.io/badge/esp32-tinypico-olive) ![esp32S3](https://img.shields.io/badge/esp32-S3-olive) ![esp32S3](https://img.shields.io/badge/esp32-S3_RAM-olive) ![PYQT](https://img.shields.io/badge/esp32-PYQT-olive) ![raspberry-pico-w](https://img.shields.io/badge/raspberry-pico_W-critical) ![espCAM-esp-s](https://img.shields.io/badge/esp32-CAM_OV2640-olive) ![esp32-c3](https://img.shields.io/badge/esp32-C3_RISCV-olive) ![OTA](https://img.shields.io/badge/ota-update-blue) ![GPIO](https://img.shields.io/badge/gpio-i2c-success) ![clock](https://img.shields.io/badge/rtc-ntp-success) ![async](https://img.shields.io/badge/async-task_manager-success) ![irq](https://img.shields.io/badge/hardware-IRQs-success) ![socket](https://img.shields.io/badge/socket-STA_or_AP-blue) ![cron](https://img.shields.io/badge/scheduling-cron-success) ![stable](https://img.shields.io/badge/stabile-master_HEAD-success) ![stable](https://img.shields.io/badge/micropython-OS-gold)<br/>
6
6
 
@@ -5,11 +5,11 @@
5
5
  7
6
6
  ],
7
7
  "micrOSloader.py": [
8
- 7.85,
8
+ 8.0,
9
9
  1
10
10
  ],
11
11
  "Hooks.py": [
12
- 9.41,
12
+ 9.85,
13
13
  1
14
14
  ],
15
15
  "Server.py": [
@@ -17,40 +17,40 @@
17
17
  3
18
18
  ],
19
19
  "Web.py": [
20
- 9.05,
20
+ 9.25,
21
21
  1
22
22
  ],
23
23
  "Tasks.py": [
24
- 9.78,
24
+ 9.55,
25
25
  12
26
26
  ],
27
27
  "Config.py": [
28
- 9.44,
29
- 16
28
+ 9.49,
29
+ 17
30
30
  ],
31
31
  "reset.py": [
32
32
  8.75,
33
33
  0
34
34
  ],
35
35
  "Shell.py": [
36
- 9.61,
36
+ 9.33,
37
37
  1
38
38
  ],
39
39
  "Notify.py": [
40
- 9.59,
41
- 2
40
+ 8.38,
41
+ 3
42
42
  ],
43
43
  "Types.py": [
44
- 8.87,
45
- 28
44
+ 8.91,
45
+ 29
46
46
  ],
47
47
  "Logger.py": [
48
- 8.57,
48
+ 8.78,
49
49
  4
50
50
  ],
51
51
  "Common.py": [
52
- 9.49,
53
- 32
52
+ 8.71,
53
+ 34
54
54
  ],
55
55
  "InterConnect.py": [
56
56
  9.4,
@@ -62,14 +62,14 @@
62
62
  ],
63
63
  "Network.py": [
64
64
  9.71,
65
- 9
65
+ 8
66
66
  ],
67
67
  "Espnow.py": [
68
68
  9.01,
69
69
  1
70
70
  ],
71
71
  "Scheduler.py": [
72
- 9.61,
72
+ 9.62,
73
73
  1
74
74
  ],
75
75
  "microIO.py": [
@@ -77,7 +77,7 @@
77
77
  42
78
78
  ],
79
79
  "micrOS.py": [
80
- 9.29,
80
+ 9.25,
81
81
  1
82
82
  ],
83
83
  "Interrupts.py": [
@@ -89,11 +89,11 @@
89
89
  0
90
90
  ],
91
91
  "urequests.py": [
92
- 8.94,
93
- 4
92
+ 8.79,
93
+ 5
94
94
  ],
95
95
  "LM_roboarm.py": [
96
- 7.78,
96
+ 7.76,
97
97
  0
98
98
  ],
99
99
  "LM_stepper.py": [
@@ -109,8 +109,8 @@
109
109
  0
110
110
  ],
111
111
  "LM_system.py": [
112
- 8.31,
113
- 4
112
+ 8.36,
113
+ 5
114
114
  ],
115
115
  "LM_robustness.py": [
116
116
  7.57,
@@ -121,7 +121,7 @@
121
121
  0
122
122
  ],
123
123
  "LM_rest.py": [
124
- 7.0,
124
+ 7.78,
125
125
  0
126
126
  ],
127
127
  "LM_oled.py": [
@@ -145,7 +145,7 @@
145
145
  0
146
146
  ],
147
147
  "LM_buzzer.py": [
148
- 8.9,
148
+ 8.88,
149
149
  0
150
150
  ],
151
151
  "LM_switch.py": [
@@ -173,11 +173,11 @@
173
173
  0
174
174
  ],
175
175
  "LM_neopixel.py": [
176
- 7.59,
176
+ 7.57,
177
177
  2
178
178
  ],
179
179
  "LM_cct.py": [
180
- 8.83,
180
+ 8.82,
181
181
  1
182
182
  ],
183
183
  "LM_L9110_DCmotor.py": [
@@ -185,7 +185,7 @@
185
185
  0
186
186
  ],
187
187
  "LM_neoeffects.py": [
188
- 6.71,
188
+ 6.86,
189
189
  0
190
190
  ],
191
191
  "LM_i2c.py": [
@@ -209,7 +209,7 @@
209
209
  0
210
210
  ],
211
211
  "LM_pet_feeder.py": [
212
- 8.0,
212
+ 7.94,
213
213
  0
214
214
  ],
215
215
  "LM_rencoder.py": [
@@ -217,7 +217,7 @@
217
217
  0
218
218
  ],
219
219
  "LM_keychain.py": [
220
- 9.18,
220
+ 9.17,
221
221
  0
222
222
  ],
223
223
  "LM_dht11.py": [
@@ -237,7 +237,7 @@
237
237
  0
238
238
  ],
239
239
  "LM_telegram.py": [
240
- 9.02,
240
+ 9.53,
241
241
  0
242
242
  ],
243
243
  "LM_OV2640.py": [
@@ -245,11 +245,11 @@
245
245
  0
246
246
  ],
247
247
  "LM_rgb.py": [
248
- 8.66,
248
+ 8.65,
249
249
  1
250
250
  ],
251
251
  "LM_distance.py": [
252
- 8.89,
252
+ 8.87,
253
253
  0
254
254
  ],
255
255
  "LM_VL53L0X.py": [
@@ -257,7 +257,7 @@
257
257
  0
258
258
  ],
259
259
  "LM_light_sensor.py": [
260
- 8.99,
260
+ 8.97,
261
261
  0
262
262
  ],
263
263
  "LM_rp2w.py": [
@@ -265,7 +265,7 @@
265
265
  0
266
266
  ],
267
267
  "LM_presence.py": [
268
- 8.78,
268
+ 8.77,
269
269
  4
270
270
  ],
271
271
  "LM_trackball.py": [
@@ -277,7 +277,7 @@
277
277
  0
278
278
  ],
279
279
  "LM_dimmer.py": [
280
- 8.33,
280
+ 8.32,
281
281
  1
282
282
  ],
283
283
  "LM_demo.py": [
@@ -315,11 +315,11 @@
315
315
  },
316
316
  "summary": {
317
317
  "core": [
318
- 3306,
318
+ 3275,
319
319
  23
320
320
  ],
321
321
  "load": [
322
- 8711,
322
+ 8939,
323
323
  55
324
324
  ],
325
325
  "core_dep": [
@@ -330,8 +330,8 @@
330
330
  true,
331
331
  6
332
332
  ],
333
- "core_score": 9.13,
334
- "load_score": 8.19,
335
- "version": "2.8.1-0"
333
+ "core_score": 9.06,
334
+ "load_score": 8.22,
335
+ "version": "2.9.0-0"
336
336
  }
337
337
  }
@@ -9,8 +9,7 @@ from Logger import logger, log_get
9
9
  from microIO import resolve_pin
10
10
  from Tasks import TaskBase, Manager, lm_exec
11
11
  from machine import Pin, ADC
12
-
13
- TELEGRAM = None
12
+ from Notify import Notify
14
13
 
15
14
  ################## Common LM features ##################
16
15
 
@@ -78,7 +77,7 @@ class SmartADC:
78
77
  return {'raw': raw, 'percent': round(percent*100, 1), 'volt': volt}
79
78
 
80
79
  @staticmethod
81
- def get_singleton(pin): # TODO: rename to get_instance
80
+ def get_instance(pin):
82
81
  if pin in SmartADC.OBJS.keys():
83
82
  return SmartADC.OBJS[pin]
84
83
  SmartADC.OBJS[pin] = SmartADC(pin)
@@ -141,23 +140,18 @@ def exec_cmd(cmd, skip_check=False):
141
140
  return lm_exec(cmd) if isinstance(cmd, list) else False, f"Invalid type, must be list: {type(cmd)}"
142
141
 
143
142
 
144
-
145
- def notify(text):
143
+ def notify(text=None) -> bool:
146
144
  """
147
145
  [LM] micrOS common notification handler (Telegram)
148
- :param text: notification text
146
+ :param text: notification text / None (return notification state)
149
147
  return: verdict: True/False
150
148
  """
151
- global TELEGRAM
152
- if TELEGRAM is None:
153
- try:
154
- from Notify import Telegram
155
- TELEGRAM = Telegram()
156
- except Exception as e:
157
- errlog_add(f"[ERR] Import Notify.Telegram: {e}")
158
- return False
149
+ # (1) Return notification state
150
+ if text is None:
151
+ return Notify.GLOBAL_NOTIFY
152
+ # (2) Send notification
159
153
  try:
160
- out = TELEGRAM.notify(text)
154
+ out = Notify.notify(text)
161
155
  except Exception as e:
162
156
  errlog_add(f"[ERR] Notify: {e}")
163
157
  out = str(e)
@@ -165,7 +159,8 @@ def notify(text):
165
159
  return True
166
160
  return False
167
161
 
168
- def web_endpoint(endpoint, function):
162
+
163
+ def web_endpoint(endpoint, function) -> bool:
169
164
  """
170
165
  [LM] Add test endpoint <localhost.local>/endpoint from Load Modules
171
166
  :param endpoint: simple string, name of the endpoint
@@ -215,7 +210,7 @@ def data_logger(f_name, data=None, limit=12, msgobj=None):
215
210
 
216
211
  def syslog(msg):
217
212
  """ Wrapper of errlog_add """
218
- return errlog_add(f"[U]{msg}")
213
+ return errlog_add(f"[U] {msg}")
219
214
 
220
215
 
221
216
  def console(msg):
@@ -13,6 +13,7 @@ Designed by Marcell Ban aka BxNxM
13
13
  # IMPORTS #
14
14
  #################################################################
15
15
  from os import remove
16
+ from re import search
16
17
  from json import load, dump
17
18
  from utime import sleep
18
19
  from Debug import DebugCfg, console_write, errlog_add
@@ -185,6 +186,21 @@ class Data:
185
186
  # Return default value if key not exists
186
187
  return 'n/a'
187
188
 
189
+ @staticmethod
190
+ def validate_pwd(password):
191
+ """
192
+ Validate appwd parameter
193
+ - webrepl password
194
+ - micrOS auth password (Shell/WebCli)
195
+ - wifi access point password
196
+ """
197
+ # Check password rules
198
+ if 4 <= len(password) <= 9:
199
+ if search(r"[A-Z]", password) and search(r"[a-z]", password):
200
+ if search(r"\d", password):
201
+ return True, ''
202
+ return False, 'Password must include [0-9] both [a-z][A-Z] and length between 4-9 char.'
203
+
188
204
 
189
205
  #################################################################
190
206
  # CONFIGHANDLER FUNCTIONS #
@@ -204,8 +220,11 @@ def cfgget(key=None):
204
220
  errlog_add(f'[ERR] cfgget {key} error: {e}')
205
221
  return None
206
222
 
207
-
208
223
  def cfgput(key, value, type_check=False):
224
+ if key == 'appwd':
225
+ is_valid, verdict = Data.validate_pwd(value)
226
+ if not is_valid:
227
+ raise Exception(verdict)
209
228
  # Handle special "offloaded" keys
210
229
  if str(Data.CONFIG_CACHE.get(key, None)) == '...':
211
230
  return Data.disk_keys(key, value)
@@ -19,13 +19,17 @@ Designed by Marcell Ban aka BxNxM
19
19
  #################################################################
20
20
  from Config import cfgget, cfgput
21
21
  from microIO import detect_platform
22
- from Debug import console_write
22
+ from Debug import console_write, errlog_add
23
23
  from Tasks import exec_lm_pipe
24
24
  from micropython import mem_info
25
25
  from machine import freq
26
+ try:
27
+ from machine import reset_cause, PWRON_RESET, HARD_RESET, WDT_RESET, DEEPSLEEP_RESET, SOFT_RESET
28
+ except ImportError:
29
+ reset_cause = None
26
30
  try:
27
31
  from gc import mem_free
28
- except:
32
+ except ImportError:
29
33
  from simgc import mem_free
30
34
 
31
35
  #################################################################
@@ -38,9 +42,9 @@ def bootup():
38
42
  Executes when system boots up.
39
43
  """
40
44
  # Execute LMs from boothook config parameter
41
- console_write("[BOOT] EXECUTION ...")
45
+ console_write("[BOOT] EXECUTION...")
46
+ boot_cause()
42
47
  bootasks = cfgget('boothook')
43
- bootasks = _migrate(bootasks) # load_n_init -> load migration (simplify)
44
48
  if bootasks is not None and bootasks.lower() != 'n/a':
45
49
  console_write(f"|-[BOOT] TASKS: {bootasks}")
46
50
  if exec_lm_pipe(bootasks):
@@ -89,15 +93,21 @@ def profiling_info(label=""):
89
93
  mem_info()
90
94
  console_write("~"*30)
91
95
 
92
- def _migrate(bootstr):
93
- """
94
- OBSOLETE load_n_init -- REMOVE AT 2023.12
95
- Use load instead
96
- - auto replace in boothook param
97
- """
98
- if 'load_n_init' in bootstr:
99
- console_write("[MIGRATE] load_n_init -> load")
100
- bootstr = bootstr.replace('load_n_init', 'load')
101
- cfgput('boothook', bootstr)
102
- return bootstr
103
96
 
97
+ def boot_cause():
98
+ reason = 0, "-Unknown"
99
+ if callable(reset_cause):
100
+ reason = 0, "Unknown"
101
+ reset_reason = reset_cause()
102
+ if reset_reason == PWRON_RESET:
103
+ reason = 1, "PowerOn"
104
+ elif reset_reason == HARD_RESET:
105
+ reason = 2, "HardReset"
106
+ elif reset_reason == WDT_RESET:
107
+ reason = 3, "WDTWakeUp"
108
+ elif reset_reason == DEEPSLEEP_RESET:
109
+ reason = 4, "DSWakeUp"
110
+ elif reset_reason == SOFT_RESET:
111
+ reason = 5, "SoftReset"
112
+ errlog_add(f"[BOOT] info: {reason[1]}")
113
+ return reason
@@ -1,8 +1,7 @@
1
1
  from sys import platform
2
2
  from utime import sleep
3
3
  from microIO import resolve_pin, pinmap_search
4
- from Common import micro_task
5
- import uasyncio as asyncio
4
+ from Common import micro_task, notify
6
5
  from Types import resolve
7
6
 
8
7
 
@@ -14,6 +13,7 @@ __BUZZER_OBJ = None
14
13
  __BUZZER_CACHE = [600]
15
14
  __PERSISTENT_CACHE = False
16
15
  __TASK_TAG = "buzzer._play"
16
+ CHECK_NOTIFY = False
17
17
 
18
18
  #########################################
19
19
  # BUZZER RTTL #
@@ -230,7 +230,9 @@ def bipp(repeat=1, freq=None):
230
230
  :param freq int: 0-1000 default: 600
231
231
  :return str: Verdict string
232
232
  """
233
- global __BUZZER_CACHE
233
+ global __BUZZER_CACHE, CHECK_NOTIFY
234
+ if CHECK_NOTIFY and not notify():
235
+ return "NoBipp - notify off"
234
236
  # restore data from cache if it was not provided
235
237
  freq = int(__BUZZER_CACHE[0] if freq is None else freq)
236
238
  for _ in range(repeat):
@@ -254,7 +256,7 @@ async def _play(rtttlstr):
254
256
  task.out = "Play song..."
255
257
  for freq, msec in tune.notes():
256
258
  __play_tone(freq, msec)
257
- await asyncio.sleep_ms(10)
259
+ await task.feed(sleep_ms=10)
258
260
  task.out = "Song played successfully"
259
261
  del tune
260
262
 
@@ -265,6 +267,9 @@ def play(rtttlstr='Indiana'):
265
267
  :param rtttlstr str: rttl string, default: 'd=4,o=5,b=250:e,8p,8f,8g,8p,1c6,8p.,d,8p,8e,1f,p.'
266
268
  :return str: verdict
267
269
  """
270
+ global CHECK_NOTIFY
271
+ if CHECK_NOTIFY and not notify():
272
+ return "NoBipp - notify off"
268
273
  state = micro_task(tag=__TASK_TAG, task=_play(rtttlstr))
269
274
  if state:
270
275
  return 'Play song'
@@ -278,22 +283,24 @@ def list_tones():
278
283
  return '\n'.join(list(_builtin_tones()))
279
284
 
280
285
 
281
- def load(cache=None):
286
+ def load(cache=None, check_notify=False):
282
287
  """
283
288
  Initialize buzzer module
284
289
  :param cache bool: file state machine cache: True/False/None(default: automatic True)
285
290
  - Load .pds (state machine cache) for this load module
286
291
  - Apply loaded states to gpio pins (boot function)
287
- :return str: Cache state
292
+ :param check_notify: check notify enabled/disabled - make noise if enabled only
293
+ :return str: Verdict
288
294
  """
289
295
  from sys import platform
290
- global __PERSISTENT_CACHE
296
+ global __PERSISTENT_CACHE, CHECK_NOTIFY
291
297
  if cache is None:
292
298
  __PERSISTENT_CACHE = False if platform == 'esp8266' else True
293
299
  else:
294
300
  __PERSISTENT_CACHE = cache
295
301
  __persistent_cache_manager('r')
296
- return "CACHE: {}".format(__PERSISTENT_CACHE)
302
+ CHECK_NOTIFY = check_notify
303
+ return f"CACHE: {__PERSISTENT_CACHE}, check notify: {CHECK_NOTIFY}"
297
304
 
298
305
 
299
306
  #######################
@@ -320,4 +327,4 @@ def help(widgets=False):
320
327
  return resolve(('BUTTON bipp repeat=3 freq=600',
321
328
  'BUTTON play rtttlstr=<Indiana,TakeOnMe,StarWars,MissionImp>',
322
329
  'list_tones',
323
- 'load', 'pinmap'), widgets=widgets)
330
+ 'load check_notify=False', 'pinmap'), widgets=widgets)
@@ -5,7 +5,6 @@ from machine import Pin, PWM
5
5
  from sys import platform
6
6
  from utime import sleep_ms
7
7
  from Common import transition_gen, micro_task
8
- import uasyncio as asyncio
9
8
  from microIO import resolve_pin, pinmap_search
10
9
  from random import randint
11
10
  from Types import resolve
@@ -229,7 +228,7 @@ def transition(cw=None, ww=None, sec=1.0, wake=False):
229
228
  Data.CWWW_CACHE[0] = cw_val if cw_val > 5 else 5 # SAVE VALUE TO CACHE > 5 ! because toggle
230
229
  Data.CWWW_CACHE[1] = ww_val if ww_val > 5 else 5 # SAVE VALUE TO CACHE > 5 ! because toggle
231
230
  my_task.out = f"Dimming: CW:{cw_val} WW:{ww_val}"
232
- await asyncio.sleep_ms(ms_period)
231
+ await my_task.feed(sleep_ms=ms_period)
233
232
  if Data.CWWW_CACHE[2] == 1 or wake:
234
233
  __state_machine(c=cw_val, w=ww_val)
235
234
  my_task.out = f"Dimming DONE: CW:{cw_val} WW:{ww_val}"
@@ -278,7 +277,7 @@ def hue_transition(percent, sec=1.0, wake=False):
278
277
  Data.CWWW_CACHE[1] = warm if warm > 5 else 5
279
278
  my_task.out = f"HUE {int(hue_precent*0.1)}%w - CW:{cold} WW:{warm}"
280
279
  # Feed async loop
281
- await asyncio.sleep_ms(ms_period)
280
+ await my_task.feed(sleep_ms=ms_period)
282
281
  __state_machine(cold, warm)
283
282
  my_task.out = f"HUE DONE {int(hue_precent*0.001)}%w - CW:{cold} WW:{warm}"
284
283
 
@@ -1,7 +1,6 @@
1
1
  from sys import platform
2
2
  from microIO import resolve_pin, pinmap_search
3
3
  from Common import transition_gen, micro_task
4
- import uasyncio as asyncio
5
4
  from utime import sleep_ms
6
5
  from Types import resolve
7
6
 
@@ -171,7 +170,7 @@ def transition(value, sec=1.0, wake=False):
171
170
  # Update periphery cache (value check due to toggle ON value minimum)
172
171
  Data.DIMMER_CACHE[1] = i if i > 5 else 5 # SAVE VALUE TO CACHE > 5 ! because toggle
173
172
  my_task.out = f"Dimming: {i}"
174
- await asyncio.sleep_ms(ms_period)
173
+ await my_task.feed(sleep_ms=ms_period)
175
174
  if Data.DIMMER_CACHE[0] == 1 or wake:
176
175
  __state_machine(i)
177
176
  my_task.out = f"Dimming DONE: {i}"
@@ -1,7 +1,6 @@
1
1
  from machine import Pin, time_pulse_us
2
2
  from utime import sleep_us
3
3
  from microIO import resolve_pin, pinmap_search
4
- import uasyncio as asyncio
5
4
  from Common import micro_task
6
5
  from Types import resolve
7
6
 
@@ -50,7 +49,7 @@ async def __task(period_ms, dimmer, idle_cm):
50
49
  brightness_min_cm = 5
51
50
  dist = int(measure_cm()["cm"])
52
51
  if dist > idle_cm+100:
53
- await asyncio.sleep_ms(50)
52
+ await my_task.feed(sleep_ms=50)
54
53
  continue
55
54
  dist = brightness_max_cm if dist > brightness_max_cm else dist # Limit max
56
55
  dist = 0 if dist < brightness_min_cm else dist # Limit min
@@ -63,9 +62,8 @@ async def __task(period_ms, dimmer, idle_cm):
63
62
 
64
63
  # Store data in task cache (task show mytask)
65
64
  my_task.out = f'Dist: {dist} br: {brightness}'
66
-
67
65
  # Async sleep - feed event loop
68
- await asyncio.sleep_ms(period_ms)
66
+ await my_task.feed(sleep_ms=period_ms)
69
67
 
70
68
 
71
69
  def start_dimmer_indicator(idle_distance=180):
@@ -124,7 +124,7 @@ def get_adc(pin, key=None):
124
124
  if isinstance(pin, int):
125
125
  pin_tag = f"ADC{pin}"
126
126
  pin = register_pin(pin_tag, pin)
127
- data = SmartADC.get_singleton(pin).get()
127
+ data = SmartADC.get_instance(pin).get()
128
128
  data["pin"] = pin
129
129
  if key is None:
130
130
  return data
@@ -49,7 +49,7 @@ async def __control_task(ms_period=50):
49
49
  querying samples. Pushing the button again reinitializes the
50
50
  microphone without having to restart dependent load modules.
51
51
  """
52
- with micro_task(tag=Data.CONTROL_TASK_TAG):
52
+ with micro_task(tag=Data.CONTROL_TASK_TAG) as my_task:
53
53
  while True:
54
54
  if Data.CONTROL_BUTTON_PIN.value():
55
55
  Data.MIC_ENABLED = not Data.MIC_ENABLED
@@ -59,8 +59,8 @@ async def __control_task(ms_period=50):
59
59
  load()
60
60
 
61
61
  # Debounce
62
- await asyncio.sleep_ms(500)
63
- await asyncio.sleep_ms(ms_period)
62
+ await my_task.feed(sleep_ms=500)
63
+ await my_task.feed(sleep_ms=ms_period)
64
64
 
65
65
 
66
66
  ###########################
@@ -76,7 +76,7 @@ async def __task(ms_period):
76
76
  recording_task.out = 'Capturing'
77
77
  while Data.MIC_ENABLED:
78
78
  await Data.SREADER.readinto(sample_mv)
79
- await asyncio.sleep_ms(ms_period)
79
+ await recording_task.feed(sleep_ms=ms_period)
80
80
  recording_task.out = 'Finished'
81
81
 
82
82
  except Exception as e: