micrOSDevToolKit 3.7.0__tar.gz → 3.7.2__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 (453) hide show
  1. {microsdevtoolkit-3.7.0/micrOSDevToolKit.egg-info → microsdevtoolkit-3.7.2}/PKG-INFO +6 -1
  2. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/README.md +5 -0
  3. microsdevtoolkit-3.7.0/micrOS/micropython/micrOS-esp32-1.28.0-3.7.0-0.bin → microsdevtoolkit-3.7.2/micrOS/micropython/micrOS-esp32-1.28.0-3.7.2.bin +0 -0
  4. microsdevtoolkit-3.7.0/micrOS/micropython/micrOS-esp32c3-1.28.0-3.7.0-0.bin → microsdevtoolkit-3.7.2/micrOS/micropython/micrOS-esp32c3-1.28.0-3.7.2.bin +0 -0
  5. microsdevtoolkit-3.7.0/micrOS/micropython/micrOS-esp32c6-1.28.0-3.7.0-0.bin → microsdevtoolkit-3.7.2/micrOS/micropython/micrOS-esp32c6-1.28.0-3.7.2.bin +0 -0
  6. microsdevtoolkit-3.7.0/micrOS/micropython/micrOS-esp32s3-1.28.0-3.7.0-0.bin → microsdevtoolkit-3.7.2/micrOS/micropython/micrOS-esp32s3-1.28.0-3.7.2.bin +0 -0
  7. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +5 -5
  8. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Shell.py +1 -1
  9. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_sdcard.py +3 -3
  10. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_web.py +36 -8
  11. microsdevtoolkit-3.7.2/micrOS/source/modules/__pycache__/LM_web.cpython-312.pyc +0 -0
  12. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/config.css +10 -1
  13. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/config.js +65 -87
  14. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/config_packages.js +1 -16
  15. microsdevtoolkit-3.7.2/micrOS/source/web/config_webapps.js +241 -0
  16. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/filesui.js +12 -1
  17. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/uapi_widgets.js +4 -1
  18. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2/micrOSDevToolKit.egg-info}/PKG-INFO +6 -1
  19. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOSDevToolKit.egg-info/SOURCES.txt +6 -4
  20. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/setup.py +1 -1
  21. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/DevEnvCompile.py +2 -2
  22. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/DevEnvOTA.py +2 -1
  23. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/Gateway.py +96 -21
  24. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/SystemTest.py +6 -2
  25. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/micrOSdashboard.py +1 -1
  26. microsdevtoolkit-3.7.2/toolkit/simulator_lib/node_config.json +7 -0
  27. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/socketClient.py +13 -3
  28. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Shell.mpy +0 -0
  29. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_sdcard.py +3 -3
  30. microsdevtoolkit-3.7.2/toolkit/workspace/precompiled/modules/LM_web.mpy +0 -0
  31. microsdevtoolkit-3.7.2/toolkit/workspace/precompiled/web/config.css +1 -0
  32. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/config.js +16 -19
  33. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/config_packages.js +2 -5
  34. microsdevtoolkit-3.7.2/toolkit/workspace/precompiled/web/config_webapps.js +32 -0
  35. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/filesui.js +2 -1
  36. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/uapi_widgets.js +1 -1
  37. microsdevtoolkit-3.7.0/micrOS/source/modules/__pycache__/LM_web.cpython-312.pyc +0 -0
  38. microsdevtoolkit-3.7.0/toolkit/simulator_lib/node_config.json +0 -7
  39. microsdevtoolkit-3.7.0/toolkit/workspace/precompiled/modules/LM_web.mpy +0 -0
  40. microsdevtoolkit-3.7.0/toolkit/workspace/precompiled/web/config.css +0 -1
  41. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/LICENSE +0 -0
  42. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/MANIFEST.in +0 -0
  43. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/devToolKit.py +0 -0
  44. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/__init__.py +0 -0
  45. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/.DS_Store +0 -0
  46. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
  47. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
  48. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
  49. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
  50. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
  51. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
  52. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
  53. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
  54. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
  55. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
  56. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
  57. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
  58. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
  59. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/media/__init__.py +0 -0
  60. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/media/dnd.png +0 -0
  61. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/media/logo.png +0 -0
  62. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/media/logo_mini.png +0 -0
  63. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/media/usb_port_icon.png +0 -0
  64. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/media/wifi_icon.png +0 -0
  65. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/__init__.py +0 -0
  66. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/board_commands.json +0 -0
  67. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32-20251209-v1.27.0.bin +0 -0
  68. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32c3-20251209-v1.27.0.bin +0 -0
  69. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32c5-20251209-v1.27.0.bin +0 -0
  70. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32c6-20251209-v1.27.0.bin +0 -0
  71. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
  72. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32s2-20251209-v1.27.0.bin +0 -0
  73. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32s2-LOLIN_MINI-20251209-v1.27.0.bin +0 -0
  74. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32s3-4MBflash-20241129-v1.24.1.bin +0 -0
  75. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32s3-8MBflash-20251209-v1.27.0.bin +0 -0
  76. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32s3_spiram_oct-20251209-v1.27.0.bin +0 -0
  77. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/rpi-pico-w-20251209-v1.27.0.uf2 +0 -0
  78. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/micropython/tinypico-20251209-v1.27.0.bin +0 -0
  79. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/.DS_Store +0 -0
  80. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Auth.py +0 -0
  81. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Buffer.py +0 -0
  82. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Common.py +0 -0
  83. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Config.py +0 -0
  84. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Debug.py +0 -0
  85. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Files.py +0 -0
  86. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Hooks.py +0 -0
  87. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/InterConnect.py +0 -0
  88. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Interrupts.py +0 -0
  89. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Logger.py +0 -0
  90. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Network.py +0 -0
  91. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Notify.py +0 -0
  92. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Pacman.py +0 -0
  93. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Scheduler.py +0 -0
  94. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Server.py +0 -0
  95. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Tasks.py +0 -0
  96. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Time.py +0 -0
  97. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Types.py +0 -0
  98. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/Web.py +0 -0
  99. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Auth.cpython-312.pyc +0 -0
  100. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Buffer.cpython-312.pyc +0 -0
  101. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
  102. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Config.cpython-312.pyc +0 -0
  103. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Debug.cpython-312.pyc +0 -0
  104. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Files.cpython-312.pyc +0 -0
  105. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Hooks.cpython-312.pyc +0 -0
  106. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/InterConnect.cpython-312.pyc +0 -0
  107. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Interrupts.cpython-312.pyc +0 -0
  108. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
  109. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Network.cpython-312.pyc +0 -0
  110. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Notify.cpython-312.pyc +0 -0
  111. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Pacman.cpython-312.pyc +0 -0
  112. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Power.cpython-312.pyc +0 -0
  113. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Scheduler.cpython-312.pyc +0 -0
  114. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
  115. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Shell.cpython-312.pyc +0 -0
  116. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Tasks.cpython-312.pyc +0 -0
  117. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Time.cpython-312.pyc +0 -0
  118. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Types.cpython-312.pyc +0 -0
  119. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Web.cpython-312.pyc +0 -0
  120. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/micrOS.cpython-312.pyc +0 -0
  121. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/microIO.cpython-312.pyc +0 -0
  122. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/replhelper.cpython-312.pyc +0 -0
  123. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/urequests.cpython-312.pyc +0 -0
  124. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/config/_git.keep +0 -0
  125. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/helpers.py +0 -0
  126. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/main.py +0 -0
  127. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/mespnow.py +0 -0
  128. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/micrOS.py +0 -0
  129. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/micrOSloader.py +0 -0
  130. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/microIO.py +0 -0
  131. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32.py +0 -0
  132. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32c3.py +0 -0
  133. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32c5.py +0 -0
  134. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32c6.py +0 -0
  135. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32s2.py +0 -0
  136. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32s3.py +0 -0
  137. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_m5stamp.py +0 -0
  138. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_qtpy.py +0 -0
  139. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_rp2.py +0 -0
  140. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_tinypico.py +0 -0
  141. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_aht10.py +0 -0
  142. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_bme280.py +0 -0
  143. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_buzzer.py +0 -0
  144. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_cct.py +0 -0
  145. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_cluster.py +0 -0
  146. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_dht11.py +0 -0
  147. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_dht22.py +0 -0
  148. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_dimmer.py +0 -0
  149. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_ds18.py +0 -0
  150. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_esp32.py +0 -0
  151. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_espnow.py +0 -0
  152. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_fileserver.py +0 -0
  153. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_gameOfLife.py +0 -0
  154. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_genIO.py +0 -0
  155. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_i2c.py +0 -0
  156. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_i2s_mic.py +0 -0
  157. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_neoeffects.py +0 -0
  158. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_neopixel.py +0 -0
  159. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_oled.py +0 -0
  160. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_oled_sh1106.py +0 -0
  161. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_oled_ui.py +0 -0
  162. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_pacman.py +0 -0
  163. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_presence.py +0 -0
  164. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_rencoder.py +0 -0
  165. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_rest.py +0 -0
  166. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_rgb.py +0 -0
  167. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_rgbcct.py +0 -0
  168. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_robustness.py +0 -0
  169. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_rp2w.py +0 -0
  170. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_servo.py +0 -0
  171. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_stepper.py +0 -0
  172. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_switch.py +0 -0
  173. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_system.py +0 -0
  174. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_telegram.py +0 -0
  175. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_tinyrgb.py +0 -0
  176. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_cct.cpython-312.pyc +0 -0
  177. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_dht11.cpython-312.pyc +0 -0
  178. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_dht22.cpython-312.pyc +0 -0
  179. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_dimmer.cpython-312.pyc +0 -0
  180. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_fileserver.cpython-312.pyc +0 -0
  181. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_neopixel.cpython-312.pyc +0 -0
  182. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_pacman.cpython-312.pyc +0 -0
  183. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_rencoder.cpython-312.pyc +0 -0
  184. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_rgb.cpython-312.pyc +0 -0
  185. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_rgbcct.cpython-312.pyc +0 -0
  186. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_roboarm.cpython-312.pyc +0 -0
  187. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_robustness.cpython-312.pyc +0 -0
  188. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_system.cpython-312.pyc +0 -0
  189. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/urequests.py +0 -0
  190. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/auth.js +0 -0
  191. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/config.html +0 -0
  192. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/config_schedler.js +0 -0
  193. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/dashboard.html +0 -0
  194. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/editor.js +0 -0
  195. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/editor_plugins.js +0 -0
  196. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/favicon.ico +0 -0
  197. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/filesui.html +0 -0
  198. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/index.html +0 -0
  199. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/uapi.js +0 -0
  200. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/ubashboard.css +0 -0
  201. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/udashboard.js +0 -0
  202. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/ustyle.css +0 -0
  203. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/uwidgets.js +0 -0
  204. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/source/web/uwidgets_pro.js +0 -0
  205. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/utests/__init__.py +0 -0
  206. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/utests/test_buffer.py +0 -0
  207. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/utests/test_config.py +0 -0
  208. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/utests/test_memory_policy.py +0 -0
  209. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/utests/test_pacman.py +0 -0
  210. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/utests/test_scheduler.py +0 -0
  211. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/utests/test_time.py +0 -0
  212. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/utests/test_urequests.py +0 -0
  213. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/utests/test_urequests_real_api.py +0 -0
  214. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOS/utests/test_web_engine.py +0 -0
  215. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
  216. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOSDevToolKit.egg-info/requires.txt +0 -0
  217. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
  218. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/setup.cfg +0 -0
  219. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/DevEnvUSB.py +0 -0
  220. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/LM_to_compile.dat +0 -0
  221. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/MicrOSDevEnv.py +0 -0
  222. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/WebRepl.py +0 -0
  223. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/__init__.py +0 -0
  224. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/BackupRestore.py +0 -0
  225. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/CCTDemo.py +0 -0
  226. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/CCTTest.py +0 -0
  227. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/CamStream.py +0 -0
  228. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/CatGame.py +0 -0
  229. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/Dimmer.py +0 -0
  230. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/GetVersion.py +0 -0
  231. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
  232. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
  233. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
  234. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/PresenceTest.py +0 -0
  235. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/QMI8685_GYRO.py +0 -0
  236. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/RGBTest.py +0 -0
  237. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/RoboArm.py +0 -0
  238. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/SED_test.py +0 -0
  239. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/SensorsTest.py +0 -0
  240. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/Template_app.py +0 -0
  241. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/__init__.py +0 -0
  242. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/_app_base.py +0 -0
  243. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/_capture.py +0 -0
  244. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/_gyro_visualizer.py +0 -0
  245. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/_micPlotting.py +0 -0
  246. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
  247. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/uLightDemo.py +0 -0
  248. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/gateway/gateway.css +0 -0
  249. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/gateway/img_stream.html +0 -0
  250. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/gateway/index.html +0 -0
  251. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/LocalMachine.py +0 -0
  252. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/MicrosFiles.py +0 -0
  253. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/Repository.py +0 -0
  254. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/SafeInput.py +0 -0
  255. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/SearchDevices.py +0 -0
  256. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/SerialDriverHandler.py +0 -0
  257. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/TerminalColors.py +0 -0
  258. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/__init__.py +0 -0
  259. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/macroScript.py +0 -0
  260. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/micrOSClient.py +0 -0
  261. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/micrOSClientHistory.py +0 -0
  262. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/lib/pip_package_installer.py +0 -0
  263. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/micrOSDocGen.py +0 -0
  264. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/micrOSImageBuilder.py +0 -0
  265. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/micrOSImageConfig.json +0 -0
  266. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/micrOSlint.py +0 -0
  267. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/.DS_Store +0 -0
  268. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/IO_darwin.py +0 -0
  269. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
  270. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/Metrics.cpython-312.pyc +0 -0
  271. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/aioespnow.cpython-312.pyc +0 -0
  272. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
  273. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
  274. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
  275. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
  276. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
  277. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
  278. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
  279. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
  280. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
  281. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
  282. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
  283. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
  284. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
  285. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
  286. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
  287. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
  288. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
  289. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
  290. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
  291. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
  292. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
  293. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/mip.cpython-312.pyc +0 -0
  294. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
  295. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
  296. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
  297. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
  298. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
  299. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
  300. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
  301. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
  302. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
  303. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
  304. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/sim_common.cpython-312.pyc +0 -0
  305. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
  306. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
  307. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
  308. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
  309. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
  310. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
  311. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
  312. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
  313. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
  314. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
  315. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
  316. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
  317. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
  318. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/urandom.cpython-312.pyc +0 -0
  319. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
  320. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
  321. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
  322. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
  323. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
  324. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
  325. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
  326. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
  327. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
  328. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
  329. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/aioespnow.py +0 -0
  330. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/camera.py +0 -0
  331. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/dht.py +0 -0
  332. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/dotstar.py +0 -0
  333. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/ds18x20.py +0 -0
  334. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/esp32.py +0 -0
  335. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/framebuf.py +0 -0
  336. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/machine.py +0 -0
  337. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/micropython.py +0 -0
  338. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/mip.py +0 -0
  339. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/neopixel.py +0 -0
  340. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/network.py +0 -0
  341. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/ntptime.py +0 -0
  342. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/onewire.py +0 -0
  343. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/sim_common.py +0 -0
  344. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/simgc.py +0 -0
  345. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/simulator.py +0 -0
  346. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/tinypico.py +0 -0
  347. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/uasyncio.py +0 -0
  348. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/uos.py +0 -0
  349. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/urandom.py +0 -0
  350. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/usocket.py +0 -0
  351. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/ussl.py +0 -0
  352. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/ustruct.py +0 -0
  353. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/utime.py +0 -0
  354. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/view01.jpg +0 -0
  355. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/view02.jpg +0 -0
  356. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/webrepl.py +0 -0
  357. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/user_data/.include +0 -0
  358. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/__pycache__/generic.cpython-312.pyc +0 -0
  359. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/__pycache__/macro.cpython-312.pyc +0 -0
  360. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/__pycache__/template.cpython-312.pyc +0 -0
  361. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/generic.py +0 -0
  362. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/macro.py +0 -0
  363. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/template.macro +0 -0
  364. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/template.py +0 -0
  365. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/__init__.py +0 -0
  366. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Auth.mpy +0 -0
  367. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Buffer.mpy +0 -0
  368. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Common.mpy +0 -0
  369. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Config.mpy +0 -0
  370. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Debug.mpy +0 -0
  371. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Files.mpy +0 -0
  372. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Hooks.mpy +0 -0
  373. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  374. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
  375. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Logger.mpy +0 -0
  376. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Network.mpy +0 -0
  377. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Notify.mpy +0 -0
  378. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Pacman.mpy +0 -0
  379. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
  380. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Server.mpy +0 -0
  381. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Tasks.mpy +0 -0
  382. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Time.mpy +0 -0
  383. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Types.mpy +0 -0
  384. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Web.mpy +0 -0
  385. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/_mpy.version +0 -0
  386. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/config/_git.keep +0 -0
  387. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/helpers.mpy +0 -0
  388. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/main.py +0 -0
  389. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/mespnow.mpy +0 -0
  390. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/micrOS.mpy +0 -0
  391. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  392. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/microIO.mpy +0 -0
  393. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32.mpy +0 -0
  394. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32c3.mpy +0 -0
  395. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32c5.mpy +0 -0
  396. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32c6.mpy +0 -0
  397. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32s2.mpy +0 -0
  398. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32s3.mpy +0 -0
  399. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_m5stamp.mpy +0 -0
  400. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_qtpy.mpy +0 -0
  401. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_rp2.mpy +0 -0
  402. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_tinypico.mpy +0 -0
  403. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_aht10.mpy +0 -0
  404. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_bme280.mpy +0 -0
  405. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_buzzer.mpy +0 -0
  406. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
  407. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_cluster.mpy +0 -0
  408. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_dht11.mpy +0 -0
  409. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_dht22.mpy +0 -0
  410. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
  411. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_ds18.mpy +0 -0
  412. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_esp32.py +0 -0
  413. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_espnow.py +0 -0
  414. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_fileserver.mpy +0 -0
  415. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_gameOfLife.mpy +0 -0
  416. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_genIO.mpy +0 -0
  417. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_i2c.py +0 -0
  418. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
  419. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_neoeffects.mpy +0 -0
  420. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
  421. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_oled.mpy +0 -0
  422. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy +0 -0
  423. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
  424. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
  425. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
  426. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_rencoder.py +0 -0
  427. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
  428. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
  429. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_rgbcct.mpy +0 -0
  430. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_robustness.py +0 -0
  431. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_rp2w.py +0 -0
  432. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_servo.mpy +0 -0
  433. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_stepper.mpy +0 -0
  434. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_switch.mpy +0 -0
  435. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_system.mpy +0 -0
  436. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
  437. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_tinyrgb.mpy +0 -0
  438. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/urequests.mpy +0 -0
  439. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/auth.js +0 -0
  440. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/config.html +0 -0
  441. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/config_schedler.js +0 -0
  442. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/dashboard.html +0 -0
  443. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/editor.js +0 -0
  444. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/editor_plugins.js +0 -0
  445. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/favicon.ico +0 -0
  446. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/filesui.html +0 -0
  447. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/index.html +0 -0
  448. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/uapi.js +0 -0
  449. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/ubashboard.css +0 -0
  450. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/udashboard.js +0 -0
  451. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/ustyle.css +0 -0
  452. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/uwidgets.js +0 -0
  453. {microsdevtoolkit-3.7.0 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/uwidgets_pro.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 3.7.0
3
+ Version: 3.7.2
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
@@ -176,6 +176,11 @@ devToolKit.py
176
176
  3. Select **Deploy (USB)** and confirm the operation.
177
177
  4. Wait for deployment to complete and the board to restart.
178
178
 
179
+ Current micrOS versions use `major.minor.patch` (for example, `3.7.2`).
180
+ DevToolKit also accepts the optional numeric `-revision` suffix used by legacy
181
+ boards and records (for example, `3.7.2-0`). Update checks compare the complete
182
+ version strings, so these two identifiers are treated as different versions.
183
+
179
184
  On first deployment, DevToolKit may offer to install the Serial USB driver
180
185
  required by your platform. The first toolkit launch installs optional GUI,
181
186
  compiler, and media dependencies; keep internet access available until it
@@ -138,6 +138,11 @@ devToolKit.py
138
138
  3. Select **Deploy (USB)** and confirm the operation.
139
139
  4. Wait for deployment to complete and the board to restart.
140
140
 
141
+ Current micrOS versions use `major.minor.patch` (for example, `3.7.2`).
142
+ DevToolKit also accepts the optional numeric `-revision` suffix used by legacy
143
+ boards and records (for example, `3.7.2-0`). Update checks compare the complete
144
+ version strings, so these two identifiers are treated as different versions.
145
+
141
146
  On first deployment, DevToolKit may offer to install the Serial USB driver
142
147
  required by your platform. The first toolkit launch installs optional GUI,
143
148
  compiler, and media dependencies; keep internet access available until it
@@ -117,7 +117,7 @@
117
117
  0
118
118
  ],
