micrOSDevToolKit 3.0.4__tar.gz → 3.0.6__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.
Files changed (434) hide show
  1. {microsdevtoolkit-3.0.4/micrOSDevToolKit.egg-info → microsdevtoolkit-3.0.6}/PKG-INFO +1 -1
  2. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +5 -5
  3. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Shell.py +1 -1
  4. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Types.py +23 -14
  5. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Web.py +1 -1
  6. microsdevtoolkit-3.0.6/micrOS/source/__pycache__/Pacman.cpython-312.pyc +0 -0
  7. microsdevtoolkit-3.0.6/micrOS/source/__pycache__/Types.cpython-312.pyc +0 -0
  8. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Web.cpython-312.pyc +0 -0
  9. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_OV2640.py +3 -4
  10. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_aht10.py +1 -1
  11. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_bme280.py +1 -1
  12. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_dht11.py +1 -1
  13. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_dht22.py +1 -1
  14. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_system.py +1 -1
  15. microsdevtoolkit-3.0.6/micrOS/source/modules/__pycache__/LM_OV2640.cpython-312.pyc +0 -0
  16. microsdevtoolkit-3.0.6/micrOS/source/modules/__pycache__/LM_pacman.cpython-312.pyc +0 -0
  17. microsdevtoolkit-3.0.6/micrOS/source/modules/__pycache__/LM_system.cpython-312.pyc +0 -0
  18. {microsdevtoolkit-3.0.4/toolkit/workspace/precompiled → microsdevtoolkit-3.0.6/micrOS/source}/web/dashboard.html +0 -1
  19. {microsdevtoolkit-3.0.4/toolkit/workspace/precompiled → microsdevtoolkit-3.0.6/micrOS/source}/web/udashboard.js +77 -15
  20. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/web/uwidgets.js +7 -0
  21. microsdevtoolkit-3.0.6/micrOS/source/web/uwidgets_pro.js +272 -0
  22. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6/micrOSDevToolKit.egg-info}/PKG-INFO +1 -1
  23. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOSDevToolKit.egg-info/SOURCES.txt +5 -0
  24. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/setup.py +1 -1
  25. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
  26. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/mip.cpython-312.pyc +0 -0
  27. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Shell.mpy +0 -0
  28. microsdevtoolkit-3.0.6/toolkit/workspace/precompiled/Types.mpy +0 -0
  29. microsdevtoolkit-3.0.6/toolkit/workspace/precompiled/Web.mpy +0 -0
  30. microsdevtoolkit-3.0.6/toolkit/workspace/precompiled/modules/LM_OV2640.mpy +0 -0
  31. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_aht10.mpy +0 -0
  32. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_bme280.mpy +0 -0
  33. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_dht11.mpy +0 -0
  34. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_dht22.mpy +0 -0
  35. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_system.mpy +0 -0
  36. {microsdevtoolkit-3.0.4/micrOS/source → microsdevtoolkit-3.0.6/toolkit/workspace/precompiled}/web/dashboard.html +0 -1
  37. {microsdevtoolkit-3.0.4/micrOS/source → microsdevtoolkit-3.0.6/toolkit/workspace/precompiled}/web/udashboard.js +77 -15
  38. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/web/uwidgets.js +7 -0
  39. microsdevtoolkit-3.0.6/toolkit/workspace/precompiled/web/uwidgets_pro.js +272 -0
  40. microsdevtoolkit-3.0.4/micrOS/source/web/uwidgets_pro.js +0 -99
  41. microsdevtoolkit-3.0.4/toolkit/workspace/precompiled/Types.mpy +0 -0
  42. microsdevtoolkit-3.0.4/toolkit/workspace/precompiled/Web.mpy +0 -0
  43. microsdevtoolkit-3.0.4/toolkit/workspace/precompiled/modules/LM_OV2640.mpy +0 -0
  44. microsdevtoolkit-3.0.4/toolkit/workspace/precompiled/web/uwidgets_pro.js +0 -99
  45. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/LICENSE +0 -0
  46. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/MANIFEST.in +0 -0
  47. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/README.md +0 -0
  48. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/devToolKit.py +0 -0
  49. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/__init__.py +0 -0
  50. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/.DS_Store +0 -0
  51. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
  52. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
  53. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
  54. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
  55. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
  56. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
  57. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
  58. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
  59. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
  60. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
  61. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
  62. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
  63. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
  64. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/media/__init__.py +0 -0
  65. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/media/dnd.png +0 -0
  66. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/media/logo.png +0 -0
  67. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/media/logo_mini.png +0 -0
  68. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/media/usb_port_icon.png +0 -0
  69. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/media/wifi_icon.png +0 -0
  70. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/__init__.py +0 -0
  71. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/board_commands.json +0 -0
  72. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/esp32-20251209-v1.27.0.bin +0 -0
  73. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/esp32c3-20251209-v1.27.0.bin +0 -0
  74. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/esp32c5-20251209-v1.27.0.bin +0 -0
  75. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/esp32c6-20251209-v1.27.0.bin +0 -0
  76. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
  77. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/esp32s2-20251209-v1.27.0.bin +0 -0
  78. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/esp32s2-LOLIN_MINI-20251209-v1.27.0.bin +0 -0
  79. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/esp32s3-4MBflash-20241129-v1.24.1.bin +0 -0
  80. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/esp32s3-8MBflash-20251209-v1.27.0.bin +0 -0
  81. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/esp32s3_spiram_oct-20251209-v1.27.0.bin +0 -0
  82. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/rpi-pico-w-20251209-v1.27.0.uf2 +0 -0
  83. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/micropython/tinypico-20251209-v1.27.0.bin +0 -0
  84. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/.DS_Store +0 -0
  85. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Auth.py +0 -0
  86. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Buffer.py +0 -0
  87. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Common.py +0 -0
  88. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Config.py +0 -0
  89. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Debug.py +0 -0
  90. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Espnow.py +0 -0
  91. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Files.py +0 -0
  92. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Hooks.py +0 -0
  93. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/InterConnect.py +0 -0
  94. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Interrupts.py +0 -0
  95. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Logger.py +0 -0
  96. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Network.py +0 -0
  97. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Notify.py +0 -0
  98. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Pacman.py +0 -0
  99. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Scheduler.py +0 -0
  100. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Server.py +0 -0
  101. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Tasks.py +0 -0
  102. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/Time.py +0 -0
  103. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Buffer.cpython-312.pyc +0 -0
  104. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
  105. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Config.cpython-312.pyc +0 -0
  106. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Debug.cpython-312.pyc +0 -0
  107. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Files.cpython-312.pyc +0 -0
  108. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Hooks.cpython-312.pyc +0 -0
  109. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/InterConnect.cpython-312.pyc +0 -0
  110. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Interrupts.cpython-312.pyc +0 -0
  111. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
  112. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Scheduler.cpython-312.pyc +0 -0
  113. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
  114. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Shell.cpython-312.pyc +0 -0
  115. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Tasks.cpython-312.pyc +0 -0
  116. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/Time.cpython-312.pyc +0 -0
  117. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/replhelper.cpython-312.pyc +0 -0
  118. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/__pycache__/urequests.cpython-312.pyc +0 -0
  119. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/config/_git.keep +0 -0
  120. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/helpers.py +0 -0
  121. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/main.py +0 -0
  122. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/micrOS.py +0 -0
  123. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/micrOSloader.py +0 -0
  124. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/microIO.py +0 -0
  125. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/IO_esp32.py +0 -0
  126. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/IO_esp32c3.py +0 -0
  127. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/IO_esp32c5.py +0 -0
  128. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/IO_esp32c6.py +0 -0
  129. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/IO_esp32s2.py +0 -0
  130. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/IO_esp32s3.py +0 -0
  131. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/IO_m5stamp.py +0 -0
  132. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/IO_qtpy.py +0 -0
  133. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/IO_rp2.py +0 -0
  134. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/IO_tinypico.py +0 -0
  135. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_L298N.py +0 -0
  136. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_L9110_DCmotor.py +0 -0
  137. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_VL53L0X.py +0 -0
  138. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_buzzer.py +0 -0
  139. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_cct.py +0 -0
  140. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_cluster.py +0 -0
  141. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_co2.py +0 -0
  142. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_dimmer.py +0 -0
  143. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_distance.py +0 -0
  144. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_ds18.py +0 -0
  145. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_esp32.py +0 -0
  146. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_espnow.py +0 -0
  147. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_fileserver.py +0 -0
  148. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_gameOfLife.py +0 -0
  149. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_genIO.py +0 -0
  150. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_haptic.py +0 -0
  151. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_i2c.py +0 -0
  152. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_i2s_mic.py +0 -0
  153. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_ld2410.py +0 -0
  154. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_light_sensor.py +0 -0
  155. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_mh_z19c.py +0 -0
  156. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_neoeffects.py +0 -0
  157. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_neopixel.py +0 -0
  158. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_oled.py +0 -0
  159. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_oled_sh1106.py +0 -0
  160. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_oled_ui.py +0 -0
  161. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_pacman.py +0 -0
  162. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_presence.py +0 -0
  163. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_qmi8658.py +0 -0
  164. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_rencoder.py +0 -0
  165. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_rest.py +0 -0
  166. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_rgb.py +0 -0
  167. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_rgbcct.py +0 -0
  168. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_roboarm.py +0 -0
  169. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_robustness.py +0 -0
  170. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_rp2w.py +0 -0
  171. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_sdcard.py +0 -0
  172. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_servo.py +0 -0
  173. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_sound_event.py +0 -0
  174. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_stepper.py +0 -0
  175. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_switch.py +0 -0
  176. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_tcs3472.py +0 -0
  177. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_telegram.py +0 -0
  178. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_tinyrgb.py +0 -0
  179. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_trackball.py +0 -0
  180. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_veml7700.py +0 -0
  181. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/modules/LM_web.py +0 -0
  182. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/urequests.py +0 -0
  183. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/web/editor.js +0 -0
  184. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/web/filesui.html +0 -0
  185. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/web/filesui.js +0 -0
  186. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/web/index.html +0 -0
  187. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/web/uapi.js +0 -0
  188. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/source/web/ustyle.css +0 -0
  189. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/utests/__init__.py +0 -0
  190. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/utests/test_buffer.py +0 -0
  191. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/utests/test_config.py +0 -0
  192. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/utests/test_scheduler.py +0 -0
  193. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/utests/test_time.py +0 -0
  194. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/utests/test_urequests.py +0 -0
  195. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/utests/test_urequests_real_api.py +0 -0
  196. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOS/utests/test_web_engine.py +0 -0
  197. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
  198. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOSDevToolKit.egg-info/requires.txt +0 -0
  199. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
  200. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/setup.cfg +0 -0
  201. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/DevEnvCompile.py +0 -0
  202. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/DevEnvOTA.py +0 -0
  203. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/DevEnvUSB.py +0 -0
  204. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/Gateway.py +0 -0
  205. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/LM_to_compile.dat +0 -0
  206. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/MicrOSDevEnv.py +0 -0
  207. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/WebRepl.py +0 -0
  208. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/__init__.py +0 -0
  209. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/BackupRestore.py +0 -0
  210. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/CCTDemo.py +0 -0
  211. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/CCTTest.py +0 -0
  212. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/CamStream.py +0 -0
  213. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/CatGame.py +0 -0
  214. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/Dimmer.py +0 -0
  215. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/GetVersion.py +0 -0
  216. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
  217. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
  218. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
  219. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/PresenceTest.py +0 -0
  220. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/QMI8685_GYRO.py +0 -0
  221. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/RGBTest.py +0 -0
  222. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/RoboArm.py +0 -0
  223. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/SED_test.py +0 -0
  224. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/SensorsTest.py +0 -0
  225. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/SystemTest.py +0 -0
  226. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/Template_app.py +0 -0
  227. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/__init__.py +0 -0
  228. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/_app_base.py +0 -0
  229. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/_capture.py +0 -0
  230. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/_gyro_visualizer.py +0 -0
  231. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/_micPlotting.py +0 -0
  232. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
  233. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/dashboard_apps/uLightDemo.py +0 -0
  234. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/gateway/gateway.css +0 -0
  235. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/gateway/img_stream.html +0 -0
  236. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/gateway/index.html +0 -0
  237. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/LocalMachine.py +0 -0
  238. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/MicrosFiles.py +0 -0
  239. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/Repository.py +0 -0
  240. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/SafeInput.py +0 -0
  241. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/SearchDevices.py +0 -0
  242. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/SerialDriverHandler.py +0 -0
  243. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/TerminalColors.py +0 -0
  244. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/__init__.py +0 -0
  245. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/macroScript.py +0 -0
  246. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/micrOSClient.py +0 -0
  247. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/micrOSClientHistory.py +0 -0
  248. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/lib/pip_package_installer.py +0 -0
  249. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/micrOSdashboard.py +0 -0
  250. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/micrOSlint.py +0 -0
  251. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/.DS_Store +0 -0
  252. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/IO_darwin.py +0 -0
  253. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
  254. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/aioespnow.cpython-312.pyc +0 -0
  255. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
  256. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
  257. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
  258. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
  259. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
  260. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
  261. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
  262. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
  263. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
  264. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
  265. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
  266. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
  267. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
  268. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
  269. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
  270. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
  271. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
  272. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
  273. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
  274. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
  275. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
  276. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
  277. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
  278. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
  279. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
  280. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
  281. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
  282. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
  283. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
  284. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
  285. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/sim_common.cpython-312.pyc +0 -0
  286. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
  287. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
  288. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
  289. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
  290. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
  291. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
  292. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
  293. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
  294. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
  295. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
  296. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
  297. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
  298. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
  299. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/urandom.cpython-312.pyc +0 -0
  300. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
  301. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
  302. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
  303. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
  304. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
  305. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
  306. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
  307. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
  308. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
  309. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
  310. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/aioespnow.py +0 -0
  311. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/camera.py +0 -0
  312. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/dht.py +0 -0
  313. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/dotstar.py +0 -0
  314. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/ds18x20.py +0 -0
  315. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/esp32.py +0 -0
  316. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/framebuf.py +0 -0
  317. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/machine.py +0 -0
  318. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/micropython.py +0 -0
  319. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/mip.py +0 -0
  320. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/neopixel.py +0 -0
  321. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/network.py +0 -0
  322. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/node_config.json +0 -0
  323. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/ntptime.py +0 -0
  324. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/onewire.py +0 -0
  325. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/sim_common.py +0 -0
  326. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/simgc.py +0 -0
  327. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/simulator.py +0 -0
  328. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/tinypico.py +0 -0
  329. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/uasyncio.py +0 -0
  330. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/uos.py +0 -0
  331. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/urandom.py +0 -0
  332. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/usocket.py +0 -0
  333. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/ussl.py +0 -0
  334. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/ustruct.py +0 -0
  335. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/utime.py +0 -0
  336. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/view01.jpg +0 -0
  337. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/view02.jpg +0 -0
  338. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/simulator_lib/webrepl.py +0 -0
  339. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/socketClient.py +0 -0
  340. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/user_data/.include +0 -0
  341. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/user_data/webhooks/generic.py +0 -0
  342. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/user_data/webhooks/macro.py +0 -0
  343. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/user_data/webhooks/template.macro +0 -0
  344. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/user_data/webhooks/template.py +0 -0
  345. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/__init__.py +0 -0
  346. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Auth.mpy +0 -0
  347. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Buffer.mpy +0 -0
  348. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Common.mpy +0 -0
  349. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Config.mpy +0 -0
  350. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Debug.mpy +0 -0
  351. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Espnow.mpy +0 -0
  352. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Files.mpy +0 -0
  353. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Hooks.mpy +0 -0
  354. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  355. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
  356. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Logger.mpy +0 -0
  357. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Network.mpy +0 -0
  358. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Notify.mpy +0 -0
  359. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Pacman.mpy +0 -0
  360. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
  361. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Server.mpy +0 -0
  362. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Tasks.mpy +0 -0
  363. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/Time.mpy +0 -0
  364. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/_mpy.version +0 -0
  365. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/config/_git.keep +0 -0
  366. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/helpers.mpy +0 -0
  367. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/main.py +0 -0
  368. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/micrOS.mpy +0 -0
  369. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  370. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/microIO.mpy +0 -0
  371. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/IO_esp32.mpy +0 -0
  372. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/IO_esp32c3.mpy +0 -0
  373. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/IO_esp32c5.mpy +0 -0
  374. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/IO_esp32c6.mpy +0 -0
  375. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/IO_esp32s2.mpy +0 -0
  376. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/IO_esp32s3.mpy +0 -0
  377. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/IO_m5stamp.mpy +0 -0
  378. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/IO_qtpy.mpy +0 -0
  379. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/IO_rp2.mpy +0 -0
  380. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/IO_tinypico.mpy +0 -0
  381. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_L298N.mpy +0 -0
  382. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_L9110_DCmotor.py +0 -0
  383. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_VL53L0X.py +0 -0
  384. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_buzzer.mpy +0 -0
  385. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
  386. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_cluster.mpy +0 -0
  387. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_co2.mpy +0 -0
  388. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
  389. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
  390. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_ds18.mpy +0 -0
  391. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_esp32.py +0 -0
  392. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_espnow.py +0 -0
  393. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_fileserver.mpy +0 -0
  394. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_gameOfLife.mpy +0 -0
  395. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_genIO.mpy +0 -0
  396. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_haptic.mpy +0 -0
  397. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_i2c.py +0 -0
  398. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
  399. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_ld2410.mpy +0 -0
  400. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_light_sensor.mpy +0 -0
  401. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_mh_z19c.py +0 -0
  402. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_neoeffects.mpy +0 -0
  403. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
  404. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_oled.mpy +0 -0
  405. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy +0 -0
  406. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
  407. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
  408. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
  409. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_qmi8658.py +0 -0
  410. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_rencoder.py +0 -0
  411. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
  412. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
  413. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_rgbcct.mpy +0 -0
  414. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
  415. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_robustness.py +0 -0
  416. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_rp2w.py +0 -0
  417. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_sdcard.py +0 -0
  418. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_servo.mpy +0 -0
  419. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_sound_event.mpy +0 -0
  420. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_stepper.mpy +0 -0
  421. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_switch.mpy +0 -0
  422. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_tcs3472.py +0 -0
  423. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
  424. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_tinyrgb.mpy +0 -0
  425. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_trackball.mpy +0 -0
  426. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_veml7700.mpy +0 -0
  427. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/modules/LM_web.mpy +0 -0
  428. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/urequests.mpy +0 -0
  429. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/web/editor.js +0 -0
  430. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/web/filesui.html +0 -0
  431. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/web/filesui.js +0 -0
  432. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/web/index.html +0 -0
  433. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/web/uapi.js +0 -0
  434. {microsdevtoolkit-3.0.4 → microsdevtoolkit-3.0.6}/toolkit/workspace/precompiled/web/ustyle.css +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 3.0.4
