micrOSDevToolKit 3.7.1__tar.gz → 3.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {microsdevtoolkit-3.7.1/micrOSDevToolKit.egg-info → microsdevtoolkit-3.7.2}/PKG-INFO +6 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/README.md +5 -0
- microsdevtoolkit-3.7.1/micrOS/micropython/micrOS-esp32-1.28.0-3.7.0-0.bin → microsdevtoolkit-3.7.2/micrOS/micropython/micrOS-esp32-1.28.0-3.7.2.bin +0 -0
- microsdevtoolkit-3.7.1/micrOS/micropython/micrOS-esp32c3-1.28.0-3.7.0-0.bin → microsdevtoolkit-3.7.2/micrOS/micropython/micrOS-esp32c3-1.28.0-3.7.2.bin +0 -0
- microsdevtoolkit-3.7.1/micrOS/micropython/micrOS-esp32c6-1.28.0-3.7.0-0.bin → microsdevtoolkit-3.7.2/micrOS/micropython/micrOS-esp32c6-1.28.0-3.7.2.bin +0 -0
- microsdevtoolkit-3.7.1/micrOS/micropython/micrOS-esp32s3-1.28.0-3.7.0-0.bin → microsdevtoolkit-3.7.2/micrOS/micropython/micrOS-esp32s3-1.28.0-3.7.2.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +2 -2
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Shell.py +1 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_web.py +1 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/config.css +10 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/config.js +20 -3
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/config_packages.js +1 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/config_webapps.js +27 -12
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/filesui.js +12 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/uapi_widgets.js +4 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2/micrOSDevToolKit.egg-info}/PKG-INFO +6 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOSDevToolKit.egg-info/SOURCES.txt +4 -4
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/setup.py +1 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/DevEnvCompile.py +2 -2
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/DevEnvOTA.py +2 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/Gateway.py +96 -21
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/SystemTest.py +3 -2
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/micrOSdashboard.py +1 -1
- microsdevtoolkit-3.7.2/toolkit/simulator_lib/node_config.json +7 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/socketClient.py +13 -3
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Shell.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_web.mpy +0 -0
- microsdevtoolkit-3.7.2/toolkit/workspace/precompiled/web/config.css +1 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/config.js +6 -5
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/config_packages.js +1 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/config_webapps.js +6 -3
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/filesui.js +2 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/uapi_widgets.js +1 -1
- microsdevtoolkit-3.7.1/toolkit/simulator_lib/node_config.json +0 -7
- microsdevtoolkit-3.7.1/toolkit/workspace/precompiled/web/config.css +0 -1
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/LICENSE +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/MANIFEST.in +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/devToolKit.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/__init__.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/.DS_Store +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/media/__init__.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/media/dnd.png +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/media/logo.png +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/media/logo_mini.png +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/media/usb_port_icon.png +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/media/wifi_icon.png +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/__init__.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/board_commands.json +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32-20251209-v1.27.0.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32c3-20251209-v1.27.0.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32c5-20251209-v1.27.0.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32c6-20251209-v1.27.0.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32s2-20251209-v1.27.0.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32s2-LOLIN_MINI-20251209-v1.27.0.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32s3-4MBflash-20241129-v1.24.1.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32s3-8MBflash-20251209-v1.27.0.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/esp32s3_spiram_oct-20251209-v1.27.0.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/rpi-pico-w-20251209-v1.27.0.uf2 +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/micropython/tinypico-20251209-v1.27.0.bin +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/.DS_Store +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Auth.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Buffer.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Common.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Config.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Debug.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Files.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Hooks.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/InterConnect.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Interrupts.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Logger.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Network.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Notify.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Pacman.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Scheduler.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Server.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Tasks.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Time.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Types.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/Web.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Auth.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Buffer.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Config.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Debug.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Files.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Hooks.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/InterConnect.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Interrupts.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Network.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Notify.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Pacman.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Power.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Scheduler.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Shell.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Tasks.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Time.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Types.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/Web.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/micrOS.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/microIO.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/replhelper.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/__pycache__/urequests.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/config/_git.keep +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/helpers.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/main.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/mespnow.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/micrOS.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/micrOSloader.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/microIO.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32c3.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32c5.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32c6.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32s2.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_esp32s3.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_m5stamp.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_qtpy.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_rp2.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/IO_tinypico.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_aht10.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_bme280.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_buzzer.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_cct.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_cluster.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_dht11.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_dht22.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_dimmer.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_ds18.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_esp32.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_espnow.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_fileserver.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_gameOfLife.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_genIO.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_i2c.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_i2s_mic.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_neoeffects.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_neopixel.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_oled.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_oled_sh1106.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_oled_ui.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_pacman.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_presence.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_rencoder.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_rest.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_rgb.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_rgbcct.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_robustness.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_rp2w.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_sdcard.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_servo.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_stepper.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_switch.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_system.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_telegram.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/LM_tinyrgb.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_cct.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_dht11.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_dht22.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_dimmer.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_fileserver.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_neopixel.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_pacman.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_rencoder.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_rgb.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_rgbcct.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_roboarm.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_robustness.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_system.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/modules/__pycache__/LM_web.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/urequests.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/auth.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/config.html +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/config_schedler.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/dashboard.html +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/editor.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/editor_plugins.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/favicon.ico +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/filesui.html +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/index.html +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/uapi.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/ubashboard.css +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/udashboard.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/ustyle.css +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/uwidgets.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/source/web/uwidgets_pro.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/utests/__init__.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/utests/test_buffer.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/utests/test_config.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/utests/test_memory_policy.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/utests/test_pacman.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/utests/test_scheduler.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/utests/test_time.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/utests/test_urequests.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/utests/test_urequests_real_api.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOS/utests/test_web_engine.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOSDevToolKit.egg-info/requires.txt +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/setup.cfg +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/DevEnvUSB.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/LM_to_compile.dat +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/MicrOSDevEnv.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/WebRepl.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/__init__.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/BackupRestore.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/CCTDemo.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/CCTTest.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/CamStream.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/CatGame.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/Dimmer.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/GetVersion.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/PresenceTest.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/QMI8685_GYRO.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/RGBTest.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/RoboArm.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/SED_test.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/SensorsTest.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/Template_app.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/__init__.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/_app_base.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/_capture.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/_gyro_visualizer.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/_micPlotting.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/dashboard_apps/uLightDemo.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/gateway/gateway.css +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/gateway/img_stream.html +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/gateway/index.html +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/LocalMachine.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/MicrosFiles.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/Repository.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/SafeInput.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/SearchDevices.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/SerialDriverHandler.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/TerminalColors.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/__init__.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/macroScript.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/micrOSClient.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/micrOSClientHistory.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/lib/pip_package_installer.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/micrOSDocGen.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/micrOSImageBuilder.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/micrOSImageConfig.json +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/micrOSlint.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/.DS_Store +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/IO_darwin.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/Metrics.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/aioespnow.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/mip.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/sim_common.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/urandom.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/aioespnow.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/camera.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/dht.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/dotstar.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/ds18x20.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/esp32.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/framebuf.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/machine.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/micropython.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/mip.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/neopixel.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/network.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/ntptime.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/onewire.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/sim_common.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/simgc.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/simulator.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/tinypico.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/uasyncio.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/uos.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/urandom.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/usocket.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/ussl.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/ustruct.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/utime.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/view01.jpg +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/view02.jpg +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/simulator_lib/webrepl.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/user_data/.include +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/__pycache__/generic.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/__pycache__/macro.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/__pycache__/template.cpython-312.pyc +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/generic.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/macro.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/template.macro +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/user_data/webhooks/template.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/__init__.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Auth.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Buffer.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Common.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Config.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Debug.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Files.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Hooks.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Logger.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Network.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Notify.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Pacman.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Server.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Tasks.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Time.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Types.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/Web.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/_mpy.version +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/config/_git.keep +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/helpers.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/main.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/mespnow.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/micrOS.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/microIO.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32c3.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32c5.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32c6.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32s2.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_esp32s3.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_m5stamp.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_qtpy.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_rp2.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/IO_tinypico.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_aht10.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_bme280.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_buzzer.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_cluster.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_dht11.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_dht22.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_ds18.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_esp32.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_espnow.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_fileserver.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_gameOfLife.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_genIO.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_i2c.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_neoeffects.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_oled.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_rencoder.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_rgbcct.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_robustness.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_rp2w.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_sdcard.py +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_servo.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_stepper.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_switch.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_system.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/modules/LM_tinyrgb.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/urequests.mpy +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/auth.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/config.html +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/config_schedler.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/dashboard.html +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/editor.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/editor_plugins.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/favicon.ico +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/filesui.html +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/index.html +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/uapi.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/ubashboard.css +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/udashboard.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/ustyle.css +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/uwidgets.js +0 -0
- {microsdevtoolkit-3.7.1 → microsdevtoolkit-3.7.2}/toolkit/workspace/precompiled/web/uwidgets_pro.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: micrOSDevToolKit
|
|
3
|
-
Version: 3.7.
|
|
3
|
+
Version: 3.7.2
|
|
4
4
|
Summary: Development and deployment environment for micrOS, the diy micropython automation OS (IoT)
|
|
5
5
|
Home-page: https://github.com/BxNxM/micrOS
|
|
6
6
|
Author: Marcell Ban
|
|
@@ -176,6 +176,11 @@ devToolKit.py
|
|
|
176
176
|
3. Select **Deploy (USB)** and confirm the operation.
|
|
177
177
|
4. Wait for deployment to complete and the board to restart.
|
|
178
178
|
|
|
179
|
+
Current micrOS versions use `major.minor.patch` (for example, `3.7.2`).
|
|
180
|
+
DevToolKit also accepts the optional numeric `-revision` suffix used by legacy
|
|
181
|
+
boards and records (for example, `3.7.2-0`). Update checks compare the complete
|
|
182
|
+
version strings, so these two identifiers are treated as different versions.
|
|
183
|
+
|
|
179
184
|
On first deployment, DevToolKit may offer to install the Serial USB driver
|
|
180
185
|
required by your platform. The first toolkit launch installs optional GUI,
|
|
181
186
|
compiler, and media dependencies; keep internet access available until it
|
|
@@ -138,6 +138,11 @@ devToolKit.py
|
|
|
138
138
|
3. Select **Deploy (USB)** and confirm the operation.
|
|
139
139
|
4. Wait for deployment to complete and the board to restart.
|
|
140
140
|
|
|
141
|
+
Current micrOS versions use `major.minor.patch` (for example, `3.7.2`).
|
|
142
|
+
DevToolKit also accepts the optional numeric `-revision` suffix used by legacy
|
|
143
|
+
boards and records (for example, `3.7.2-0`). Update checks compare the complete
|
|
144
|
+
version strings, so these two identifiers are treated as different versions.
|
|
145
|
+
|
|
141
146
|
On first deployment, DevToolKit may offer to install the Serial USB driver
|
|
142
147
|
required by your platform. The first toolkit launch installs optional GUI,
|
|
143
148
|
compiler, and media dependencies; keep internet access available until it
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -103,7 +103,7 @@ def mounts_w_access(*args, **kwargs) -> dict:
|
|
|
103
103
|
return {}
|
|
104
104
|
|
|
105
105
|
######################## System Config ######################
|
|
106
|
-
_CFG_HIDE = ("hwuid", "guimeta", "socport", "version", "
|
|
106
|
+
_CFG_HIDE = ("hwuid", "guimeta", "socport", "version", "soctout")
|
|
107
107
|
|
|
108
108
|
def enable_config():
|
|
109
109
|
"""
|
|
@@ -7,6 +7,12 @@
|
|
|
7
7
|
--config-padding: 12px;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
.config-auth-hint {
|
|
11
|
+
color: #aaa;
|
|
12
|
+
font-size: 0.85rem;
|
|
13
|
+
margin: 8px 0 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
10
16
|
#configContainer {
|
|
11
17
|
display: flex;
|
|
12
18
|
flex-direction: row;
|
|
@@ -16,15 +22,17 @@
|
|
|
16
22
|
}
|
|
17
23
|
|
|
18
24
|
#configMenu {
|
|
25
|
+
flex-shrink: 0;
|
|
19
26
|
max-width: 30vw;
|
|
20
27
|
min-width: 12vw;
|
|
21
28
|
border-radius: 8px;
|
|
22
29
|
box-sizing: border-box;
|
|
23
|
-
padding: 8px 0;
|
|
30
|
+
padding: 8px 12px 8px 0;
|
|
24
31
|
background: transparent;
|
|
25
32
|
}
|
|
26
33
|
|
|
27
34
|
#configMenu p {
|
|
35
|
+
white-space: nowrap;
|
|
28
36
|
cursor: pointer;
|
|
29
37
|
padding: 0.2rem 0rem 0.2rem 1rem;
|
|
30
38
|
border-radius: 3px;
|
|
@@ -164,6 +172,7 @@
|
|
|
164
172
|
#configFields .config-package-install input { flex: 1 1 240px; width: auto; }
|
|
165
173
|
#configFields #packageCatalog { width: 180px; }
|
|
166
174
|
.config-package-info { width: var(--config-input-width); max-width: 100%; box-sizing: border-box; margin-bottom: 12px; overflow-wrap: anywhere; }
|
|
175
|
+
.config-package-install-output { width: var(--config-input-width); max-width: 100%; box-sizing: border-box; overflow-wrap: anywhere; }
|
|
167
176
|
.config-package-info p { margin: 0 0 8px; }
|
|
168
177
|
.config-package-info a { color: var(--config-label); }
|
|
169
178
|
.config-pin-info { margin-top: 20px; }
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const configCategories = {
|
|
2
2
|
'Device': {
|
|
3
3
|
icon: '📟',
|
|
4
|
-
keys: ['devfid', 'boothook', 'appwd', 'dbg', 'aioqueue', 'utc', 'boostmd']
|
|
4
|
+
keys: ['devfid', 'boothook', 'auth', 'appwd', 'dbg', 'aioqueue', 'utc', 'boostmd']
|
|
5
5
|
},
|
|
6
6
|
'Network': {
|
|
7
7
|
icon: '📡',
|
|
@@ -44,6 +44,7 @@ const configCategories = {
|
|
|
44
44
|
const configLabelMap = {
|
|
45
45
|
'devfid': 'Device name',
|
|
46
46
|
'boothook': 'Startup Actions',
|
|
47
|
+
'auth': 'Authentication',
|
|
47
48
|
'appwd': 'Admin Password',
|
|
48
49
|
'dbg': 'Debug Mode',
|
|
49
50
|
'aioqueue': 'Allowed Number of Tasks',
|
|
@@ -930,7 +931,10 @@ function loadConfigSection(category) {
|
|
|
930
931
|
const {script: src, render: renderer} = configCategories[category];
|
|
931
932
|
const container = document.getElementById('configFields');
|
|
932
933
|
// Base settings stay usable even when optional enhancements are unavailable.
|
|
933
|
-
|
|
934
|
+
const baseConfig = filterConfig(category);
|
|
935
|
+
// The raw task input is a fallback, not a placeholder for the scheduler UI.
|
|
936
|
+
if (category === 'Scheduler') delete baseConfig.crontasks;
|
|
937
|
+
renderConfigFields(baseConfig, category);
|
|
934
938
|
if (!isEditableConfigSection(category)) {
|
|
935
939
|
container.appendChild(textElement('h2', categoryTitle(category), 'config-heading-top'));
|
|
936
940
|
}
|
|
@@ -960,6 +964,10 @@ function loadConfigSection(category) {
|
|
|
960
964
|
})
|
|
961
965
|
.catch(err => {
|
|
962
966
|
if (!loading.isConnected) return;
|
|
967
|
+
if (category === 'Scheduler') {
|
|
968
|
+
renderConfigFields(filterConfig(category), category);
|
|
969
|
+
container.appendChild(loading);
|
|
970
|
+
}
|
|
963
971
|
loading.textContent = err.message;
|
|
964
972
|
container.appendChild(makeButton('Retry', () => loadConfigSection(category)));
|
|
965
973
|
});
|
|
@@ -1308,9 +1316,17 @@ function renderField(container, key, value) {
|
|
|
1308
1316
|
|
|
1309
1317
|
const label = textElement('label', configLabel(key) + ': ', 'config-label');
|
|
1310
1318
|
|
|
1319
|
+
const authHint = key === 'auth' && typeof value === 'boolean'
|
|
1320
|
+
? textElement('p', 'On-demand module loading is disabled for the REST API.', 'config-auth-hint')
|
|
1321
|
+
: null;
|
|
1322
|
+
if (authHint) authHint.hidden = !value;
|
|
1323
|
+
|
|
1311
1324
|
let input;
|
|
1312
1325
|
if (typeof value === 'boolean') {
|
|
1313
|
-
input = createBooleanToggle(key, value, nextValue =>
|
|
1326
|
+
input = createBooleanToggle(key, value, nextValue => {
|
|
1327
|
+
trackChange(key, nextValue);
|
|
1328
|
+
if (authHint) authHint.hidden = !nextValue;
|
|
1329
|
+
});
|
|
1314
1330
|
} else if (typeof value === 'number') {
|
|
1315
1331
|
input = document.createElement('input');
|
|
1316
1332
|
input.type = 'number';
|
|
@@ -1331,6 +1347,7 @@ function renderField(container, key, value) {
|
|
|
1331
1347
|
input.dataset.configKey = key;
|
|
1332
1348
|
wrapper.appendChild(label);
|
|
1333
1349
|
appendInputWithPasswordToggle(wrapper, input, key);
|
|
1350
|
+
if (authHint) wrapper.appendChild(authHint);
|
|
1334
1351
|
container.appendChild(wrapper);
|
|
1335
1352
|
}
|
|
1336
1353
|
|
|
@@ -122,6 +122,7 @@ function renderPackagesSection() {
|
|
|
122
122
|
installRow.appendChild(input);
|
|
123
123
|
|
|
124
124
|
const installResult = createInlineOutput();
|
|
125
|
+
installResult.classList.add('config-package-install-output');
|
|
125
126
|
|
|
126
127
|
const installBtn = makeButton('Install', () => {
|
|
127
128
|
const url = input.value.trim();
|
|
@@ -44,12 +44,16 @@ function renderWebAppsSection() {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
function storeWebAppsStatus(status) {
|
|
47
|
-
Object.keys(configData).filter(key => key.startsWith('web.fs_write_access.'))
|
|
48
|
-
.forEach(key => { delete configData[key]; });
|
|
49
47
|
Object.entries(status).forEach(([key, value]) => {
|
|
50
48
|
if (typeof value === 'boolean') configData['web.' + key] = value;
|
|
51
49
|
});
|
|
52
|
-
|
|
50
|
+
storeMountWriteAccess(status.fs_write_access || {});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function storeMountWriteAccess(status) {
|
|
54
|
+
Object.keys(configData).filter(key => key.startsWith('web.fs_write_access.'))
|
|
55
|
+
.forEach(key => { delete configData[key]; });
|
|
56
|
+
Object.entries(status).forEach(([mount, value]) => {
|
|
53
57
|
const name = mount.replace(/^\$/, '');
|
|
54
58
|
if (['modules', 'data', 'logs'].includes(name) && typeof value === 'boolean') {
|
|
55
59
|
configData['web.fs_write_access.' + name] = value;
|
|
@@ -81,21 +85,32 @@ async function updateWebApp(key, value) {
|
|
|
81
85
|
};
|
|
82
86
|
if (originalGroup) originalGroup.setWebAppsPending();
|
|
83
87
|
let errorMessage = '';
|
|
88
|
+
const mountPrefix = 'web.fs_write_access.';
|
|
89
|
+
const isMount = key.startsWith(mountPrefix);
|
|
84
90
|
try {
|
|
85
|
-
const mountPrefix = 'web.fs_write_access.';
|
|
86
|
-
const isMount = key.startsWith(mountPrefix);
|
|
87
91
|
const argument = key.slice(isMount ? mountPrefix.length : 4);
|
|
88
92
|
const route = isMount ? 'web/mounts_w_access/' : 'web/load/';
|
|
89
93
|
const auth = isMount ? '/pwd=' + restQuote(configData.appwd || '') : '';
|
|
90
94
|
const response = await restAPI(route + argument + '=' + (value ? 'True' : 'False') + auth, false);
|
|
91
95
|
if (!response || response.state !== true) throw new Error('Unable to update web app settings.');
|
|
92
|
-
|
|
93
|
-
|
|
96
|
+
if (isMount) {
|
|
97
|
+
if (!response.result || typeof response.result !== 'object' || Array.isArray(response.result)) {
|
|
98
|
+
throw new Error('Unable to confirm mount write access.');
|
|
99
|
+
}
|
|
100
|
+
storeMountWriteAccess(response.result);
|
|
101
|
+
} else {
|
|
102
|
+
configData[key] = value;
|
|
103
|
+
if (value && ['web.fileserver', 'web.fs_explore'].includes(key) &&
|
|
104
|
+
configData['web.fileserver'] && configData['web.fs_explore'] &&
|
|
105
|
+
!['modules', 'data', 'logs'].every(mount =>
|
|
106
|
+
typeof configData['web.fs_write_access.' + mount] === 'boolean')) {
|
|
107
|
+
const status = await getWebAppsStatus();
|
|
108
|
+
storeMountWriteAccess(status.fs_write_access || {});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
94
111
|
if (configData[key] !== value) throw new Error('Unable to confirm web app settings.');
|
|
95
112
|
} catch (error) {
|
|
96
113
|
errorMessage = error.message;
|
|
97
|
-
// Reconcile with the device if the write succeeded but confirmation failed.
|
|
98
|
-
try { storeWebAppsStatus(await getWebAppsStatus()); } catch (_) {}
|
|
99
114
|
} finally {
|
|
100
115
|
webAppUpdating = false;
|
|
101
116
|
const group = document.getElementById('configWebApps');
|
|
@@ -177,14 +192,14 @@ function renderWebApps(container) {
|
|
|
177
192
|
if (Object.keys(current).some(key => key.startsWith('web.fs_write_access.'))) {
|
|
178
193
|
options.appendChild(textElement('h4', 'Write access', 'config-table-title config-heading-top'));
|
|
179
194
|
options.appendChild(accessRow);
|
|
180
|
-
options.appendChild(textElement('small', 'Hint: Mount write access resets to
|
|
195
|
+
options.appendChild(textElement('small', 'Hint: Mount write access resets after reboot. Use command below to persist current settings.', 'config-hint'));
|
|
181
196
|
const command = textElement('code', '', 'config-hint');
|
|
182
197
|
const updateCommand = () => {
|
|
183
198
|
const values = configData;
|
|
184
199
|
const args = ['modules', 'data', 'logs']
|
|
185
200
|
.filter(mount => typeof values['web.fs_write_access.' + mount] === 'boolean')
|
|
186
201
|
.map(mount => `${mount}=${values['web.fs_write_access.' + mount] ? 'True' : 'False'}`);
|
|
187
|
-
command.textContent = 'web mounts_w_access ' + args.join(' ') + ' pwd
|
|
202
|
+
command.textContent = 'web mounts_w_access ' + args.join(' ') + ' pwd=$pwd';
|
|
188
203
|
};
|
|
189
204
|
updateCommand();
|
|
190
205
|
options.appendChild(command);
|
|
@@ -205,7 +220,7 @@ function renderWebApps(container) {
|
|
|
205
220
|
group.setAttribute('aria-busy', 'true');
|
|
206
221
|
};
|
|
207
222
|
|
|
208
|
-
// An in-flight update will
|
|
223
|
+
// An in-flight update will apply its result and render the current group.
|
|
209
224
|
if (webAppUpdating) {
|
|
210
225
|
group.setWebAppsPending();
|
|
211
226
|
return;
|
|
@@ -82,11 +82,12 @@ function itemRow(cls, name, meta) {
|
|
|
82
82
|
return d;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
const fileActions = {open: openFile, edit: editor, delete: deleteFile};
|
|
85
|
+
const fileActions = {open: openFile, edit: editor, download: downloadFile, delete: deleteFile};
|
|
86
86
|
const fileActionBar = document.createElement('span');
|
|
87
87
|
fileActionBar.className = 'file-actions';
|
|
88
88
|
fileActionBar.innerHTML = '<button type="button" data-action="open">📖 Open</button>' +
|
|
89
89
|
'<button type="button" data-action="edit">📄 Edit</button>' +
|
|
90
|
+
'<button type="button" data-action="download" title="Download" aria-label="Download">⬇</button>' +
|
|
90
91
|
'<button type="button" class="danger" data-action="delete" title="Delete" aria-label="Delete">♻</button>';
|
|
91
92
|
fileActionBar.onclick = e => {
|
|
92
93
|
e.stopPropagation();
|
|
@@ -289,6 +290,16 @@ function openFile() {
|
|
|
289
290
|
window.open(resource);
|
|
290
291
|
}
|
|
291
292
|
|
|
293
|
+
function downloadFile() {
|
|
294
|
+
if (!selected) return;
|
|
295
|
+
const link = document.createElement('a');
|
|
296
|
+
link.href = `/${selectedDir}/${selected}`.split('/').map(encodeURIComponent).join('/');
|
|
297
|
+
link.download = selected;
|
|
298
|
+
document.body.appendChild(link);
|
|
299
|
+
link.click();
|
|
300
|
+
link.remove();
|
|
301
|
+
}
|
|
302
|
+
|
|
292
303
|
function deleteFile() {
|
|
293
304
|
if (!selected) return;
|
|
294
305
|
if (!window.confirm(`Delete ${selected}?`)) return;
|
|
@@ -89,7 +89,10 @@ function restWidget(container='restWidget', opts={}) {
|
|
|
89
89
|
root.append(makeEl('h3', {}, [label]), form, url, responseBox, time);
|
|
90
90
|
if (REST_CONSOLE_CACHE) {restConsole(...REST_CONSOLE_CACHE, {url, response: responseBox, time});}
|
|
91
91
|
updateHint();
|
|
92
|
-
restAPICore('
|
|
92
|
+
restAPICore('', opts.modulesTimeout || 3000).then(({response}) => {
|
|
93
|
+
const authDisabled = response && response.result && response.result.auth === false;
|
|
94
|
+
return restAPICore(authDisabled ? 'modules all' : 'modules', opts.modulesTimeout || 3000);
|
|
95
|
+
}).then(({response}) => {
|
|
93
96
|
const commands = moduleCommandSuggestions(response);
|
|
94
97
|
if (!commands.length) {throw new Error('No module suggestions');}
|
|
95
98
|
return commands;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: micrOSDevToolKit
|
|
3
|
-
Version: 3.7.
|
|
3
|
+
Version: 3.7.2
|
|
4
4
|
Summary: Development and deployment environment for micrOS, the diy micropython automation OS (IoT)
|
|
5
5
|
Home-page: https://github.com/BxNxM/micrOS
|
|
6
6
|
Author: Marcell Ban
|
|
@@ -176,6 +176,11 @@ devToolKit.py
|
|
|
176
176
|
3. Select **Deploy (USB)** and confirm the operation.
|
|
177
177
|
4. Wait for deployment to complete and the board to restart.
|
|
178
178
|
|
|
179
|
+
Current micrOS versions use `major.minor.patch` (for example, `3.7.2`).
|
|
180
|
+
DevToolKit also accepts the optional numeric `-revision` suffix used by legacy
|
|
181
|
+
boards and records (for example, `3.7.2-0`). Update checks compare the complete
|
|
182
|
+
version strings, so these two identifiers are treated as different versions.
|
|
183
|
+
|
|
179
184
|
On first deployment, DevToolKit may offer to install the Serial USB driver
|
|
180
185
|
required by your platform. The first toolkit launch installs optional GUI,
|
|
181
186
|
compiler, and media dependencies; keep internet access available until it
|
|
@@ -36,10 +36,10 @@ micrOS/micropython/esp32s2-LOLIN_MINI-20251209-v1.27.0.bin
|
|
|
36
36
|
micrOS/micropython/esp32s3-4MBflash-20241129-v1.24.1.bin
|
|
37
37
|
micrOS/micropython/esp32s3-8MBflash-20251209-v1.27.0.bin
|
|
38
38
|
micrOS/micropython/esp32s3_spiram_oct-20251209-v1.27.0.bin
|
|
39
|
-
micrOS/micropython/micrOS-esp32-1.28.0-3.7.
|
|
40
|
-
micrOS/micropython/micrOS-esp32c3-1.28.0-3.7.
|
|
41
|
-
micrOS/micropython/micrOS-esp32c6-1.28.0-3.7.
|
|
42
|
-
micrOS/micropython/micrOS-esp32s3-1.28.0-3.7.
|
|
39
|
+
micrOS/micropython/micrOS-esp32-1.28.0-3.7.2.bin
|
|
40
|
+
micrOS/micropython/micrOS-esp32c3-1.28.0-3.7.2.bin
|
|
41
|
+
micrOS/micropython/micrOS-esp32c6-1.28.0-3.7.2.bin
|
|
42
|
+
micrOS/micropython/micrOS-esp32s3-1.28.0-3.7.2.bin
|
|
43
43
|
micrOS/micropython/rpi-pico-w-20251209-v1.27.0.uf2
|
|
44
44
|
micrOS/micropython/tinypico-20251209-v1.27.0.bin
|
|
45
45
|
micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json
|
|
@@ -17,7 +17,7 @@ dependencies = ['adafruit-ampy', 'mpremote', 'esptool', 'ipaddress', 'netaddr',
|
|
|
17
17
|
|
|
18
18
|
setuptools.setup(
|
|
19
19
|
name='micrOSDevToolKit',
|
|
20
|
-
version='3.7.
|
|
20
|
+
version='3.7.2',
|
|
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)',
|
|
@@ -160,7 +160,7 @@ class Compile:
|
|
|
160
160
|
# Get repo version
|
|
161
161
|
with open(os.path.join(self.micrOS_dir_path, 'Shell.py'), 'r') as f:
|
|
162
162
|
code_lines_string = f.read()
|
|
163
|
-
regex = r"\d
|
|
163
|
+
regex = r"^\s*MICROS_VERSION\s*=\s*['\"](\d+\.\d+\.\d+(?:-\d+)?)['\"]"
|
|
164
164
|
repo_version = re.findall(regex, code_lines_string, re.MULTILINE)[0]
|
|
165
165
|
return repo_version
|
|
166
166
|
|
|
@@ -343,7 +343,7 @@ class Compile:
|
|
|
343
343
|
# Get node version
|
|
344
344
|
if not self.dry_run and config_string is not None:
|
|
345
345
|
try:
|
|
346
|
-
regex = r"\d
|
|
346
|
+
regex = r"['\"]version['\"]\s*:\s*['\"](\d+\.\d+\.\d+(?:-\d+)?)['\"]"
|
|
347
347
|
version_on_node = re.findall(regex, config_string, re.MULTILINE)[0]
|
|
348
348
|
except Exception as e:
|
|
349
349
|
self.console("Obsolete node version - node version was not defined: {}".format(e), state='warn')
|
|
@@ -149,7 +149,8 @@ class OTA(Compile):
|
|
|
149
149
|
|
|
150
150
|
def _version_compare(self, repo_version, fuid):
|
|
151
151
|
"""
|
|
152
|
-
|
|
152
|
+
Version format: major.minor.patch, with optional legacy -revision suffix.
|
|
153
|
+
Compatibility grouping uses the first two components (major.minor).
|
|
153
154
|
In case of [major] change force full update (micrOS safe core: micrOSloadoer, etc.)
|
|
154
155
|
In case of [minor + patch] change install main micrOS resources + LMs
|
|
155
156
|
:param fuid: friendly unique id / unique id
|
|
@@ -265,21 +265,18 @@ class DeviceDashboardGroup(Resource):
|
|
|
265
265
|
css_classes = ['device-tab']
|
|
266
266
|
if fuid == selected_device:
|
|
267
267
|
css_classes.append('active')
|
|
268
|
+
current = ' aria-current="true"' if fuid == selected_device else ''
|
|
268
269
|
title = escape(f"{fuid} ({uid})")
|
|
269
270
|
links.append(
|
|
270
271
|
f'<a class="{" ".join(css_classes)}" href="{href}" target="deviceFrame" '
|
|
271
|
-
f'data-device="{escape(fuid)}" title="{title}">{escape(fuid)}</a>'
|
|
272
|
+
f'data-device="{escape(fuid)}" title="{title}"{current}>{escape(fuid)}</a>'
|
|
272
273
|
)
|
|
273
274
|
return f'<nav class="device-tabs" aria-label="{label}">' + ''.join(links) + '</nav>'
|
|
274
275
|
|
|
275
276
|
def get(self):
|
|
276
277
|
groups = self._device_groups()
|
|
277
|
-
|
|
278
|
-
|
|
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 ''
|
|
278
|
+
first_online = next(iter(sorted(groups['online'].values(), key=lambda data: str(data[2]).lower())), None)
|
|
279
|
+
first_device = str(first_online[2]) if first_online else ''
|
|
283
280
|
initial_src = f"/dashboard/{quote(first_device, safe='')}" if first_device else ''
|
|
284
281
|
online_tabs = self._device_tabs('online devices', groups['online'], first_device)
|
|
285
282
|
iframe = (
|
|
@@ -297,16 +294,21 @@ class DeviceDashboardGroup(Resource):
|
|
|
297
294
|
<title>micrOS Gateway Dashboards</title>
|
|
298
295
|
<link rel="stylesheet" href="/gateway.css">
|
|
299
296
|
<style>
|
|
300
|
-
.
|
|
297
|
+
body.page-gateway {{ padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px); }}
|
|
298
|
+
.dashboard-shell {{ width: 100%; min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; gap: 8px; padding: 10px 0; }}
|
|
301
299
|
.dashboard-top {{ overflow: hidden; }}
|
|
302
|
-
.device-tabs {{ display: flex; gap:
|
|
303
|
-
.device-tab {{ display: inline-flex; align-items: center; justify-content: center; min-height:
|
|
300
|
+
.device-tabs {{ display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; padding: 4px 4px 16px; }}
|
|
301
|
+
.device-tab {{ display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 10px 16px; border-radius: 8px; background: var(--surface-strong); color: var(--text); text-decoration: none; font-weight: 700; font-size: 14px; line-height: 1.3; text-align: center; white-space: nowrap; touch-action: manipulation; box-shadow: inset 0 0 0 1px var(--line); }}
|
|
302
|
+
.device-tab:focus-visible {{ outline: 2px solid var(--accent); outline-offset: 2px; }}
|
|
303
|
+
@media (hover: hover) {{
|
|
304
|
+
.device-tab:hover {{ box-shadow: inset 0 0 0 2px var(--accent); }}
|
|
305
|
+
}}
|
|
304
306
|
.device-tab.active {{ background: var(--accent); color: #101418; box-shadow: none; }}
|
|
305
307
|
.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; }}
|
|
308
|
+
#deviceFrame {{ display: block; width: 100%; min-height: calc(100vh - 56px); border: 1px solid var(--line); border-radius: 8px; background: #000; }}
|
|
307
309
|
.empty-row, .empty-panel {{ color: var(--muted); padding: 12px; border: 1px solid var(--line); border-radius: 8px; }}
|
|
308
310
|
@media (max-width: 820px) {{
|
|
309
|
-
.dashboard-shell {{ padding: 6px; }}
|
|
311
|
+
.dashboard-shell {{ padding: 6px 0; }}
|
|
310
312
|
#deviceFrame {{ min-height: calc(100vh - 48px); }}
|
|
311
313
|
}}
|
|
312
314
|
</style>
|
|
@@ -321,12 +323,90 @@ class DeviceDashboardGroup(Resource):
|
|
|
321
323
|
</section>
|
|
322
324
|
</main>
|
|
323
325
|
<script>
|
|
324
|
-
document.
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
326
|
+
const frame = document.getElementById('deviceFrame');
|
|
327
|
+
let frameObserver;
|
|
328
|
+
let resizeRequest;
|
|
329
|
+
function fitDashboard() {{
|
|
330
|
+
cancelAnimationFrame(resizeRequest);
|
|
331
|
+
resizeRequest = requestAnimationFrame(() => {{
|
|
332
|
+
const doc = frame.contentDocument;
|
|
333
|
+
if (!doc || !doc.body) return;
|
|
334
|
+
const style = frame.contentWindow.getComputedStyle(doc.body);
|
|
335
|
+
const height = Math.ceil(doc.body.getBoundingClientRect().height
|
|
336
|
+
+ (parseFloat(style.marginTop) || 0)
|
|
337
|
+
+ (parseFloat(style.marginBottom) || 0));
|
|
338
|
+
// Include the frame border when sizing its border box.
|
|
339
|
+
frame.style.height = `${{height + 2}}px`;
|
|
340
|
+
}});
|
|
341
|
+
}}
|
|
342
|
+
if (frame) {{
|
|
343
|
+
frame.addEventListener('load', () => {{
|
|
344
|
+
if (frameObserver) frameObserver.disconnect();
|
|
345
|
+
const doc = frame.contentDocument;
|
|
346
|
+
if (!doc || !doc.body) return;
|
|
347
|
+
// Remove viewport height floors only inside the embedded page.
|
|
348
|
+
const style = doc.createElement('style');
|
|
349
|
+
style.textContent = 'html, body {{ min-height: 0; }} html {{ overflow-y: hidden; }}';
|
|
350
|
+
doc.head.appendChild(style);
|
|
351
|
+
frameObserver = new ResizeObserver(fitDashboard);
|
|
352
|
+
frameObserver.observe(doc.body);
|
|
353
|
+
fitDashboard();
|
|
354
|
+
}});
|
|
355
|
+
window.addEventListener('resize', fitDashboard);
|
|
356
|
+
}}
|
|
357
|
+
const deviceTabs = Array.from(document.querySelectorAll('.device-tab'));
|
|
358
|
+
const selectionKey = 'micros.gateway.dashboard.device';
|
|
359
|
+
function centerDevice(link) {{
|
|
360
|
+
const toolbar = link.parentElement;
|
|
361
|
+
toolbar.scrollLeft = link.offsetLeft - toolbar.offsetLeft
|
|
362
|
+
- (toolbar.clientWidth - link.offsetWidth) / 2;
|
|
363
|
+
}}
|
|
364
|
+
function selectDevice(link, save = true) {{
|
|
365
|
+
deviceTabs.forEach(item => {{
|
|
366
|
+
item.classList.remove('active');
|
|
367
|
+
item.removeAttribute('aria-current');
|
|
368
|
+
}});
|
|
369
|
+
link.classList.add('active');
|
|
370
|
+
link.setAttribute('aria-current', 'true');
|
|
371
|
+
if (save) {{
|
|
372
|
+
try {{ localStorage.setItem(selectionKey, link.dataset.device); }} catch (error) {{}}
|
|
373
|
+
}}
|
|
374
|
+
requestAnimationFrame(() => centerDevice(link));
|
|
375
|
+
}}
|
|
376
|
+
deviceTabs.forEach(link => {{
|
|
377
|
+
link.addEventListener('click', event => {{
|
|
378
|
+
if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) return;
|
|
379
|
+
selectDevice(link);
|
|
328
380
|
}});
|
|
329
381
|
}});
|
|
382
|
+
let savedDevice;
|
|
383
|
+
try {{ savedDevice = localStorage.getItem(selectionKey); }} catch (error) {{}}
|
|
384
|
+
const dashboardUrl = new URL(window.location.href);
|
|
385
|
+
const requestedDevice = dashboardUrl.searchParams.get('device');
|
|
386
|
+
const requestedTab = deviceTabs.find(link => link.dataset.device === requestedDevice);
|
|
387
|
+
const initialTab = requestedTab
|
|
388
|
+
|| deviceTabs.find(link => link.dataset.device === savedDevice)
|
|
389
|
+
|| deviceTabs[0];
|
|
390
|
+
if (initialTab && frame) {{
|
|
391
|
+
if (frame.getAttribute('src') !== initialTab.getAttribute('href')) {{
|
|
392
|
+
frame.src = initialTab.getAttribute('href');
|
|
393
|
+
}}
|
|
394
|
+
selectDevice(initialTab, Boolean(requestedTab));
|
|
395
|
+
if (dashboardUrl.searchParams.has('device')) {{
|
|
396
|
+
dashboardUrl.searchParams.delete('device');
|
|
397
|
+
window.history.replaceState(window.history.state, '', dashboardUrl.href);
|
|
398
|
+
}}
|
|
399
|
+
if (document.fonts) {{
|
|
400
|
+
document.fonts.ready.then(() => {{
|
|
401
|
+
const active = deviceTabs.find(link => link.classList.contains('active'));
|
|
402
|
+
if (active) centerDevice(active);
|
|
403
|
+
}});
|
|
404
|
+
}}
|
|
405
|
+
window.addEventListener('resize', () => {{
|
|
406
|
+
const active = deviceTabs.find(link => link.classList.contains('active'));
|
|
407
|
+
if (active) centerDevice(active);
|
|
408
|
+
}});
|
|
409
|
+
}}
|
|
330
410
|
</script>
|
|
331
411
|
</body>
|
|
332
412
|
</html>"""
|
|
@@ -367,11 +447,6 @@ class DeviceDashboard(Resource):
|
|
|
367
447
|
f' <script>BASE_URL = {json.dumps(rest_base)};</script>',
|
|
368
448
|
1
|
|
369
449
|
)
|
|
370
|
-
html = html.replace(
|
|
371
|
-
'<h1> micrOS dashboard </h1>',
|
|
372
|
-
f'<h1> micrOS dashboard - {safe_device}</h1>',
|
|
373
|
-
1
|
|
374
|
-
)
|
|
375
450
|
return make_response(html)
|
|
376
451
|
|
|
377
452
|
|
|
@@ -5,6 +5,7 @@ import sys
|
|
|
5
5
|
import time
|
|
6
6
|
import socket
|
|
7
7
|
import ast
|
|
8
|
+
import re
|
|
8
9
|
from pprint import pprint
|
|
9
10
|
try:
|
|
10
11
|
from ._app_base import AppBase
|
|
@@ -96,7 +97,7 @@ def shell_cmds_check():
|
|
|
96
97
|
cmd_list = ['version']
|
|
97
98
|
output = CLIENT.execute(cmd_list)
|
|
98
99
|
if output[0]:
|
|
99
|
-
if not ('
|
|
100
|
+
if not re.fullmatch(r'\d+\.\d+\.\d+(?:-\d+)?', output[1].strip()):
|
|
100
101
|
return False, f"{info}version: {output[1]}"
|
|
101
102
|
cmd_list = ['help']
|
|
102
103
|
output = CLIENT.execute(cmd_list)
|
|
@@ -273,7 +274,7 @@ def micrOS_get_version():
|
|
|
273
274
|
cmd_list = ['version']
|
|
274
275
|
output = CLIENT.execute(cmd_list)
|
|
275
276
|
if output[0]:
|
|
276
|
-
if
|
|
277
|
+
if re.fullmatch(r'\d+\.\d+\.\d+(?:-\d+)?', output[1].strip()):
|
|
277
278
|
return True, f"{info} v:{output[1].strip()}"
|
|
278
279
|
_add_metrics('version', output[1])
|
|
279
280
|
return False, f"{info} out: {output[1]}"
|
|
@@ -568,7 +568,7 @@ class HeaderInfo:
|
|
|
568
568
|
def version_label(self):
|
|
569
569
|
width = 115
|
|
570
570
|
repo_version, _ = self.devtool_obj.get_micrOS_version()
|
|
571
|
-
label = QLabel("Version: {}".format(repo_version), self.parent_obj)
|
|
571
|
+
label = QLabel(" Version: {}".format(repo_version), self.parent_obj)
|
|
572
572
|
label.setGeometry(self.parent_obj.width - width - 20, 10, width, 40)
|
|
573
573
|
label.setStyleSheet("background-color : gray; color: {}; border: 1px solid black;".format(micrOSGUI.TEXTCOLOR))
|
|
574
574
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{"auth": false,
|
|
2
|
+
"devfid": "simulator",
|
|
3
|
+
"appwd": "ADmin123",
|
|
4
|
+
"webui": true,
|
|
5
|
+
"boothook": "web load dashboard=True fileserver=True fs_explore=True; fileserver mounts_write_access modules=True logs=True pwd=$pwd; neopixel load; #telegram load '6185435843:AAH71wEyoOil8bRKecQHp4zazTQ_MmE7bvE' &; #telegram receiver_loop &2000",
|
|
6
|
+
"aioqueue": 4,
|
|
7
|
+
"webui_max_con": 10}
|