119
119
  "modules/LM_web.py": [
120
- 8.52,
120
+ 8.6,
121
121
  0
122
122
  ],
123
123
  "modules/LM_genIO.py": [
@@ -263,7 +263,7 @@
263
263
  27
264
264
  ],
265
265
  "load": [
266
- 6125,
266
+ 6148,
267
267
  37
268
268
  ],
269
269
  "packages": [
@@ -272,8 +272,8 @@
272
272
  25
273
273
  ],
274
274
  "web": [
275
- 216082,
276
- 20
275
+ 225389,
276
+ 21
277
277
  ],
278
278
  "core_dep": [
279
279
  true,
@@ -285,6 +285,6 @@
285
285
  ],
286
286
  "core_score": 9.26,
287
287
  "load_score": 8.37,
288
- "version": "3.7.0-0"
288
+ "version": "3.7.2"
289
289
  }
290
290
  }
@@ -28,7 +28,7 @@ IMAGE_MODE = 'rel' if 'micrOS' in uname()[-1] else 'dev'
28
28
 
29
29
  class Shell:
30
30
  __slots__ = ['__devfid', '__auth_mode', '__hwuid', '__auth_ok', '__conf_mode']
31
- MICROS_VERSION = '3.7.0-0'
31
+ MICROS_VERSION = '3.7.2'
32
32
 