3
+ Version: 3.0.6
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
@@ -49,7 +49,7 @@
49
49
  3
50
50
  ],
51
51
  "Types.py": [
52
- 8.54,
52
+ 9.04,
53
53
  28
54
54
  ],
55
55
  "Logger.py": [
@@ -323,11 +323,11 @@
323
323
  },
324
324
  "summary": {
325
325
  "core": [
326
- 5303,
326
+ 5311,
327
327
  27
328
328
  ],
329
329
  "load": [
330
- 8828,
330
+ 8827,
331
331
  53
332
332
  ],
333
333
  "core_dep": [
@@ -338,8 +338,8 @@
338
338
  true,
339
339
  4
340
340
  ],
341
- "core_score": 9.26,
341
+ "core_score": 9.28,
342
342
  "load_score": 8.44,
343
- "version": "3.0.4-0"
343
+ "version": "3.0.6-0"
344
344
  }
345
345
  }
@@ -25,7 +25,7 @@ from Debug import syslog
25
25
 
26
26
  class Shell:
27
27
  __slots__ = ['__devfid', '__auth_mode', '__hwuid', '__auth_ok', '__conf_mode']
28
- MICROS_VERSION = '3.0.4-0'
28
+ MICROS_VERSION = '3.0.6-0'
29
29
 
