micrOSDevToolKit 3.0.2__tar.gz → 3.0.3__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 (425) hide show
  1. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/MANIFEST.in +1 -3
  2. {microsdevtoolkit-3.0.2/micrOSDevToolKit.egg-info → microsdevtoolkit-3.0.3}/PKG-INFO +1 -1
  3. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Buffer.cpython-312.pyc +0 -0
  4. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Scheduler.cpython-312.pyc +0 -0
  5. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Time.cpython-312.pyc +0 -0
  6. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Web.cpython-312.pyc +0 -0
  7. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/urequests.cpython-312.pyc +0 -0
  8. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3/micrOSDevToolKit.egg-info}/PKG-INFO +1 -1
  9. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOSDevToolKit.egg-info/SOURCES.txt +3 -2
  10. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/setup.py +1 -1
  11. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/Gateway.py +30 -11
  12. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/MicrOSDevEnv.py +327 -61
  13. microsdevtoolkit-3.0.3/toolkit/gateway/gateway.css +422 -0
  14. microsdevtoolkit-3.0.3/toolkit/gateway/img_stream.html +128 -0
  15. microsdevtoolkit-3.0.3/toolkit/gateway/index.html +252 -0
  16. microsdevtoolkit-3.0.2/toolkit/img_stream.html +0 -126
  17. microsdevtoolkit-3.0.2/toolkit/index.html +0 -209
  18. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/LICENSE +0 -0
  19. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/README.md +0 -0
  20. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/devToolKit.py +0 -0
  21. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/__init__.py +0 -0
  22. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/.DS_Store +0 -0
  23. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
  24. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
  25. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
  26. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
  27. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
  28. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
  29. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
  30. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
  31. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
  32. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
  33. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
  34. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
  35. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
  36. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/media/__init__.py +0 -0
  37. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/media/dnd.png +0 -0
  38. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/media/logo.png +0 -0
  39. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/media/logo_mini.png +0 -0
  40. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/media/usb_port_icon.png +0 -0
  41. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/media/wifi_icon.png +0 -0
  42. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/__init__.py +0 -0
  43. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/board_commands.json +0 -0
  44. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/esp32-20251209-v1.27.0.bin +0 -0
  45. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/esp32c3-20251209-v1.27.0.bin +0 -0
  46. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/esp32c5-20251209-v1.27.0.bin +0 -0
  47. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/esp32c6-20251209-v1.27.0.bin +0 -0
  48. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
  49. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/esp32s2-20251209-v1.27.0.bin +0 -0
  50. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/esp32s2-LOLIN_MINI-20251209-v1.27.0.bin +0 -0
  51. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/esp32s3-4MBflash-20241129-v1.24.1.bin +0 -0
  52. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/esp32s3-8MBflash-20251209-v1.27.0.bin +0 -0
  53. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/esp32s3_spiram_oct-20251209-v1.27.0.bin +0 -0
  54. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/rpi-pico-w-20251209-v1.27.0.uf2 +0 -0
  55. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/micropython/tinypico-20251209-v1.27.0.bin +0 -0
  56. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +0 -0
  57. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/.DS_Store +0 -0
  58. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Auth.py +0 -0
  59. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Buffer.py +0 -0
  60. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Common.py +0 -0
  61. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Config.py +0 -0
  62. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Debug.py +0 -0
  63. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Espnow.py +0 -0
  64. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Files.py +0 -0
  65. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Hooks.py +0 -0
  66. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/InterConnect.py +0 -0
  67. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Interrupts.py +0 -0
  68. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Logger.py +0 -0
  69. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Network.py +0 -0
  70. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Notify.py +0 -0
  71. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Pacman.py +0 -0
  72. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Scheduler.py +0 -0
  73. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Server.py +0 -0
  74. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Shell.py +0 -0
  75. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Tasks.py +0 -0
  76. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Time.py +0 -0
  77. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Types.py +0 -0
  78. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/Web.py +0 -0
  79. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
  80. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Config.cpython-312.pyc +0 -0
  81. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Debug.cpython-312.pyc +0 -0
  82. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Files.cpython-312.pyc +0 -0
  83. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Hooks.cpython-312.pyc +0 -0
  84. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/InterConnect.cpython-312.pyc +0 -0
  85. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Interrupts.cpython-312.pyc +0 -0
  86. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
  87. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
  88. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Shell.cpython-312.pyc +0 -0
  89. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/Tasks.cpython-312.pyc +0 -0
  90. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/__pycache__/replhelper.cpython-312.pyc +0 -0
  91. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/config/_git.keep +0 -0
  92. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/helpers.py +0 -0
  93. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/main.py +0 -0
  94. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/micrOS.py +0 -0
  95. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/micrOSloader.py +0 -0
  96. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/microIO.py +0 -0
  97. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/IO_esp32.py +0 -0
  98. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/IO_esp32c3.py +0 -0
  99. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/IO_esp32c5.py +0 -0
  100. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/IO_esp32c6.py +0 -0
  101. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/IO_esp32s2.py +0 -0
  102. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/IO_esp32s3.py +0 -0
  103. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/IO_m5stamp.py +0 -0
  104. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/IO_qtpy.py +0 -0
  105. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/IO_rp2.py +0 -0
  106. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/IO_tinypico.py +0 -0
  107. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_L298N.py +0 -0
  108. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_L9110_DCmotor.py +0 -0
  109. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_OV2640.py +0 -0
  110. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_VL53L0X.py +0 -0
  111. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_aht10.py +0 -0
  112. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_bme280.py +0 -0
  113. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_buzzer.py +0 -0
  114. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_cct.py +0 -0
  115. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_cluster.py +0 -0
  116. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_co2.py +0 -0
  117. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_dht11.py +0 -0
  118. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_dht22.py +0 -0
  119. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_dimmer.py +0 -0
  120. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_distance.py +0 -0
  121. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_ds18.py +0 -0
  122. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_esp32.py +0 -0
  123. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_espnow.py +0 -0
  124. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_fileserver.py +0 -0
  125. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_gameOfLife.py +0 -0
  126. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_genIO.py +0 -0
  127. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_haptic.py +0 -0
  128. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_i2c.py +0 -0
  129. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_i2s_mic.py +0 -0
  130. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_ld2410.py +0 -0
  131. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_light_sensor.py +0 -0
  132. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_mh_z19c.py +0 -0
  133. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_neoeffects.py +0 -0
  134. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_neopixel.py +0 -0
  135. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_oled.py +0 -0
  136. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_oled_sh1106.py +0 -0
  137. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_oled_ui.py +0 -0
  138. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_pacman.py +0 -0
  139. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_presence.py +0 -0
  140. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_qmi8658.py +0 -0
  141. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_rencoder.py +0 -0
  142. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_rest.py +0 -0
  143. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_rgb.py +0 -0
  144. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_rgbcct.py +0 -0
  145. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_roboarm.py +0 -0
  146. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_robustness.py +0 -0
  147. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_rp2w.py +0 -0
  148. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_sdcard.py +0 -0
  149. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_servo.py +0 -0
  150. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_sound_event.py +0 -0
  151. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_stepper.py +0 -0
  152. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_switch.py +0 -0
  153. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_system.py +0 -0
  154. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_tcs3472.py +0 -0
  155. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_telegram.py +0 -0
  156. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_tinyrgb.py +0 -0
  157. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_trackball.py +0 -0
  158. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_veml7700.py +0 -0
  159. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/modules/LM_web.py +0 -0
  160. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/urequests.py +0 -0
  161. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/web/dashboard.html +0 -0
  162. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/web/editor.js +0 -0
  163. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/web/filesui.html +0 -0
  164. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/web/filesui.js +0 -0
  165. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/web/index.html +0 -0
  166. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/web/uapi.js +0 -0
  167. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/web/udashboard.js +0 -0
  168. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/web/ustyle.css +0 -0
  169. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/web/uwidgets.js +0 -0
  170. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/source/web/uwidgets_pro.js +0 -0
  171. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/utests/__init__.py +0 -0
  172. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/utests/test_buffer.py +0 -0
  173. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/utests/test_scheduler.py +0 -0
  174. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/utests/test_time.py +0 -0
  175. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/utests/test_urequests.py +0 -0
  176. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/utests/test_urequests_real_api.py +0 -0
  177. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOS/utests/test_web_engine.py +0 -0
  178. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
  179. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOSDevToolKit.egg-info/requires.txt +0 -0
  180. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
  181. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/setup.cfg +0 -0
  182. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/DevEnvCompile.py +0 -0
  183. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/DevEnvOTA.py +0 -0
  184. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/DevEnvUSB.py +0 -0
  185. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/LM_to_compile.dat +0 -0
  186. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/WebRepl.py +0 -0
  187. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/__init__.py +0 -0
  188. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/BackupRestore.py +0 -0
  189. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/CCTDemo.py +0 -0
  190. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/CCTTest.py +0 -0
  191. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/CamStream.py +0 -0
  192. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/CatGame.py +0 -0
  193. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/Dimmer.py +0 -0
  194. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/GetVersion.py +0 -0
  195. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
  196. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
  197. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
  198. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/PresenceTest.py +0 -0
  199. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/QMI8685_GYRO.py +0 -0
  200. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/RGBTest.py +0 -0
  201. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/RoboArm.py +0 -0
  202. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/SED_test.py +0 -0
  203. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/SensorsTest.py +0 -0
  204. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/SystemTest.py +0 -0
  205. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/Template_app.py +0 -0
  206. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/__init__.py +0 -0
  207. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/_app_base.py +0 -0
  208. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/_capture.py +0 -0
  209. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/_gyro_visualizer.py +0 -0
  210. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/_micPlotting.py +0 -0
  211. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
  212. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/dashboard_apps/uLightDemo.py +0 -0
  213. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/LocalMachine.py +0 -0
  214. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/MicrosFiles.py +0 -0
  215. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/Repository.py +0 -0
  216. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/SafeInput.py +0 -0
  217. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/SearchDevices.py +0 -0
  218. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/SerialDriverHandler.py +0 -0
  219. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/TerminalColors.py +0 -0
  220. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/__init__.py +0 -0
  221. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/macroScript.py +0 -0
  222. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/micrOSClient.py +0 -0
  223. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/micrOSClientHistory.py +0 -0
  224. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/lib/pip_package_installer.py +0 -0
  225. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/micrOSdashboard.py +0 -0
  226. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/micrOSlint.py +0 -0
  227. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/.DS_Store +0 -0
  228. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/IO_darwin.py +0 -0
  229. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
  230. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/aioespnow.cpython-312.pyc +0 -0
  231. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
  232. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
  233. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
  234. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
  235. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
  236. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
  237. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
  238. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
  239. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
  240. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
  241. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
  242. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
  243. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
  244. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
  245. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
  246. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
  247. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
  248. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
  249. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
  250. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
  251. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
  252. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/mip.cpython-312.pyc +0 -0
  253. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
  254. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
  255. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
  256. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
  257. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
  258. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
  259. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
  260. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
  261. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
  262. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
  263. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/sim_common.cpython-312.pyc +0 -0
  264. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
  265. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
  266. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
  267. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
  268. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
  269. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
  270. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
  271. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
  272. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
  273. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
  274. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
  275. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
  276. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
  277. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/urandom.cpython-312.pyc +0 -0
  278. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
  279. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
  280. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
  281. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
  282. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
  283. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
  284. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
  285. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
  286. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
  287. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
  288. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/aioespnow.py +0 -0
  289. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/camera.py +0 -0
  290. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/dht.py +0 -0
  291. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/dotstar.py +0 -0
  292. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/ds18x20.py +0 -0
  293. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/esp32.py +0 -0
  294. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/framebuf.py +0 -0
  295. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/machine.py +0 -0
  296. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/micropython.py +0 -0
  297. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/mip.py +0 -0
  298. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/neopixel.py +0 -0
  299. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/network.py +0 -0
  300. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/node_config.json +0 -0
  301. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/ntptime.py +0 -0
  302. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/onewire.py +0 -0
  303. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/sim_common.py +0 -0
  304. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/simgc.py +0 -0
  305. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/simulator.py +0 -0
  306. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/tinypico.py +0 -0
  307. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/uasyncio.py +0 -0
  308. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/uos.py +0 -0
  309. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/urandom.py +0 -0
  310. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/usocket.py +0 -0
  311. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/ussl.py +0 -0
  312. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/ustruct.py +0 -0
  313. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/utime.py +0 -0
  314. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/view01.jpg +0 -0
  315. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/view02.jpg +0 -0
  316. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/simulator_lib/webrepl.py +0 -0
  317. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/socketClient.py +0 -0
  318. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/user_data/.include +0 -0
  319. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/user_data/webhooks/generic.py +0 -0
  320. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/user_data/webhooks/macro.py +0 -0
  321. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/user_data/webhooks/template.macro +0 -0
  322. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/user_data/webhooks/template.py +0 -0
  323. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/__init__.py +0 -0
  324. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Auth.mpy +0 -0
  325. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Buffer.mpy +0 -0
  326. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Common.mpy +0 -0
  327. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Config.mpy +0 -0
  328. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Debug.mpy +0 -0
  329. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Espnow.mpy +0 -0
  330. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Files.mpy +0 -0
  331. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Hooks.mpy +0 -0
  332. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  333. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
  334. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Logger.mpy +0 -0
  335. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Network.mpy +0 -0
  336. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Notify.mpy +0 -0
  337. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Pacman.mpy +0 -0
  338. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
  339. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Server.mpy +0 -0
  340. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Shell.mpy +0 -0
  341. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Tasks.mpy +0 -0
  342. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Time.mpy +0 -0
  343. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Types.mpy +0 -0
  344. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/Web.mpy +0 -0
  345. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/_mpy.version +0 -0
  346. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/config/_git.keep +0 -0
  347. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/helpers.mpy +0 -0
  348. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/main.py +0 -0
  349. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/micrOS.mpy +0 -0
  350. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  351. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/microIO.mpy +0 -0
  352. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/IO_esp32.mpy +0 -0
  353. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/IO_esp32c3.mpy +0 -0
  354. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/IO_esp32c5.mpy +0 -0
  355. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/IO_esp32c6.mpy +0 -0
  356. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/IO_esp32s2.mpy +0 -0
  357. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/IO_esp32s3.mpy +0 -0
  358. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/IO_m5stamp.mpy +0 -0
  359. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/IO_qtpy.mpy +0 -0
  360. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/IO_rp2.mpy +0 -0
  361. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/IO_tinypico.mpy +0 -0
  362. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_L298N.mpy +0 -0
  363. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_L9110_DCmotor.py +0 -0
  364. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_OV2640.mpy +0 -0
  365. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_VL53L0X.py +0 -0
  366. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_aht10.mpy +0 -0
  367. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_bme280.mpy +0 -0
  368. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_buzzer.mpy +0 -0
  369. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
  370. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_cluster.mpy +0 -0
  371. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_co2.mpy +0 -0
  372. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_dht11.mpy +0 -0
  373. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_dht22.mpy +0 -0
  374. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
  375. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
  376. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_ds18.mpy +0 -0
  377. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_esp32.py +0 -0
  378. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_espnow.py +0 -0
  379. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_fileserver.mpy +0 -0
  380. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_gameOfLife.mpy +0 -0
  381. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_genIO.mpy +0 -0
  382. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_haptic.mpy +0 -0
  383. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_i2c.py +0 -0
  384. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
  385. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_ld2410.mpy +0 -0
  386. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_light_sensor.mpy +0 -0
  387. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_mh_z19c.py +0 -0
  388. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_neoeffects.mpy +0 -0
  389. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
  390. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_oled.mpy +0 -0
  391. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy +0 -0
  392. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
  393. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
  394. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
  395. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_qmi8658.py +0 -0
  396. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_rencoder.py +0 -0
  397. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
  398. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
  399. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_rgbcct.mpy +0 -0
  400. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
  401. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_robustness.py +0 -0
  402. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_rp2w.py +0 -0
  403. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_sdcard.py +0 -0
  404. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_servo.mpy +0 -0
  405. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_sound_event.mpy +0 -0
  406. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_stepper.mpy +0 -0
  407. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_switch.mpy +0 -0
  408. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_system.mpy +0 -0
  409. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_tcs3472.py +0 -0
  410. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
  411. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_tinyrgb.mpy +0 -0
  412. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_trackball.mpy +0 -0
  413. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_veml7700.mpy +0 -0
  414. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/modules/LM_web.mpy +0 -0
  415. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/urequests.mpy +0 -0
  416. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/web/dashboard.html +0 -0
  417. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/web/editor.js +0 -0
  418. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/web/filesui.html +0 -0
  419. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/web/filesui.js +0 -0
  420. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/web/index.html +0 -0
  421. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/web/uapi.js +0 -0
  422. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/web/udashboard.js +0 -0
  423. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/web/ustyle.css +0 -0
  424. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/web/uwidgets.js +0 -0
  425. {microsdevtoolkit-3.0.2 → microsdevtoolkit-3.0.3}/toolkit/workspace/precompiled/web/uwidgets_pro.js +0 -0
