micrOSDevToolKit 2.1.5__py3-none-any.whl → 2.26.1__py3-none-any.whl
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.
- env/driver_cp210x/.DS_Store +0 -0
- env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
- env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +17 -1
- micrOS/micropython/esp32-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32c3-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32c6-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32s2-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32s2-LOLIN_MINI-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32s3-4MBflash-20241129-v1.24.1.bin +0 -0
- micrOS/micropython/esp32s3-8MBflash-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/esp32s3_spiram_oct-20251209-v1.27.0.bin +0 -0
- micrOS/micropython/rpi-pico-w-20251209-v1.27.0.uf2 +0 -0
- micrOS/micropython/tinypico-20251209-v1.27.0.bin +0 -0
- micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +191 -151
- micrOS/source/Auth.py +37 -0
- micrOS/source/Common.py +376 -102
- micrOS/source/Config.py +55 -25
- micrOS/source/Debug.py +54 -193
- micrOS/source/Espnow.py +404 -0
- micrOS/source/Files.py +207 -0
- micrOS/source/Hooks.py +88 -16
- micrOS/source/InterConnect.py +130 -46
- micrOS/source/Interrupts.py +8 -8
- micrOS/source/Logger.py +131 -0
- micrOS/source/Network.py +41 -21
- micrOS/source/Notify.py +74 -198
- micrOS/source/Pacman.py +326 -0
- micrOS/source/Scheduler.py +18 -55
- micrOS/source/Server.py +84 -217
- micrOS/source/Shell.py +103 -93
- micrOS/source/Tasks.py +239 -173
- micrOS/source/Time.py +21 -22
- micrOS/source/Types.py +89 -54
- micrOS/source/Web.py +485 -0
- micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Debug.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Files.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Scheduler.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/Shell.cpython-312.pyc +0 -0
- micrOS/source/__pycache__/replhelper.cpython-312.pyc +0 -0
- micrOS/source/helpers.py +132 -0
- micrOS/source/micrOS.py +25 -21
- micrOS/source/micrOSloader.py +14 -23
- micrOS/source/microIO.py +94 -57
- toolkit/simulator_lib/LP_darwin.py → micrOS/source/modules/IO_esp32.py +22 -11
- micrOS/source/{IO_esp32c3.py → modules/IO_esp32c3.py} +6 -1
- micrOS/source/modules/IO_esp32c6.py +38 -0
- micrOS/source/{IO_esp32s2.py → modules/IO_esp32s2.py} +6 -1
- micrOS/source/{IO_esp32s3.py → modules/IO_esp32s3.py} +43 -2
- micrOS/source/modules/IO_m5stamp.py +86 -0
- micrOS/source/{IO_qtpy.py → modules/IO_qtpy.py} +28 -18
- micrOS/source/{IO_tinypico.py → modules/IO_tinypico.py} +48 -3
- micrOS/source/modules/LM_L298N.py +161 -0
- {toolkit/workspace/precompiled → micrOS/source/modules}/LM_L9110_DCmotor.py +4 -4
- micrOS/source/{LM_OV2640.py → modules/LM_OV2640.py} +53 -42
- micrOS/source/{LM_VL53L0X.py → modules/LM_VL53L0X.py} +5 -5
- micrOS/source/{LM_aht10.py → modules/LM_aht10.py} +12 -4
- micrOS/source/{LM_bme280.py → modules/LM_bme280.py} +13 -25
- micrOS/source/{LM_buzzer.py → modules/LM_buzzer.py} +42 -40
- micrOS/source/{LM_cct.py → modules/LM_cct.py} +22 -27
- micrOS/source/modules/LM_cluster.py +255 -0
- micrOS/source/{LM_co2.py → modules/LM_co2.py} +13 -6
- micrOS/source/{LM_dht11.py → modules/LM_dht11.py} +13 -29
- micrOS/source/{LM_dht22.py → modules/LM_dht22.py} +13 -28
- micrOS/source/{LM_dimmer.py → modules/LM_dimmer.py} +19 -16
- micrOS/source/modules/LM_distance.py +135 -0
- micrOS/source/{LM_ds18.py → modules/LM_ds18.py} +12 -4
- micrOS/source/{LM_esp32.py → modules/LM_esp32.py} +16 -4
- micrOS/source/modules/LM_espnow.py +53 -0
- micrOS/source/modules/LM_fileserver.py +265 -0
- micrOS/source/{LM_gameOfLife.py → modules/LM_gameOfLife.py} +5 -5
- micrOS/source/{LM_genIO.py → modules/LM_genIO.py} +49 -35
- micrOS/source/modules/LM_haptic.py +111 -0
- micrOS/source/modules/LM_i2c.py +61 -0
- micrOS/source/{LM_i2s_mic.py → modules/LM_i2s_mic.py} +20 -23
- micrOS/source/{LM_ld2410.py → modules/LM_ld2410.py} +3 -3
- micrOS/source/{LM_light_sensor.py → modules/LM_light_sensor.py} +22 -26
- micrOS/source/modules/LM_mh_z19c.py +198 -0
- micrOS/source/modules/LM_neoeffects.py +284 -0
- micrOS/source/{LM_neopixel.py → modules/LM_neopixel.py} +26 -31
- micrOS/source/{LM_oled.py → modules/LM_oled.py} +28 -20
- micrOS/source/{LM_oled_sh1106.py → modules/LM_oled_sh1106.py} +28 -24
- micrOS/source/{LM_oled_ui.py → modules/LM_oled_ui.py} +132 -174
- micrOS/source/modules/LM_pacman.py +320 -0
- micrOS/source/{LM_presence.py → modules/LM_presence.py} +24 -36
- micrOS/source/modules/LM_qmi8658.py +204 -0
- micrOS/source/{LM_rencoder.py → modules/LM_rencoder.py} +40 -11
- micrOS/source/modules/LM_rest.py +81 -0
- micrOS/source/{LM_rgb.py → modules/LM_rgb.py} +25 -34
- micrOS/source/{LM_rgbcct.py → modules/LM_rgbcct.py} +5 -5
- micrOS/source/{LM_roboarm.py → modules/LM_roboarm.py} +37 -45
- micrOS/source/modules/LM_robustness.py +137 -0
- micrOS/source/{LM_rp2w.py → modules/LM_rp2w.py} +3 -0
- micrOS/source/{LM_sdcard.py → modules/LM_sdcard.py} +3 -0
- micrOS/source/{LM_servo.py → modules/LM_servo.py} +4 -4
- micrOS/source/modules/LM_sound_event.py +751 -0
- micrOS/source/{LM_stepper.py → modules/LM_stepper.py} +8 -8
- micrOS/source/{LM_switch.py → modules/LM_switch.py} +21 -18
- micrOS/source/{LM_system.py → modules/LM_system.py} +96 -59
- micrOS/source/modules/LM_tcs3472.py +187 -0
- micrOS/source/modules/LM_telegram.py +388 -0
- micrOS/source/modules/LM_trackball.py +287 -0
- micrOS/source/modules/LM_veml7700.py +159 -0
- micrOS/source/modules/LM_web.py +38 -0
- micrOS/source/urequests.py +204 -91
- {toolkit/workspace/precompiled → micrOS/source/web}/dashboard.html +9 -4
- micrOS/source/web/editor.js +440 -0
- micrOS/source/web/filesui.html +178 -0
- micrOS/source/web/filesui.js +338 -0
- micrOS/source/{index.html → web/index.html} +44 -2
- micrOS/source/web/uapi.js +103 -0
- micrOS/source/web/udashboard.js +129 -0
- micrOS/source/web/ustyle.css +55 -0
- micrOS/source/web/uwidgets.js +172 -0
- micrOS/source/web/uwidgets_pro.js +99 -0
- micrOS/utests/__init__.py +0 -0
- micrOS/utests/test_scheduler.py +435 -0
- {micrOSDevToolKit-2.1.5.data → microsdevtoolkit-2.26.1.data}/scripts/devToolKit.py +47 -4
- {micrOSDevToolKit-2.1.5.dist-info → microsdevtoolkit-2.26.1.dist-info}/METADATA +392 -279
- microsdevtoolkit-2.26.1.dist-info/RECORD +396 -0
- {micrOSDevToolKit-2.1.5.dist-info → microsdevtoolkit-2.26.1.dist-info}/WHEEL +1 -1
- toolkit/DevEnvCompile.py +63 -33
- toolkit/DevEnvOTA.py +72 -22
- toolkit/DevEnvUSB.py +147 -77
- toolkit/Gateway.py +9 -9
- toolkit/LM_to_compile.dat +12 -4
- toolkit/MicrOSDevEnv.py +129 -51
- toolkit/WebRepl.py +73 -0
- toolkit/dashboard_apps/BackupRestore.py +171 -0
- toolkit/dashboard_apps/CCTDemo.py +12 -17
- toolkit/dashboard_apps/CCTTest.py +20 -24
- toolkit/dashboard_apps/CamStream.py +2 -6
- toolkit/dashboard_apps/CatGame.py +14 -16
- toolkit/dashboard_apps/Dimmer.py +11 -21
- toolkit/dashboard_apps/GetVersion.py +11 -19
- toolkit/dashboard_apps/MicrophoneTest.py +2 -7
- toolkit/dashboard_apps/NeoEffectsDemo.py +22 -35
- toolkit/dashboard_apps/NeopixelTest.py +20 -25
- toolkit/dashboard_apps/PresenceTest.py +2 -8
- toolkit/dashboard_apps/QMI8685_GYRO.py +68 -0
- toolkit/dashboard_apps/RGBTest.py +20 -24
- toolkit/dashboard_apps/RoboArm.py +24 -32
- toolkit/dashboard_apps/SED_test.py +10 -14
- toolkit/dashboard_apps/SensorsTest.py +61 -0
- toolkit/dashboard_apps/SystemTest.py +219 -117
- toolkit/dashboard_apps/Template_app.py +12 -19
- toolkit/dashboard_apps/_app_base.py +34 -0
- toolkit/dashboard_apps/_gyro_visualizer.py +78 -0
- toolkit/dashboard_apps/uLightDemo.py +15 -24
- toolkit/index.html +6 -5
- toolkit/lib/LocalMachine.py +6 -1
- toolkit/lib/MicrosFiles.py +46 -0
- toolkit/lib/Repository.py +64 -0
- toolkit/lib/TerminalColors.py +4 -0
- toolkit/lib/macroScript.py +371 -0
- toolkit/lib/micrOSClient.py +124 -51
- toolkit/lib/micrOSClientHistory.py +156 -0
- toolkit/lib/pip_package_installer.py +31 -4
- toolkit/micrOSdashboard.py +16 -21
- toolkit/micrOSlint.py +28 -10
- toolkit/simulator_lib/.DS_Store +0 -0
- micrOS/source/IO_esp32.py → toolkit/simulator_lib/IO_darwin.py +3 -0
- toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/aioespnow.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/camera.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/mip.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/sim_common.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/urandom.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
- toolkit/simulator_lib/aioespnow.py +28 -0
- toolkit/simulator_lib/camera.py +84 -0
- toolkit/simulator_lib/dht.py +1 -1
- toolkit/simulator_lib/framebuf.py +49 -1
- toolkit/simulator_lib/machine.py +32 -2
- toolkit/simulator_lib/micropython.py +3 -3
- toolkit/simulator_lib/mip.py +165 -0
- toolkit/simulator_lib/neopixel.py +3 -2
- toolkit/simulator_lib/network.py +2 -1
- toolkit/simulator_lib/node_config.json +2 -3
- toolkit/simulator_lib/ntptime.py +1 -1
- toolkit/simulator_lib/{sim_console.py → sim_common.py} +2 -3
- toolkit/simulator_lib/simgc.py +6 -2
- toolkit/simulator_lib/simulator.py +138 -46
- toolkit/simulator_lib/uasyncio.py +34 -3
- toolkit/simulator_lib/uos.py +147 -0
- toolkit/simulator_lib/urandom.py +4 -0
- toolkit/simulator_lib/usocket.py +5 -1
- toolkit/simulator_lib/view01.jpg +0 -0
- toolkit/simulator_lib/view02.jpg +0 -0
- toolkit/socketClient.py +43 -23
- toolkit/user_data/webhooks/generic.py +1 -1
- toolkit/user_data/webhooks/macro.py +44 -0
- toolkit/user_data/webhooks/template.macro +20 -0
- toolkit/user_data/webhooks/template.py +1 -1
- toolkit/workspace/precompiled/Auth.mpy +0 -0
- toolkit/workspace/precompiled/Common.mpy +0 -0
- toolkit/workspace/precompiled/Config.mpy +0 -0
- toolkit/workspace/precompiled/Debug.mpy +0 -0
- toolkit/workspace/precompiled/Espnow.mpy +0 -0
- toolkit/workspace/precompiled/Files.mpy +0 -0
- toolkit/workspace/precompiled/Hooks.mpy +0 -0
- toolkit/workspace/precompiled/InterConnect.mpy +0 -0
- toolkit/workspace/precompiled/Interrupts.mpy +0 -0
- toolkit/workspace/precompiled/Logger.mpy +0 -0
- toolkit/workspace/precompiled/Network.mpy +0 -0
- toolkit/workspace/precompiled/Notify.mpy +0 -0
- toolkit/workspace/precompiled/Pacman.mpy +0 -0
- toolkit/workspace/precompiled/Scheduler.mpy +0 -0
- toolkit/workspace/precompiled/Server.mpy +0 -0
- toolkit/workspace/precompiled/Shell.mpy +0 -0
- toolkit/workspace/precompiled/Tasks.mpy +0 -0
- toolkit/workspace/precompiled/Time.mpy +0 -0
- toolkit/workspace/precompiled/Types.mpy +0 -0
- toolkit/workspace/precompiled/Web.mpy +0 -0
- toolkit/workspace/precompiled/_mpy.version +1 -1
- toolkit/workspace/precompiled/config/_git.keep +0 -0
- toolkit/workspace/precompiled/helpers.mpy +0 -0
- toolkit/workspace/precompiled/micrOS.mpy +0 -0
- toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
- toolkit/workspace/precompiled/microIO.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_esp32.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_esp32c3.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_esp32c6.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_esp32s2.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_esp32s3.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_m5stamp.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_qtpy.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_rp2.mpy +0 -0
- toolkit/workspace/precompiled/modules/IO_tinypico.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_L298N.mpy +0 -0
- {micrOS/source → toolkit/workspace/precompiled/modules}/LM_L9110_DCmotor.py +4 -4
- toolkit/workspace/precompiled/modules/LM_OV2640.mpy +0 -0
- toolkit/workspace/precompiled/{LM_VL53L0X.py → modules/LM_VL53L0X.py} +5 -5
- toolkit/workspace/precompiled/modules/LM_aht10.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_bme280.mpy +0 -0
- toolkit/workspace/precompiled/{LM_buzzer.mpy → modules/LM_buzzer.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_cluster.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_co2.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_dht11.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_dht22.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_ds18.mpy +0 -0
- toolkit/workspace/precompiled/{LM_esp32.py → modules/LM_esp32.py} +16 -4
- toolkit/workspace/precompiled/modules/LM_espnow.py +53 -0
- toolkit/workspace/precompiled/modules/LM_fileserver.mpy +0 -0
- toolkit/workspace/precompiled/{LM_gameOfLife.mpy → modules/LM_gameOfLife.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_genIO.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_haptic.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_i2c.py +61 -0
- toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
- toolkit/workspace/precompiled/{LM_ld2410.mpy → modules/LM_ld2410.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_light_sensor.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_mh_z19c.py +198 -0
- toolkit/workspace/precompiled/modules/LM_neoeffects.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_oled.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_qmi8658.py +204 -0
- toolkit/workspace/precompiled/{LM_rencoder.py → modules/LM_rencoder.py} +40 -11
- toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
- toolkit/workspace/precompiled/{LM_rgbcct.mpy → modules/LM_rgbcct.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_robustness.py +137 -0
- toolkit/workspace/precompiled/{LM_rp2w.py → modules/LM_rp2w.py} +3 -0
- toolkit/workspace/precompiled/{LM_sdcard.py → modules/LM_sdcard.py} +3 -0
- toolkit/workspace/precompiled/{LM_servo.mpy → modules/LM_servo.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_sound_event.mpy +0 -0
- toolkit/workspace/precompiled/{LM_stepper.mpy → modules/LM_stepper.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_switch.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_system.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_tcs3472.py +187 -0
- toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
- toolkit/workspace/precompiled/{LM_tinyrgb.mpy → modules/LM_tinyrgb.mpy} +0 -0
- toolkit/workspace/precompiled/modules/LM_trackball.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_veml7700.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_web.mpy +0 -0
- toolkit/workspace/precompiled/urequests.mpy +0 -0
- {micrOS/source → toolkit/workspace/precompiled/web}/dashboard.html +9 -4
- toolkit/workspace/precompiled/web/editor.js +440 -0
- toolkit/workspace/precompiled/web/filesui.html +178 -0
- toolkit/workspace/precompiled/web/filesui.js +338 -0
- toolkit/workspace/precompiled/{index.html → web/index.html} +44 -2
- toolkit/workspace/precompiled/web/uapi.js +103 -0
- toolkit/workspace/precompiled/web/udashboard.js +129 -0
- toolkit/workspace/precompiled/web/ustyle.css +55 -0
- toolkit/workspace/precompiled/web/uwidgets.js +172 -0
- toolkit/workspace/precompiled/web/uwidgets_pro.js +99 -0
- env/driver_cp210x/CH34XSER_MAC/CH34X_DRV_INSTALL_INSTRUCTIONS.pdf +0 -0
- env/driver_cp210x/CH34XSER_MAC/CH34xVCPDriver.pkg +0 -0
- micrOS/micropython/esp32-20231005-v1.21.0.bin +0 -0
- micrOS/micropython/esp32c3-GENERIC-20240105-v1.22.1.bin +0 -0
- micrOS/micropython/esp32c3-GENERIC-20240222-v1.22.2.bin +0 -0
- micrOS/micropython/esp32s2-GENERIC-20240105-v1.22.1.bin +0 -0
- micrOS/micropython/esp32s2-LOLIN_MINI-20220618-v1.19.1.bin +0 -0
- micrOS/micropython/esp32s3-GENERIC-20240105-v1.22.1.bin +0 -0
- micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin +0 -0
- micrOS/micropython/rpi-pico-w-20231005-v1.21.0.uf2 +0 -0
- micrOS/micropython/tinypico-20231005-v1.21.0.bin +0 -0
- micrOS/micropython/tinypico-usbc-UM-20240105-v1.22.1.bin +0 -0
- micrOS/source/LM_L298N_DCmotor.py +0 -86
- micrOS/source/LM_catgame.py +0 -74
- micrOS/source/LM_dashboard_be.py +0 -37
- micrOS/source/LM_demo.py +0 -85
- micrOS/source/LM_distance.py +0 -88
- micrOS/source/LM_i2c.py +0 -44
- micrOS/source/LM_intercon.py +0 -57
- micrOS/source/LM_keychain.py +0 -318
- micrOS/source/LM_lmpacman.py +0 -126
- micrOS/source/LM_neoeffects.py +0 -327
- micrOS/source/LM_pet_feeder.py +0 -76
- micrOS/source/LM_ph_sensor.py +0 -51
- micrOS/source/LM_rest.py +0 -40
- micrOS/source/LM_robustness.py +0 -73
- micrOS/source/LM_telegram.py +0 -96
- micrOS/source/reset.py +0 -11
- micrOS/source/uapi.js +0 -76
- micrOS/source/udashboard.js +0 -137
- micrOS/source/ustyle.css +0 -28
- micrOS/source/uwidgets.js +0 -179
- micrOSDevToolKit-2.1.5.dist-info/RECORD +0 -337
- toolkit/dashboard_apps/AirQualityBME280.py +0 -36
- toolkit/dashboard_apps/AirQualityDHT22_CO2.py +0 -36
- toolkit/lib/file_extensions.py +0 -16
- toolkit/simulator_lib/__pycache__/LP_darwin.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/LP_darwin.cpython-38.pyc +0 -0
- toolkit/simulator_lib/__pycache__/LP_darwin.cpython-39.pyc +0 -0
- toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc +0 -0
- toolkit/simulator_lib/__pycache__/sim_console.cpython-38.pyc +0 -0
- toolkit/simulator_lib/__pycache__/sim_console.cpython-39.pyc +0 -0
- toolkit/workspace/precompiled/IO_esp32.mpy +0 -0
- toolkit/workspace/precompiled/IO_esp32c3.mpy +0 -0
- toolkit/workspace/precompiled/IO_esp32s2.mpy +0 -0
- toolkit/workspace/precompiled/IO_esp32s3.mpy +0 -0
- toolkit/workspace/precompiled/IO_qtpy.mpy +0 -0
- toolkit/workspace/precompiled/IO_rp2.mpy +0 -0
- toolkit/workspace/precompiled/IO_tinypico.mpy +0 -0
- toolkit/workspace/precompiled/LM_L298N_DCmotor.mpy +0 -0
- toolkit/workspace/precompiled/LM_OV2640.mpy +0 -0
- toolkit/workspace/precompiled/LM_aht10.mpy +0 -0
- toolkit/workspace/precompiled/LM_bme280.mpy +0 -0
- toolkit/workspace/precompiled/LM_catgame.py +0 -74
- toolkit/workspace/precompiled/LM_cct.mpy +0 -0
- toolkit/workspace/precompiled/LM_co2.mpy +0 -0
- toolkit/workspace/precompiled/LM_dashboard_be.py +0 -37
- toolkit/workspace/precompiled/LM_demo.py +0 -85
- toolkit/workspace/precompiled/LM_dht11.mpy +0 -0
- toolkit/workspace/precompiled/LM_dht22.mpy +0 -0
- toolkit/workspace/precompiled/LM_dimmer.mpy +0 -0
- toolkit/workspace/precompiled/LM_distance.py +0 -88
- toolkit/workspace/precompiled/LM_ds18.mpy +0 -0
- toolkit/workspace/precompiled/LM_genIO.mpy +0 -0
- toolkit/workspace/precompiled/LM_i2c.py +0 -44
- toolkit/workspace/precompiled/LM_i2s_mic.mpy +0 -0
- toolkit/workspace/precompiled/LM_intercon.mpy +0 -0
- toolkit/workspace/precompiled/LM_keychain.mpy +0 -0
- toolkit/workspace/precompiled/LM_light_sensor.mpy +0 -0
- toolkit/workspace/precompiled/LM_lmpacman.mpy +0 -0
- toolkit/workspace/precompiled/LM_neoeffects.mpy +0 -0
- toolkit/workspace/precompiled/LM_neopixel.mpy +0 -0
- toolkit/workspace/precompiled/LM_oled.mpy +0 -0
- toolkit/workspace/precompiled/LM_oled_sh1106.mpy +0 -0
- toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
- toolkit/workspace/precompiled/LM_pet_feeder.py +0 -76
- toolkit/workspace/precompiled/LM_ph_sensor.py +0 -51
- toolkit/workspace/precompiled/LM_presence.mpy +0 -0
- toolkit/workspace/precompiled/LM_rest.mpy +0 -0
- toolkit/workspace/precompiled/LM_rgb.mpy +0 -0
- toolkit/workspace/precompiled/LM_roboarm.mpy +0 -0
- toolkit/workspace/precompiled/LM_robustness.py +0 -73
- toolkit/workspace/precompiled/LM_switch.mpy +0 -0
- toolkit/workspace/precompiled/LM_system.mpy +0 -0
- toolkit/workspace/precompiled/LM_telegram.mpy +0 -0
- toolkit/workspace/precompiled/reset.mpy +0 -0
- toolkit/workspace/precompiled/uapi.js +0 -76
- toolkit/workspace/precompiled/udashboard.js +0 -137
- toolkit/workspace/precompiled/ustyle.css +0 -28
- toolkit/workspace/precompiled/uwidgets.js +0 -179
- /toolkit/user_data/node_config_archive/.include → /micrOS/source/config/_git.keep +0 -0
- /micrOS/source/{IO_rp2.py → modules/IO_rp2.py} +0 -0
- /micrOS/source/{LM_tinyrgb.py → modules/LM_tinyrgb.py} +0 -0
- {micrOSDevToolKit-2.1.5.dist-info → microsdevtoolkit-2.26.1.dist-info/licenses}/LICENSE +0 -0
- {micrOSDevToolKit-2.1.5.dist-info → microsdevtoolkit-2.26.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
// WIDGETS ELEMENTS
|
|
2
|
+
|
|
3
|
+
const widget_indent = '40px';
|
|
4
|
+
const windowWidth = window.innerWidth;
|
|
5
|
+
|
|
6
|
+
function createTitle(command, title_len) {
|
|
7
|
+
return command.split('/').slice(1, title_len + 1).join('-').replace(/=|:range:/g, '').replace(/=|:options:/g, '');
|
|
8
|
+
}
|
|
9
|
+
function paramPythonify(opt) {
|
|
10
|
+
if (opt === "None" || opt === "True" || opt === "False") {return opt;}
|
|
11
|
+
// Check if the input is a valid integer
|
|
12
|
+
if (!isNaN(parseInt(opt, 10)) && String(parseInt(opt, 10)) === opt) {return opt;}
|
|
13
|
+
// Check if the input is a valid float
|
|
14
|
+
if (!isNaN(parseFloat(opt)) && String(parseFloat(opt)) === opt) {return opt;}
|
|
15
|
+
// If not a boolean, integer, or float, return as a quoted string
|
|
16
|
+
return `"${opt}"`;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function sliderWidget(container, command, params={}) {
|
|
20
|
+
const { title_len = 1, range = [0, 100, 5] } = params;
|
|
21
|
+
const [min, max, step] = range;
|
|
22
|
+
const paragraph = document.createElement('p');
|
|
23
|
+
const element = document.createElement('input');
|
|
24
|
+
const valueDisplay = document.createElement('span');
|
|
25
|
+
|
|
26
|
+
paragraph.style.textIndent = widget_indent;
|
|
27
|
+
paragraph.textContent = createTitle(command, title_len);
|
|
28
|
+
element.type = 'range';
|
|
29
|
+
element.min = min;
|
|
30
|
+
element.max = max;
|
|
31
|
+
element.step = step;
|
|
32
|
+
element.value = (max - min) / 2;
|
|
33
|
+
element.style.marginLeft = widget_indent;
|
|
34
|
+
element.style.width = `${Math.min(windowWidth * 0.6, 300)}px`;
|
|
35
|
+
valueDisplay.textContent = element.value;
|
|
36
|
+
|
|
37
|
+
element.addEventListener('input', () => valueDisplay.textContent = element.value);
|
|
38
|
+
element.addEventListener('change', () => {
|
|
39
|
+
const call_cmd = command.includes(':range:') ? command.replace(':range:', element.value) :
|
|
40
|
+
command.endsWith('=') ? `${command}${element.value}` :
|
|
41
|
+
`${command}/${element.value}`;
|
|
42
|
+
console.log(`[API] Slider exec: ${call_cmd}`);
|
|
43
|
+
restAPI(call_cmd);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
containerAppendChild([paragraph, element, valueDisplay], container);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function buttonWidget(container, command, params={}) {
|
|
50
|
+
const { title_len = 1, options = ['None'] } = params;
|
|
51
|
+
const text = createTitle(command, title_len);
|
|
52
|
+
const optsToTextMap = {
|
|
53
|
+
'True': 'ON',
|
|
54
|
+
'False': 'OFF',
|
|
55
|
+
'None': 'Default'
|
|
56
|
+
};
|
|
57
|
+
if (options.length > 1) {
|
|
58
|
+
// Create and append title paragraph for multi-button mode
|
|
59
|
+
const titleParagraph = document.createElement('p');
|
|
60
|
+
titleParagraph.style.textIndent = widget_indent;
|
|
61
|
+
titleParagraph.textContent = text;
|
|
62
|
+
container.appendChild(titleParagraph);
|
|
63
|
+
}
|
|
64
|
+
const paragraph = document.createElement('p');
|
|
65
|
+
paragraph.style.textIndent = widget_indent;
|
|
66
|
+
|
|
67
|
+
// Create buttons for each option
|
|
68
|
+
options.forEach(opt => {
|
|
69
|
+
const element = document.createElement('button');
|
|
70
|
+
element.style.marginRight = '10px';
|
|
71
|
+
element.style.height = '30px';
|
|
72
|
+
element.textContent = options.length === 1 ? text : optsToTextMap[opt] || opt;
|
|
73
|
+
element.addEventListener('click', () => {
|
|
74
|
+
const call_cmd = command.replace(':options:', paramPythonify(opt));
|
|
75
|
+
console.log(`[API] Button clicked: ${call_cmd}`);
|
|
76
|
+
restAPI(call_cmd);
|
|
77
|
+
});
|
|
78
|
+
paragraph.appendChild(element);
|
|
79
|
+
});
|
|
80
|
+
containerAppendChild([paragraph], container);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function textBoxWidget(container, command, params={}) {
|
|
84
|
+
const { title_len = 1, refresh = 5000 } = params;
|
|
85
|
+
const paragraph = document.createElement('p');
|
|
86
|
+
const uniqueId = `textbox-${command}-${Date.now()}`;
|
|
87
|
+
const element = document.createElement('div');
|
|
88
|
+
|
|
89
|
+
paragraph.style.textIndent = widget_indent;
|
|
90
|
+
paragraph.textContent = createTitle(command, title_len);
|
|
91
|
+
|
|
92
|
+
element.id = uniqueId;
|
|
93
|
+
Object.assign(element.style, {
|
|
94
|
+
marginLeft: widget_indent,
|
|
95
|
+
width: `${Math.min(windowWidth * 0.6, 300)}px`,
|
|
96
|
+
padding: '10px',
|
|
97
|
+
boxSizing: 'border-box',
|
|
98
|
+
border: '2px solid #e7e7e7',
|
|
99
|
+
borderRadius: '4px'
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
const updateTextbox = () => {
|
|
103
|
+
const call_cmd = command.replace(':range:', 'None');
|
|
104
|
+
restAPI(call_cmd).then(resp => {
|
|
105
|
+
console.log(`[API] textBox[${uniqueId}] call: ${call_cmd}`);
|
|
106
|
+
const content = JSON.stringify(resp.result, null, 4).replace(/,\s*"/g, ',<br>"');
|
|
107
|
+
document.getElementById(uniqueId).innerHTML = content;
|
|
108
|
+
}).catch(error => {
|
|
109
|
+
console.error('[API] Textbox error:', error);
|
|
110
|
+
document.getElementById(uniqueId).textContent = 'Error loading data';
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
updateTextbox();
|
|
115
|
+
if (refresh > 0) {
|
|
116
|
+
const intervalId = setInterval(updateTextbox, refresh);
|
|
117
|
+
container.addEventListener('DOMNodeRemovedFromDocument', () => clearInterval(intervalId));
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
containerAppendChild([paragraph, element], container);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function colorPaletteWidget(container, command, params = {}) {
|
|
124
|
+
const hexToRgb = (hex, max = 255) => {
|
|
125
|
+
hex = hex.replace(/^#/, '');
|
|
126
|
+
let bigint = parseInt(hex, 16);
|
|
127
|
+
let r = (bigint >> 16) & 255;
|
|
128
|
+
let g = (bigint >> 8) & 255;
|
|
129
|
+
let b = bigint & 255;
|
|
130
|
+
if (max > 255) {
|
|
131
|
+
const ratio = max / 255;
|
|
132
|
+
r = Math.round(r * ratio);
|
|
133
|
+
g = Math.round(g * ratio);
|
|
134
|
+
b = Math.round(b * ratio);
|
|
135
|
+
}
|
|
136
|
+
return { r, g, b };
|
|
137
|
+
};
|
|
138
|
+
const getRandomColorFromList = () => {
|
|
139
|
+
const colors = ['#542040', '#2b2155', '#4c1e44', '#56213f', '#853366', '#493984', '#6f3487'];
|
|
140
|
+
return colors[Math.floor(Math.random() * colors.length)];
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
const { title_len = 1, range = [0, 255] } = params;
|
|
144
|
+
const max_val = range[1];
|
|
145
|
+
const paragraph = document.createElement('p');
|
|
146
|
+
const colorPicker = document.createElement('input');
|
|
147
|
+
const selectedColor = document.createElement('span');
|
|
148
|
+
|
|
149
|
+
paragraph.style.textIndent = widget_indent;
|
|
150
|
+
paragraph.textContent = createTitle(command, title_len);
|
|
151
|
+
colorPicker.type = 'color';
|
|
152
|
+
colorPicker.value = getRandomColorFromList();
|
|
153
|
+
colorPicker.classList.add('custom-color-picker');
|
|
154
|
+
Object.assign(colorPicker.style, {
|
|
155
|
+
width: '60px',
|
|
156
|
+
height: '40px',
|
|
157
|
+
marginLeft: '40px'
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
colorPicker.addEventListener('change', () => {
|
|
161
|
+
const { r, g, b } = hexToRgb(colorPicker.value, max_val);
|
|
162
|
+
const call_cmd = command.replace('r=:range:', `r=${r}`)
|
|
163
|
+
.replace('g=:range:', `g=${g}`)
|
|
164
|
+
.replace('b=:range:', `b=${b}`);
|
|
165
|
+
console.log(`[API] colorPalette exec: ${call_cmd}`);
|
|
166
|
+
restAPI(call_cmd);
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
containerAppendChild([paragraph, colorPicker, selectedColor], container);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// sliderWidget
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// PRO WIDGETS ELEMENTS
|
|
2
|
+
|
|
3
|
+
function joystickWidget(container, command, params={}) {
|
|
4
|
+
const { title_len = 1, range = [0, 100, 5] } = params;
|
|
5
|
+
const [min, max, step] = range;
|
|
6
|
+
const paragraph = document.createElement('p');
|
|
7
|
+
const joystickContainer = document.createElement('div');
|
|
8
|
+
const joystick = document.createElement('div');
|
|
9
|
+
const valueDisplay = document.createElement('span');
|
|
10
|
+
|
|
11
|
+
paragraph.style.textIndent = widget_indent;
|
|
12
|
+
paragraph.textContent = createTitle(command, title_len);
|
|
13
|
+
|
|
14
|
+
joystickContainer.style.position = 'relative';
|
|
15
|
+
joystickContainer.style.width = '200px';
|
|
16
|
+
joystickContainer.style.height = '200px';
|
|
17
|
+
joystickContainer.style.border = '1px solid #fff';
|
|
18
|
+
joystickContainer.style.marginLeft = widget_indent;
|
|
19
|
+
joystickContainer.style.backgroundColor = 'transparent';
|
|
20
|
+
|
|
21
|
+
joystick.style.position = 'absolute';
|
|
22
|
+
joystick.style.width = '30px';
|
|
23
|
+
joystick.style.height = '30px';
|
|
24
|
+
joystick.style.background = '#fff';
|
|
25
|
+
joystick.style.borderRadius = '50%';
|
|
26
|
+
joystick.style.left = '50%';
|
|
27
|
+
joystick.style.top = '50%';
|
|
28
|
+
joystick.style.transform = 'translate(-50%, -50%)';
|
|
29
|
+
joystick.style.cursor = 'pointer';
|
|
30
|
+
|
|
31
|
+
valueDisplay.style.textIndent = widget_indent;
|
|
32
|
+
valueDisplay.style.display = 'block';
|
|
33
|
+
|
|
34
|
+
let isDragging = false;
|
|
35
|
+
|
|
36
|
+
const updateValueDisplay = (x, y) => {
|
|
37
|
+
valueDisplay.textContent = `x: ${x}, y: ${y}`;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const constrain = (value, min, max) => {
|
|
41
|
+
if (value < min) return min;
|
|
42
|
+
if (value > max) return max;
|
|
43
|
+
return value;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const startDragging = (event) => {
|
|
47
|
+
isDragging = true;
|
|
48
|
+
event.preventDefault();
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const stopDragging = () => {
|
|
52
|
+
if (isDragging) {
|
|
53
|
+
const rect = joystickContainer.getBoundingClientRect();
|
|
54
|
+
const x = Math.round((parseFloat(joystick.style.left) / rect.width) * (max - min) + min);
|
|
55
|
+
const y = Math.round((parseFloat(joystick.style.top) / rect.height) * (max - min) + min);
|
|
56
|
+
|
|
57
|
+
const call_cmd = command.includes('x=:range:') && command.includes('y=:range:') ?
|
|
58
|
+
command.replace('x=:range:', `x=${x}`).replace('y=:range:', `y=${y}`) :
|
|
59
|
+
`${command}`;
|
|
60
|
+
|
|
61
|
+
console.log(`[API] Joystick exec: ${call_cmd}`);
|
|
62
|
+
restAPI(call_cmd);
|
|
63
|
+
}
|
|
64
|
+
isDragging = false;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const drag = (event) => {
|
|
68
|
+
if (isDragging) {
|
|
69
|
+
const rect = joystickContainer.getBoundingClientRect();
|
|
70
|
+
const offsetX = event.touches ? event.touches[0].clientX - rect.left : event.clientX - rect.left;
|
|
71
|
+
const offsetY = event.touches ? event.touches[0].clientY - rect.top : event.clientY - rect.top;
|
|
72
|
+
const x = constrain(offsetX, 0, rect.width);
|
|
73
|
+
const y = constrain(offsetY, 0, rect.height);
|
|
74
|
+
|
|
75
|
+
joystick.style.left = `${x}px`;
|
|
76
|
+
joystick.style.top = `${y}px`;
|
|
77
|
+
|
|
78
|
+
const xValue = Math.round((x / rect.width) * (max - min) + min);
|
|
79
|
+
const yValue = Math.round((y / rect.height) * (max - min) + min);
|
|
80
|
+
updateValueDisplay(xValue, yValue);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
joystick.addEventListener('mousedown', startDragging);
|
|
85
|
+
joystick.addEventListener('touchstart', startDragging);
|
|
86
|
+
|
|
87
|
+
document.addEventListener('mouseup', stopDragging);
|
|
88
|
+
document.addEventListener('touchend', stopDragging);
|
|
89
|
+
|
|
90
|
+
document.addEventListener('mousemove', drag);
|
|
91
|
+
document.addEventListener('touchmove', drag);
|
|
92
|
+
|
|
93
|
+
joystickContainer.appendChild(joystick);
|
|
94
|
+
containerAppendChild([paragraph, joystickContainer, valueDisplay], container);
|
|
95
|
+
updateValueDisplay((max - min) / 2, (max - min) / 2);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
File without changes
|