micrOSDevToolKit 3.3.4__tar.gz → 3.3.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. {microsdevtoolkit-3.3.4/micrOSDevToolKit.egg-info → microsdevtoolkit-3.3.5}/PKG-INFO +1 -1
  2. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +4 -4
  3. {microsdevtoolkit-3.3.4/toolkit/workspace/precompiled → microsdevtoolkit-3.3.5/micrOS/source}/modules/LM_esp32.py +4 -1
  4. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5/micrOSDevToolKit.egg-info}/PKG-INFO +1 -1
  5. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/setup.py +1 -1
  6. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/Gateway.py +306 -2
  7. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/gateway/gateway.css +7 -1
  8. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/gateway/index.html +17 -1
  9. {microsdevtoolkit-3.3.4/micrOS/source → microsdevtoolkit-3.3.5/toolkit/workspace/precompiled}/modules/LM_esp32.py +4 -1
  10. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/LICENSE +0 -0
  11. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/MANIFEST.in +0 -0
  12. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/README.md +0 -0
  13. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/devToolKit.py +0 -0
  14. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/__init__.py +0 -0
  15. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/.DS_Store +0 -0
  16. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
  17. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
  18. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
  19. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
  20. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
  21. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
  22. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
  23. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
  24. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
  25. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
  26. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
  27. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
  28. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
  29. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/media/__init__.py +0 -0
  30. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/media/dnd.png +0 -0
  31. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/media/logo.png +0 -0
  32. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/media/logo_mini.png +0 -0
  33. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/media/usb_port_icon.png +0 -0
  34. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/media/wifi_icon.png +0 -0
  35. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/__init__.py +0 -0
  36. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/board_commands.json +0 -0
  37. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/esp32-20251209-v1.27.0.bin +0 -0
  38. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/esp32c3-20251209-v1.27.0.bin +0 -0
  39. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/esp32c5-20251209-v1.27.0.bin +0 -0
  40. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/esp32c6-20251209-v1.27.0.bin +0 -0
  41. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
  42. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/esp32s2-20251209-v1.27.0.bin +0 -0
  43. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/esp32s2-LOLIN_MINI-20251209-v1.27.0.bin +0 -0
  44. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/esp32s3-4MBflash-20241129-v1.24.1.bin +0 -0
  45. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/esp32s3-8MBflash-20251209-v1.27.0.bin +0 -0
  46. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/esp32s3_spiram_oct-20251209-v1.27.0.bin +0 -0
  47. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/micrOS-esp32-1.28.0-3.3.1-0.bin +0 -0
  48. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/micrOS-esp32c3-1.28.0-3.3.1-0.bin +0 -0
  49. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/micrOS-esp32c6-1.28.0-3.3.1-0.bin +0 -0
  50. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/micrOS-esp32s3-1.28.0-3.3.1-0.bin +0 -0
  51. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/rpi-pico-w-20251209-v1.27.0.uf2 +0 -0
  52. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/micropython/tinypico-20251209-v1.27.0.bin +0 -0
  53. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/.DS_Store +0 -0
  54. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Auth.py +0 -0
  55. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Buffer.py +0 -0
  56. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Common.py +0 -0
  57. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Config.py +0 -0
  58. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Debug.py +0 -0
  59. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Files.py +0 -0
  60. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Hooks.py +0 -0
  61. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/InterConnect.py +0 -0
  62. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Interrupts.py +0 -0
  63. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Logger.py +0 -0
  64. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Network.py +0 -0
  65. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Notify.py +0 -0
  66. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Pacman.py +0 -0
  67. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Scheduler.py +0 -0
  68. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Server.py +0 -0
  69. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Shell.py +0 -0
  70. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Tasks.py +0 -0
  71. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Time.py +0 -0
  72. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Types.py +0 -0
  73. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/Web.py +0 -0
  74. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Auth.cpython-312.pyc +0 -0
  75. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Buffer.cpython-312.pyc +0 -0
  76. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
  77. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Config.cpython-312.pyc +0 -0
  78. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Debug.cpython-312.pyc +0 -0
  79. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Files.cpython-312.pyc +0 -0
  80. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Hooks.cpython-312.pyc +0 -0
  81. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/InterConnect.cpython-312.pyc +0 -0
  82. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Interrupts.cpython-312.pyc +0 -0
  83. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
  84. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Pacman.cpython-312.pyc +0 -0
  85. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Power.cpython-312.pyc +0 -0
  86. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Scheduler.cpython-312.pyc +0 -0
  87. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
  88. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Shell.cpython-312.pyc +0 -0
  89. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Tasks.cpython-312.pyc +0 -0
  90. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Time.cpython-312.pyc +0 -0
  91. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Types.cpython-312.pyc +0 -0
  92. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/Web.cpython-312.pyc +0 -0
  93. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/micrOS.cpython-312.pyc +0 -0
  94. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/microIO.cpython-312.pyc +0 -0
  95. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/replhelper.cpython-312.pyc +0 -0
  96. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/__pycache__/urequests.cpython-312.pyc +0 -0
  97. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/config/_git.keep +0 -0
  98. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/helpers.py +0 -0
  99. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/main.py +0 -0
  100. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/mespnow.py +0 -0
  101. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/micrOS.py +0 -0
  102. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/micrOSloader.py +0 -0
  103. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/microIO.py +0 -0
  104. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/IO_esp32.py +0 -0
  105. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/IO_esp32c3.py +0 -0
  106. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/IO_esp32c5.py +0 -0
  107. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/IO_esp32c6.py +0 -0
  108. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/IO_esp32s2.py +0 -0
  109. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/IO_esp32s3.py +0 -0
  110. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/IO_m5stamp.py +0 -0
  111. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/IO_qtpy.py +0 -0
  112. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/IO_rp2.py +0 -0
  113. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/IO_tinypico.py +0 -0
  114. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_L298N.py +0 -0
  115. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_L9110_DCmotor.py +0 -0
  116. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_OV2640.py +0 -0
  117. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_aht10.py +0 -0
  118. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_bme280.py +0 -0
  119. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_buzzer.py +0 -0
  120. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_cct.py +0 -0
  121. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_cluster.py +0 -0
  122. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_dht11.py +0 -0
  123. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_dht22.py +0 -0
  124. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_dimmer.py +0 -0
  125. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_distance.py +0 -0
  126. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_ds18.py +0 -0
  127. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_espnow.py +0 -0
  128. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_fileserver.py +0 -0
  129. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_gameOfLife.py +0 -0
  130. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_genIO.py +0 -0
  131. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_haptic.py +0 -0
  132. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_i2c.py +0 -0
  133. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_i2s_mic.py +0 -0
  134. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_ld2410.py +0 -0
  135. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_light_sensor.py +0 -0
  136. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_neoeffects.py +0 -0
  137. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_neopixel.py +0 -0
  138. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_oled.py +0 -0
  139. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_oled_sh1106.py +0 -0
  140. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_oled_ui.py +0 -0
  141. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_pacman.py +0 -0
  142. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_presence.py +0 -0
  143. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_qmi8658.py +0 -0
  144. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_rencoder.py +0 -0
  145. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_rest.py +0 -0
  146. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_rgb.py +0 -0
  147. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_rgbcct.py +0 -0
  148. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_roboarm.py +0 -0
  149. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_robustness.py +0 -0
  150. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_rp2w.py +0 -0
  151. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_sdcard.py +0 -0
  152. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_servo.py +0 -0
  153. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_stepper.py +0 -0
  154. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_switch.py +0 -0
  155. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_system.py +0 -0
  156. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_telegram.py +0 -0
  157. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_tinyrgb.py +0 -0
  158. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_trackball.py +0 -0
  159. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_veml7700.py +0 -0
  160. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/LM_web.py +0 -0
  161. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/__pycache__/LM_cct.cpython-312.pyc +0 -0
  162. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/__pycache__/LM_dimmer.cpython-312.pyc +0 -0
  163. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/__pycache__/LM_neopixel.cpython-312.pyc +0 -0
  164. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/__pycache__/LM_pacman.cpython-312.pyc +0 -0
  165. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/__pycache__/LM_rgb.cpython-312.pyc +0 -0
  166. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/__pycache__/LM_rgbcct.cpython-312.pyc +0 -0
  167. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/__pycache__/LM_roboarm.cpython-312.pyc +0 -0
  168. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/__pycache__/LM_system.cpython-312.pyc +0 -0
  169. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/modules/__pycache__/LM_web.cpython-312.pyc +0 -0
  170. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/urequests.py +0 -0
  171. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/auth.js +0 -0
  172. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/config.css +0 -0
  173. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/config.html +0 -0
  174. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/config.js +0 -0
  175. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/dashboard.html +0 -0
  176. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/editor.js +0 -0
  177. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/editor_plugins.js +0 -0
  178. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/favicon.ico +0 -0
  179. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/filesui.html +0 -0
  180. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/filesui.js +0 -0
  181. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/index.html +0 -0
  182. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/uapi.js +0 -0
  183. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/uapi_widgets.js +0 -0
  184. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/ubashboard.css +0 -0
  185. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/udashboard.js +0 -0
  186. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/ustyle.css +0 -0
  187. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/uwidgets.js +0 -0
  188. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/source/web/uwidgets_pro.js +0 -0
  189. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/utests/__init__.py +0 -0
  190. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/utests/test_buffer.py +0 -0
  191. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/utests/test_config.py +0 -0
  192. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/utests/test_pacman.py +0 -0
  193. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/utests/test_scheduler.py +0 -0
  194. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/utests/test_time.py +0 -0
  195. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/utests/test_urequests.py +0 -0
  196. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/utests/test_urequests_real_api.py +0 -0
  197. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOS/utests/test_web_engine.py +0 -0
  198. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOSDevToolKit.egg-info/SOURCES.txt +0 -0
  199. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
  200. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOSDevToolKit.egg-info/requires.txt +0 -0
  201. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
  202. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/setup.cfg +0 -0
  203. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/DevEnvCompile.py +0 -0
  204. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/DevEnvOTA.py +0 -0
  205. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/DevEnvUSB.py +0 -0
  206. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/LM_to_compile.dat +0 -0
  207. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/MicrOSDevEnv.py +0 -0
  208. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/WebRepl.py +0 -0
  209. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/__init__.py +0 -0
  210. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/BackupRestore.py +0 -0
  211. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/CCTDemo.py +0 -0
  212. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/CCTTest.py +0 -0
  213. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/CamStream.py +0 -0
  214. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/CatGame.py +0 -0
  215. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/Dimmer.py +0 -0
  216. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/GetVersion.py +0 -0
  217. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
  218. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
  219. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
  220. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/PresenceTest.py +0 -0
  221. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/QMI8685_GYRO.py +0 -0
  222. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/RGBTest.py +0 -0
  223. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/RoboArm.py +0 -0
  224. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/SED_test.py +0 -0
  225. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/SensorsTest.py +0 -0
  226. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/SystemTest.py +0 -0
  227. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/Template_app.py +0 -0
  228. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/__init__.py +0 -0
  229. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/_app_base.py +0 -0
  230. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/_capture.py +0 -0
  231. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/_gyro_visualizer.py +0 -0
  232. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/_micPlotting.py +0 -0
  233. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
  234. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/dashboard_apps/uLightDemo.py +0 -0
  235. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/gateway/img_stream.html +0 -0
  236. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/LocalMachine.py +0 -0
  237. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/MicrosFiles.py +0 -0
  238. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/Repository.py +0 -0
  239. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/SafeInput.py +0 -0
  240. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/SearchDevices.py +0 -0
  241. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/SerialDriverHandler.py +0 -0
  242. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/TerminalColors.py +0 -0
  243. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/__init__.py +0 -0
  244. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/macroScript.py +0 -0
  245. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/micrOSClient.py +0 -0
  246. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/micrOSClientHistory.py +0 -0
  247. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/lib/pip_package_installer.py +0 -0
  248. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/micrOSImageBuilder.py +0 -0
  249. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/micrOSImageConfig.json +0 -0
  250. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/micrOSdashboard.py +0 -0
  251. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/micrOSlint.py +0 -0
  252. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/.DS_Store +0 -0
  253. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/IO_darwin.py +0 -0
  254. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
  255. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/Metrics.cpython-312.pyc +0 -0
  256. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/aioespnow.cpython-312.pyc +0 -0
  257. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
  258. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
  259. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
  260. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
  261. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
  262. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
  263. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
  264. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
  265. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
  266. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
  267. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
  268. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
  269. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
  270. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
  271. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
  272. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
  273. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
  274. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
  275. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
  276. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
  277. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
  278. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/mip.cpython-312.pyc +0 -0
  279. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
  280. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
  281. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
  282. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
  283. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
  284. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
  285. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
  286. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
  287. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
  288. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
  289. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/sim_common.cpython-312.pyc +0 -0
  290. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
  291. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
  292. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
  293. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
  294. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
  295. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
  296. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
  297. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
  298. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
  299. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
  300. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
  301. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
  302. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
  303. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/urandom.cpython-312.pyc +0 -0
  304. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
  305. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
  306. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
  307. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
  308. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
  309. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
  310. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
  311. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
  312. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
  313. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
  314. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/aioespnow.py +0 -0
  315. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/camera.py +0 -0
  316. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/dht.py +0 -0
  317. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/dotstar.py +0 -0
  318. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/ds18x20.py +0 -0
  319. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/esp32.py +0 -0
  320. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/framebuf.py +0 -0
  321. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/machine.py +0 -0
  322. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/micropython.py +0 -0
  323. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/mip.py +0 -0
  324. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/neopixel.py +0 -0
  325. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/network.py +0 -0
  326. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/node_config.json +0 -0
  327. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/ntptime.py +0 -0
  328. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/onewire.py +0 -0
  329. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/sim_common.py +0 -0
  330. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/simgc.py +0 -0
  331. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/simulator.py +0 -0
  332. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/tinypico.py +0 -0
  333. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/uasyncio.py +0 -0
  334. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/uos.py +0 -0
  335. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/urandom.py +0 -0
  336. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/usocket.py +0 -0
  337. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/ussl.py +0 -0
  338. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/ustruct.py +0 -0
  339. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/utime.py +0 -0
  340. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/view01.jpg +0 -0
  341. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/view02.jpg +0 -0
  342. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/simulator_lib/webrepl.py +0 -0
  343. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/socketClient.py +0 -0
  344. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/user_data/.include +0 -0
  345. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/user_data/webhooks/generic.py +0 -0
  346. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/user_data/webhooks/macro.py +0 -0
  347. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/user_data/webhooks/template.macro +0 -0
  348. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/user_data/webhooks/template.py +0 -0
  349. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/__init__.py +0 -0
  350. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Auth.mpy +0 -0
  351. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Buffer.mpy +0 -0
  352. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Common.mpy +0 -0
  353. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Config.mpy +0 -0
  354. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Debug.mpy +0 -0
  355. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Files.mpy +0 -0
  356. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Hooks.mpy +0 -0
  357. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  358. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
  359. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Logger.mpy +0 -0
  360. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Network.mpy +0 -0
  361. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Notify.mpy +0 -0
  362. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Pacman.mpy +0 -0
  363. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
  364. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Server.mpy +0 -0
  365. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Shell.mpy +0 -0
  366. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Tasks.mpy +0 -0
  367. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Time.mpy +0 -0
  368. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Types.mpy +0 -0
  369. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/Web.mpy +0 -0
  370. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/_mpy.version +0 -0
  371. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/config/_git.keep +0 -0
  372. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/helpers.mpy +0 -0
  373. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/main.py +0 -0
  374. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/mespnow.mpy +0 -0
  375. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/micrOS.mpy +0 -0
  376. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  377. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/microIO.mpy +0 -0
  378. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/IO_esp32.mpy +0 -0
  379. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/IO_esp32c3.mpy +0 -0
  380. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/IO_esp32c5.mpy +0 -0
  381. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/IO_esp32c6.mpy +0 -0
  382. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/IO_esp32s2.mpy +0 -0
  383. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/IO_esp32s3.mpy +0 -0
  384. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/IO_m5stamp.mpy +0 -0
  385. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/IO_qtpy.mpy +0 -0
  386. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/IO_rp2.mpy +0 -0
  387. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/IO_tinypico.mpy +0 -0
  388. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_L298N.mpy +0 -0
  389. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_L9110_DCmotor.py +0 -0
  390. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_OV2640.mpy +0 -0
  391. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_aht10.mpy +0 -0
  392. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_bme280.mpy +0 -0
  393. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_buzzer.mpy +0 -0
  394. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
  395. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_cluster.mpy +0 -0
  396. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_dht11.mpy +0 -0
  397. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_dht22.mpy +0 -0
  398. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
  399. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
  400. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_ds18.mpy +0 -0
  401. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_espnow.py +0 -0
  402. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_fileserver.mpy +0 -0
  403. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_gameOfLife.mpy +0 -0
  404. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_genIO.mpy +0 -0
  405. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_haptic.mpy +0 -0
  406. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_i2c.py +0 -0
  407. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
  408. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_ld2410.mpy +0 -0
  409. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_light_sensor.mpy +0 -0
  410. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_neoeffects.mpy +0 -0
  411. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
  412. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_oled.mpy +0 -0
  413. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy +0 -0
  414. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
  415. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
  416. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
  417. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_qmi8658.py +0 -0
  418. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_rencoder.py +0 -0
  419. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
  420. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
  421. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_rgbcct.mpy +0 -0
  422. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
  423. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_robustness.py +0 -0
  424. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_rp2w.py +0 -0
  425. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_sdcard.py +0 -0
  426. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_servo.mpy +0 -0
  427. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_stepper.mpy +0 -0
  428. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_switch.mpy +0 -0
  429. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_system.mpy +0 -0
  430. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
  431. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_tinyrgb.mpy +0 -0
  432. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_trackball.mpy +0 -0
  433. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_veml7700.mpy +0 -0
  434. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/modules/LM_web.mpy +0 -0
  435. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/urequests.mpy +0 -0
  436. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/auth.js +0 -0
  437. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/config.css +0 -0
  438. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/config.html +0 -0
  439. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/config.js +0 -0
  440. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/dashboard.html +0 -0
  441. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/editor.js +0 -0
  442. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/editor_plugins.js +0 -0
  443. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/favicon.ico +0 -0
  444. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/filesui.html +0 -0
  445. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/filesui.js +0 -0
  446. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/index.html +0 -0
  447. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/uapi.js +0 -0
  448. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/uapi_widgets.js +0 -0
  449. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/ubashboard.css +0 -0
  450. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/udashboard.js +0 -0
  451. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/ustyle.css +0 -0
  452. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/toolkit/workspace/precompiled/web/uwidgets.js +0 -0
  453. {microsdevtoolkit-3.3.4 → microsdevtoolkit-3.3.5}/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.3.4