@@ -8,10 +8,9 @@ graft env/driver_cp210x/
8
8
 
9
9
  graft toolkit/simulator_lib
10
10
  graft toolkit/workspace/precompiled
11
+ graft toolkit/gateway
11
12
  recursive-include toolkit/user_data .include
12
13
  recursive-include toolkit/user_data/node_config_archive/.include
13
- include toolkit/index.html
14
- include toolkit/img_stream.html
15
14
  include toolkit/LM_to_compile.dat
16
15
  graft toolkit/user_data/webhooks/
17
16
 
@@ -20,4 +19,3 @@ include media/logo_mini.png
20
19
  include media/logo.png
21
20
  include media/wifi_icon.png
22
21
  include media/usb_port_icon.png
23
-
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 3.0.2
3
+ Version: 3.0.3
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 3.0.2
3
+ Version: 3.0.3
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
@@ -178,8 +178,6 @@ toolkit/LM_to_compile.dat
178
178
  toolkit/MicrOSDevEnv.py
179
179
  toolkit/WebRepl.py
180
180
  toolkit/__init__.py
181
- toolkit/img_stream.html
182
- toolkit/index.html
183
181
  toolkit/micrOSdashboard.py
184
182
  toolkit/micrOSlint.py
185
183
  toolkit/socketClient.py
