micrOSDevToolKit 2.2.0__tar.gz → 2.4.0__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.2.0/micrOSDevToolKit.egg-info → micrOSDevToolKit-2.4.0}/PKG-INFO +1 -1
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +17 -13
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Common.py +7 -7
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Debug.py +15 -96
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_OV2640.py +1 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_buzzer.py +1 -1
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_cct.py +1 -1
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_dimmer.py +1 -1
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_keychain.py +11 -11
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_neopixel.py +3 -3
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_oled_ui.py +1 -6
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_rgb.py +2 -2
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_rgbcct.py +1 -1
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_robustness.py +2 -1
- micrOSDevToolKit-2.4.0/micrOS/source/Logger.py +79 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Server.py +13 -14
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Shell.py +1 -1
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Time.py +2 -4
- micrOSDevToolKit-2.4.0/micrOS/source/Types.py +94 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/microIO.py +25 -30
- {micrOSDevToolKit-2.2.0/toolkit/workspace/precompiled → micrOSDevToolKit-2.4.0/micrOS/source}/uapi.js +25 -34
- micrOSDevToolKit-2.4.0/micrOS/source/udashboard.js +109 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/urequests.py +4 -1
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/ustyle.css +1 -1
- micrOSDevToolKit-2.4.0/micrOS/source/uwidgets.js +172 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0/micrOSDevToolKit.egg-info}/PKG-INFO +1 -1
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOSDevToolKit.egg-info/SOURCES.txt +3 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/setup.py +1 -1
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/SystemTest.py +21 -16
- micrOSDevToolKit-2.4.0/toolkit/workspace/precompiled/Common.mpy +0 -0
- micrOSDevToolKit-2.4.0/toolkit/workspace/precompiled/Debug.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_OV2640.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_buzzer.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_cct.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_dimmer.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_keychain.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_neopixel.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_rgb.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_rgbcct.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_robustness.py +2 -1
- micrOSDevToolKit-2.4.0/toolkit/workspace/precompiled/Logger.mpy +0 -0
- micrOSDevToolKit-2.4.0/toolkit/workspace/precompiled/Server.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/Shell.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/Time.mpy +0 -0
- micrOSDevToolKit-2.4.0/toolkit/workspace/precompiled/Types.mpy +0 -0
- micrOSDevToolKit-2.4.0/toolkit/workspace/precompiled/microIO.mpy +0 -0
- micrOSDevToolKit-2.4.0/toolkit/workspace/precompiled/node_config.json +1 -0
- {micrOSDevToolKit-2.2.0/micrOS/source → micrOSDevToolKit-2.4.0/toolkit/workspace/precompiled}/uapi.js +25 -34
- micrOSDevToolKit-2.4.0/toolkit/workspace/precompiled/udashboard.js +109 -0
- micrOSDevToolKit-2.4.0/toolkit/workspace/precompiled/urequests.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/ustyle.css +1 -1
- micrOSDevToolKit-2.4.0/toolkit/workspace/precompiled/uwidgets.js +172 -0
- micrOSDevToolKit-2.2.0/micrOS/source/Types.py +0 -106
- micrOSDevToolKit-2.2.0/micrOS/source/udashboard.js +0 -137
- micrOSDevToolKit-2.2.0/micrOS/source/uwidgets.js +0 -179
- micrOSDevToolKit-2.2.0/toolkit/workspace/precompiled/Common.mpy +0 -0
- micrOSDevToolKit-2.2.0/toolkit/workspace/precompiled/Debug.mpy +0 -0
- micrOSDevToolKit-2.2.0/toolkit/workspace/precompiled/Server.mpy +0 -0
- micrOSDevToolKit-2.2.0/toolkit/workspace/precompiled/Types.mpy +0 -0
- micrOSDevToolKit-2.2.0/toolkit/workspace/precompiled/microIO.mpy +0 -0
- micrOSDevToolKit-2.2.0/toolkit/workspace/precompiled/udashboard.js +0 -137
- micrOSDevToolKit-2.2.0/toolkit/workspace/precompiled/urequests.mpy +0 -0
- micrOSDevToolKit-2.2.0/toolkit/workspace/precompiled/uwidgets.js +0 -179
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/LICENSE +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/MANIFEST.in +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/README.md +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/devToolKit.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/__init__.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/.DS_Store +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CH34XSER_MAC/CH34X_DRV_INSTALL_INSTRUCTIONS.pdf +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CH34XSER_MAC/CH34xVCPDriver.pkg +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x64.exe +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210xVCPInstaller_x86.exe +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/CP210x_Universal_Windows_Driver_ReleaseNotes.txt +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/SLAB_License_Agreement_VCP_Windows.txt +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm/silabser.sys +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/arm64/silabser.sys +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/dpinst.xml +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.cat +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/silabser.inf +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x64/silabser.sys +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/CP210x_Universal_Windows_Driver/x86/silabser.sys +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/media/__init__.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/media/dnd.png +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/media/logo.png +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/media/logo_mini.png +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/media/usb_port_icon.png +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/media/wifi_icon.png +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/__init__.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/micropython/esp32-20231005-v1.21.0.bin +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/micropython/esp32c3-GENERIC-20240105-v1.22.1.bin +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/micropython/esp32c3-GENERIC-20240222-v1.22.2.bin +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/micropython/esp32cam-v1.21.0_camera.bin +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/micropython/esp32s2-GENERIC-20240105-v1.22.1.bin +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/micropython/esp32s2-LOLIN_MINI-20220618-v1.19.1.bin +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/micropython/esp32s3-GENERIC-20240105-v1.22.1.bin +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/micropython/rpi-pico-w-20231005-v1.21.0.uf2 +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/micropython/tinypico-20231005-v1.21.0.bin +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/micropython/tinypico-usbc-UM-20240105-v1.22.1.bin +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/.DS_Store +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Config.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Hooks.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/IO_esp32.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/IO_esp32c3.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/IO_esp32s2.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/IO_esp32s3.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/IO_qtpy.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/IO_rp2.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/IO_tinypico.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/InterConnect.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Interrupts.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_L298N_DCmotor.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_L9110_DCmotor.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_VL53L0X.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_aht10.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_bme280.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_catgame.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_co2.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_dashboard_be.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_demo.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_dht11.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_dht22.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_distance.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_ds18.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_esp32.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_gameOfLife.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_genIO.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_i2c.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_i2s_mic.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_intercon.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_ld2410.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_light_sensor.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_lmpacman.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_neoeffects.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_oled.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_oled_sh1106.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_pet_feeder.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_ph_sensor.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_presence.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_rencoder.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_rest.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_roboarm.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_rp2w.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_sdcard.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_servo.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_stepper.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_switch.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_system.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_telegram.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/LM_tinyrgb.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Network.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Notify.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Scheduler.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/Tasks.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/dashboard.html +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/index.html +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/main.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/micrOS.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/micrOSloader.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOS/source/reset.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOSDevToolKit.egg-info/dependency_links.txt +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOSDevToolKit.egg-info/requires.txt +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/micrOSDevToolKit.egg-info/top_level.txt +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/setup.cfg +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/DevEnvCompile.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/DevEnvOTA.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/DevEnvUSB.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/Gateway.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/LM_to_compile.dat +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/MicrOSDevEnv.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/__init__.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/AirQualityBME280.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/AirQualityDHT22_CO2.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/CCTDemo.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/CCTTest.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/CamStream.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/CatGame.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/Dimmer.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/GetVersion.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/MicrophoneTest.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/NeoEffectsDemo.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/NeopixelTest.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/PresenceTest.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/RGBTest.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/RoboArm.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/SED_test.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/Template_app.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/__init__.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/_capture.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/_micPlotting.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/_presencePlotting.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/dashboard_apps/uLightDemo.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/img_stream.html +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/index.html +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/lib/LocalMachine.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/lib/SafeInput.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/lib/SearchDevices.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/lib/SerialDriverHandler.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/lib/TerminalColors.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/lib/__init__.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/lib/file_extensions.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/lib/micrOSClient.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/lib/pip_package_installer.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/micrOSdashboard.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/micrOSlint.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/LP_darwin.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/LP_darwin.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/LP_darwin.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/LP_darwin.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/dht.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/dht.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/dotstar.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/ds18x20.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/micropython.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/neopixel.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/network.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/network.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/sim_console.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/simgc.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/simulator.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/ustruct.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/utime.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/utime.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/utime.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/dht.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/dotstar.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/ds18x20.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/esp32.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/framebuf.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/machine.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/micropython.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/neopixel.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/network.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/node_config.json +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/ntptime.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/onewire.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/sim_console.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/simgc.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/simulator.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/tinypico.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/uasyncio.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/usocket.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/ussl.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/ustruct.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/utime.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/simulator_lib/webrepl.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/socketClient.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/user_data/.include +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/user_data/webhooks/generic.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/user_data/webhooks/template.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/__init__.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/Config.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/Hooks.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/IO_esp32.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/IO_esp32c3.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/IO_esp32s2.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/IO_esp32s3.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/IO_qtpy.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/IO_rp2.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/IO_tinypico.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/InterConnect.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/Interrupts.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_L298N_DCmotor.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_L9110_DCmotor.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_VL53L0X.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_aht10.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_bme280.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_catgame.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_co2.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_dashboard_be.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_demo.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_dht11.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_dht22.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_distance.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_ds18.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_esp32.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_gameOfLife.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_genIO.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_i2c.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_i2s_mic.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_intercon.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_ld2410.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_light_sensor.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_lmpacman.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_neoeffects.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_oled.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_oled_sh1106.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_pet_feeder.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_ph_sensor.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_presence.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_rencoder.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_rest.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_roboarm.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_rp2w.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_sdcard.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_servo.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_stepper.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_switch.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_system.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_telegram.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/LM_tinyrgb.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/Network.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/Notify.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/Scheduler.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/Tasks.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/_mpy.version +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/dashboard.html +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/index.html +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/main.py +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/micrOS.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
- {micrOSDevToolKit-2.2.0 → micrOSDevToolKit-2.4.0}/toolkit/workspace/precompiled/reset.mpy +0 -0
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
1
|
|
14
14
|
],
|
|
15
15
|
"Server.py": [
|
|
16
|
-
9.
|
|
17
|
-
|
|
16
|
+
9.38,
|
|
17
|
+
3
|
|
18
18
|
],
|
|
19
19
|
"Tasks.py": [
|
|
20
20
|
9.71,
|
|
@@ -37,11 +37,15 @@
|
|
|
37
37
|
2
|
|
38
38
|
],
|
|
39
39
|
"Types.py": [
|
|
40
|
-
9.
|
|
40
|
+
9.84,
|
|
41
41
|
22
|
|
42
42
|
],
|
|
43
|
+
"Logger.py": [
|
|
44
|
+
8.33,
|
|
45
|
+
3
|
|
46
|
+
],
|
|
43
47
|
"Common.py": [
|
|
44
|
-
9.
|
|
48
|
+
9.33,
|
|
45
49
|
26
|
|
46
50
|
],
|
|
47
51
|
"InterConnect.py": [
|
|
@@ -49,7 +53,7 @@
|
|
|
49
53
|
1
|
|
50
54
|
],
|
|
51
55
|
"Debug.py": [
|
|
52
|
-
8.
|
|
56
|
+
8.54,
|
|
53
57
|
20
|
|
54
58
|
],
|
|
55
59
|
"Network.py": [
|
|
@@ -61,7 +65,7 @@
|
|
|
61
65
|
1
|
|
62
66
|
],
|
|
63
67
|
"microIO.py": [
|
|
64
|
-
9.
|
|
68
|
+
9.17,
|
|
65
69
|
38
|
|
66
70
|
],
|
|
67
71
|
"micrOS.py": [
|
|
@@ -77,7 +81,7 @@
|
|
|
77
81
|
0
|
|
78
82
|
],
|
|
79
83
|
"urequests.py": [
|
|
80
|
-
8.
|
|
84
|
+
8.83,
|
|
81
85
|
4
|
|
82
86
|
],
|
|
83
87
|
"LM_roboarm.py": [
|
|
@@ -101,7 +105,7 @@
|
|
|
101
105
|
3
|
|
102
106
|
],
|
|
103
107
|
"LM_robustness.py": [
|
|
104
|
-
7.
|
|
108
|
+
7.57,
|
|
105
109
|
0
|
|
106
110
|
],
|
|
107
111
|
"LM_co2.py": [
|
|
@@ -279,11 +283,11 @@
|
|
|
279
283
|
},
|
|
280
284
|
"summary": {
|
|
281
285
|
"core": [
|
|
282
|
-
|
|
283
|
-
|
|
286
|
+
3100,
|
|
287
|
+
21
|
|
284
288
|
],
|
|
285
289
|
"load": [
|
|
286
|
-
|
|
290
|
+
6927,
|
|
287
291
|
49
|
|
288
292
|
],
|
|
289
293
|
"core_dep": [
|
|
@@ -294,8 +298,8 @@
|
|
|
294
298
|
true,
|
|
295
299
|
7
|
|
296
300
|
],
|
|
297
|
-
"core_score": 9.
|
|
301
|
+
"core_score": 9.17,
|
|
298
302
|
"load_score": 8.07,
|
|
299
|
-
"version": "2.
|
|
303
|
+
"version": "2.4.0-0"
|
|
300
304
|
}
|
|
301
305
|
}
|
|
@@ -3,15 +3,15 @@ micrOS Load Module programming API-s
|
|
|
3
3
|
Designed by Marcell Ban aka BxNxM
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
|
-
from Server import SocketServer
|
|
7
|
-
from
|
|
6
|
+
from Server import SocketServer, WebCli
|
|
7
|
+
from Debug import errlog_add
|
|
8
|
+
from Logger import logger, log_get
|
|
8
9
|
from microIO import physical_pin
|
|
9
|
-
from Debug import logger, log_get, errlog_add
|
|
10
10
|
from machine import Pin, ADC
|
|
11
11
|
try:
|
|
12
12
|
from Tasks import TaskBase, Manager
|
|
13
|
-
except Exception as
|
|
14
|
-
print(f"Import ERROR, TaskManager: {
|
|
13
|
+
except Exception as ie:
|
|
14
|
+
print(f"Import ERROR, TaskManager: {ie}")
|
|
15
15
|
TaskBase, Manager = None, None
|
|
16
16
|
TELEGRAM = None
|
|
17
17
|
|
|
@@ -178,10 +178,10 @@ def notify(text):
|
|
|
178
178
|
def web_endpoint(endpoint, function):
|
|
179
179
|
"""
|
|
180
180
|
Add test endpoint <localhost.local>/endpoint from Load Modules
|
|
181
|
-
Simple:
|
|
181
|
+
Simple function:
|
|
182
182
|
image/jpeg | text/html | text/plain, <data>
|
|
183
183
|
<data>: binary | string
|
|
184
|
-
Stream:
|
|
184
|
+
Stream function:
|
|
185
185
|
multipart/x-mixed-replace | multipart/form-data, <data>
|
|
186
186
|
<data>: {'callback':<func>, 'content-type': image/jpeg | audio/l16;*}
|
|
187
187
|
"""
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
from time import localtime
|
|
1
|
+
from os import listdir, remove
|
|
3
2
|
from machine import Pin
|
|
4
|
-
|
|
3
|
+
try:
|
|
4
|
+
from Logger import syslog
|
|
5
|
+
except:
|
|
6
|
+
syslog = None
|
|
5
7
|
try:
|
|
6
8
|
from microIO import physical_pin, pinmap_dump, detect_platform
|
|
7
9
|
except:
|
|
@@ -26,11 +28,12 @@ class DebugCfg:
|
|
|
26
28
|
# Check LogicalPins module loadable (robustness...)
|
|
27
29
|
return
|
|
28
30
|
micro_platform = detect_platform()
|
|
29
|
-
pled = pinmap_dump('builtin')['builtin']
|
|
30
31
|
if micro_platform == "tinypico":
|
|
31
32
|
# Progress led for TinyPico
|
|
32
33
|
DebugCfg._init_apa102()
|
|
33
|
-
|
|
34
|
+
return
|
|
35
|
+
pled = pinmap_dump('builtin')['builtin']
|
|
36
|
+
if pled is not None:
|
|
34
37
|
if isinstance(pled, int):
|
|
35
38
|
# SET PROGRESS LED WITH BUILT-IN step FUNCTION
|
|
36
39
|
if micro_platform == "esp32s3":
|
|
@@ -131,85 +134,6 @@ def console_write(msg):
|
|
|
131
134
|
except Exception as e:
|
|
132
135
|
errlog_add(f"[ERR] console_write: {e}", console=False)
|
|
133
136
|
|
|
134
|
-
#############################################
|
|
135
|
-
# LOGGING WITH DATA ROTATION #
|
|
136
|
-
#############################################
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
def logger(data, f_name, limit):
|
|
140
|
-
"""
|
|
141
|
-
Create generic logger function
|
|
142
|
-
- implements log line rotation
|
|
143
|
-
- automatic time stump
|
|
144
|
-
:param data: input string data to log
|
|
145
|
-
:param f_name: file name to use
|
|
146
|
-
:param limit: line limit for log rotation
|
|
147
|
-
return write verdict - true / false
|
|
148
|
-
INFO: hardcoded max data number = 30
|
|
149
|
-
"""
|
|
150
|
-
def _logger(_data, _f_name, _limit, f_mode='r+'):
|
|
151
|
-
_limit = 30 if _limit > 30 else _limit
|
|
152
|
-
# [1] GET TIME STUMP
|
|
153
|
-
ts_buff = [str(k) for k in localtime()]
|
|
154
|
-
ts = ".".join(ts_buff[0:3]) + "-" + ":".join(ts_buff[3:6])
|
|
155
|
-
# [2] OPEN FILE - WRITE DATA WITH TS
|
|
156
|
-
with open(_f_name, f_mode) as f:
|
|
157
|
-
_data = f"{ts} {_data}\n"
|
|
158
|
-
# read file lines and filter by time stump chunks (hack for replace truncate)
|
|
159
|
-
lines = [_l for _l in f.readlines() if '-' in _l and '.' in _l]
|
|
160
|
-
# get file params
|
|
161
|
-
lines_len = len(lines)
|
|
162
|
-
lines.append(_data)
|
|
163
|
-
f.seek(0)
|
|
164
|
-
# line data rotate
|
|
165
|
-
if lines_len >= _limit:
|
|
166
|
-
lines = lines[-_limit:]
|
|
167
|
-
lines_str = ''.join(lines)
|
|
168
|
-
else:
|
|
169
|
-
lines_str = ''.join(lines)
|
|
170
|
-
# write file
|
|
171
|
-
f.write(lines_str)
|
|
172
|
-
|
|
173
|
-
# Run logger
|
|
174
|
-
try:
|
|
175
|
-
# There is file - append 'r+'
|
|
176
|
-
_logger(data, f_name, limit)
|
|
177
|
-
except:
|
|
178
|
-
try:
|
|
179
|
-
# There is no file - create 'a+'
|
|
180
|
-
_logger(data, f_name, limit, 'a+')
|
|
181
|
-
except:
|
|
182
|
-
return False
|
|
183
|
-
return True
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
def log_get(f_name, msgobj=None):
|
|
187
|
-
"""
|
|
188
|
-
Get and stream (ver osocket/stdout) .log file's content and count "critical" errors
|
|
189
|
-
- critical error tag in log line: [ERR]
|
|
190
|
-
"""
|
|
191
|
-
err_cnt = 0
|
|
192
|
-
try:
|
|
193
|
-
with open(f_name, 'r') as f:
|
|
194
|
-
eline = f.readline().strip()
|
|
195
|
-
while eline:
|
|
196
|
-
# GET error from log line (tag: [ERR])
|
|
197
|
-
err_cnt += 1 if "[ERR]" in eline else 0
|
|
198
|
-
# GIVE BACK .log file contents
|
|
199
|
-
if msgobj is None:
|
|
200
|
-
console_write(eline)
|
|
201
|
-
else:
|
|
202
|
-
msgobj(eline)
|
|
203
|
-
eline = f.readline().strip()
|
|
204
|
-
except:
|
|
205
|
-
pass
|
|
206
|
-
return err_cnt
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
#############################################
|
|
210
|
-
# ERROR LOGGING #
|
|
211
|
-
#############################################
|
|
212
|
-
|
|
213
137
|
|
|
214
138
|
def errlog_add(data, console=True):
|
|
215
139
|
"""
|
|
@@ -218,23 +142,18 @@ def errlog_add(data, console=True):
|
|
|
218
142
|
:return: is ok
|
|
219
143
|
"""
|
|
220
144
|
if console:
|
|
221
|
-
console_write(
|
|
222
|
-
return
|
|
145
|
+
console_write(data)
|
|
146
|
+
return False if syslog is None else syslog(data)
|
|
223
147
|
|
|
224
148
|
|
|
225
149
|
def errlog_get(msgobj=None):
|
|
226
|
-
f_name = 'err.log'
|
|
227
|
-
errcnt = log_get(f_name, msgobj)
|
|
228
150
|
# Return error number
|
|
229
|
-
return
|
|
151
|
+
return -1 if syslog is None else syslog(msgobj=msgobj)
|
|
230
152
|
|
|
231
153
|
|
|
232
154
|
def errlog_clean(msgobj=None):
|
|
233
|
-
to_del = [file for file in
|
|
155
|
+
to_del = [file for file in listdir() if file.endswith('.log')]
|
|
234
156
|
for _del in to_del:
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
else:
|
|
239
|
-
msgobj(del_msg)
|
|
240
|
-
os.remove(_del)
|
|
157
|
+
if msgobj is not None:
|
|
158
|
+
msgobj(f" Delete: {_del}")
|
|
159
|
+
remove(_del)
|
|
@@ -233,6 +233,7 @@ def help(widgets=False):
|
|
|
233
233
|
'SLIDER settings saturation=<0-100>',
|
|
234
234
|
'SLIDER settings brightness=<0-100>',
|
|
235
235
|
'SLIDER settings contrast=<0-100>',
|
|
236
|
+
'BUTTON settings effect=<NONE,NEG,BW,RED,GREEN,BLUE,RETRO>',
|
|
236
237
|
'capture',
|
|
237
238
|
'photo',
|
|
238
239
|
'set_photo_endpoint',
|
|
@@ -320,5 +320,5 @@ def help(widgets=False):
|
|
|
320
320
|
(widgets=True) list of widget json for UI generation
|
|
321
321
|
"""
|
|
322
322
|
return resolve(('BUTTON bipp repeat=3 freq=600',
|
|
323
|
-
'play
|
|
323
|
+
'TOGGLE play rtttlstr=<Indiana,TakeOnMe,StarWars,MissionImp>', 'list_tones',
|
|
324
324
|
'load', 'pinmap'), widgets=widgets)
|
|
@@ -352,7 +352,7 @@ def help(widgets=False):
|
|
|
352
352
|
(widgets=True) list of widget json for UI generation
|
|
353
353
|
"""
|
|
354
354
|
return resolve(('WHITE white cw=<0-1000-5> ww smooth=True force=True',
|
|
355
|
-
'
|
|
355
|
+
'BUTTON toggle state=<True,False> smooth=True', 'load',
|
|
356
356
|
'SLIDER brightness percent=<0-100> smooth=True wake=True',
|
|
357
357
|
'transition cw=None ww=None sec=1.0 wake=False',
|
|
358
358
|
'hue_transition percent=<0-100> sec=1.0 wake=False',
|
|
@@ -232,7 +232,7 @@ def help(widgets=False):
|
|
|
232
232
|
(widgets=True) list of widget json for UI generation
|
|
233
233
|
"""
|
|
234
234
|
return resolve(('SLIDER set_value value=<0-1000> smooth=True force=True',
|
|
235
|
-
'BUTTON toggle state
|
|
235
|
+
'BUTTON toggle state=<True,False> smooth=True',
|
|
236
236
|
'subscribe_presence',
|
|
237
237
|
'transition value=<0-1000> sec wake=False',
|
|
238
238
|
'status', 'load', 'pinmap'), widgets=widgets)
|
|
@@ -20,7 +20,7 @@ class KC:
|
|
|
20
20
|
DP_cnt_default = None # store calculated sequence to sleep 30sec/period_ms
|
|
21
21
|
NEOPIXEL_OBJ = None # Neopixel LED handler object
|
|
22
22
|
COLOR_WHEEL = None # LED color wheel generator object for animation
|
|
23
|
-
NEOPIXEL_BR =
|
|
23
|
+
NEOPIXEL_BR = 20 # default neopixel brightness
|
|
24
24
|
|
|
25
25
|
#############################
|
|
26
26
|
# INTERNAL FUNCTIONS #
|
|
@@ -54,7 +54,7 @@ async def _screen_saver(scale=2):
|
|
|
54
54
|
show()
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
def
|
|
57
|
+
def __color_wheel():
|
|
58
58
|
"""
|
|
59
59
|
RGB LED color wheel generator - rainbow
|
|
60
60
|
"""
|
|
@@ -126,7 +126,7 @@ async def _main_page():
|
|
|
126
126
|
return "Display show"
|
|
127
127
|
|
|
128
128
|
|
|
129
|
-
async def
|
|
129
|
+
async def _ui_task(period_ms):
|
|
130
130
|
"""
|
|
131
131
|
Async display refresh task
|
|
132
132
|
- main page (main mode) - auto sleep after 30 sec
|
|
@@ -166,7 +166,7 @@ async def _task(period_ms):
|
|
|
166
166
|
show() #3 show cleaned display
|
|
167
167
|
KC.DP_cnt = KC.DP_cnt_default #4 reset sleep counter to default
|
|
168
168
|
my_task.out = 'sleep...'
|
|
169
|
-
|
|
169
|
+
color_wheel() # update neopixel color wheel
|
|
170
170
|
|
|
171
171
|
|
|
172
172
|
def _boot_page(msg):
|
|
@@ -189,7 +189,7 @@ def load(width=64, height=32, bootmsg="micrOS"):
|
|
|
189
189
|
:param height: screen height (pixel)
|
|
190
190
|
:param bootmsg: First text on page at bootup, default: "micrOS"
|
|
191
191
|
"""
|
|
192
|
-
KC.COLOR_WHEEL =
|
|
192
|
+
KC.COLOR_WHEEL = __color_wheel() #1 Init neopixel color wheel generator
|
|
193
193
|
try:
|
|
194
194
|
oled_lni(width, height, brightness=20) #2 Init oled display
|
|
195
195
|
_boot_page(bootmsg) #3 Show boot page text
|
|
@@ -207,7 +207,7 @@ def display(period=1000):
|
|
|
207
207
|
"""
|
|
208
208
|
# [!] ASYNC TASK CREATION [1*] with async task callback + taskID (TAG) handling
|
|
209
209
|
period_ms = 500 if period < 500 else period
|
|
210
|
-
state = micro_task(tag="kc._display", task=
|
|
210
|
+
state = micro_task(tag="kc._display", task=_ui_task(period_ms=period_ms))
|
|
211
211
|
return "Starting" if state else "Already running"
|
|
212
212
|
|
|
213
213
|
|
|
@@ -218,7 +218,7 @@ def temperature():
|
|
|
218
218
|
return measure()
|
|
219
219
|
|
|
220
220
|
|
|
221
|
-
def
|
|
221
|
+
def color_wheel(br=None):
|
|
222
222
|
"""
|
|
223
223
|
Neopixel color wheel
|
|
224
224
|
:param br: brightness value 0-100 percent
|
|
@@ -236,7 +236,7 @@ def neopixel_color_wheel(br=None):
|
|
|
236
236
|
else:
|
|
237
237
|
KC.NEOPIXEL_BR = br # update neopixel brightness cache
|
|
238
238
|
if KC.COLOR_WHEEL is None:
|
|
239
|
-
KC.COLOR_WHEEL =
|
|
239
|
+
KC.COLOR_WHEEL = __color_wheel() # init color wheel generator
|
|
240
240
|
# UPDATE
|
|
241
241
|
r, g, b = next(KC.COLOR_WHEEL) # get next color
|
|
242
242
|
br = br if br == 100 else br/100 # calculate brightness multiplier
|
|
@@ -266,7 +266,7 @@ def neopixel_toggle():
|
|
|
266
266
|
v = 'disabled' if KC.NEOPIXEL_BR == 0 else 'enabled'
|
|
267
267
|
return f"Neopixel: {v} br: {KC.NEOPIXEL_BR}"
|
|
268
268
|
|
|
269
|
-
def
|
|
269
|
+
def button():
|
|
270
270
|
"""
|
|
271
271
|
IRQ1 keychain module control function
|
|
272
272
|
- neopixel ON/OFF
|
|
@@ -311,8 +311,8 @@ def help(widgets=False):
|
|
|
311
311
|
"""
|
|
312
312
|
return ('load width=64 height=32 bootmsg="micrOS"',
|
|
313
313
|
'temperature', 'display period>=1000',
|
|
314
|
-
'
|
|
314
|
+
'button',
|
|
315
315
|
'display_toggle',
|
|
316
316
|
'neopixel_toggle',
|
|
317
|
-
'
|
|
317
|
+
'color_wheel br=<0-100>',
|
|
318
318
|
'pinmap', 'lmdep')
|
|
@@ -342,12 +342,12 @@ def help(widgets=False):
|
|
|
342
342
|
(widgets=False) list of functions implemented by this application
|
|
343
343
|
(widgets=True) list of widget json for UI generation
|
|
344
344
|
"""
|
|
345
|
-
return resolve(('COLOR color r=<0-255> g b smooth=True force=True',
|
|
346
|
-
'
|
|
345
|
+
return resolve(('COLOR color r=<0-255-5> g b smooth=True force=True',
|
|
346
|
+
'BUTTON toggle state=<True,False> smooth=True',
|
|
347
347
|
'load ledcnt=24',
|
|
348
348
|
'SLIDER brightness percent=<0-100> smooth=True wake=True',
|
|
349
349
|
'COLOR segment r g b s=<0-n>',
|
|
350
|
-
'transition r
|
|
350
|
+
'transition r g b sec=1.0 wake=False',
|
|
351
351
|
'BUTTON random smooth=True max_val=254',
|
|
352
352
|
'status',
|
|
353
353
|
'subscribe_presence',
|
|
@@ -643,12 +643,7 @@ def help(widgets=False):
|
|
|
643
643
|
(widgets=True) list of widget json for UI generation
|
|
644
644
|
"""
|
|
645
645
|
return resolve(('pageui page=0 pwr_sec=None/int(sec) oled_type="ssd1306 or sh1106"',
|
|
646
|
-
'control next
|
|
647
|
-
'BUTTON control cmd="next"',
|
|
648
|
-
'BUTTON control cmd="prev"',
|
|
649
|
-
'BUTTON control cmd="press"',
|
|
650
|
-
'BUTTON control cmd="on"',
|
|
651
|
-
'BUTTON control cmd="off"',
|
|
646
|
+
'BUTTON control cmd=<next,prev,press,on,off>',
|
|
652
647
|
'msgbox "msg"',
|
|
653
648
|
'intercon_genpage "host" "cmd" run=False',
|
|
654
649
|
'cmd_genpage "cmd" run=False',
|
|
@@ -313,8 +313,8 @@ def help(widgets=False):
|
|
|
313
313
|
(widgets=False) list of functions implemented by this application
|
|
314
314
|
(widgets=True) list of widget json for UI generation
|
|
315
315
|
"""
|
|
316
|
-
return resolve(( 'COLOR color r=<0-1000> g b smooth=True force=True',
|
|
317
|
-
'
|
|
316
|
+
return resolve(( 'COLOR color r=<0-1000-10> g b smooth=True force=True',
|
|
317
|
+
'BUTTON toggle state=<True,False> smooth=True', 'load',
|
|
318
318
|
'SLIDER brightness percent=<0-100> smooth=True wake=True',
|
|
319
319
|
'transition r=None g=None b=None sec=1.0 wake=False',
|
|
320
320
|
'BUTTON random smooth=True max_val=1000',
|
|
@@ -60,6 +60,6 @@ def help(widgets=False):
|
|
|
60
60
|
(widgets=True) list of widget json for UI generation
|
|
61
61
|
"""
|
|
62
62
|
return resolve(('load',
|
|
63
|
-
'BUTTON toggle state smooth=True',
|
|
63
|
+
'BUTTON toggle state=<True,False> smooth=True',
|
|
64
64
|
'SLIDER brightness percent smooth=True wake=True',
|
|
65
65
|
'status', 'pinmap'), widgets=widgets)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from LM_system import memory_usage
|
|
2
|
-
from Common import socket_stream
|
|
2
|
+
from Common import socket_stream, syslog
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
@socket_stream
|
|
@@ -9,6 +9,7 @@ def raise_error(msgobj=None):
|
|
|
9
9
|
"""
|
|
10
10
|
if msgobj is not None:
|
|
11
11
|
msgobj("Raise test exception")
|
|
12
|
+
syslog("Raise test exception")
|
|
12
13
|
raise Exception("Test exception")
|
|
13
14
|
|
|
14
15
|
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from time import localtime
|
|
2
|
+
|
|
3
|
+
#############################################
|
|
4
|
+
# LOGGING WITH DATA ROTATION #
|
|
5
|
+
#############################################
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def logger(data, f_name, limit):
|
|
9
|
+
"""
|
|
10
|
+
Create generic logger function
|
|
11
|
+
- implements log line rotation
|
|
12
|
+
- automatic time stump
|
|
13
|
+
:param data: input string data to log
|
|
14
|
+
:param f_name: file name to use
|
|
15
|
+
:param limit: line limit for log rotation
|
|
16
|
+
return write verdict - true / false
|
|
17
|
+
INFO: hardcoded max data number = 30
|
|
18
|
+
"""
|
|
19
|
+
def _logger(_data, _f_name, _limit, f_mode='r+'):
|
|
20
|
+
_limit = 30 if _limit > 30 else _limit
|
|
21
|
+
# [1] GET TIME STUMP
|
|
22
|
+
ts_buff = [str(k) for k in localtime()]
|
|
23
|
+
ts = ".".join(ts_buff[0:3]) + "-" + ":".join(ts_buff[3:6])
|
|
24
|
+
# [2] OPEN FILE - WRITE DATA WITH TS
|
|
25
|
+
with open(_f_name, f_mode) as f:
|
|
26
|
+
_data = f"{ts} {_data}\n"
|
|
27
|
+
# read file lines and filter by time stump chunks (hack for replace truncate)
|
|
28
|
+
lines = [_l for _l in f.readlines() if '-' in _l and '.' in _l]
|
|
29
|
+
# get file params
|
|
30
|
+
lines_len = len(lines)
|
|
31
|
+
lines.append(_data)
|
|
32
|
+
f.seek(0)
|
|
33
|
+
# line data rotate
|
|
34
|
+
if lines_len >= _limit:
|
|
35
|
+
lines = lines[-_limit:]
|
|
36
|
+
lines_str = ''.join(lines)
|
|
37
|
+
else:
|
|
38
|
+
lines_str = ''.join(lines)
|
|
39
|
+
# write file
|
|
40
|
+
f.write(lines_str)
|
|
41
|
+
|
|
42
|
+
# Run logger
|
|
43
|
+
try:
|
|
44
|
+
# There is file - append 'r+'
|
|
45
|
+
_logger(data, f_name, limit)
|
|
46
|
+
except:
|
|
47
|
+
try:
|
|
48
|
+
# There is no file - create 'a+'
|
|
49
|
+
_logger(data, f_name, limit, 'a+')
|
|
50
|
+
except:
|
|
51
|
+
return False
|
|
52
|
+
return True
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def log_get(f_name, msgobj=None):
|
|
56
|
+
"""
|
|
57
|
+
Get and stream (ver osocket/stdout) .log file's content and count "critical" errors
|
|
58
|
+
- critical error tag in log line: [ERR]
|
|
59
|
+
"""
|
|
60
|
+
err_cnt = 0
|
|
61
|
+
try:
|
|
62
|
+
with open(f_name, 'r') as f:
|
|
63
|
+
eline = f.readline().strip()
|
|
64
|
+
while eline:
|
|
65
|
+
# GET error from log line (tag: [ERR])
|
|
66
|
+
err_cnt += 1 if "[ERR]" in eline else 0
|
|
67
|
+
# GIVE BACK .log file contents
|
|
68
|
+
if msgobj is not None:
|
|
69
|
+
msgobj(eline)
|
|
70
|
+
eline = f.readline().strip()
|
|
71
|
+
except:
|
|
72
|
+
pass
|
|
73
|
+
return err_cnt
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def syslog(data=None, msgobj=None):
|
|
77
|
+
if data is None:
|
|
78
|
+
return log_get('err.log', msgobj)
|
|
79
|
+
return logger(data, 'err.log', limit=6)
|
|
@@ -18,10 +18,10 @@ from Network import ifconfig
|
|
|
18
18
|
from Tasks import Manager
|
|
19
19
|
from Shell import Shell
|
|
20
20
|
try:
|
|
21
|
-
from gc import collect
|
|
21
|
+
from gc import collect
|
|
22
22
|
except:
|
|
23
23
|
console_write("[SIMULATOR MODE GC IMPORT]")
|
|
24
|
-
from simgc import collect
|
|
24
|
+
from simgc import collect
|
|
25
25
|
|
|
26
26
|
# Module load optimization, needed only for webui
|
|
27
27
|
if cfgget('webui'):
|
|
@@ -107,7 +107,7 @@ class Client:
|
|
|
107
107
|
Client.console(f"[Client] Drain error -> close conn: {e}")
|
|
108
108
|
await self.close()
|
|
109
109
|
else:
|
|
110
|
-
console_write(
|
|
110
|
+
console_write("[Client] NoCon: response>dev/nul")
|
|
111
111
|
|
|
112
112
|
def send(self, response):
|
|
113
113
|
# Implement in child class - synchronous send method
|
|
@@ -177,14 +177,13 @@ class WebCli(Client):
|
|
|
177
177
|
@staticmethod
|
|
178
178
|
def file_type(path):
|
|
179
179
|
"""File dynamic Content-Type handling"""
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
return "text/plain"
|
|
180
|
+
content_types = {".html": "text/html",
|
|
181
|
+
".css": "text/css",
|
|
182
|
+
".js": "application/javascript"}
|
|
183
|
+
# Extract the file extension
|
|
184
|
+
ext = path.rsplit('.', 1)[-1]
|
|
185
|
+
# Return the content type based on the file extension
|
|
186
|
+
return content_types.get(f".{ext}", "text/plain")
|
|
188
187
|
|
|
189
188
|
async def response(self, request):
|
|
190
189
|
"""HTTP GET REQUEST - WEB INTERFACE"""
|
|
@@ -192,7 +191,7 @@ class WebCli(Client):
|
|
|
192
191
|
_method, url, _version = request.split('\n')[0].split()
|
|
193
192
|
# Protocol validation
|
|
194
193
|
if _method != "GET" and _version.startswith('HTTP'):
|
|
195
|
-
_err =
|
|
194
|
+
_err = "Bad Request: not GET HTTP/1.1"
|
|
196
195
|
await self.a_send(self.REQ400.format(len=len(_err), data=_err))
|
|
197
196
|
return
|
|
198
197
|
|
|
@@ -339,10 +338,10 @@ class ShellCli(Client, Shell):
|
|
|
339
338
|
# Store data in stream buffer
|
|
340
339
|
try:
|
|
341
340
|
self.writer.write(response.encode('utf8'))
|
|
342
|
-
except
|
|
341
|
+
except:
|
|
343
342
|
# Maintain ACTIVE_CLIS - remove closed connection by peer.
|
|
344
343
|
Client.drop_client(self.client_id)
|
|
345
|
-
errlog_add(f"[WARN] ShellCli.send (auto-drop) {self.client_id}
|
|
344
|
+
errlog_add(f"[WARN] ShellCli.send (auto-drop) {self.client_id}")
|
|
346
345
|
# Send buffered data with async task - hacky
|
|
347
346
|
if self.drain_event.is_set():
|
|
348
347
|
self.drain_event.clear() # set drain busy (False)
|
|
@@ -152,10 +152,8 @@ def suntime():
|
|
|
152
152
|
_, response = http_get(url, sock_size=512, jsonify=True)
|
|
153
153
|
results = response.get('results')
|
|
154
154
|
time_regex = re_comp(r'T([0-9:]+)')
|
|
155
|
-
sun = {
|
|
156
|
-
|
|
157
|
-
'sunset': time_regex.search(results.get('sunset')).group(1).split(':')
|
|
158
|
-
}
|
|
155
|
+
sun = {'sunrise': time_regex.search(results.get('sunrise')).group(1).split(':'),
|
|
156
|
+
'sunset': time_regex.search(results.get('sunset')).group(1).split(':')}
|
|
159
157
|
except Exception as e:
|
|
160
158
|
errlog_add(f'[ERR] sunrise-api: {e} data: {response}')
|
|
161
159
|
# Try to parse response by expected sun_keys
|