30
30
  def __init__(self):
31
31
  """
@@ -10,6 +10,8 @@ USAGE:
10
10
  SLIDER brightness br
11
11
  SLIDER brightness br=<0-100>
12
12
  SLIDER brightness br=<0-100-5>
13
+ GRAPH top
14
+ EMBED{"callback": "/cam/stream", "title": "live stream", "image": true}
13
15
  """
14
16
  from json import dumps, loads
15
17
  from Debug import syslog
@@ -18,18 +20,21 @@ from Debug import syslog
18
20
  # HELP TUPLE RESOLVER #
19
21
  ########################################################
20
22
 
21
- __TEMPLATE = {'type': 'n/a', 'lm_call': ''}
23
+ __TEMPLATE = {'type': 'n/a', 'callback': ''}
22
24
  __RANGE_100 = {'range': (0, 100, 2)}
23
25
  __RANGE_255 = {'range': (0, 255, 2)}
24
26
  __OPTIONS = {'options': ("None",)}
25
27
 
26
- # Widget Types
27
- BUTTON = lambda: __TEMPLATE | {'type': 'button'} | __OPTIONS
28
- SLIDER = lambda: __TEMPLATE | {'type': 'slider'} | __RANGE_100
29
- TEXTBOX = lambda: __TEMPLATE | {'type': 'textbox', 'refresh': 10000}
30
- COLOR = lambda: __TEMPLATE | {'type': 'color'} | __RANGE_255
31
- WHITE = lambda: __TEMPLATE | {'type': 'white'} | __RANGE_255
32
- JOYSTICK = lambda: __TEMPLATE | {'type': 'joystick'} | __RANGE_100
28
+ # Widget Types - Load Module Callbacks
29
+ BUTTON = lambda: __TEMPLATE | {'type': 'button'} | __OPTIONS # pylint: disable=invalid-name
30
+ SLIDER = lambda: __TEMPLATE | {'type': 'slider'} | __RANGE_100 # pylint: disable=invalid-name
31
+ TEXTBOX = lambda: __TEMPLATE | {'type': 'textbox', 'refresh': 10000} # pylint: disable=invalid-name
32
+ COLOR = lambda: __TEMPLATE | {'type': 'color'} | __RANGE_255 # pylint: disable=invalid-name
33
+ WHITE = lambda: __TEMPLATE | {'type': 'white'} | __RANGE_255 # pylint: disable=invalid-name
34
+ JOYSTICK = lambda: __TEMPLATE | {'type': 'joystick'} | __RANGE_100 # pylint: disable=invalid-name
35
+ GRAPH = lambda: __TEMPLATE | {'type': 'graph', 'refresh': 3000, 'limit': 30} # pylint: disable=invalid-name
36
+ # Widget Types - Web endpoints
37
+ EMBED = lambda: __TEMPLATE | {'type': 'embed', 'image': False, 'retry': 3000, 'title': None} # pylint: disable=invalid-name
33
38
 