@@ -208,6 +206,9 @@ toolkit/dashboard_apps/_gyro_visualizer.py
208
206
  toolkit/dashboard_apps/_micPlotting.py
209
207
  toolkit/dashboard_apps/_presencePlotting.py
210
208
  toolkit/dashboard_apps/uLightDemo.py
209
+ toolkit/gateway/gateway.css
210
+ toolkit/gateway/img_stream.html
211
+ toolkit/gateway/index.html
211
212
  toolkit/lib/LocalMachine.py
212
213
  toolkit/lib/MicrosFiles.py
213
214
  toolkit/lib/Repository.py
@@ -17,7 +17,7 @@ dependencies = ['adafruit-ampy', 'mpremote', 'esptool', 'ipaddress', 'netaddr',
17
17
 
18
18
  setuptools.setup(
19
19
  name='micrOSDevToolKit',
20
- version='3.0.2',
20
+ version='3.0.3',
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)',
@@ -3,12 +3,14 @@
3
3
  # using flask_restful
4
4
  import json
5
5
  import os
6
+ import ipaddress
6
7
  from flask import Flask, jsonify, Response, make_response, request, send_file, abort
7
8
  from flask_restful import Resource, Api
8
9
  import threading
9
10
  import time
10
11
  import concurrent.futures
11
12
  MYPATH = os.path.dirname(__file__)
13
+ WEBUI_PATH = os.path.join(MYPATH, 'gateway')
12
14
  import requests
13
15
  from io import BytesIO
14
16
  from socket import gethostbyname
@@ -35,6 +37,11 @@ API_URL_CACHE = ""
35
37
  # creating the flask app
36
38
  app = Flask(__name__)
37
39
 
40
+
41
+ @app.route('/gateway.css')
42
+ def gateway_css():
43
+ return send_file(os.path.join(WEBUI_PATH, 'gateway.css'), mimetype='text/css')
44
+
38
45
  # --------------------- AUTH BEGIN ------------------------- #
39
46
  ADDRESS_CACHE = {}
40
47
  try:
@@ -52,6 +59,8 @@ except Exception as e:
52
59
  print("[GW-AUTH][DISABLED] API_AUTH ENV VAR NOT FOUND.")
53
60
  __rest_usr_name, __rest_usr_pwd, ALLOWED_COUNTRY = None, None, []
54
61
 
62
+ if (__rest_usr_name and __rest_usr_pwd) and BasicAuth is None:
63
+ raise RuntimeError("API_AUTH is configured, but flask_basicauth is not available")
55
64
 
56
65
  if BasicAuth is not None and (__rest_usr_name and __rest_usr_pwd):
57
66
  basic_auth = BasicAuth(app)
@@ -62,15 +71,16 @@ if BasicAuth is not None and (__rest_usr_name and __rest_usr_pwd):
62
71
  #app.config['BASIC_AUTH_PASSWORD'] = f'{__rest_usr_pwd}{datetime.now().day}' # month-day (21)
63
72
 
64
73
  def _is_local_network():
65
- # Define local network IP prefixes (adjust as needed)
66
- local_network_prefixes = ['192.168.', '10.0.', '172.']
67
74
  #local_network_prefixes = []
68
75
  remote_ip = request.remote_addr
69
76
  print(f"\t[GW-AUTH] Check incoming IP address: {remote_ip}")
70
- for prefix in local_network_prefixes:
71
- if remote_ip.startswith(prefix):
72
- print(f"\t\t[GW-AUTH] SKIP AUTH - LOCAL NETWORK: {prefix} match with {remote_ip}")
77
+ try:
78
+ remote_addr = ipaddress.ip_address(remote_ip)
79
+ if remote_addr.is_private or remote_addr.is_loopback:
80
+ print(f"\t\t[GW-AUTH] SKIP AUTH - LOCAL NETWORK: {remote_ip}")
73
81
  return True, remote_ip
82
+ except ValueError:
83
+ print(f"\t\t[GW-AUTH] INVALID REMOTE IP: {remote_ip}")
74
84
  return False, remote_ip
75
85
 
76
86
 
@@ -142,7 +152,7 @@ class Hello(Resource):
142
152
  # is a GET request for this resource
143
153
 
144
154
  def get(self):
145
- index_html = os.path.join(MYPATH, 'index.html')
155
+ index_html = os.path.join(WEBUI_PATH, 'index.html')
146
156
  try:
147
157
  with open(index_html, 'r') as file:
148
158
  html = file.read()
@@ -185,6 +195,8 @@ class SendCmd(Resource):
185
195
  cmd_str = ' '.join(cmd_list)
186
196
 
187
197
  ip, port, fid, uid = socketClient.ConnectionData.select_device(device_tag=device)
198
+ if uid is None:
199
+ abort(404, description=f"Unknown device: {device}")
188
200
  device_detailed = (uid, ip, port, fid)
189
201
 
190
202
  print("[Gateway] Raw command params: --dev {} {}".format(uid, cmd_str))
@@ -322,7 +334,7 @@ class DeviceStatus(Resource):
322
334
 
323
335
  # Clean Alarms
324
336
  clean_alarms = DeviceStatus.CLEAN_MICROS_ALARMS
325
- log_data = alarms.get('log', None)
337
+ log_data = alarms.get('log', None) if isinstance(alarms, dict) else None
326
338
  if clean_alarms and log_data and len(log_data) > 0:
327
339
  _, _ = socketClient.run(['--dev', fuid.strip(), 'system alarms True'])
328
340
 
@@ -341,7 +353,7 @@ class DeviceStatus(Resource):
341
353
 
342
354
  # Get cpu temp
343
355
  _status4, cpu_temp = socketClient.run(['--dev', fuid.strip(), 'esp32 temp'])
344
- if 'temp' in cpu_temp:
356
+ if isinstance(cpu_temp, str) and 'temp' in cpu_temp:
345
357
  try:
346
358
  cpu_temp = cpu_temp.split(":")[1].strip()
347
359
  except:
@@ -352,6 +364,7 @@ class DeviceStatus(Resource):
352
364
  output_dev_struct = {}
353
365
  online_dev_cnt = 0
354
366
  device_struct = socketClient.ConnectionData.list_devices()
367
+ real_device_count = max(1, len(device_struct) - 2)
355
368
  dev_query_list = []
356
369
 
357
370
  # Start parallel status queries
@@ -362,7 +375,11 @@ class DeviceStatus(Resource):
362
375
 
363
376
  # Collect results from queries
364
377
  for query in dev_query_list:
365
- node_info = query.result()
378
+ try:
379
+ node_info = query.result()
380
+ except Exception as e:
381
+ print(f"Node status worker error: {e}")
382
+ continue
366
383
 
367
384
  if node_info is None:
368
385
  continue
@@ -372,7 +389,7 @@ class DeviceStatus(Resource):
372
389
  # Status calculation
373
390
  if status:
374
391
  online_dev_cnt += 1
375
- DeviceStatus.DEVS_AVAIL = round((online_dev_cnt / (len(device_struct)-2)) *100, 1)
392
+ DeviceStatus.DEVS_AVAIL = round((online_dev_cnt / real_device_count) * 100, 1)
376
393
  status = 'HEALTHY'
377
394
  else:
378
395
  status = 'UNHEALTHY'
@@ -574,7 +591,7 @@ class ImgStream(Resource):
574
591
  # is a GET request for this resource
575
592
 
576
593
  def get(self):
577
- index_html = os.path.join(MYPATH, 'img_stream.html')
594
+ index_html = os.path.join(WEBUI_PATH, 'img_stream.html')
578
595
  try:
579
596
  with open(index_html, 'r') as file:
580
597
  html = file.read()
@@ -620,6 +637,8 @@ api.add_resource(WebHook, '/webhooks', '/webhooks/<string:payload>', '/webhooks/
620
637
 
621
638
 
622
639
  def gateway(debug=True):
640
+ if (__rest_usr_name and __rest_usr_pwd) and BasicAuth is None:
641
+ raise RuntimeError("API_AUTH is set but flask_basicauth is unavailable. Refusing to start unsecured gateway.")
623
642
  global API_URL_CACHE
624
643
  API_URL_CACHE = f"http://{my_local_ip()}:5005"
625
644
  print("\n############### START MICROS GATEWAY ###############")
@@ -10,6 +10,264 @@ MYPATH = os.path.dirname(__file__)
10
10
  print("Module [MicrOSDevEnv] path: {} __package__: {} __name__: {} __file__: {}".format(
11
11
  sys.path[0], __package__, __name__, MYPATH))
12
12
 
13
+ SFUNCMAN_HTML_CSS = """
14
+ :root {
15
+ --bg: #0b1117;
16
+ --surface: rgba(16, 23, 31, 0.92);
17
+ --surface-soft: rgba(255, 255, 255, 0.03);
18
+ --text: #e7edf4;
19
+ --muted: #97a6b4;
20
+ --line: rgba(231, 237, 244, 0.08);
21
+ --accent: #4e9f75;
22
+ --accent-soft: rgba(78, 159, 117, 0.14);
23
+ --info: #7bc7db;
24
+ --shadow: 0 24px 80px rgba(0, 0, 0, 0.34);
25
+ --radius: 24px;
26
+ }
27
+
28
+ * {
29
+ box-sizing: border-box;
30
+ }
31
+
32
+ html {
33
+ scroll-behavior: smooth;
34
+ }
35
+
36
+ body {
37
+ margin: 0;
38
+ min-height: 100vh;
39
+ padding: 28px;
40
+ color: var(--text);
41
+ font-family: "Avenir Next", "Segoe UI", "Helvetica Neue", sans-serif;
42
+ overflow-x: hidden;
43
+ background:
44
+ radial-gradient(circle at top left, rgba(78, 159, 117, 0.08), transparent 28%),
45
+ radial-gradient(circle at top right, rgba(123, 199, 219, 0.08), transparent 22%),
46
+ linear-gradient(180deg, #0f1720 0%, var(--bg) 100%);
47
+ }
48
+
49
+ a {
50
+ color: inherit;
51
+ }
52
+
53
+ .page {
54
+ max-width: 1220px;
55
+ margin: 0 auto;
56
+ display: grid;
57
+ gap: 20px;
58
+ min-width: 0;
59
+ }
60
+
61
+ .panel {
62
+ background: var(--surface);
63
+ border: 1px solid var(--line);
64
+ border-radius: var(--radius);
65
+ box-shadow: var(--shadow);
66
+ backdrop-filter: blur(18px);
67
+ }
68
+
69
+ .hero {
70
+ padding: 28px;
71
+ display: flex;
72
+ justify-content: space-between;
73
+ gap: 20px;
74
+ flex-wrap: wrap;
75
+ align-items: center;
76
+ }
77
+
78
+ .brand {
79
+ display: flex;
80
+ gap: 16px;
81
+ align-items: center;
82
+ }
83
+
84
+ .brand img {
85
+ width: 72px;
86
+ height: 72px;
87
+ border-radius: 20px;
88
+ background: linear-gradient(145deg, #1c2631, #121a23);
89
+ box-shadow: inset 0 0 0 1px rgba(231, 237, 244, 0.06);
90
+ padding: 10px;
91
+ }
92
+
93
+ .eyebrow {
94
+ display: inline-flex;
95
+ padding: 7px 12px;
96
+ border-radius: 999px;
97
+ background: var(--accent-soft);
98
+ color: var(--accent);
99
+ font-size: 12px;
100
+ font-weight: 700;
101
+ letter-spacing: 0.08em;
102
+ text-transform: uppercase;
103
+ }
104
+
105
+ h1 {
106
+ margin: 10px 0 8px;
107
+ font-size: clamp(2rem, 5vw, 3.4rem);
108
+ line-height: 0.96;
109
+ letter-spacing: -0.04em;
110
+ }
111
+
112
+ h2 {
113
+ margin: 0 0 16px;
114
+ font-size: 1.2rem;
115
+ letter-spacing: -0.02em;
116
+ }
117
+
118
+ h3 {
119
+ margin: 0;
120
+ font-size: 1rem;
121
+ }
122
+
123
+ p {
124
+ margin: 0;
125
+ color: var(--muted);
126
+ line-height: 1.65;
127
+ }
128
+
129
+ .hero-links {
130
+ display: flex;
131
+ gap: 10px;
132
+ flex-wrap: wrap;
133
+ }
134
+
135
+ .hero-links a,
136
+ .shortcut-list a,
137
+ .package-links a {
138
+ text-decoration: none;
139
+ padding: 10px 14px;
140
+ border-radius: 999px;
141
+ background: rgba(255, 255, 255, 0.04);
142
+ border: 1px solid var(--line);
143
+ }
144
+
145
+ .section {
146
+ padding: 24px;
147
+ }
148
+
149
+ .section-copy {
150
+ display: grid;
151
+ gap: 10px;
152
+ }
153
+
154
+ .pinmap-list {
155
+ margin: 0;
156
+ padding-left: 18px;
157
+ color: var(--muted);
158
+ columns: 2;
159
+ }
160
+
161
+ .pinmap-list li {
162
+ margin: 0 0 8px;
163
+ }
164
+
165
+ .shortcut-list,
166
+ .package-links {
167
+ display: flex;
168
+ flex-wrap: wrap;
169
+ gap: 10px;
170
+ }
171
+
172
+ .module-grid {
173
+ display: grid;
174
+ gap: 20px;
175
+ min-width: 0;
176
+ }
177
+
178
+ .module-nav {
179
+ padding: 20px 24px;
180
+ }
181
+
182
+ .module-sections {
183
+ display: grid;
184
+ gap: 18px;
185
+ }
186
+
187
+ .module-card {
188
+ padding: 22px;
189
+ min-width: 0;
190
+ }
191
+
192
+ .module-card h2 a {
193
+ text-decoration: none;
194
+ }
195
+
196
+ .doc-table {
197
+ width: 100%;
198
+ border-collapse: collapse;
199
+ margin-top: 14px;
200
+ border: 1px solid var(--line);
201
+ border-radius: 16px;
202
+ overflow: hidden;
203
+ display: block;
204
+ max-width: 100%;
205
+ overflow-x: auto;
206
+ }
207
+
208
+ .doc-table th,
209
+ .doc-table td {
210
+ border: 1px solid var(--line);
211
+ padding: 12px 14px;
212
+ vertical-align: top;
213
+ text-align: left;
214
+ overflow-wrap: anywhere;
215
+ word-break: break-word;
216
+ }
217
+
218
+ .doc-table th {
219
+ width: 170px;
220
+ color: var(--text);
221
+ background: rgba(255, 255, 255, 0.04);
222
+ }
223
+
224
+ .doc-table td {
225
+ color: var(--muted);
226
+ background: rgba(255, 255, 255, 0.02);
227
+ }
228
+
229
+ .doc-table tr:nth-child(even) td,
230
+ .doc-table tr:nth-child(even) th {
231
+ background: rgba(255, 255, 255, 0.035);
232
+ }
233
+
234
+ .doc-table img {
235
+ max-width: 160px;
236
+ height: auto;
237
+ border-radius: 14px;
238
+ display: block;
239
+ }
240
+
241
+ code {
242
+ font-family: "SFMono-Regular", "Menlo", "Monaco", monospace;
243
+ }
244
+
245
+ @media (max-width: 900px) {
246
+ .pinmap-list {
247
+ columns: 1;
248
+ }
249
+ }
250
+
251
+ @media (max-width: 640px) {
252
+ body {
253
+ padding: 16px;
254
+ }
255
+
256
+ .hero,
257
+ .section,
258
+ .module-nav,
259
+ .module-card {
260
+ padding: 18px;
261
+ }
262
+
263
+ .doc-table th,
264
+ .doc-table td {
265
+ display: block;
266
+ width: 100%;
267
+ }
268
+ }
269
+ """
270
+
13
271
  try:
14
272
  from .DevEnvOTA import OTA
15
273
  from .DevEnvUSB import USB
@@ -210,23 +468,34 @@ class MicrOSDevTool(OTA, USB):
210
468
  [!] name dependency with micrOS internal manual provider
211
469
  """
212
470
 
213
- def _my_json_to_html(mod_func_dict):
471
+ def _my_json_to_html(mod_func_dict, title="Built-in Control Modules", description=None, section_id=None):
214
472
  import json2html
215
- table_attributes = 'border="1" cellspacing="1" cellpadding="5" width="80%"'
473
+ table_attributes = 'class="doc-table"'
216
474
 
217
475
  sorted_modules_w_data = dict(sorted(mod_func_dict.items(), key=lambda item: item[0].lower()))
218
- module_shortcuts = ' | '.join(
476
+ module_shortcuts = ''.join(
219
477
  f'<a href="#{mod_name.replace(" ", "_")}">{mod_name}</a>'
220
478
  for mod_name in sorted_modules_w_data)
221
- html_tables = module_shortcuts + "<br><hr><br>"
479
+ title_id_attr = f' id="{section_id}"' if section_id else ''
480
+ description_html = f'<p>{description}</p>' if description else ''
481
+ html_tables = (
482
+ f'<div class="panel module-nav"{title_id_attr}>'
483
+ f'<h2>{title}</h2>'
484
+ f'{description_html}'
485
+ f'<div class="shortcut-list">{module_shortcuts}</div>'
486
+ '</div>'
487
+ )
488
+ html_tables += '<div class="module-sections">'
222
489
  for key, value in sorted_modules_w_data.items():
223
490
  anchor = key.replace(" ", "_") # Replace spaces with underscores for a valid anchor
224
- html_tables += f'\n<br><br>\n<h2 id="{anchor}"><a href="#{anchor}">{key}</a></h2>\n'
491
+ html_tables += f'\n<section class="panel module-card">\n<h2 id="{anchor}"><a href="#{anchor}">{key}</a></h2>\n'
225
492
  html_tables += json2html.json2html.convert(json=value,
226
493
  table_attributes=table_attributes,
227
494
  clubbing=True,
228
495
  escape=False,
229
496
  encode=False)
497
+ html_tables += '\n</section>\n'
498
+ html_tables += '</div>'
230
499
  return html_tables
231
500
 
232
501
  if not os.path.isdir(self.sfuncman_output_path):
@@ -276,75 +545,72 @@ class MicrOSDevTool(OTA, USB):
276
545
  _url = hardcoded_manual["task"]["img"]
277
546
  hardcoded_manual['task']['img'] = f'<img src="{_url}" alt="tasks" height=150>'
278
547
  module_function_dict_html.update(hardcoded_manual)
279
- html_tables = _my_json_to_html(module_function_dict_html)
280
- html_tables_ext = _my_json_to_html(module_function_dict_html_ext)
548
+ html_tables = _my_json_to_html(
549
+ module_function_dict_html,
550
+ title="Built-in Control Modules",
551
+ description="Compact module index and generated function reference for the current micrOS repository state."
552
+ )
553
+ html_tables_ext = _my_json_to_html(
554
+ module_function_dict_html_ext,
555
+ title="External Modules",
556
+ description="Installable package documentation generated alongside built-in load modules.",
557
+ section_id="external-modules"
558
+ )
281
559
  if len(html_tables_ext) > 0:
282
- html_tables_ext = '<br><h2 id="external-modules"> External modules (packages).:</h2>' + html_tables_ext
283
-
284
- # http://corelangs.com/css/table/tablecolor.html
285
- # http://corelangs.com/css/table/tablecolor.html
560
+ html_tables_ext = f"\n{html_tables_ext}\n"
286
561
 
287
- html_body_start = """<!DOCTYPE html>
562
+ html_body_start = f"""<!DOCTYPE html>
288
563
  <html>
289
564
  <head>
290
565
  <title>micrOS Load Modules</title>
291
566
  <style>
292
- table,th,td
293
- {
294
- border:2px solid black;
295
- color:black;
296
- }
297
- table{border-collapse:collapse;width:80%;}
298
- td{height:40px;}
299
-
300
- tbody tr:nth-child(even){background: rgb(82, 122, 122);}
301
-
567
+ {SFUNCMAN_HTML_CSS}
302
568
  </style>
303
569
  </head>
304
570
 
305
- <body style="background-color:LightGray;">
306
- <h1 style="background-color: rgb(82, 122, 122);">
307
- <img src="https://github.com/BxNxM/micrOS/blob/master/media/logo_mini.png?raw=true" target="_blank" alt="{mod}" height=150>
308
- micrOS Load Modules
309
- </h1>
310
- <p>
311
- <b>Generated function manual with module doc strings.</b><br>
312
- <a href="https://github.com/BxNxM/micrOS/tree/master/micrOS/client/sfuncman" target="_blank">JSON formatted manuals</a>
313
- </p>
314
-
315
- <h2>
316
- microIO Pin-Mapping (names to integers)
317
- </h2>
318
- <b> Multi-platform pinmap IO handling feature - resolve pin number by name (tag)<br>
319
- <b>[i] Use 'module_name pinmap()' function to get pins on a runtime system (micrOS shell) and start DIY</b>
320
- <ul>
321
- <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_m5stamp.py" target="_blank">m5stamp</a></li>
322
- <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_tinypico.py" target="_blank">tinypico</a></li>
323
- <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_s3matrix.py" target="_blank">s3matrix</a></li>
324
-
325
- <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_esp32.py" target="_blank">esp32</a></li>
326
- <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_esp32s3.py" target="_blank">esp32s3</a></li>
327
- <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_esp32c3.py" target="_blank">esp32c3</a></li>
328
- <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_esp32c6.py" target="_blank">esp32c6</a></li>
329
- <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_esp32s2.py" target="_blank">esp32s2</a></li>
330
- <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_rp2.py" target="_blank">rp2 (experimental)</a></li>
331
- </ul>
332
-
333
- <h2>External package support</h2>
334
- <a href="#external-modules">Go to external packages</a>
335
- &nbsp;|&nbsp;
336
- <a href="https://github.com/BxNxM/micrOSPackages" target="_blank">
337
- View Packages on GitHub
338
- </a>
339
- <br>
340
-
341
- <h2> Built-in control modules for various peripheries.: </h2>
342
-
571
+ <body>
572
+ <main class="page">
573
+ <section class="panel hero">
574
+ <div class="brand">
575
+ <img src="https://github.com/BxNxM/micrOS/blob/master/media/logo_mini.png?raw=true" alt="micrOS logo">
576
+ <div>
577
+ <div class="eyebrow">Generated Manual</div>
578
+ <h1>micrOS Load Modules</h1>
579
+ <p>Static reference for built-in and external module functions, including pin maps, parameter shapes, and doc strings.</p>
580
+ </div>
581
+ </div>
582
+ <div class="hero-links">
583
+ <a href="https://github.com/BxNxM/micrOS/tree/master/micrOS/client/sfuncman" target="_blank">JSON Manuals</a>
584
+ <a href="#external-modules">External Packages</a>
585
+ <a href="https://github.com/BxNxM/micrOSPackages" target="_blank">Package Repo</a>
586
+ </div>
587
+ </section>
588
+
589
+ <section class="panel section">
590
+ <h2>microIO Pin Mapping</h2>
591
+ <div class="section-copy">
592
+ <p>Resolve logical pin names to integer values across supported boards.</p>
593
+ <p>Use <code>module_name pinmap()</code> on a runtime system to inspect the active pin mapping before wiring hardware.</p>
594
+ <ul class="pinmap-list">
595
+ <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_m5stamp.py" target="_blank">m5stamp</a></li>
596
+ <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_tinypico.py" target="_blank">tinypico</a></li>
597
+ <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_s3matrix.py" target="_blank">s3matrix</a></li>
598
+ <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_esp32.py" target="_blank">esp32</a></li>
599
+ <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_esp32s3.py" target="_blank">esp32s3</a></li>
600
+ <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_esp32c3.py" target="_blank">esp32c3</a></li>
601
+ <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_esp32c6.py" target="_blank">esp32c6</a></li>
602
+ <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_esp32s2.py" target="_blank">esp32s2</a></li>
603
+ <li><a href="https://github.com/BxNxM/micrOS/blob/master/micrOS/source/modules/IO_rp2.py" target="_blank">rp2 (experimental)</a></li>
604
+ </ul>
605
+ </div>
606
+ </section>
607
+
608
+ <div class="module-grid">
343
609
  """
344
610
  html_body_end = """</body>
345
611
  </html>"""
346
612
 
347
- html_page = html_body_start + html_tables + html_tables_ext + html_body_end
613
+ html_page = html_body_start + html_tables + html_tables_ext + "\n</div>\n</main>\n" + html_body_end
348
614
  # Write html to file
349
615
  with open(static_help_html_path, 'w') as f:
350
616
  f.write(html_page)