micrOSDevToolKit 2.22.0__tar.gz → 2.22.4__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-2.22.0/micrOSDevToolKit.egg-info → microsdevtoolkit-2.22.4}/PKG-INFO +14 -7
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/README.md +13 -6
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +21 -17
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Common.py +14 -6
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Espnow.py +18 -13
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/InterConnect.py +1 -1
- microsdevtoolkit-2.22.4/micrOS/source/Notify.py +102 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Pacman.py +118 -28
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Shell.py +1 -1
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Types.py +51 -7
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/__pycache__/Debug.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_bme280.py +1 -1
- microsdevtoolkit-2.22.4/micrOS/source/modules/LM_mh_z19c.py +198 -0
- microsdevtoolkit-2.22.4/micrOS/source/modules/LM_mqtt_client.py +279 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_pacman.py +34 -13
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_system.py +16 -1
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_telegram.py +25 -30
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4/micrOSDevToolKit.egg-info}/PKG-INFO +14 -7
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOSDevToolKit.egg-info/SOURCES.txt +2 -7
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/setup.py +1 -1
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/MicrOSDevEnv.py +10 -7
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/mip.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/machine.py +9 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/mip.py +5 -1
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/simulator.py +8 -0
- microsdevtoolkit-2.22.4/toolkit/workspace/precompiled/Common.mpy +0 -0
- microsdevtoolkit-2.22.4/toolkit/workspace/precompiled/Espnow.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
- microsdevtoolkit-2.22.4/toolkit/workspace/precompiled/Notify.mpy +0 -0
- microsdevtoolkit-2.22.4/toolkit/workspace/precompiled/Pacman.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Shell.mpy +0 -0
- microsdevtoolkit-2.22.4/toolkit/workspace/precompiled/Types.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_bme280.mpy +0 -0
- microsdevtoolkit-2.22.4/toolkit/workspace/precompiled/modules/LM_mh_z19c.py +198 -0
- microsdevtoolkit-2.22.4/toolkit/workspace/precompiled/modules/LM_mqtt_client.mpy +0 -0
- microsdevtoolkit-2.22.4/toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_system.mpy +0 -0
- microsdevtoolkit-2.22.4/toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
- microsdevtoolkit-2.22.0/micrOS/source/Notify.py +0 -81
- microsdevtoolkit-2.22.0/micrOS/source/modules/LM_mqtt_client.py +0 -254
- microsdevtoolkit-2.22.0/toolkit/simulator_lib/mqtt_as/Note.md +0 -15
- microsdevtoolkit-2.22.0/toolkit/simulator_lib/mqtt_as/__init__.py +0 -950
- microsdevtoolkit-2.22.0/toolkit/simulator_lib/mqtt_as/__pycache__/__init__.cpython-312.pyc +0 -0
- microsdevtoolkit-2.22.0/toolkit/simulator_lib/mqtt_as/clean.py +0 -69
- microsdevtoolkit-2.22.0/toolkit/simulator_lib/mqtt_as/mqtt_v5_properties.py +0 -239
- microsdevtoolkit-2.22.0/toolkit/simulator_lib/mqtt_as/range.py +0 -90
- microsdevtoolkit-2.22.0/toolkit/simulator_lib/mqtt_as/range_ex.py +0 -119
- microsdevtoolkit-2.22.0/toolkit/workspace/precompiled/Common.mpy +0 -0
- microsdevtoolkit-2.22.0/toolkit/workspace/precompiled/Espnow.mpy +0 -0
- microsdevtoolkit-2.22.0/toolkit/workspace/precompiled/Notify.mpy +0 -0
- microsdevtoolkit-2.22.0/toolkit/workspace/precompiled/Pacman.mpy +0 -0
- microsdevtoolkit-2.22.0/toolkit/workspace/precompiled/Types.mpy +0 -0
- microsdevtoolkit-2.22.0/toolkit/workspace/precompiled/modules/LM_mqtt_client.mpy +0 -0
- microsdevtoolkit-2.22.0/toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
- microsdevtoolkit-2.22.0/toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/LICENSE +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/MANIFEST.in +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/devToolKit.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/__init__.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/.DS_Store +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/media/__init__.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/media/dnd.png +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/media/logo.png +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/media/logo_mini.png +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/media/usb_port_icon.png +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/media/wifi_icon.png +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/__init__.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/micropython/esp32-20241129-v1.24.1.bin +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/micropython/esp32c3-20240222-v1.22.2.bin +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/micropython/esp32c6-GENERIC-20250415-v1.25.0.bin +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/micropython/esp32s2-20240602-v1.23.0.bin +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/micropython/esp32s2-LOLIN_MINI-20240602-v1.23.0.bin +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/micropython/esp32s3-4MBflash-20241129-v1.24.1.bin +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/micropython/esp32s3-8MBflash-20241129-v1.24.1.bin +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/micropython/esp32s3_spiram_oct-20241129-v1.24.1.bin +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/micropython/rpi-pico-w-20241129-v1.24.1.uf2 +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/micropython/tinypico-20241129-v1.24.1.bin +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/.DS_Store +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Config.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Debug.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Files.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Hooks.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Interrupts.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Logger.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Network.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Scheduler.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Server.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Tasks.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Time.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/Web.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/__pycache__/Files.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/__pycache__/Shell.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/__pycache__/replhelper.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/config/_git.keep +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/helpers.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/main.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/micrOS.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/micrOSloader.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/microIO.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/IO_esp32.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/IO_esp32c3.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/IO_esp32c6.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/IO_esp32s2.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/IO_esp32s3.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/IO_m5stamp.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/IO_qtpy.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/IO_rp2.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/IO_s3matrix.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/IO_tinypico.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_L298N.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_L9110_DCmotor.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_OV2640.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_VL53L0X.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_aht10.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_buzzer.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_cct.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_cluster.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_co2.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_dashboard_be.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_dht11.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_dht22.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_dimmer.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_distance.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_ds18.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_esp32.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_espnow.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_gameOfLife.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_genIO.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_haptic.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_i2c.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_i2s_mic.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_keychain.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_ld2410.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_light_sensor.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_neoeffects.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_neomatrix.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_neopixel.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_oled.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_oled_sh1106.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_oled_ui.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_oledui.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_presence.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_qmi8658.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_rencoder.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_rest.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_rgb.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_rgbcct.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_roboarm.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_robustness.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_rp2w.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_sdcard.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_servo.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_sound_event.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_stepper.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_switch.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_tcs3472.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_tinyrgb.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_trackball.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/modules/LM_veml7700.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/urequests.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/web/dashboard.html +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/web/index.html +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/web/matrix_draw.html +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/web/uapi.js +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/web/udashboard.js +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/web/ustyle.css +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/web/uwidgets.js +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOS/source/web/uwidgets_pro.js +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOSDevToolKit.egg-info/requires.txt +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/setup.cfg +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/DevEnvCompile.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/DevEnvOTA.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/DevEnvUSB.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/Gateway.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/LM_to_compile.dat +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/WebRepl.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/__init__.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/BackupRestore.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/CCTDemo.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/CCTTest.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/CamStream.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/CatGame.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/Dimmer.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/GetVersion.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/PresenceTest.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/QMI8685_GYRO.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/RGBTest.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/RoboArm.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/SED_test.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/SensorsTest.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/SystemTest.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/Template_app.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/__init__.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/_app_base.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/_capture.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/_gyro_visualizer.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/_micPlotting.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/dashboard_apps/uLightDemo.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/img_stream.html +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/index.html +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/LocalMachine.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/MicrosFiles.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/Repository.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/SafeInput.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/SearchDevices.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/SerialDriverHandler.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/TerminalColors.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/__init__.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/macroScript.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/micrOSClient.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/micrOSClientHistory.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/lib/pip_package_installer.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/micrOSdashboard.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/micrOSlint.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/.DS_Store +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/IO_darwin.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/aioespnow.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/sim_console.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/sim_console.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/aioespnow.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/camera.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/dht.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/dotstar.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/ds18x20.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/esp32.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/framebuf.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/micropython.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/neopixel.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/network.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/node_config.json +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/ntptime.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/onewire.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/sim_console.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/simgc.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/tinypico.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/uasyncio.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/uos.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/usocket.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/ussl.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/ustruct.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/utime.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/view01.jpg +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/view02.jpg +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/simulator_lib/webrepl.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/socketClient.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/user_data/.include +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/user_data/webhooks/generic.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/user_data/webhooks/macro.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/user_data/webhooks/template.macro +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/user_data/webhooks/template.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/__init__.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Config.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Debug.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Files.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Hooks.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Logger.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Network.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Server.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Tasks.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Time.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/Web.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/_mpy.version +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/config/_git.keep +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/helpers.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/main.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/micrOS.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/microIO.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/IO_esp32.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/IO_esp32c3.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/IO_esp32c6.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/IO_esp32s2.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/IO_esp32s3.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/IO_m5stamp.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/IO_qtpy.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/IO_rp2.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/IO_s3matrix.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/IO_tinypico.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_L298N.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_L9110_DCmotor.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_OV2640.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_VL53L0X.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_aht10.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_buzzer.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_cluster.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_co2.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_dashboard_be.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_dht11.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_dht22.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_ds18.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_esp32.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_espnow.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_gameOfLife.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_genIO.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_haptic.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_i2c.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_keychain.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_ld2410.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_light_sensor.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_neoeffects.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_neomatrix.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_oled.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_oledui.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_qmi8658.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_rencoder.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_rgbcct.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_robustness.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_rp2w.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_sdcard.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_servo.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_sound_event.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_stepper.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_switch.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_tcs3472.py +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_tinyrgb.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_trackball.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/modules/LM_veml7700.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/urequests.mpy +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/web/dashboard.html +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/web/index.html +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/web/matrix_draw.html +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/web/uapi.js +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/web/udashboard.js +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/web/ustyle.css +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/toolkit/workspace/precompiled/web/uwidgets.js +0 -0
- {microsdevtoolkit-2.22.0 → microsdevtoolkit-2.22.4}/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: 2.22.
|
|
3
|
+
Version: 2.22.4
|
|
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
|
|
@@ -86,14 +86,15 @@ Access rest api over browser: `http://<nodename>.local`
|
|
|
86
86
|
## ◉ Shortcuts:
|
|
87
87
|
1. 📲 micrOS Client Application [link](https://github.com/BxNxM/micrOS/#micros-client-application)
|
|
88
88
|
2. micrOS Installer [link](https://github.com/BxNxM/micrOS/#installing-micros-with-devtoolkit-esp32-and-more)
|
|
89
|
-
3. micrOS Tutorials [link](https://github.com/BxNxM/micrOS/#micros-video-tutorials)
|
|
89
|
+
3. ▶️ micrOS Tutorials [link](https://github.com/BxNxM/micrOS/#micros-video-tutorials)
|
|
90
90
|
4. micrOS System and features [link](https://github.com/BxNxM/micrOS/#micros-framework-features)
|
|
91
91
|
5. 🎮 Built-in app modules: [link](https://htmlpreview.github.io/?https://github.com/BxNxM/micrOS/blob/master/micrOS/client/sfuncman/sfuncman.html)
|
|
92
92
|
5. Pin mapping - GPIO [link](https://github.com/BxNxM/micrOS/#device-pinouts-for-wiring)
|
|
93
|
-
6. micrOS Node configuration [link](https://github.com/BxNxM/micrOS/#micros-node-configuration-parameters-with-description)
|
|
93
|
+
6. ⚙️ micrOS Node configuration [link](https://github.com/BxNxM/micrOS/#micros-node-configuration-parameters-with-description)
|
|
94
94
|
7. 🧑💻 micrOS create custom Load Modules: [link](./APPLICATION_GUIDE.md)
|
|
95
|
-
8. micrOS
|
|
96
|
-
9.
|
|
95
|
+
8. 📦 micrOS Package Management: [link](https://github.com/BxNxM/micrOSPackages)
|
|
96
|
+
9. micrOS Gateway server with Prometheus&Grafana: [link](https://github.com/BxNxM/micrOS/#micros-gateway-in-docker)
|
|
97
|
+
10. Release notes: [release-note](https://github.com/BxNxM/micrOS/#release-note)
|
|
97
98
|
|
|
98
99
|
----------------------------------------
|
|
99
100
|
----------------------------------------
|
|
@@ -120,13 +121,19 @@ I would suggest to use micrOS GUI as a primary interface for micrOS development
|
|
|
120
121
|
|
|
121
122
|
## 1. Prerequisites
|
|
122
123
|
|
|
123
|
-
### 1.1 Install python3.
|
|
124
|
+
### 1.1 Install python3.12+
|
|
124
125
|
|
|
125
|
-
|
|
126
|
+
Download Python 3.12+ [link](https://www.python.org/downloads/release/python-3120/)
|
|
126
127
|
|
|
127
128
|
> Note: **Allow extend system path** with that python version (installation parameter) </br>
|
|
128
129
|
> On **Windows**: RUN AS ADMINISTARTOR
|
|
129
130
|
|
|
131
|
+
Check Python3 version
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
python3 --version
|
|
135
|
+
```
|
|
136
|
+
|
|
130
137
|
----------------------------------------
|
|
131
138
|
|
|
132
139
|
### 2. Install micrOS devToolKit GUI
|
|
@@ -48,14 +48,15 @@ Access rest api over browser: `http://<nodename>.local`
|
|
|
48
48
|
## ◉ Shortcuts:
|
|
49
49
|
1. 📲 micrOS Client Application [link](https://github.com/BxNxM/micrOS/#micros-client-application)
|
|
50
50
|
2. micrOS Installer [link](https://github.com/BxNxM/micrOS/#installing-micros-with-devtoolkit-esp32-and-more)
|
|
51
|
-
3. micrOS Tutorials [link](https://github.com/BxNxM/micrOS/#micros-video-tutorials)
|
|
51
|
+
3. ▶️ micrOS Tutorials [link](https://github.com/BxNxM/micrOS/#micros-video-tutorials)
|
|
52
52
|
4. micrOS System and features [link](https://github.com/BxNxM/micrOS/#micros-framework-features)
|
|
53
53
|
5. 🎮 Built-in app modules: [link](https://htmlpreview.github.io/?https://github.com/BxNxM/micrOS/blob/master/micrOS/client/sfuncman/sfuncman.html)
|
|
54
54
|
5. Pin mapping - GPIO [link](https://github.com/BxNxM/micrOS/#device-pinouts-for-wiring)
|
|
55
|
-
6. micrOS Node configuration [link](https://github.com/BxNxM/micrOS/#micros-node-configuration-parameters-with-description)
|
|
55
|
+
6. ⚙️ micrOS Node configuration [link](https://github.com/BxNxM/micrOS/#micros-node-configuration-parameters-with-description)
|
|
56
56
|
7. 🧑💻 micrOS create custom Load Modules: [link](./APPLICATION_GUIDE.md)
|
|
57
|
-
8. micrOS
|
|
58
|
-
9.
|
|
57
|
+
8. 📦 micrOS Package Management: [link](https://github.com/BxNxM/micrOSPackages)
|
|
58
|
+
9. micrOS Gateway server with Prometheus&Grafana: [link](https://github.com/BxNxM/micrOS/#micros-gateway-in-docker)
|
|
59
|
+
10. Release notes: [release-note](https://github.com/BxNxM/micrOS/#release-note)
|
|
59
60
|
|
|
60
61
|
----------------------------------------
|
|
61
62
|
----------------------------------------
|
|
@@ -82,13 +83,19 @@ I would suggest to use micrOS GUI as a primary interface for micrOS development
|
|
|
82
83
|
|
|
83
84
|
## 1. Prerequisites
|
|
84
85
|
|
|
85
|
-
### 1.1 Install python3.
|
|
86
|
+
### 1.1 Install python3.12+
|
|
86
87
|
|
|
87
|
-
|
|
88
|
+
Download Python 3.12+ [link](https://www.python.org/downloads/release/python-3120/)
|
|
88
89
|
|
|
89
90
|
> Note: **Allow extend system path** with that python version (installation parameter) </br>
|
|
90
91
|
> On **Windows**: RUN AS ADMINISTARTOR
|
|
91
92
|
|
|
93
|
+
Check Python3 version
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
python3 --version
|
|
97
|
+
```
|
|
98
|
+
|
|
92
99
|
----------------------------------------
|
|
93
100
|
|
|
94
101
|
### 2. Install micrOS devToolKit GUI
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
6
|
|
6
6
|
],
|
|
7
7
|
"Pacman.py": [
|
|
8
|
-
9.
|
|
9
|
-
|
|
8
|
+
9.48,
|
|
9
|
+
2
|
|
10
10
|
],
|
|
11
11
|
"Files.py": [
|
|
12
12
|
9.69,
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
2
|
|
42
42
|
],
|
|
43
43
|
"Notify.py": [
|
|
44
|
-
9.
|
|
45
|
-
|
|
44
|
+
9.78,
|
|
45
|
+
4
|
|
46
46
|
],
|
|
47
47
|
"Types.py": [
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
9.21,
|
|
49
|
+
30
|
|
50
50
|
],
|
|
51
51
|
"Logger.py": [
|
|
52
52
|
8.84,
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
],
|
|
55
55
|
"Common.py": [
|
|
56
56
|
9.85,
|
|
57
|
-
|
|
57
|
+
36
|
|
58
58
|
],
|
|
59
59
|
"InterConnect.py": [
|
|
60
60
|
9.63,
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
],
|
|
79
79
|
"microIO.py": [
|
|
80
80
|
9.35,
|
|
81
|
-
|
|
81
|
+
45
|
|
82
82
|
],
|
|
83
83
|
"micrOS.py": [
|
|
84
84
|
9.3,
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
0
|
|
114
114
|
],
|
|
115
115
|
"modules/LM_pacman.py": [
|
|
116
|
-
7.
|
|
116
|
+
7.66,
|
|
117
117
|
0
|
|
118
118
|
],
|
|
119
119
|
"modules/LM_genIO.py": [
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
0
|
|
126
126
|
],
|
|
127
127
|
"modules/LM_system.py": [
|
|
128
|
-
8.
|
|
128
|
+
8.49,
|
|
129
129
|
0
|
|
130
130
|
],
|
|
131
131
|
"modules/LM_robustness.py": [
|
|
@@ -140,6 +140,10 @@
|
|
|
140
140
|
8.5,
|
|
141
141
|
0
|
|
142
142
|
],
|
|
143
|
+
"modules/LM_mh_z19c.py": [
|
|
144
|
+
9.78,
|
|
145
|
+
0
|
|
146
|
+
],
|
|
143
147
|
"modules/LM_rest.py": [
|
|
144
148
|
8.6,
|
|
145
149
|
0
|
|
@@ -253,7 +257,7 @@
|
|
|
253
257
|
0
|
|
254
258
|
],
|
|
255
259
|
"modules/LM_telegram.py": [
|
|
256
|
-
9.
|
|
260
|
+
9.67,
|
|
257
261
|
0
|
|
258
262
|
],
|
|
259
263
|
"modules/LM_OV2640.py": [
|
|
@@ -289,7 +293,7 @@
|
|
|
289
293
|
0
|
|
290
294
|
],
|
|
291
295
|
"modules/LM_mqtt_client.py": [
|
|
292
|
-
|
|
296
|
+
9.55,
|
|
293
297
|
0
|
|
294
298
|
],
|
|
295
299
|
"modules/LM_dashboard_be.py": [
|
|
@@ -323,12 +327,12 @@
|
|
|
323
327
|
},
|
|
324
328
|
"summary": {
|
|
325
329
|
"core": [
|
|
326
|
-
|
|
330
|
+
4475,
|
|
327
331
|
25
|
|
328
332
|
],
|
|
329
333
|
"load": [
|
|
330
|
-
|
|
331
|
-
|
|
334
|
+
10096,
|
|
335
|
+
56
|
|
332
336
|
],
|
|
333
337
|
"core_dep": [
|
|
334
338
|
true,
|
|
@@ -339,7 +343,7 @@
|
|
|
339
343
|
4
|
|
340
344
|
],
|
|
341
345
|
"core_score": 9.29,
|
|
342
|
-
"load_score": 8.
|
|
343
|
-
"version": "2.
|
|
346
|
+
"load_score": 8.46,
|
|
347
|
+
"version": "2.21.4-0"
|
|
344
348
|
}
|
|
345
349
|
}
|
|
@@ -80,18 +80,26 @@ def exec_cmd(cmd:list, jsonify:bool=None, secure=False):
|
|
|
80
80
|
return lm_exec(cmd, jsonify=jsonify)
|
|
81
81
|
|
|
82
82
|
|
|
83
|
-
def notify(
|
|
83
|
+
def notify(*args, **kwargs) -> bool:
|
|
84
84
|
"""
|
|
85
|
-
[LM] micrOS common notification handler (Telegram)
|
|
86
|
-
|
|
85
|
+
[LM] micrOS common notification handler (Telegram, etc.)
|
|
86
|
+
text (0): notification text / None (return notification state)
|
|
87
|
+
:param channels (optional): select communication interface(s) by class name or an iterable of these.
|
|
88
|
+
If omitted or empty, sends over all available channels.
|
|
89
|
+
Examples (optional parameters):
|
|
90
|
+
Telegram params:
|
|
91
|
+
reply_to: message id to reply to (optional) - default: None
|
|
92
|
+
chat_id: chat identifier - default: None -> auto resolve in child class
|
|
93
|
+
MQTTClient params:
|
|
94
|
+
topic: mqtt topic to send the message - default: None -> auto resolve in child class
|
|
87
95
|
return: verdict: True/False
|
|
88
96
|
"""
|
|
89
|
-
# (1) Return notification state
|
|
90
|
-
if text is None:
|
|
97
|
+
# (1) Return notification state (if no text input given)
|
|
98
|
+
if kwargs.get("text", args[0] if args else None) is None:
|
|
91
99
|
return Notify.GLOBAL_NOTIFY
|
|
92
100
|
# (2) Send notification
|
|
93
101
|
try:
|
|
94
|
-
out = Notify.notify(
|
|
102
|
+
out = Notify.notify(*args, **kwargs)
|
|
95
103
|
except Exception as e:
|
|
96
104
|
debug_syslog(f"[ERR] Notify: {e}")
|
|
97
105
|
out = str(e)
|
|
@@ -32,10 +32,8 @@ def render_packet(tid: str, oper: str, data: str, prompt: str) -> str:
|
|
|
32
32
|
"""
|
|
33
33
|
if oper not in ("REQ", "RSP"):
|
|
34
34
|
syslog(f"[ERR] espnow render_response, unknown oper: {oper}")
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
.replace("{data}", str(data)).replace("{prompt}", prompt))
|
|
38
|
-
return tmp
|
|
35
|
+
return f"{tid}|{oper}|{str(data)}|{prompt}$"
|
|
36
|
+
|
|
39
37
|
|
|
40
38
|
def parse_packet(msg: bytes) -> tuple[bool, dict | str]:
|
|
41
39
|
"""
|
|
@@ -251,15 +249,19 @@ class ESPNowSS:
|
|
|
251
249
|
ESPNow client task: send a command to a peer and update task status.
|
|
252
250
|
"""
|
|
253
251
|
with NativeTask.TASKS.get(tag, None) as my_task:
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
252
|
+
try:
|
|
253
|
+
router = ResponseRouter(peer, tid)
|
|
254
|
+
# rendered_output: "{tid}|{oper}|{data}|{prompt}$"
|
|
255
|
+
rendered_out = render_packet(tid=tid, oper="REQ", data=msg, prompt=self.devfid)
|
|
256
|
+
if await self.__asend_raw(peer, rendered_out):
|
|
257
|
+
my_task.out = f"[ESPNOW SEND] {rendered_out}"
|
|
258
|
+
my_task.out = await router.get_response()
|
|
259
|
+
else:
|
|
260
|
+
my_task.out = "[ESPNOW SEND] Peer not responding"
|
|
261
|
+
except Exception as e:
|
|
262
|
+
my_task.out = f"[ERR][ESPNOW SEND] {e}"
|
|
263
|
+
finally:
|
|
264
|
+
router.close()
|
|
263
265
|
|
|
264
266
|
def mac_by_peer_name(self, peer_name: str) -> bytes | None:
|
|
265
267
|
matches = [k for k, v in self.devices.items() if v == peer_name]
|
|
@@ -325,6 +327,9 @@ class ESPNowSS:
|
|
|
325
327
|
sender = self.send(peer, "hello")
|
|
326
328
|
task_key = list(sender.keys())[0]
|
|
327
329
|
sender_task = NativeTask.TASKS.get(task_key, None)
|
|
330
|
+
if sender_task is None:
|
|
331
|
+
my_task.out = "Handshake Error: No sender task"
|
|
332
|
+
return
|
|
328
333
|
result = await sender_task.await_result(timeout=10)
|
|
329
334
|
expected_response = f"hello {self.devfid}"
|
|
330
335
|
is_ok = False
|
|
@@ -174,7 +174,7 @@ class InterCon:
|
|
|
174
174
|
return {None: f"[ERR] ESPNow auto handshake: task list >>{host}: {response}"}
|
|
175
175
|
|
|
176
176
|
active_tasks = loads(response).get("active")
|
|
177
|
-
if "espnow.server" in active_tasks:
|
|
177
|
+
if active_tasks and "espnow.server" in active_tasks:
|
|
178
178
|
response = await self.send_cmd(host, ["system", "info", ">json"])
|
|
179
179
|
if not response:
|
|
180
180
|
return {None: "[ERR] ESPNow auto handshake: system info"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Module is responsible for Notification handling
|
|
3
|
+
Common:
|
|
4
|
+
- notifications None/True/False
|
|
5
|
+
- notify 'text'
|
|
6
|
+
- lm_execute
|
|
7
|
+
Supported notification subscribers (add_subscriber)
|
|
8
|
+
- LM_telegram
|
|
9
|
+
- LM_mqtt_client
|
|
10
|
+
Designed by Marcell Ban aka BxNxM
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from Config import cfgget
|
|
14
|
+
from Tasks import lm_exec, lm_is_loaded
|
|
15
|
+
from Debug import syslog
|
|
16
|
+
|
|
17
|
+
#########################################
|
|
18
|
+
# micrOS Notifications #
|
|
19
|
+
# with Telegram Class #
|
|
20
|
+
#########################################
|
|
21
|
+
class Notify:
|
|
22
|
+
GLOBAL_NOTIFY = True # Enable Global notifications
|
|
23
|
+
_DEVFID = cfgget('devfid') # For reply message (pre text)
|
|
24
|
+
_SUBSCRIBERS = set() # Store set of notification objects: send_msg
|
|
25
|
+
|
|
26
|
+
@staticmethod
|
|
27
|
+
def add_subscriber(instance):
|
|
28
|
+
"""
|
|
29
|
+
Add Notification agent like: Telegram
|
|
30
|
+
"""
|
|
31
|
+
if isinstance(instance, Notify):
|
|
32
|
+
Notify._SUBSCRIBERS.add(instance)
|
|
33
|
+
return True
|
|
34
|
+
raise Exception("Subscribe error, Notify parent missing")
|
|
35
|
+
|
|
36
|
+
@staticmethod
|
|
37
|
+
def send_msg(text, *args, **kwargs):
|
|
38
|
+
"""
|
|
39
|
+
This method has to be implemented by the child class
|
|
40
|
+
"""
|
|
41
|
+
raise NotImplementedError("Child class must implement send_msg method")
|
|
42
|
+
|
|
43
|
+
@staticmethod
|
|
44
|
+
def message(text, *args, **kwargs):
|
|
45
|
+
"""
|
|
46
|
+
Send message to all subscribers - Notify send_msg(text, ...) agents
|
|
47
|
+
:param text: text message to send
|
|
48
|
+
:param channels (optional): select communication interface(s) by class name
|
|
49
|
+
e.g. "Telegram", "MQTT" or an iterable of these.
|
|
50
|
+
If omitted or empty, sends over all available channels.
|
|
51
|
+
Telegram params (optional):
|
|
52
|
+
reply_to: message id to reply to (optional) - default: None
|
|
53
|
+
chat_id: chat identifier - default: None -> auto resolve in child class
|
|
54
|
+
MQTT client params (optional):
|
|
55
|
+
topic: mqtt topic to send the message - default: None -> auto resolve in child class
|
|
56
|
+
return: verdict and metrics
|
|
57
|
+
"""
|
|
58
|
+
errors, channels, interfaces = 0, kwargs.get("channels", ()), set()
|
|
59
|
+
channels = (channels,) if isinstance(channels, str) else tuple(channels)
|
|
60
|
+
for s in Notify._SUBSCRIBERS:
|
|
61
|
+
name = s.__class__.__name__
|
|
62
|
+
try:
|
|
63
|
+
if len(channels) == 0 or name in channels:
|
|
64
|
+
s.send_msg(text, *args, **kwargs)
|
|
65
|
+
interfaces.add(name)
|
|
66
|
+
except Exception as e:
|
|
67
|
+
syslog(f"[ERR] Notify.{name}: {e}")
|
|
68
|
+
errors+=1
|
|
69
|
+
return (f"Sent over {', '.join(interfaces)} ({len(interfaces)}/{len(Notify._SUBSCRIBERS)}) client(s)"
|
|
70
|
+
f" - errors: ({errors})")
|
|
71
|
+
|
|
72
|
+
@staticmethod
|
|
73
|
+
def notifications(state=None):
|
|
74
|
+
"""
|
|
75
|
+
Setter for disable/enable notification messages (over LM_system)
|
|
76
|
+
:param state: True/False/ None(default) - show current state
|
|
77
|
+
"""
|
|
78
|
+
if isinstance(state, bool):
|
|
79
|
+
Notify.GLOBAL_NOTIFY = state
|
|
80
|
+
targets = ", ".join(s.__class__.__name__ for s in Notify._SUBSCRIBERS)
|
|
81
|
+
return f"Notifications[{targets}]: {'enabled' if Notify.GLOBAL_NOTIFY else 'disabled'}"
|
|
82
|
+
|
|
83
|
+
@staticmethod
|
|
84
|
+
def notify(text, *args, **kwargs):
|
|
85
|
+
"""
|
|
86
|
+
Notification sender for Load Modules
|
|
87
|
+
"""
|
|
88
|
+
if Notify.GLOBAL_NOTIFY:
|
|
89
|
+
return Notify.message(text, *args, **kwargs)
|
|
90
|
+
return "Notifications disabled"
|
|
91
|
+
|
|
92
|
+
@staticmethod
|
|
93
|
+
def lm_execute(cmd_args, jsonify=False, secure=True):
|
|
94
|
+
"""Load Module Executor with basic access handling"""
|
|
95
|
+
state = False
|
|
96
|
+
if secure and not lm_is_loaded(cmd_args[0]):
|
|
97
|
+
return state, f"NotAllowed {cmd_args[0]}"
|
|
98
|
+
try:
|
|
99
|
+
state, out = lm_exec(cmd_args, jsonify)
|
|
100
|
+
except Exception as e:
|
|
101
|
+
out = str(e)
|
|
102
|
+
return state, out
|
|
@@ -15,9 +15,10 @@ Load Modules in /lib/LM_* will be automatically moved to /modules/LM_* as post i
|
|
|
15
15
|
Designed by Marcell Ban aka BxNxM
|
|
16
16
|
"""
|
|
17
17
|
|
|
18
|
-
from
|
|
19
|
-
from
|
|
20
|
-
from
|
|
18
|
+
from json import load as jload
|
|
19
|
+
from mip import install as mipstall
|
|
20
|
+
from uos import rename, mkdir
|
|
21
|
+
from Files import OSPath, path_join, is_file, ilist_fs, is_dir, remove_file, remove_dir
|
|
21
22
|
from Debug import syslog
|
|
22
23
|
|
|
23
24
|
|
|
@@ -77,6 +78,56 @@ def _normalize_source(ref):
|
|
|
77
78
|
return str(ref), None
|
|
78
79
|
|
|
79
80
|
|
|
81
|
+
def _protected_resource(source_name):
|
|
82
|
+
return source_name.split(".")[0] in ("LM_system", "LM_pacman", "LM_cluster")
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def _unpack_from_pacman_json(path:str, packages:tuple) -> tuple[bool, str]:
|
|
86
|
+
"""
|
|
87
|
+
Unpack Load Modules and other resources based on pacman.json
|
|
88
|
+
:param path: packages library path (default: /lib)
|
|
89
|
+
:param packages: list of package names, but least one to unpack
|
|
90
|
+
"""
|
|
91
|
+
verdict = ""
|
|
92
|
+
# Check all input packages
|
|
93
|
+
for pack in packages:
|
|
94
|
+
pack_meta_path = path_join(path, pack, 'pacman.json')
|
|
95
|
+
if is_file(pack_meta_path):
|
|
96
|
+
verdict += f"\n UNPACKING {pack_meta_path}"
|
|
97
|
+
# Load package layout metadata
|
|
98
|
+
try:
|
|
99
|
+
with open(pack_meta_path, 'r') as p:
|
|
100
|
+
layout = jload(p).get('layout', {})
|
|
101
|
+
except Exception as e:
|
|
102
|
+
syslog(f"[ERR] Package unpack {pack_meta_path}: {e}")
|
|
103
|
+
layout = {}
|
|
104
|
+
# Unpack files based on layout metadata
|
|
105
|
+
for target, source_list in layout.items():
|
|
106
|
+
target_dir = path_join(OSPath._ROOT, target)
|
|
107
|
+
for source in source_list:
|
|
108
|
+
source_path = path_join(path, source)
|
|
109
|
+
source_name = source.split('/')[-1] if '/' in source else source
|
|
110
|
+
if _protected_resource(source_name):
|
|
111
|
+
verdict += f"\n ! Unpack skip - protected target: {source_name}"
|
|
112
|
+
continue
|
|
113
|
+
if is_file(source_path):
|
|
114
|
+
try:
|
|
115
|
+
if not is_dir(target_dir):
|
|
116
|
+
# Support single-level child dir
|
|
117
|
+
mkdir(target_dir)
|
|
118
|
+
except Exception as e:
|
|
119
|
+
verdict += f"\n ✗ Unpack subdir error {target_dir}: {e}"
|
|
120
|
+
try:
|
|
121
|
+
rename(source_path, path_join(target_dir, source_name))
|
|
122
|
+
verdict += f"\n ✓ Unpacked {source} -> {target_dir}"
|
|
123
|
+
except Exception as e:
|
|
124
|
+
verdict += f"\n ✗ Unpack error {source}: {e}"
|
|
125
|
+
elif not is_file(path_join(target_dir, source)):
|
|
126
|
+
# Check already unpacked target resource
|
|
127
|
+
verdict += f"\n ✗ Unpack error: {source} not exists"
|
|
128
|
+
return "\nNothing to unpack" if verdict == "" else verdict
|
|
129
|
+
|
|
130
|
+
|
|
80
131
|
# ---------------------------------------------------------------------
|
|
81
132
|
# Core installer
|
|
82
133
|
# ---------------------------------------------------------------------
|
|
@@ -92,8 +143,8 @@ def _install_any(ref, target=None):
|
|
|
92
143
|
kwargs["target"] = target or OSPath.LIB
|
|
93
144
|
verdict = f"[mip] Installing: {ref} {kwargs}\n"
|
|
94
145
|
# MIP Install
|
|
95
|
-
|
|
96
|
-
verdict += f" ✓ Installed
|
|
146
|
+
mipstall(ref, **kwargs)
|
|
147
|
+
verdict += f" ✓ Installed under {kwargs['target']}"
|
|
97
148
|
except Exception as e:
|
|
98
149
|
err = f" ✗ Failed to install '{ref}': {e}"
|
|
99
150
|
syslog(f"[ERR][pacman] {err}")
|
|
@@ -126,30 +177,31 @@ def install_requirements(source="requirements.txt"):
|
|
|
126
177
|
return verdict
|
|
127
178
|
|
|
128
179
|
|
|
129
|
-
def unpack(
|
|
180
|
+
def unpack(ref:str=None):
|
|
130
181
|
"""
|
|
131
|
-
Unpack
|
|
182
|
+
Unpack downloaded package from /lib
|
|
183
|
+
- use pacman.json metadata layout to unpack files to multiple targets
|
|
184
|
+
:param ref: install reference (extract package name from this)
|
|
132
185
|
"""
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
return verdict
|
|
186
|
+
|
|
187
|
+
if ref is None:
|
|
188
|
+
# Collect all package names under /lib and unpack all
|
|
189
|
+
packages = tuple(ilist_fs(OSPath.LIB, type_filter='d'))
|
|
190
|
+
else:
|
|
191
|
+
# Handle single explicit ref for unpacking
|
|
192
|
+
ref_parts = ref.split("/")
|
|
193
|
+
pack_name = ref_parts[-2] if '.' in ref_parts[-1] else ref_parts[-1]
|
|
194
|
+
packages = (pack_name, )
|
|
195
|
+
|
|
196
|
+
return _unpack_from_pacman_json(OSPath.LIB, packages)
|
|
145
197
|
|
|
146
198
|
# ---------------------------------------------------------------------
|
|
147
199
|
# Unified entry point
|
|
148
200
|
# ---------------------------------------------------------------------
|
|
149
201
|
|
|
150
|
-
def
|
|
202
|
+
def install(ref):
|
|
151
203
|
"""
|
|
152
|
-
Unified mip-based
|
|
204
|
+
Unified mip-based installer for micrOS.
|
|
153
205
|
Automatically detects:
|
|
154
206
|
- requirements.txt files (local)
|
|
155
207
|
- Single-file load modules (LM_/IO_ names or URLs)
|
|
@@ -158,23 +210,61 @@ def download(ref):
|
|
|
158
210
|
"""
|
|
159
211
|
|
|
160
212
|
if not ref:
|
|
161
|
-
return "[mip] Nothing to
|
|
213
|
+
return "[mip] Nothing to install (empty input)"
|
|
162
214
|
|
|
163
|
-
# 1. requirements.txt
|
|
215
|
+
# 1. Install from requirements.txt
|
|
164
216
|
if ref == "requirements.txt":
|
|
165
217
|
verdict = install_requirements(ref)
|
|
166
|
-
verdict += unpack(
|
|
218
|
+
verdict += unpack()
|
|
167
219
|
return verdict
|
|
168
220
|
|
|
221
|
+
# 2. Install from URL or Shorthand file / package reference
|
|
169
222
|
if ref.startswith("github") or ref.startswith("http"):
|
|
170
|
-
# 2. LM_/IO_ load modules → /modules
|
|
223
|
+
# 2.1. Exact file ref: LM_/IO_ load modules → /modules
|
|
171
224
|
if ref.endswith("py") and ("LM_" in ref or "IO_" in ref):
|
|
172
225
|
return _install_any(ref, target=OSPath.MODULES)
|
|
173
226
|
|
|
174
|
-
#
|
|
227
|
+
# 2.2. Package ref: GitHub or raw URLs → /lib
|
|
175
228
|
verdict = _install_any(ref, target=OSPath.LIB)
|
|
176
|
-
verdict += unpack(
|
|
229
|
+
verdict += unpack(ref)
|
|
177
230
|
return verdict
|
|
178
231
|
|
|
179
|
-
#
|
|
232
|
+
# 3. Fallback/Official micropython package → /lib
|
|
180
233
|
return _install_any(ref, target=OSPath.LIB)
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
def uninstall(package_name):
|
|
237
|
+
"""
|
|
238
|
+
Uninstalls package from /lib with its dependencies
|
|
239
|
+
"""
|
|
240
|
+
pack_path = path_join(OSPath.LIB, package_name)
|
|
241
|
+
pack_meta = path_join(pack_path, "pacman.json")
|
|
242
|
+
|
|
243
|
+
if not is_dir(pack_path):
|
|
244
|
+
return f"No packaged found: {pack_path}"
|
|
245
|
+
|
|
246
|
+
verdict = f"Uninstall {package_name}\n"
|
|
247
|
+
if is_file(pack_meta):
|
|
248
|
+
# Load package layout metadata
|
|
249
|
+
try:
|
|
250
|
+
with open(pack_meta, 'r') as p:
|
|
251
|
+
layout = jload(p).get('layout', {})
|
|
252
|
+
except Exception as e:
|
|
253
|
+
syslog(f"[ERR] Package uninstall {pack_meta}: {e}")
|
|
254
|
+
layout = {}
|
|
255
|
+
|
|
256
|
+
for target, source_list in layout.items():
|
|
257
|
+
target_dir = path_join(OSPath._ROOT, target)
|
|
258
|
+
for source in source_list:
|
|
259
|
+
source_name = source.split('/')[-1] if '/' in source else source
|
|
260
|
+
if _protected_resource(source_name):
|
|
261
|
+
verdict += f" ✗ Remove skip - protected target: {source_name}\n"
|
|
262
|
+
continue
|
|
263
|
+
unpacked_path = path_join(target_dir, source_name)
|
|
264
|
+
if is_file(unpacked_path):
|
|
265
|
+
remove_file(unpacked_path)
|
|
266
|
+
verdict += f" ✓ Removed: {unpacked_path}\n"
|
|
267
|
+
|
|
268
|
+
# Delete package
|
|
269
|
+
verdict += " " + remove_dir(pack_path)
|
|
270
|
+
return verdict
|