34
39
 
35
40
  ########################################################
@@ -76,7 +81,7 @@ def _generate(type_dict, help_msg):
76
81
  else:
77
82
  param_str = f'{p}=:{"range" if "range" in type_dict else "options"}:'
78
83
  valid_params.append(param_str)
79
- type_dict['lm_call'] = f"{func} {' '.join(valid_params)}"
84
+ type_dict['callback'] = f"{func} {' '.join(valid_params)}"
80
85
  return dumps(type_dict | overwrite)
81
86
 
82
87
 
@@ -127,15 +132,19 @@ def resolve(help_data, widgets=False):
127
132
  # Apply inline widget-only overrides, e.g. TEXTBOX{'refresh': 5000}
128
133
  resolved_tag.update(overrides)
129
134
  try:
130
- # Build a clean message for _generate, without inline {...}
131
- cleaned_msg = (tag + ' ' + cmd).strip()
132
- # Generate JSON output with TAG
133
- help_msg.append(_generate(resolved_tag, cleaned_msg))
135
+ if not cmd and isinstance(resolved_tag, dict):
136
+ help_msg.append(dumps(resolved_tag))
137
+ else:
138
+ # Build a clean message for _generate, without inline {...}
139
+ cleaned_msg = (tag + ' ' + cmd).strip()
140
+ # Generate JSON output with TAG
141
+ help_msg.append(_generate(resolved_tag, cleaned_msg))
134
142
  except Exception as e:
135
143
  syslog(f"[ERR] resolve {tag} help msg: {e}")
136
144
  continue
137
145
  # Widgets OFF - TAG exists - remove TAG from output
138
- help_msg.append(cmd.strip())
146
+ if tag not in ('EMBED',):
147
+ help_msg.append(cmd.strip())
139
148
  elif not widgets:
140
149
  # No TAG - Widgets OFF output
141
150
  help_msg.append(msg)
@@ -199,7 +199,7 @@ class Buffer:
199
199
  return len(request)
200
200
 
201
201
  async def _response_handler(self, resp_handler):
202
- if "closure" == type(resp_handler).__name__:
202
+ if type(resp_handler).__name__ in ("function", "closure"):
203
203
  for is_finished in resp_handler(self._send_buf):
204
204
  await self._flush_response()
205
205
  if is_finished:
@@ -58,9 +58,7 @@ def _set_web_endpoints():
58
58
  # Register rest endpoint
59
59
  web_endpoint('cam/snapshot', _snapshot_clb)
60
60
  web_endpoint('cam/stream', _image_stream_clb)
61
- web_endpoint('cam/photo', lambda _, body: \
62
- ('text/plain', photo() if not body else photo(body.encode('ascii'))))
63
- return "Endpoint created: /cam/snapshot, /cam/stream, /cam/photo"
61
+ return "Endpoint created: /cam/snapshot, /cam/stream"
64
62
 