33
33
  def __init__(self):
34
34
  """
@@ -1,6 +1,6 @@
1
1
  from machine import SDCard
2
2
  from uos import mount, umount
3
- from Files import is_dir, path_join, list_fs, OSPath
3
+ from Files import is_dir, path_join, list_fs, OSPath, abs_path
4
4
 
5
5
  STORAGE_PATH = path_join(OSPath.DATA, "storage")
6
6
 
@@ -41,7 +41,7 @@ def write_file(name, content):
41
41
  :param name: file name with type
42
42
  :param content: file text content
43
43
  """
44
- target = path_join(STORAGE_PATH, name)
44
+ target = path_join(STORAGE_PATH, abs_path(name))
45
45
  try:
46
46
  with open(target, 'w') as f:
47
47
  f.write(content)
@@ -55,7 +55,7 @@ def read_file(name):
55
55
  Read a file
56
56
  :param name: file name with type
57
57
  """
58
- target = path_join(STORAGE_PATH, name)
58
+ target = path_join(STORAGE_PATH, abs_path(name))
59
59
  try:
60
60
  with open(target, 'r') as f:
61
61
  return f.read()
@@ -10,6 +10,8 @@ from Common import web_endpoint, conf_dir, syslog
10
10
  from Config import cfgget, cfgput
11
11
  from Auth import sudo
12
12
 
13
+ __MOUNTS_WA = None
14
+
13
15
 
14
16
  def load(dashboard:bool=None, fileserver:bool=None, fs_explore:bool=None, config:bool=None):
15
17
  """