3
+ Version: 3.3.5
4
4
  Summary: Development and deployment environment for micrOS, the diy micropython automation OS (IoT)
5
5
  Home-page: https://github.com/BxNxM/micrOS
6
6
  Author: Marcell Ban
@@ -54,7 +54,7 @@
54
54
  ],
55
55
  "Types.py": [
56
56
  9.0,
57
- 24
57
+ 25
58
58
  ],
59
59
  "Logger.py": [
60
60
  8.86,
@@ -221,7 +221,7 @@
221
221
  0
222
222
  ],
223
223
  "modules/LM_esp32.py": [
224
- 6.79,
224
+ 7.24,
225
225
  0
226
226
  ],
227
227
  "modules/LM_veml7700.py": [
@@ -307,7 +307,7 @@
307
307
  27
308
308
  ],
309
309
  "load": [
310
- 7593,
310
+ 7596,
311
311
  48
312
312
  ],
313
313
  "core_dep": [
@@ -319,7 +319,7 @@
319
319
  5
320
320
  ],
321
321
  "core_score": 9.28,
322
- "load_score": 8.41,
322
+ "load_score": 8.42,
323
323
  "version": "3.3.1-0"
324
324
  }
325
325
  }
@@ -1,5 +1,6 @@
1
1
  import esp32