65
63
 
66
64
  def settings(quality=None, flip=None, mirror=None, effect=None, saturation=None, brightness=None, contrast=None, whitebalace=None, q=None):
@@ -242,12 +240,13 @@ def help(widgets=False):
242
240
  """
243
241
  return resolve(('load quality="medium/low/high" freq="default/high"',
244
242
  'settings quality=None flip=None mirror=None effect="NONE"',
243
+ 'EMBED{"callback": "/cam/stream", "title": "camera stream", "image": true, "retry": 3000}',
245
244
  'SLIDER settings saturation=<0-100>',
246
245
  'SLIDER settings brightness=<0-100>',
247
246
  'SLIDER settings contrast=<0-100>',
248
247
  'BUTTON settings effect=<NONE,NEG,BW,RED,GREEN,BLUE,RETRO>',
249
248
  'capture',
250
- 'photo',
249
+ 'BUTTON photo',
251
250
  'BUTTON flashlight state=None',
252
251
  '[Hint] after load you can access the /cam/snapshot and /cam/stream endpoints',
253
252
  'Thanks to :) https://github.com/lemariva/micropython-camera-driver'), widgets=widgets)
@@ -136,4 +136,4 @@ def help(widgets=False):
136
136
  (widgets=False) list of functions implemented by this application
137
137
  (widgets=True) list of widget json for UI generation
138
138
  """
139
- return resolve(('TEXTBOX measure', 'reset', 'load', 'pinmap'), widgets=widgets)
139
+ return resolve(('GRAPH measure', 'reset', 'load', 'pinmap'), widgets=widgets)
@@ -349,5 +349,5 @@ def help(widgets=False):
349
349
  (widgets=False) list of functions implemented by this application
350
350
  (widgets=True) list of widget json for UI generation
351
351
  """
352
- return resolve(('TEXTBOX{"refresh": 2000} measure ntfy=False',
352
+ return resolve(('GRAPH{"refresh": 2000} measure ntfy=False',
353
353
  'load', 'pinmap'), widgets=widgets)
@@ -78,5 +78,5 @@ def help(widgets=False):
78
78
  (widgets=False) list of functions implemented by this application
79
79
  (widgets=True) list of widget json for UI generation
80
80
  """