@@ -31,22 +33,26 @@ def load(dashboard:bool=None, fileserver:bool=None, fs_explore:bool=None, config
31
33
  fileserver = wsc["fileserver"] if fileserver is None else fileserver
32
34
  fs_explore = wsc["fs_explore"] if fs_explore is None else fs_explore
33
35
  if fileserver:
36
+ global __MOUNTS_WA
34
37
  import LM_fileserver
35
38
  msg.append(LM_fileserver.load())
36
39
  msg.append(LM_fileserver.extend_mounts(modules=fs_explore, data=fs_explore, logs=fs_explore))
40
+ __MOUNTS_WA = LM_fileserver.mounts_write_access
37
41
  config = wsc["config"] if config is None else config
38
42
  if config:
39
43
  msg.append(enable_config())
40
44
 
41
45
  _web_apps('s', {"dashboard": dashboard,
42
- "fileserver": fileserver, "fs_explore": fs_explore,
43
- "config": config})
46
+ "fileserver": fileserver, "fs_explore": fs_explore,
47
+ "config": config})
44
48
  return msg
45
49
 
46
50
 
47
51
  def _web_apps(mode, conf=None):
48
52
  """
53
+ Stateful web application loading
49
54
  :param mode (str): s - save or r - read
55
+ :param conf (dict): dict to save at save mode
50
56
  """