2
2
  from Common import syslog
3
+ from Types import resolve
3
4
 
4
5
  #########################
5
6
  # Application functions #
@@ -66,4 +67,6 @@ def help(widgets=False):
66
67
  (widgets=False) list of functions implemented by this application
67
68
  (widgets=True) list of widget json for UI generation
68
69
  """
69
- return 'hall', 'temp', 'touch', 'battery', 'NOTE: battery only available on tinypico'
70
+ return resolve(('hall',
71
+ 'GRAPH temp',
72
+ 'touch', 'battery', 'NOTE: battery only available on tinypico'), widgets=widgets)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 3.3.4
3
+ Version: 3.3.5
4
4
  Summary: Development and deployment environment for micrOS, the diy micropython automation OS (IoT)
5
5
  Home-page: https://github.com/BxNxM/micrOS
6
6
  Author: Marcell Ban
@@ -17,7 +17,7 @@ dependencies = ['adafruit-ampy', 'mpremote', 'esptool', 'ipaddress', 'netaddr',
17
17
 
18
18
  setuptools.setup(
19
19
  name='micrOSDevToolKit',
20
- version='3.3.4',
20
+ version='3.3.5',
21
21
  author='Marcell Ban',
22
22
  author_email='miros.framework@gmail.com',
23
23
  description='Development and deployment environment for micrOS, the diy micropython automation OS (IoT)',
@@ -4,13 +4,17 @@
4
4
  import json
5
5
  import os
6
6
  import ipaddress
7
- from flask import Flask, jsonify, Response, make_response, request, send_file, abort
7
+ import ast
8
+ from html import escape
9
+ from urllib.parse import quote, unquote
10
+ from flask import Flask, jsonify, Response, make_response, request, send_file, send_from_directory, abort, stream_with_context
8
11
  from flask_restful import Resource, Api
9
12
  import threading
10
13
  import time
11
14
  import concurrent.futures
12
15
  MYPATH = os.path.dirname(__file__)
13
16
  WEBUI_PATH = os.path.join(MYPATH, 'gateway')
17
+ MICROS_WEBUI_PATH = os.path.join(os.path.dirname(MYPATH), 'micrOS', 'source', 'web')
14
18
  import requests
15
19
  from io import BytesIO
16
20
  from socket import gethostbyname
@@ -42,6 +46,11 @@ app = Flask(__name__)
42
46
  def gateway_css():
43
47
  return send_file(os.path.join(WEBUI_PATH, 'gateway.css'), mimetype='text/css')
44
48
 
49
+
50
+ @app.route('/micros-web/<path:resource>')
51
+ def micros_web_resource(resource):
52
+ return send_from_directory(MICROS_WEBUI_PATH, resource)
53
+
45
54
  # --------------------- AUTH BEGIN ------------------------- #
46
55
  ADDRESS_CACHE = {}
47
56
  try:
@@ -162,6 +171,293 @@ class Hello(Resource):
162
171
  return make_response(response)
163
172
 
164
173
 
174
+ def _parse_dashboard_rest_cmd(cmd):
175
+ """Mirror the device /rest path parsing for gateway dashboard calls."""
176
+ decoded = unquote(cmd or '')
177
+ tokens = []
178
+ index = 0
179
+ while index < len(decoded):
180
+ if decoded[index] == '"':
181
+ end = decoded.find('"', index + 1)
182
+ if end == -1:
183
+ tokens.append(decoded[index:].strip())
184
+ break
185
+ quoted_value = '"' + decoded[index + 1:end] + '"'
186
+ if quoted_value:
187
+ if tokens and tokens[-1].endswith('='):
188
+ tokens[-1] += quoted_value
189
+ else:
190
+ tokens.append(quoted_value)
191
+ index = end + 1
192
+ continue
193
+
194
+ start = index
195
+ while index < len(decoded) and decoded[index] != '"':
196
+ index += 1
197
+ segment = decoded[start:index]
198
+ if segment:
199
+ segment = segment.replace('/', ' ').replace('-', ' ').strip()
200
+ if segment:
201
+ tokens.extend(token for token in segment.split() if token)
202
+ return tokens
203
+
204
+
205
+ def _decode_dashboard_result(response):
206
+ if response is None or isinstance(response, (dict, bool, int, float)):
207
+ return response
208
+ if isinstance(response, list):
209
+ if len(response) != 1:
210
+ return response
211
+ response = response[0]
212
+ text = str(response).strip()
213
+ if not text:
214
+ return text
215
+ for loader in (json.loads, ast.literal_eval):
216
+ try:
217
+ return loader(text)
218
+ except Exception:
219
+ pass
220
+ return response
221
+
222
+
223
+ def _dashboard_state(execution_result):
224
+ response = execution_result.get('response')
225
+ if isinstance(response, str) and response.startswith('Core error:'):
226
+ return False
227
+ return bool(execution_result.get('state', True))
228
+
229
+
230
+ def _gateway_auth_enabled():
231
+ return bool(globals().get('__rest_usr_name') and globals().get('__rest_usr_pwd'))
232
+
233
+
234
+ class DeviceDashboardGroup(Resource):
235
+ """
236
+ One gateway page that groups every known device dashboard subpage.
237
+ """
238
+
239
+ @staticmethod
240
+ def _device_groups():
241
+ try:
242
+ groups = ListDevices().sort_devices()
243
+ except Exception as e:
244
+ print(f"[GatewayDashboard] device group refresh error: {e}")
245
+ groups = ListDevices.DEVICE_CACHE or {'online': {}, 'offline': {}}
246
+ return {
247
+ 'online': {
248
+ uid: data for uid, data in groups.get('online', {}).items()
249
+ if len(data) > 2 and not str(data[2]).startswith('__')
250
+ },
251
+ 'offline': {
252
+ uid: data for uid, data in groups.get('offline', {}).items()
253
+ if len(data) > 2 and not str(data[2]).startswith('__')
254
+ }
255
+ }
256
+
257
+ @staticmethod
258
+ def _device_tabs(label, devices, selected_device=''):
259
+ if not devices:
260
+ return '<div class="empty-row">No online devices available.</div>'
261
+ links = []
262
+ for uid, data in sorted(devices.items(), key=lambda item: str(item[1][2]).lower()):
263
+ fuid = str(data[2])
264
+ href = f"/dashboard/{quote(fuid, safe='')}"
265
+ css_classes = ['device-tab']
266
+ if fuid == selected_device:
267
+ css_classes.append('active')
268
+ title = escape(f"{fuid} ({uid})")
269
+ links.append(
270
+ f'<a class="{" ".join(css_classes)}" href="{href}" target="deviceFrame" '
271
+ f'data-device="{escape(fuid)}" title="{title}">{escape(fuid)}</a>'
272
+ )
273
+ return f'<nav class="device-tabs" aria-label="{label}">' + ''.join(links) + '</nav>'
274
+
275
+ def get(self):
276
+ groups = self._device_groups()
277
+ requested_device = request.args.get('device', '').strip()
278
+ known_devices = {
279
+ str(data[2]) for data in groups['online'].values()
280
+ }
281
+ first_online = next(iter(groups['online'].values()), None)
282
+ first_device = requested_device if requested_device in known_devices else str(first_online[2]) if first_online else ''
283
+ initial_src = f"/dashboard/{quote(first_device, safe='')}" if first_device else ''
284
+ online_tabs = self._device_tabs('online devices', groups['online'], first_device)
285
+ iframe = (
286
+ f'<iframe name="deviceFrame" id="deviceFrame" src="{initial_src}" '
287
+ 'title="micrOS device dashboard"></iframe>'
288
+ if initial_src else
289
+ '<div class="empty-panel">No online device dashboard is available yet.</div>'
290
+ )
291
+ html = f"""<!DOCTYPE html>
292
+ <html lang="en">
293
+ <head>
294
+ <meta charset="UTF-8">
295
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
296
+ <meta name="theme-color" content="#101418">
297
+ <title>micrOS Gateway Dashboards</title>
298
+ <link rel="stylesheet" href="/gateway.css">
299
+ <style>
300
+ .dashboard-shell {{ min-height: 100vh; display: grid; grid-template-rows: auto 1fr; gap: 8px; padding: 10px; }}
301
+ .dashboard-top {{ overflow: hidden; }}
302
+ .device-tabs {{ display: flex; gap: 6px; overflow-x: auto; padding: 4px; }}
303
+ .device-tab {{ display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 5px 10px; border-radius: 8px; background: var(--surface-strong); color: var(--text); text-decoration: none; font-weight: 700; font-size: 12px; white-space: nowrap; box-shadow: inset 0 0 0 1px var(--line); }}
304
+ .device-tab.active {{ background: var(--accent); color: #101418; box-shadow: none; }}
305
+ .dashboard-frame {{ min-height: calc(100vh - 56px); }}
306
+ #deviceFrame {{ width: 100%; min-height: calc(100vh - 56px); border: 1px solid var(--line); border-radius: 8px; background: #000; }}
307
+ .empty-row, .empty-panel {{ color: var(--muted); padding: 12px; border: 1px solid var(--line); border-radius: 8px; }}
308
+ @media (max-width: 820px) {{
309
+ .dashboard-shell {{ padding: 6px; }}
310
+ #deviceFrame {{ min-height: calc(100vh - 48px); }}
311
+ }}
312
+ </style>
313
+ </head>
314
+ <body class="page-gateway">
315
+ <main class="dashboard-shell">
316
+ <section class="dashboard-top">
317
+ {online_tabs}
318
+ </section>
319
+ <section class="dashboard-frame">
320
+ {iframe}
321
+ </section>
322
+ </main>
323
+ <script>
324
+ document.querySelectorAll('.device-tab').forEach(link => {{
325
+ link.addEventListener('click', () => {{
326
+ document.querySelectorAll('.device-tab').forEach(item => item.classList.remove('active'));
327
+ link.classList.add('active');
328
+ }});
329
+ }});
330
+ </script>
331
+ </body>
332
+ </html>"""
333
+ return make_response(html)
334
+
335
+
336
+ class DeviceDashboard(Resource):
337
+ """
338
+ Gateway-served micrOS dashboard.
339
+
340
+ The HTML is loaded from micrOS/source/web/dashboard.html and only receives a
341
+ device-scoped BASE_URL so the original dashboard code calls the gateway.
342
+ """
343
+
344
+ def get(self, device):
345
+ dashboard_html = os.path.join(MICROS_WEBUI_PATH, 'dashboard.html')
346
+ try:
347
+ with open(dashboard_html, 'r', encoding='utf-8') as file:
348
+ html = file.read()
349
+ except OSError:
350
+ abort(404, description=f"micrOS dashboard resource not found: {dashboard_html}")
351
+
352
+ safe_device = escape(device)
353
+ rest_base = f"/dashboard/{quote(device, safe='')}"
354
+ html = html.replace(
355
+ '<head>',
356
+ '<head>\n <base href="/micros-web/">',
357
+ 1
358
+ )
359
+ html = html.replace(
360
+ '<title>microWebDashboard</title>',
361
+ f'<title>micrOS Gateway Dashboard - {safe_device}</title>',
362
+ 1
363
+ )
364
+ html = html.replace(
365
+ '<script src="uapi.js" ></script>',
366
+ '<script src="uapi.js" ></script>\n'
367
+ f' <script>BASE_URL = {json.dumps(rest_base)};</script>',
368
+ 1
369
+ )
370
+ html = html.replace(
371
+ '<h1> micrOS dashboard </h1>',
372
+ f'<h1> micrOS dashboard - {safe_device}</h1>',
373
+ 1
374
+ )
375
+ return make_response(html)
376
+
377
+
378
+ class DeviceDashboardRest(Resource):
379
+ """
380
+ Device REST-compatible endpoint backed by gateway socket commands.
381
+ """
382
+
383
+ @staticmethod
384
+ def device_info(device):
385
+ _, _, fid, uid = socketClient.ConnectionData.select_device(device_tag=device)
386
+ if uid is None:
387
+ abort(404, description=f"Unknown device: {device}")
388
+ version_call = SendCmd.runcmd(device, 'version')
389
+ version = version_call.get('response') or 'Unknown'
390
+ return jsonify({
391
+ 'result': {
392
+ 'micrOS': version,
393
+ 'node': fid,
394
+ 'auth': _gateway_auth_enabled(),
395
+ 'usr_endpoints': ('dashboard',)
396
+ },
397
+ 'state': _dashboard_state(version_call)
398
+ })
399
+
400
+ def get(self, device, cmd=''):
401
+ cmd_tokens = _parse_dashboard_rest_cmd(cmd)
402
+ if not cmd_tokens:
403
+ return self.device_info(device)
404
+
405
+ if cmd_tokens[-1] != '>json':
406
+ cmd_tokens.append('>json')
407
+ execution = SendCmd.runcmd(device, '+'.join(cmd_tokens))
408
+ return jsonify({
409
+ 'result': _decode_dashboard_result(execution.get('response')),
410
+ 'state': _dashboard_state(execution),
411
+ 'gateway': {
412
+ 'cmd': execution.get('cmd'),
413
+ 'device': execution.get('device'),
414
+ 'latency': execution.get('latency')
415
+ }
416
+ })
417
+
418
+
419
+ class DeviceDashboardEndpoint(Resource):
420
+ """
421
+ Gateway proxy for device web callbacks used by dashboard embed widgets.
422
+ """
423
+ ALLOWED_ENDPOINTS = ('cam/snapshot', 'cam/stream')
424
+
425
+ def get(self, device, endpoint):
426
+ endpoint = endpoint.strip('/')
427
+ if endpoint not in self.ALLOWED_ENDPOINTS:
428
+ abort(404, description=f"Unsupported dashboard endpoint: {endpoint}")
429
+
430
+ ip, _, _, uid = socketClient.ConnectionData.select_device(device_tag=device)
431
+ if uid is None:
432
+ abort(404, description=f"Unknown device: {device}")
433
+ device_url = f"http://{ip}/{endpoint}"
434
+ try:
435
+ upstream = requests.get(device_url, timeout=10, stream=True)
436
+ except Exception as e:
437
+ print(f"[GatewayDashboard] endpoint proxy error: {device_url}: {e}")
438
+ return f"Failed to retrieve device endpoint: {endpoint}", 502
439
+
440
+ if upstream.status_code != 200:
441
+ status = upstream.status_code
442
+ upstream.close()
443
+ return f"Device endpoint returned HTTP {status}: {endpoint}", status
444
+
445
+ content_type = upstream.headers.get('content-type', 'application/octet-stream')
446
+ if content_type.startswith('multipart/'):
447
+ def generate():
448
+ try:
449
+ for chunk in upstream.iter_content(chunk_size=4096):
450
+ if chunk:
451
+ yield chunk
452
+ finally:
453
+ upstream.close()
454
+ return Response(stream_with_context(generate()), content_type=content_type)
455
+
456
+ body = upstream.content
457
+ upstream.close()
458
+ return Response(body, content_type=content_type)
459
+
460
+
165
461
  class SendCmd(Resource):
166
462
  """
167
463
  http://127.0.0.1:5005/sendcmd/micr240ac4f679e8OS/rgb+toggle
@@ -214,7 +510,8 @@ class SendCmd(Resource):
214
510
  # FORMAT (strip) response
215
511
  if response is not None:
216
512
  response = [k.strip() for k in response.splitlines()] if '\n' in response else response.strip()
217
- return {'cmd': cmd_list, 'device': device_detailed, 'response': response, 'latency': diff}
513
+ return {'cmd': cmd_list, 'device': device_detailed, 'response': response, 'latency': diff, 'state': bool(status)}
514
+
218
515
 
219
516
  class ListDevices(Resource):
220
517
  DEVICE_CACHE = {}
@@ -629,6 +926,13 @@ api.add_resource(Hello, '/')
629
926
  api.add_resource(ListDevices, '/list/')
630
927
  api.add_resource(SearchDevices, '/search/')
631
928
  api.add_resource(DeviceStatus, '/status')
929
+ api.add_resource(DeviceDashboardGroup, '/dashboard')
930
+ api.add_resource(DeviceDashboard, '/dashboard/<string:device>')
931
+ api.add_resource(DeviceDashboardRest,
932
+ '/dashboard/<string:device>/rest',
933
+ '/dashboard/<string:device>/rest/',
934
+ '/dashboard/<string:device>/rest/<path:cmd>')
935
+ api.add_resource(DeviceDashboardEndpoint, '/dashboard/<string:device>/<path:endpoint>')
632
936
  api.add_resource(SendCmd, '/sendcmd/<string:device>/<string:cmd>')
633
937
  api.add_resource(Prometheus, '/metrics/<string:device>/<string:cmd>')
634
938
  api.add_resource(ForwardImg, '/image', '/image/<string:device>')
@@ -135,13 +135,19 @@ p {
135
135
  }
136
136
 
137
137
  .hero-actions,
138
- .meta,
139
138
  .toolbar {
140
139
  display: flex;
141
140
  gap: 12px;
142
141
  flex-wrap: wrap;
143
142
  }
144
143
 
144
+ .meta {
145
+ display: flex;
146
+ flex-direction: column;
147
+ align-items: stretch;
148
+ gap: 10px;
149
+ }
150
+
145
151
  .meta-chip {
146
152
  padding: 10px 14px;
147
153
  border-radius: 14px;
@@ -21,6 +21,7 @@
21
21
  </div>
22
22
  <div class="meta">
23
23
  <div class="meta-chip" id="camera_stream_link">Camera stream link</div>
24
+ <div class="meta-chip" id="dashboard_group_link">Dashboard group link</div>
24
25
  </div>
25
26
  </div>
26
27
  </section>
@@ -88,6 +89,8 @@
88
89
  <div class="endpoint"><code>/list</code><span>List known devices and sort them by online and offline state.</span></div>
89
90
  <div class="endpoint"><code>/search</code><span>Trigger device discovery on the current network.</span></div>
90
91
  <div class="endpoint"><code>/status</code><span>Collect node status data and system-level health details.</span></div>
92
+ <div class="endpoint"><code>/dashboard</code><span>Open the gateway dashboard group for every known device.</span></div>
93
+ <div class="endpoint"><code>/dashboard/&lt;device&gt;</code><span>Open a gateway-backed dashboard using the shared micrOS web resources.</span></div>
91
94
  <div class="endpoint"><code>/sendcmd/&lt;device&gt;/&lt;cmd&gt;</code><span>Send a command to a selected device. Use `+` instead of spaces.</span></div>
92
95
  <div class="endpoint"><code>/metrics/&lt;device&gt;/&lt;cmd&gt;</code><span>Expose command output in Prometheus scrape format.</span></div>
93
96
  <div class="endpoint"><code>/image/&lt;device&gt;</code><span>Fetch an ESP camera image. Without a device parameter, the endpoint lists cameras.</span></div>
@@ -175,7 +178,7 @@
175
178
 
176
179
  function update_device_links(fuid, color='var(--accent)', offline=false) {
177
180
  const className = offline ? 'offline' : '';
178
- var linkTemplate = `<a href="${proto}//${fuid}.local" target="_blank" class="${className}" style="background-color: ${color};">${fuid}</a>`;
181
+ var linkTemplate = `<a href="${apiBaseUrl}/dashboard?device=${encodeURIComponent(fuid)}" target="_blank" class="${className}" style="background-color: ${color};" title="Gateway dashboard group">${fuid}</a>`;
179
182
  deviceLinksHTML.push(linkTemplate);
180
183
  }
181
184
 
@@ -243,9 +246,22 @@
243
246
  elementToReplace.parentNode.replaceChild(link, elementToReplace);
244
247
  }
245
248
 
249
+ function create_dashboard_group_link() {
250
+ let apiUrl = `${apiBaseUrl}/dashboard`;
251
+ var link = document.createElement('a');
252
+ link.href = apiUrl;
253
+ link.textContent = 'Open Device Dashboards';
254
+ link.className = 'link-button';
255
+ link.target = '_blank';
256
+
257
+ var elementToReplace = document.getElementById('dashboard_group_link');
258
+ elementToReplace.parentNode.replaceChild(link, elementToReplace);
259
+ }
260
+
246
261
  set_gateway_ui_version();
247
262
  render_command_suggestions();
248
263
  create_camera_stream_link();
264
+ create_dashboard_group_link();
249
265
  restApi();
250
266
  </script>
251
267
  </body>
@@ -1,5 +1,6 @@
1
1
  import esp32
2
2
  from Common import syslog
3
+ from Types import resolve
3
4
 
4
5
  #########################
5
6
  # Application functions #
@@ -66,4 +67,6 @@ def help(widgets=False):
66
67
  (widgets=False) list of functions implemented by this application
67
68
  (widgets=True) list of widget json for UI generation
68
69
  """
69
- return 'hall', 'temp', 'touch', 'battery', 'NOTE: battery only available on tinypico'
70
+ return resolve(('hall',
71
+ 'GRAPH temp',
72
+ 'touch', 'battery', 'NOTE: battery only available on tinypico'), widgets=widgets)