81
- return resolve(('TEXTBOX measure log=False',
81
+ return resolve(('GRAPH measure log=False',
82
82
  'logger', 'load', 'pinmap'), widgets=widgets)
@@ -79,5 +79,5 @@ def help(widgets=False):
79
79
  (widgets=False) list of functions implemented by this application
80
80
  (widgets=True) list of widget json for UI generation
81
81
  """
82
- return resolve(('TEXTBOX measure log=False',
82
+ return resolve(('GRAPH measure log=False',
83
83
  'logger', 'load', 'pinmap'), widgets=widgets)
@@ -268,7 +268,7 @@ def help(widgets=False):
268
268
  (widgets=False) list of functions implemented by this application
269
269
  (widgets=True) list of widget json for UI generation
270
270
  """
271
- return resolve(('info', 'TEXTBOX top', 'gclean', 'heartbeat', 'clock',
271
+ return resolve(('info', 'GRAPH{"refresh":5000} top', 'gclean', 'heartbeat', 'clock',
272
272
  'setclock year month mday hour minute sec',
273
273
  'ntp', 'rssi', 'list_stations', 'pinmap key="builtin"', 'alarms clean=False',
274
274
  'notifications enable=<None,True,False>',
@@ -33,7 +33,6 @@
33
33
  </style>
34
34
  <script src="uapi.js" ></script>
35
35
  <script src="uwidgets.js" ></script>
36
- <script src="uwidgets_pro.js" ></script>
37
36
  <script src="udashboard.js" ></script>
38
37
  </head>
39
38
  <body>
@@ -1,4 +1,35 @@
1
1
  // API HELPER FUNCTION - get module exposed widgets
2
+ const OPTIONAL_WIDGET_TYPES = {
3
+ joystick: { src: 'uwidgets_pro.js', ready: () => typeof joystickWidget === 'function' },
4
+ embed: { src: 'uwidgets_pro.js', ready: () => typeof embedWidget === 'function' },
5
+ graph: { src: 'uwidgets_pro.js', ready: () => typeof graphWidget === 'function' }
6
+ };
7
+ const optionalWidgetLoaders = {};
8
+ const normalizeCallback = callback => String(callback || '').trim().replace(/\s+/g, '/').replace(/^\/+/, '').replace(/\/+$/, '');
9
+
10
+ function loadOptionalWidgetScript(src) {
11
+ if (optionalWidgetLoaders[src]) {
12
+ return optionalWidgetLoaders[src];
13
+ }
14
+ optionalWidgetLoaders[src] = new Promise((resolve, reject) => {
15
+ const script = document.createElement('script');
16
+ script.src = src;
17
+ script.onload = resolve;
18
+ script.onerror = () => reject(new Error(`Failed to load ${src}`));
19
+ document.head.appendChild(script);
20
+ });
21
+ return optionalWidgetLoaders[src];
22
+ }
23
+
24
+ function ensureOptionalWidgetsLoaded(widgets) {
25
+ const scripts = [...new Set(widgets
26
+ .map(({ type }) => OPTIONAL_WIDGET_TYPES[type])
27
+ .filter(Boolean)
28
+ .filter(({ ready }) => !ready())
29
+ .map(({ src }) => src))];
30
+ return scripts.length ? Promise.all(scripts.map(loadOptionalWidgetScript)) : Promise.resolve();
31
+ }
32
+
2
33
  function moduleHelp(module) {
3
34
  const endpoint = `${module}/help/True`;
4
35
  console.log(`[API] Endpoint: ${endpoint}`);
@@ -24,11 +55,11 @@ function containerAppendChild(elements, container) {
24
55
  container.appendChild(element);});
25
56
  }
26
57
 
27
- function generateElement(type, module, lm_call="", options={}) {
58
+ function generateElement(type, module, callback="", options={}) {
28
59
  // type: slider, button, box, h1, h2, p, li, etc.
29
60
  // data: rest command
30
61
  console.log(`type: ${type}`);
31
- const data = `${module}/${lm_call}`;
62
+ const data = `${module}/${callback}`;
32
63
  console.log(`data: ${data}`);
33
64
  const container = document.getElementById(`container-${module}`);
34
65
  if(!container) {
@@ -48,7 +79,25 @@ function generateElement(type, module, lm_call="", options={}) {
48
79
  colorPaletteWidget(container, data, options)
49
80
  } else if (type === 'joystick') {
50
81
  // Create joystick widget
82
+ if (typeof joystickWidget !== 'function') {
83
+ console.error("Optional widget not loaded: joystick");
84
+ return;
85
+ }
51
86
  joystickWidget(container, data, options)
87
+ } else if (type === 'embed') {
88
+ // Create embedded image stream or webpage widget
89
+ if (typeof embedWidget !== 'function') {
90
+ console.error("Optional widget not loaded: embed");
91
+ return;
92
+ }
93
+ embedWidget(container, data, options)
94
+ } else if (type === 'graph') {
95
+ // Create graph widget
96
+ if (typeof graphWidget !== 'function') {
97
+ console.error("Optional widget not loaded: graph");
98
+ return;
99
+ }
100
+ graphWidget(container, data, options)
52
101
  } else {
53
102
  // Create other elements
54
103
  const element = document.createElement(type);
@@ -57,10 +106,10 @@ function generateElement(type, module, lm_call="", options={}) {
57
106
  }
58
107
  }
59
108
 
60
- function autoTitleLen(widgets, lm_call) {
109
+ function autoTitleLen(widgets, callback) {
61
110
  try {
62
- const func = lm_call.split('/')[0].split(' ')[0];
63
- const count = widgets.reduce((accumulator, { lm_call }) => accumulator + (lm_call.split(' ')[0] === func ? 1 : 0), 0);
111
+ const func = normalizeCallback(callback).split('/')[0];
112
+ const count = widgets.reduce((accumulator, item) => accumulator + (normalizeCallback(item.callback).split('/')[0] === func ? 1 : 0), 0);
64
113
  return count > 1 ? 2 : 1;
65
114
  } catch (error) {
66
115
  console.error(error);
@@ -68,11 +117,16 @@ function autoTitleLen(widgets, lm_call) {
68
117
  }
69
118
  }
70
119
 
71
- function craftModuleWidgets(module, widgets) {
120
+ async function craftModuleWidgets(module, widgets) {
72
121
  if (!widgets.length) {
73
122
  console.log(`${module} no exposed widgets`);
74
123
  return;
75
124
  }
125
+ try {
126
+ await ensureOptionalWidgetsLoaded(widgets);
127
+ } catch (error) {
128
+ console.error(`Error loading optional widgets for ${module}:`, error);
129
+ }
76
130
 
77
131
  console.log(`Craft widget to ${module}`);
78
132
  // Create HTML elements for widgets
@@ -85,17 +139,25 @@ function craftModuleWidgets(module, widgets) {
85
139
  generateElement('h2', module);
86
140
 
87
141
  const widgetTypeOptions = {
88
- button: item => ({title_len: autoTitleLen(widgets, item.lm_call), options: item.options }),
89
- slider: item => ({title_len: autoTitleLen(widgets, item.lm_call), range: item.range }),
90
- color: item => ({title_len: autoTitleLen(widgets, item.lm_call), range: item.range }),
91
- textbox: item => ({title_len: autoTitleLen(widgets, item.lm_call), refresh: item.refresh }),
92
- joystick: item => ({title_len: autoTitleLen(widgets, item.lm_call), range: item.range })
142
+ button: item => ({title_len: autoTitleLen(widgets, item.callback), options: item.options }),
143
+ slider: item => ({title_len: autoTitleLen(widgets, item.callback), range: item.range }),
144
+ color: item => ({title_len: autoTitleLen(widgets, item.callback), range: item.range }),
145
+ textbox: item => ({title_len: autoTitleLen(widgets, item.callback), refresh: item.refresh }),
146
+ graph: item => ({title_len: autoTitleLen(widgets, item.callback), refresh: item.refresh, limit: item.limit }),
147
+ joystick: item => ({title_len: autoTitleLen(widgets, item.callback), range: item.range }),
148
+ embed: item => ({
149
+ title_len: item.callback ? Math.max(autoTitleLen(widgets, item.callback), 2) : 1,
150
+ callback: normalizeCallback(item.callback || ''),
151
+ image: item.image,
152
+ retry: item.retry,
153
+ title: item.title
154
+ })
93
155
  };
94
156
 
95
157
  // Create control elements for widget
96
158
  widgets.forEach(item => {
97
- let { type, lm_call } = item;
98
- lm_call = lm_call.replace(/\s/g, '/');
159
+ let { type, callback = '' } = item;
160
+ callback = normalizeCallback(callback);
99
161
  const type_options = widgetTypeOptions[type] ? widgetTypeOptions[type](item) : null;
100
162
  if (!type_options) {
101
163
  console.log(`Unsupported micrOS widget html_type: ${type}`);
@@ -104,7 +166,7 @@ function craftModuleWidgets(module, widgets) {
104
166
 
105
167
  try {
106
168
  console.log("adding widget controls");
107
- generateElement(type, module, lm_call, type_options);
169
+ generateElement(type, module, callback, type_options);
108
170
  } catch (error) {
109
171
  console.error(error);
110
172
  }
@@ -116,7 +178,7 @@ function DynamicWidgetLoad() {
116
178
  const app_list = data.result;
117
179
  app_list.forEach(module => {
118
180
  moduleHelp(module).then(widgets => {
119
- craftModuleWidgets(module, widgets);
181
+ return craftModuleWidgets(module, widgets);
120
182
  }).catch(error => {
121
183
  console.error(`Error processing module ${module}:`, error);
122
184
  });
@@ -6,6 +6,13 @@ const windowWidth = window.innerWidth;
6
6
  function createTitle(command, title_len) {
7
7
  return command.split('/').slice(1, title_len + 1).join('-').replace(/=|:range:/g, '').replace(/=|:options:/g, '');
8
8
  }
9
+
10
+ function toAbsoluteEndpoint(endpoint) {
11
+ if (!endpoint) {return '';}
12
+ if (/^https?:\/\//i.test(endpoint)) {return endpoint;}
13
+ return `${BASE_URL}/${endpoint.replace(/^\/+/, '')}`;
14
+ }
15
+
9
16
  function paramPythonify(opt) {
10
17
  if (opt === "None" || opt === "True" || opt === "False") {return opt;}
11
18
  // Check if the input is a valid integer