51
57
  if mode == "s":
52
58
  if conf is None:
@@ -59,8 +65,10 @@ def _web_apps(mode, conf=None):
59
65
  except Exception as e:
60
66
  syslog(f"[WARN] Web app conf save: {e}")
61
67
  return False
62
- # Load config (with fallback)
63
- cfg = {"dashboard": True, "fileserver": False, "fs_explore": False, "config": True}
68
+ # Load config (with fallback) - default config
69
+ cfg = {"dashboard": True,
70
+ "fileserver": False, "fs_explore": False,
71
+ "config": True, "fs_write_access": {}}
64
72
  try:
65
73
  with open(conf_dir("webapps.json"), 'r') as f:
66
74
  cfg.update(conf_load(f))
@@ -69,14 +77,33 @@ def _web_apps(mode, conf=None):
69
77
  return cfg
70
78
 
71
79
 
72
- def status():
80
+ def status(pwd=None) -> dict:
81
+ """
82
+ Web services status: dashboard, fileserver, fs_explore + write access [FSI], config
83
+ """
84
+ apps_status = _web_apps('r')
85
+ if (callable(__MOUNTS_WA) and apps_status.get("fileserver", False)
86
+ and apps_status.get("fs_explore", False)):
87
+ # requires password !
88
+ mounts_write_access = __MOUNTS_WA(pwd=pwd)
89
+ apps_status["fs_write_access"] = mounts_write_access
90
+ return apps_status
91
+
92
+
93
+ def mounts_w_access(*args, **kwargs) -> dict:
73
94
  """
74
- Web services status: dashboard, fileserver, fs_explore, config
95
+ [FSI] Fileserver write access control interface
96
+ input: modules:bool data:bool logs:bool pwd="<password>"
75
97
  """
76
- return _web_apps('r')
98
+ apps_status = _web_apps('r')
99
+ if (callable(__MOUNTS_WA) and apps_status.get("fileserver", False)
100
+ and apps_status.get("fs_explore", False)):
101
+ # requires password !
102
+ return __MOUNTS_WA(*args, **kwargs)
103
+ return {}
77
104
 
78
105
  ######################## System Config ######################
79
- _CFG_HIDE = ("hwuid", "guimeta", "socport", "version", "auth", "soctout")
106
+ _CFG_HIDE = ("hwuid", "guimeta", "socport", "version", "soctout")
80
107
 
81
108
  def enable_config():
82
109
  """
@@ -167,5 +194,6 @@ def help(widgets=False):
167
194
  """
168
195
  return ('load dashboard=True fileserver=False fs_explore=False config=True',
169
196
  'enable_config',
197
+ 'mounts_w_access modules:bool=None data:bool=None logs:bool=None pwd=<password>',
170
198
  'status',
171
199
  'help')
@@ -7,6 +7,12 @@
7
7
  --config-padding: 12px;
8
8
  }
9
9
 
10
+ .config-auth-hint {
11
+ color: #aaa;
12
+ font-size: 0.85rem;
13
+ margin: 8px 0 0;
14
+ }
15
+
10
16
  #configContainer {
11
17
  display: flex;
12
18
  flex-direction: row;
@@ -16,15 +22,17 @@
16
22
  }
17
23
 
18
24
  #configMenu {
25
+ flex-shrink: 0;
19
26
  max-width: 30vw;
20
27
  min-width: 12vw;
21
28
  border-radius: 8px;
22
29
  box-sizing: border-box;
23
- padding: 8px 0;
30
+ padding: 8px 12px 8px 0;
24
31
  background: transparent;
25
32
  }
26
33
 
27
34
  #configMenu p {
35
+ white-space: nowrap;
28
36
  cursor: pointer;
29
37
  padding: 0.2rem 0rem 0.2rem 1rem;
30
38
  border-radius: 3px;
@@ -164,6 +172,7 @@
164
172
  #configFields .config-package-install input { flex: 1 1 240px; width: auto; }
165
173
  #configFields #packageCatalog { width: 180px; }
166
174
  .config-package-info { width: var(--config-input-width); max-width: 100%; box-sizing: border-box; margin-bottom: 12px; overflow-wrap: anywhere; }
175
+ .config-package-install-output { width: var(--config-input-width); max-width: 100%; box-sizing: border-box; overflow-wrap: anywhere; }
167
176
  .config-package-info p { margin: 0 0 8px; }
168
177
  .config-package-info a { color: var(--config-label); }
169
178
  .config-pin-info { margin-top: 20px; }
@@ -1,7 +1,7 @@
1
1
  const configCategories = {
2
2
  'Device': {
3
3
  icon: '📟',
4
- keys: ['devfid', 'boothook', 'appwd', 'dbg', 'aioqueue', 'utc', 'boostmd']
4
+ keys: ['devfid', 'boothook', 'auth', 'appwd', 'dbg', 'aioqueue', 'utc', 'boostmd']
5
5
  },
6
6
  'Network': {
7
7
  icon: '📡',
@@ -9,12 +9,15 @@ const configCategories = {
9
9
  },
10
10
  'Web': {
11
11
  icon: '🌐',
12
- keys: ['webui', 'webui_max_con']
12
+ keys: ['webui', 'webui_max_con'],
13
+ script: '/config_webapps.js',
14
+ render: 'renderWebAppsSection'
13
15
  },
14
16
  'Scheduler': {
15
17
  icon: '⏰',
16
18
  keys: ['cron', 'crontasks'],
17
- render: loadSchedulerSection
19
+ script: '/config_schedler.js',
20
+ render: 'renderSchedulerSection'
18
21
  },
19
22
  'Interrupts': {
20
23
  icon: '⚡',
@@ -30,7 +33,8 @@ const configCategories = {
30
33
  },
31
34
  'Packages': {
32
35
  icon: '📦',
33
- render: loadPackagesSection
36
+ script: '/config_packages.js',
37
+ render: 'renderPackagesSection'
34
38
  },
35
39
  'Debug': {
36
40
  icon: '🛠',
@@ -40,6 +44,7 @@ const configCategories = {
40
44
  const configLabelMap = {
41
45
  'devfid': 'Device name',
42
46
  'boothook': 'Startup Actions',
47
+ 'auth': 'Authentication',
43
48
  'appwd': 'Admin Password',
44
49
  'dbg': 'Debug Mode',
45
50
  'aioqueue': 'Allowed Number of Tasks',
@@ -56,10 +61,6 @@ const configLabelMap = {
56
61
  'timirqcbf': 'Functions',
57
62
  'webui': 'Enable',
58
63
  'webui_max_con': 'Allowed Number of Connections',
59
- 'web.dashboard': 'Dashboard',
60
- 'web.fileserver': 'Fileserver',
61
- 'web.fs_explore': 'Fileserver > Show sys dirs',
62
- 'web.config': 'Config',
63
64
  'irq_prell_ms': 'Debounce (ms)',
64
65
  };
65
66
  const configSelectOptions = {
@@ -81,6 +82,23 @@ function configLabel(key) {
81
82
  let configData = {};
82
83
  let changedValues = {};
83
84
  let configSaving = false;
85
+ const restEncodeMap = {
86
+ '"': '%5Cx22', "'": '%27', '#': '%23', '=': '%3D', '>': '%3E', '&': '%26',
87
+ '/': '%2F', '\\': '%5C%5C', ' ': '%20', '?': '%3F', '%': '%25'
88
+ };
89
+
90
+ function getAdminPassword() {
91
+ if (changedValues.hasOwnProperty('appwd')) {
92
+ return changedValues.appwd;
93
+ }
94
+ return configData.appwd || '';
95
+ }
96
+
97
+ /** Encode a value as one quoted REST argument for micrOS execution. */
98
+ function restQuote(value) {
99
+ return '"' + String(value).replace(/["'#=>&/\\ ?%]/g, char => restEncodeMap[char]) + '"';
100
+ }
101
+
84
102
  const configSectionScripts = {};
85
103
  const selectedCategoryKey = 'micros.config.selectedCategory';
86
104
 
@@ -296,8 +314,7 @@ async function handleUpdateConfig() {
296
314
  return;
297
315
  }
298
316
  const savedChanges = {...changedValues};
299
- const nodeChanges = Object.fromEntries(Object.entries(savedChanges).filter(([key]) => !key.startsWith('web.')));
300
- const appChanges = Object.fromEntries(Object.entries(savedChanges).filter(([key]) => key.startsWith('web.')));
317
+ const nodeChanges = savedChanges;
301
318
  configSaving = true;
302
319
  updateSaveButtonState();
303
320
  try {
@@ -316,18 +333,6 @@ async function handleUpdateConfig() {
316
333
  }
317
334
  commitConfigChanges(nodeChanges);
318
335
  }
319
- if (Object.keys(appChanges).length) {
320
- const args = Object.entries(appChanges)
321
- .map(([key, value]) => `${encodeURIComponent(key.slice(4))}=${value ? 'True' : 'False'}`);
322
- const response = await restAPI('web/load/' + args.join('/'), false);
323
- if (!response || response.state !== true) throw new Error('Unable to update web app settings.');
324
- const status = await restAPI('web/status', false);
325
- if (!status || status.state !== true || !status.result ||
326
- !Object.entries(appChanges).every(([key, value]) => status.result[key.slice(4)] === value)) {
327
- throw new Error('Unable to confirm saved web app settings.');
328
- }
329
- commitConfigChanges(appChanges);
330
- }
331
336
  showConfigSaveSuccess(savedChanges);
332
337
  } catch (error) {
333
338
  console.error('Update failed:', error);
@@ -357,6 +362,10 @@ function addMenuListeners() {
357
362
  closeMobileMenu();
358
363
  saveSelectedCategory(key);
359
364
  const category = configCategories[key] || {};
365
+ if (category.script) {
366
+ loadConfigSection(key);
367
+ return;
368
+ }
360
369
  if (typeof category.render === 'function') {
361
370
  category.render();
362
371
  return;
@@ -428,57 +437,9 @@ function renderConfigFields(data, sectionKey = '', renderFields = renderDefaultF
428
437
  } else {
429
438
  renderFields(data, container, sectionKey);
430
439
  }
431
- if (sectionKey === 'Web') updateWebAppsVisibility(container);
432
440
  updateUnsavedFields();
433
441
  }
434
442
 
435
- function updateWebAppsVisibility(container) {
436
- const enabled = (changedValues.webui ?? configData.webui) === true;
437
- const group = container.querySelector('#configWebApps');
438
- if (group) group.hidden = !enabled;
439
- else if (enabled) renderWebApps(container);
440
- }
441
-
442
- function renderWebApps(container) {
443
- const group = createConfigFieldset('Web apps');
444
- group.id = 'configWebApps';
445
- const fields = document.createElement('div');
446
- const message = textElement('p', 'Loading web apps...');
447
- message.setAttribute('role', 'status');
448
- group.appendChild(fields);
449
- group.appendChild(message);
450
- group.appendChild(textElement('p', '[i] Disabling an app requires a reboot.'));
451
- container.appendChild(group);
452
-
453
- function render() {
454
- fields.innerHTML = '';
455
- const current = {...configData, ...changedValues};
456
- Object.entries(current)
457
- .filter(([key, value]) => key.startsWith('web.') && typeof value === 'boolean')
458
- .sort(([a], [b]) => configLabel(a).localeCompare(configLabel(b), 'en'))
459
- .forEach(([key, value]) => renderField(fields, key, value));
460
- fields.querySelectorAll('[data-config-key="web.config"] button').forEach(button => { button.disabled = true; });
461
- message.textContent = '';
462
- updateUnsavedFields();
463
- }
464
-
465
- if (Object.keys(configData).some(key => key.startsWith('web.'))) {
466
- render();
467
- return;
468
- }
469
- restAPI('web/status', false)
470
- .then(response => {
471
- if (!response || response.state !== true || !response.result || typeof response.result !== 'object' || Array.isArray(response.result)) {
472
- throw new Error('Unable to load web app settings.');
473
- }
474
- Object.entries(response.result).forEach(([key, value]) => {
475
- if (typeof value === 'boolean') configData['web.' + key] = value;
476
- });
477
- render();
478
- })
479
- .catch(error => { message.textContent = error.message; });
480
- }
481
-
482
443
  function renderTaskSection() {
483
444
  const container = document.getElementById('configFields');
484
445
  container.innerHTML = '';
@@ -965,19 +926,20 @@ function fetchDeviceHealth(settings) {
965
926
  });
966
927
  }
967
928
 
968
- // Fetch optional config sections once, when first opened.
969
- function loadSchedulerSection() {
970
- return loadConfigSection('scheduler', '/config_schedler.js', () => renderSchedulerSection());
971
- }
972
-
973
- function loadPackagesSection() {
974
- return loadConfigSection('packages', '/config_packages.js', () => renderPackagesSection());
975
- }
976
-
977
- function loadConfigSection(name, src, render) {
929
+ // Optional sections declare their script and renderer in configCategories.
930
+ function loadConfigSection(category) {
931
+ const {script: src, render: renderer} = configCategories[category];
978
932
  const container = document.getElementById('configFields');
979
- container.innerHTML = '';
980
- const loading = textElement('p', `Loading ${name}...`);
933
+ // Base settings stay usable even when optional enhancements are unavailable.
934
+ const baseConfig = filterConfig(category);
935
+ // The raw task input is a fallback, not a placeholder for the scheduler UI.
936
+ if (category === 'Scheduler') delete baseConfig.crontasks;
937
+ renderConfigFields(baseConfig, category);
938
+ if (!isEditableConfigSection(category)) {
939
+ container.appendChild(textElement('h2', categoryTitle(category), 'config-heading-top'));
940
+ }
941
+ const loading = textElement('p', `Loading ${category.toLowerCase()} features...`);
942
+ loading.setAttribute('role', 'status');
981
943
  container.appendChild(loading);
982
944
  if (!configSectionScripts[src]) {
983
945
  configSectionScripts[src] = new Promise((resolve, reject) => {
@@ -987,7 +949,7 @@ function loadConfigSection(name, src, render) {
987
949
  script.onerror = () => {
988
950
  script.remove();
989
951
  delete configSectionScripts[src];
990
- reject(new Error(`Failed to load ${name}.`));
952
+ reject(new Error(`Optional ${category.toLowerCase()} features are unavailable.`));
991
953
  };
992
954
  document.head.appendChild(script);
993
955
  });
@@ -995,12 +957,19 @@ function loadConfigSection(name, src, render) {
995
957
  return configSectionScripts[src]
996
958
  .then(() => {
997
959
  // Do not replace a different menu or a newer view while loading.
998
- if (loading.isConnected) render();
960
+ if (!loading.isConnected) return;
961
+ const render = typeof renderer === 'function' ? renderer : window[renderer];
962
+ if (typeof render !== 'function') throw new Error(`Optional ${category.toLowerCase()} features are unavailable.`);
963
+ render();
999
964
  })
1000
965
  .catch(err => {
1001
966
  if (!loading.isConnected) return;
967
+ if (category === 'Scheduler') {
968
+ renderConfigFields(filterConfig(category), category);
969
+ container.appendChild(loading);
970
+ }
1002
971
  loading.textContent = err.message;
1003
- container.appendChild(makeButton('Retry', () => loadConfigSection(name, src, render)));
972
+ container.appendChild(makeButton('Retry', () => loadConfigSection(category)));
1004
973
  });
1005
974
  }
1006
975
 
@@ -1347,9 +1316,17 @@ function renderField(container, key, value) {
1347
1316
 
1348
1317
  const label = textElement('label', configLabel(key) + ': ', 'config-label');
1349
1318
 
1319
+ const authHint = key === 'auth' && typeof value === 'boolean'
1320
+ ? textElement('p', 'On-demand module loading is disabled for the REST API.', 'config-auth-hint')
1321
+ : null;
1322
+ if (authHint) authHint.hidden = !value;
1323
+
1350
1324
  let input;
1351
1325
  if (typeof value === 'boolean') {
1352
- input = createBooleanToggle(key, value, nextValue => trackChange(key, nextValue));
1326
+ input = createBooleanToggle(key, value, nextValue => {
1327
+ trackChange(key, nextValue);
1328
+ if (authHint) authHint.hidden = !nextValue;
1329
+ });
1353
1330
  } else if (typeof value === 'number') {
1354
1331
  input = document.createElement('input');
1355
1332
  input.type = 'number';
@@ -1370,6 +1347,7 @@ function renderField(container, key, value) {
1370
1347
  input.dataset.configKey = key;
1371
1348
  wrapper.appendChild(label);
1372
1349
  appendInputWithPasswordToggle(wrapper, input, key);
1350
+ if (authHint) wrapper.appendChild(authHint);
1373
1351
  container.appendChild(wrapper);
1374
1352
  }
1375
1353
 
@@ -1620,7 +1598,7 @@ function trackChange(key, value) {
1620
1598
  } else {
1621
1599
  changedValues[key] = value;
1622
1600
  }
1623
- if (key === 'webui') updateWebAppsVisibility(document.getElementById('configFields'));
1601
+ if (key === 'webui' && typeof updateWebAppsVisibility === 'function') updateWebAppsVisibility(document.getElementById('configFields'));
1624
1602
  updateSaveButtonState();
1625
1603
  console.log('Changed config keys:', Object.keys(changedValues));
1626
1604
  }
@@ -1,9 +1,5 @@
1
1
  // Loaded on demand by config.js when the Packages menu opens.
2
2
  let installedPackageNames = new Set();
3
- const restEncodeMap = {
4
- '"': '%5Cx22', "'": '%27', '#': '%23', '=': '%3D', '>': '%3E', '&': '%26',
5
- '/': '%2F', '\\': '%5C%5C', ' ': '%20', '?': '%3F', '%': '%25'
6
- };
7
3
  const PACMAN_TIMEOUT_MS = 20000;
8
4
 
9
5
  // Packages UI: install and inspect
@@ -126,6 +122,7 @@ function renderPackagesSection() {
126
122
  installRow.appendChild(input);
127
123
 
128
124
  const installResult = createInlineOutput();
125
+ installResult.classList.add('config-package-install-output');
129
126
 
130
127
  const installBtn = makeButton('Install', () => {
131
128
  const url = input.value.trim();
@@ -250,18 +247,6 @@ function getPackageActions() {
250
247
  ];
251
248
  }
252
249
 
253
- function getAdminPassword() {
254
- if (changedValues.hasOwnProperty('appwd')) {
255
- return changedValues.appwd;
256
- }
257
- return configData.appwd || '';
258
- }
259
-
260
- /** Encode a value as one quoted REST argument for micrOS execution. */
261
- function restQuote(value) {
262
- return '"' + String(value).replace(/["'#=>&/\\ ?%]/g, char => restEncodeMap[char]) + '"';
263
- }
264
-
265
250
  function loadPackageDetails(packageName, details, button) {
266
251
  if (details.style.display !== 'none' && details.textContent) {
267
252
  details.style.display = 'none';