micrOSDevToolKit 2.19.0__py3-none-any.whl → 2.21.0__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.

Potentially problematic release.


This version of micrOSDevToolKit might be problematic. Click here for more details.

Files changed (69) hide show
  1. micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +35 -35
  2. micrOS/source/Common.py +5 -13
  3. micrOS/source/Config.py +5 -2
  4. micrOS/source/Espnow.py +101 -45
  5. micrOS/source/Files.py +50 -23
  6. micrOS/source/InterConnect.py +10 -5
  7. micrOS/source/Pacman.py +141 -0
  8. micrOS/source/Shell.py +1 -1
  9. micrOS/source/Tasks.py +59 -54
  10. micrOS/source/modules/LM_buzzer.py +1 -4
  11. micrOS/source/modules/LM_cct.py +2 -4
  12. micrOS/source/modules/LM_dimmer.py +1 -2
  13. micrOS/source/modules/LM_distance.py +1 -3
  14. micrOS/source/modules/LM_i2s_mic.py +1 -2
  15. micrOS/source/modules/LM_keychain.py +1 -2
  16. micrOS/source/modules/LM_light_sensor.py +1 -4
  17. micrOS/source/modules/LM_mqtt_client.py +13 -10
  18. micrOS/source/modules/LM_neopixel.py +1 -2
  19. micrOS/source/modules/LM_oled_ui.py +39 -41
  20. micrOS/source/modules/LM_oledui.py +58 -89
  21. micrOS/source/modules/LM_pacman.py +36 -44
  22. micrOS/source/modules/LM_presence.py +1 -2
  23. micrOS/source/modules/LM_rest.py +1 -2
  24. micrOS/source/modules/LM_rgb.py +1 -2
  25. micrOS/source/modules/LM_roboarm.py +3 -4
  26. micrOS/source/modules/LM_robustness.py +1 -2
  27. micrOS/source/modules/LM_telegram.py +1 -2
  28. micrOS/source/urequests.py +1 -1
  29. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/METADATA +153 -214
  30. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/RECORD +67 -67
  31. toolkit/DevEnvOTA.py +2 -2
  32. toolkit/DevEnvUSB.py +1 -1
  33. toolkit/dashboard_apps/SystemTest.py +17 -14
  34. toolkit/lib/micrOSClient.py +37 -15
  35. toolkit/lib/micrOSClientHistory.py +35 -1
  36. toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
  37. toolkit/simulator_lib/uos.py +1 -0
  38. toolkit/workspace/precompiled/Common.mpy +0 -0
  39. toolkit/workspace/precompiled/Config.mpy +0 -0
  40. toolkit/workspace/precompiled/Espnow.mpy +0 -0
  41. toolkit/workspace/precompiled/Files.mpy +0 -0
  42. toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  43. toolkit/workspace/precompiled/Pacman.mpy +0 -0
  44. toolkit/workspace/precompiled/Shell.mpy +0 -0
  45. toolkit/workspace/precompiled/Tasks.mpy +0 -0
  46. toolkit/workspace/precompiled/modules/LM_buzzer.mpy +0 -0
  47. toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
  48. toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
  49. toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
  50. toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
  51. toolkit/workspace/precompiled/modules/LM_keychain.mpy +0 -0
  52. toolkit/workspace/precompiled/modules/LM_light_sensor.mpy +0 -0
  53. toolkit/workspace/precompiled/modules/LM_mqtt_client.mpy +0 -0
  54. toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
  55. toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
  56. toolkit/workspace/precompiled/modules/LM_oledui.mpy +0 -0
  57. toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
  58. toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
  59. toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
  60. toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
  61. toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
  62. toolkit/workspace/precompiled/modules/LM_robustness.py +1 -2
  63. toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
  64. micrOS/source/modules/LM_pet_feeder.py +0 -78
  65. toolkit/workspace/precompiled/modules/LM_pet_feeder.py +0 -78
  66. {microsdevtoolkit-2.19.0.data → microsdevtoolkit-2.21.0.data}/scripts/devToolKit.py +0 -0
  67. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/WHEEL +0 -0
  68. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/licenses/LICENSE +0 -0
  69. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/top_level.txt +0 -0
@@ -31,23 +31,24 @@ micrOS/micropython/esp32s3-8MBflash-20241129-v1.24.1.bin,sha256=Att5Tefiky4cDYBh
31
31
  micrOS/micropython/esp32s3_spiram_oct-20241129-v1.24.1.bin,sha256=VbOF_F0YeqttkQd2ePTW66Jd34RU8u9ccFfcv8kxO_U,1662672
32
32
  micrOS/micropython/rpi-pico-w-20241129-v1.24.1.uf2,sha256=v4aYIbWaE94_f6DDzBWS-a9L1BzlcdkZwld9R7bOVA4,1727488
33
33
  micrOS/micropython/tinypico-20241129-v1.24.1.bin,sha256=Kf3cr766a5SK99CZy8bwdWjwvAZxls3tBYvaHBsw7ac,1527200
34
- micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json,sha256=ER7jct3FU3fdwW1PX92TKEKLPs-fuI1C3JT4NIoCn0U,6340
34
+ micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json,sha256=hCygQauU89dR9vLlp2xTkmeRudATsc9v8idyw-wVfuI,6327
35
35
  micrOS/source/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
36
- micrOS/source/Common.py,sha256=uvfLeei3Koi3MWraIk1LU4ArO7C5krcHm9mSN3tOTDM,16793
37
- micrOS/source/Config.py,sha256=Ci2VjlK2RW1rvKr1xR4A6HeqktZYAkrU12hFVqngXB0,9178
36
+ micrOS/source/Common.py,sha256=Ef6Pk2Esx0SpNbxV951NilMBUqFf2LbGSAeKUSNovxs,16585
37
+ micrOS/source/Config.py,sha256=IdKoyawKSIGwhyeD34Gl9rIHASmoweC_3gQdrn8dyms,9311
38
38
  micrOS/source/Debug.py,sha256=in2tx6Dw8EqeKYTrJpLxSevpoIrJjxlH17JLrTui1o8,3287
39
- micrOS/source/Espnow.py,sha256=QZN1ihPUbwtfScKRBOEmFxnAyH9x8YezwQUjY0-GOxs,13321
40
- micrOS/source/Files.py,sha256=SsA4kDWiB8gcunmu9mVVVGmTzxSvkpBqQV-J-U5rzt4,5428
39
+ micrOS/source/Espnow.py,sha256=fzvd54XJXrofeWfDRSWwOqKOr36_jzCVw32KQ0qO-ZM,15072
40
+ micrOS/source/Files.py,sha256=IqzRjVFKZt7tNJGqWY_xqxY8IXX0W_7IOpJvyKGkHHU,6445
41
41
  micrOS/source/Hooks.py,sha256=XdHCo2avht0wUj5xT1oM4tPGZM4uZ2DYmaCOFHYIpjM,4190
42
- micrOS/source/InterConnect.py,sha256=5_Q_t0clyNtr4mh1J--8Mjutn-JJXuXGaCVclctf15Y,11175
42
+ micrOS/source/InterConnect.py,sha256=_UsUm73Di-HG5tD2YuT69H3bUkIzCnqcYZbrVyCVyIA,11377
43
43
  micrOS/source/Interrupts.py,sha256=kLDsByjoGeEiDk_0yV7iAvsZlKs9uFqPcAKkdNNR6HU,7543
44
44
  micrOS/source/Logger.py,sha256=QSABn-dFDBDQFxgQzu1vpWnqHFg7UjJ-6utMmpEWqes,3979
45
45
  micrOS/source/Network.py,sha256=bFG_OE1baHQFJgpcNC_KAKTGPQlgN7pisV07CI30k1g,10165
46
46
  micrOS/source/Notify.py,sha256=5_Sqy2FeBVG6HznC48Rgg812AglGjO8pkDYGSpp5qSg,2637
47
+ micrOS/source/Pacman.py,sha256=9IqgO5bHWQi5wPiXYkyWZJZd3BWHKdLwS054Gl7iwdI,5230
47
48
  micrOS/source/Scheduler.py,sha256=EhOdDQqN4V1G0TD2jU5cmjUjY_g-sU8NwFoUfniBKF0,9628
48
49
  micrOS/source/Server.py,sha256=WSDW2BaCkTxkDruKZXW98jhtQXHKaCz7Em1oPYQL4Kk,16869
49
- micrOS/source/Shell.py,sha256=bIvfRKjivTtQn8SLWGhDacaKoXtX-x27UZdhFi-VZtk,13309
50
- micrOS/source/Tasks.py,sha256=feh4Upyx_DMkSnUvYi7ntgvbv7XHU6ZB6iv9z-_qfqk,24112
50
+ micrOS/source/Shell.py,sha256=_IQLE8KR4MpmYgIfY97vosA7e1obOsd1SkrtgRPE7ak,13309
51
+ micrOS/source/Tasks.py,sha256=BqGj6i1Ao_T89M5mos8yeNtBohsb2euFc8p6GK5ZWGg,24504
51
52
  micrOS/source/Time.py,sha256=8EHp86CAkbGIErGgN-VGAsslUBFIooRGkHB1hUYwwOE,6408
52
53
  micrOS/source/Types.py,sha256=Ft_gHokGNa9aQRGSwE3NYIvYZuolT3zfkD5JzhycQ1s,3499
53
54
  micrOS/source/Web.py,sha256=EeZzKcZMTDVls5Qu-kT8dnX2Mt8L6M4eLiCBhDBJa40,11059
@@ -56,7 +57,7 @@ micrOS/source/micrOS.py,sha256=QM1lgUnv2qrklj5-qgU6MM_6YsTKq4VGk71Od3Dzx1M,2872
56
57
  micrOS/source/micrOSloader.py,sha256=9o6VIWPAgnQVb3uQDHENW9aO21gkM4jgR4O1t6uoPHI,4624
57
58
  micrOS/source/microIO.py,sha256=h7i78Rl_DKG5vwpCgk1dsY-Z9ikvmOQLMiusYP_yRMI,7096
58
59
  micrOS/source/reset.py,sha256=i7wsPkOXE7Mm0xOiw1CjqCvCdNjBvYswn9CRDvE2VbE,248
59
- micrOS/source/urequests.py,sha256=SrzOgo8UF9YncjfeItM9-xqUr5xEoUt1kOcPxisn6uw,9456
60
+ micrOS/source/urequests.py,sha256=yqLR4B0JBTIo_B1vbPBafDWivVAsiYAT7sh_YX6as1k,9464
60
61
  micrOS/source/__pycache__/Common.cpython-312.pyc,sha256=lQtONeXVsuA-HBJs6PDex5dzKTS5NAT9vSBuD3TZFss,20232
61
62
  micrOS/source/__pycache__/Debug.cpython-312.pyc,sha256=mpOPlK6qEb2Xd2j3PmXXV6jYA4R1MFUtNMgCKa9q2Qs,3932
62
63
  micrOS/source/__pycache__/Files.cpython-312.pyc,sha256=kaWr8UH2EPFwaOE6GK_kcTODqrjZeS42Kj4J4xF-rv0,6724
@@ -79,15 +80,15 @@ micrOS/source/modules/LM_OV2640.py,sha256=E8zveGtp7GHerY4Chokvd0iREf-qMGXD2nA4YR
79
80
  micrOS/source/modules/LM_VL53L0X.py,sha256=dqK7yP9Qgc-OzRJBAX3-26N_cwoMGlpG7oBcc7faPoM,10122
80
81
  micrOS/source/modules/LM_aht10.py,sha256=aC6-cvfG6OWoBinYD47mYGg7eIY8BfJxg6yMENr7k90,4002
81
82
  micrOS/source/modules/LM_bme280.py,sha256=4v7HtJ3HgbLwpRe-OwKR-D2nTM_PBDyFR8SHInig3Is,12708
82
- micrOS/source/modules/LM_buzzer.py,sha256=S8pwUZI8OidoATQPVmdvrSiJjPycDYp0gJiMxey7WCQ,12432
83
- micrOS/source/modules/LM_cct.py,sha256=D6lGBO4YAU44rt_ymm0rlkbqSH4agaacZXz7Om22Bmk,14207
83
+ micrOS/source/modules/LM_buzzer.py,sha256=EWkAWkC-W0-zFbxv1XCg_j_kS6hl5zVj03CxGw9jFSg,12356
84
+ micrOS/source/modules/LM_cct.py,sha256=iZKgAHeTF16TmNDPfb-UNfw9x-5LvV_3me-O_GBbFjk,14049
84
85
  micrOS/source/modules/LM_cluster.py,sha256=iI-l6TJP4ejOY8tlE3OgjP82AL7dPNmn2fnaq4CRIdo,8937
85
86
  micrOS/source/modules/LM_co2.py,sha256=Eopq9eEPV9W2x5mx5EJGllg09_HFTYiI1hZE2T_PWTY,5460
86
87
  micrOS/source/modules/LM_dashboard_be.py,sha256=KVaJH37TCJkEwZJdGAVKpJtZXyVqYKDupyJO5BXvI0c,966
87
88
  micrOS/source/modules/LM_dht11.py,sha256=pmmtpxnYHApo63WvQXHlgx_z3A86dMSi1Stb9pSRpYY,2010
88
89
  micrOS/source/modules/LM_dht22.py,sha256=QVJ1OidP27LFPGesSSdEUr19QXAwYOcqEWC622k_eIA,2011
89
- micrOS/source/modules/LM_dimmer.py,sha256=jmcwuyyNSCeDRNx4GieNld82eaT_K-c6zybcA7bo91k,8398
90
- micrOS/source/modules/LM_distance.py,sha256=iVqQchaUOvK8Ilzr7qMi-ESvS_U8RsBwdqNHY_4qZ-c,4394
90
+ micrOS/source/modules/LM_dimmer.py,sha256=qMmYGKhij2euvM9IpXHPlGdA9oOfv7NzbxqMcZqBgE8,8321
91
+ micrOS/source/modules/LM_distance.py,sha256=kxqtx2_Zo4v3oohbdtm6jgNF_dmZOug-qf9yHHReTI8,4338
91
92
  micrOS/source/modules/LM_ds18.py,sha256=mLaH97j8d4lUXcjS8hNtwU8hL5Ybt-Q1WuoiWPnk5Ho,1807
92
93
  micrOS/source/modules/LM_esp32.py,sha256=AAMceuWTWMDu_1EJH-617dmp5ClPaAzFKgDOHWEiX0I,1862
93
94
  micrOS/source/modules/LM_espnow.py,sha256=8WVKGinXL380aj6-qB2euhpwxN2y9pQcXMH-CrW7FJ0,1085
@@ -95,28 +96,27 @@ micrOS/source/modules/LM_gameOfLife.py,sha256=Mvr_S5zsJ6x_pMCGrkdgl5QdejNQjAF9mB
95
96
  micrOS/source/modules/LM_genIO.py,sha256=rTiFByly8ImjHBgc2RceGczGp1rzti7Juz_Vvg5hrtc,5013
96
97
  micrOS/source/modules/LM_haptic.py,sha256=W0WiuOCxIu9RB-pWu8r8fvHmvuseet1UI7RSc9WO8zo,2862
97
98
  micrOS/source/modules/LM_i2c.py,sha256=hdInP8L2gRPUQ5_8YnqEDOKf5nJ9lwyikRADYO6Em_4,1600
98
- micrOS/source/modules/LM_i2s_mic.py,sha256=1Yu6RLYvSWWHT4KL1kCAuy_avV_z6WJXgIwWuQ73jcA,12271
99
- micrOS/source/modules/LM_keychain.py,sha256=-GN-Xzoour2vjg5MyZtmbcxo8LdSn6dYrk1wSliNQh4,12695
99
+ micrOS/source/modules/LM_i2s_mic.py,sha256=HpyrzeHLa5yDbgS6TYVj7zaXXud8PLvq0WivlFhVPRo,12216
100
+ micrOS/source/modules/LM_keychain.py,sha256=0PPAjdBGHXSj47GeovO-YdrQK0uf2toEFjkDbelNzAE,12640
100
101
  micrOS/source/modules/LM_ld2410.py,sha256=dWBsIkI0ryomn0zDrmz5YxaGcoH5TqjAsi2qwGd8UZM,6524
101
- micrOS/source/modules/LM_light_sensor.py,sha256=ptOcfjLDtL930s9J9uPO9YOnIZBGvh5Fa4F01dmFFzI,4527
102
- micrOS/source/modules/LM_mqtt_client.py,sha256=KeHMplcRgPQf4H-RDSOQ4ODlUKm1tzDDBOQVf832UEw,8511
102
+ micrOS/source/modules/LM_light_sensor.py,sha256=QTyzkJKOOqHvkbzkzn1ZUQe4gSpXVMzJOP05-u8L52U,4401
103
+ micrOS/source/modules/LM_mqtt_client.py,sha256=QEtmnMWUZJsGVe8Ca5Q10gbR8TQMewWa4HMRz7iCFFU,8567
103
104
  micrOS/source/modules/LM_neoeffects.py,sha256=zzsHEfZE7-c6cLVlRM9tPhbUDqBYytdHlvm41fv1nG0,9858
104
105
  micrOS/source/modules/LM_neomatrix.py,sha256=jCNpV-HDOpNHe7k00fr4TfDVYkM45wCmB4ZfvKAm_NA,14332
105
- micrOS/source/modules/LM_neopixel.py,sha256=HwyATyAvXSJ1paUn9u-I3etu4A9cCNXwo8cPbKr93iw,13289
106
+ micrOS/source/modules/LM_neopixel.py,sha256=V0WEwHtjj0cKfiUpWNdRVOa6KEJ6q3VhNzobN9PfQr4,13212
106
107
  micrOS/source/modules/LM_oled.py,sha256=ZwLndxWuY1Ii5d06YEf9Z_jxmTyoOYRL-BO3VhJ0b14,9903
107
108
  micrOS/source/modules/LM_oled_sh1106.py,sha256=av2_ftFHvfAIxcPYHbrOMQNZgM1Go6MQzBu5cIeVK4w,11723
108
- micrOS/source/modules/LM_oled_ui.py,sha256=Dux4h8zUwSPa8zfo_lwmhH31Xmyb76d04AFoSTlwa98,22276
109
- micrOS/source/modules/LM_oledui.py,sha256=z9MaOEaHBF3MOWi0KdfIYH_mTVPqQb8L8Pa_1_4fMq8,35439
110
- micrOS/source/modules/LM_pacman.py,sha256=YWshcR0itd3CAZSfvpOkyH9Ux9H0dBKonI4fzK77qls,9750
111
- micrOS/source/modules/LM_pet_feeder.py,sha256=ILrozpnq2_ckkVDUROysMWRksKjflsKpIHvgHdvn-JA,2572
112
- micrOS/source/modules/LM_presence.py,sha256=8cagHD12HF4E6qgSn6zkf6yyY6aiBiIcEvRrfVuPyzE,8796
109
+ micrOS/source/modules/LM_oled_ui.py,sha256=3E3f2goWfmue7Oq34sXyYWqIC9fHxtNhg-8A_dOqnfE,22285
110
+ micrOS/source/modules/LM_oledui.py,sha256=6QduSOFDRH3Tr4SAv3L-qWb6x1sk9cgshnsCBBD3MnE,34357
111
+ micrOS/source/modules/LM_pacman.py,sha256=a2M-c_DJ7bsvfOy6a09PDUx9qg3kSJi0JGaGaofPShI,9787
112
+ micrOS/source/modules/LM_presence.py,sha256=jzJKJJ6hwPCZjQfOTO8iQdVIym89V4DhIiYf72KtXso,8741
113
113
  micrOS/source/modules/LM_qmi8658.py,sha256=4OOAUo7NV7G1Rx01l8LK-wGw19GDaAukDjH6vvxt7ds,6303
114
114
  micrOS/source/modules/LM_rencoder.py,sha256=9w00JP8UKC_GEKr18xgZ5axX9xc_wVeR9XlWpVR2Qzw,3973
115
- micrOS/source/modules/LM_rest.py,sha256=K2FMlW2o8zLu9GTk1nrtc9j-lebQvbg8bJTQWfv6xlA,2674
116
- micrOS/source/modules/LM_rgb.py,sha256=yfllJVyy_JFx6L0BMhwnbBLk4nHrZZKDqomfaYa13nI,11972
115
+ micrOS/source/modules/LM_rest.py,sha256=HwKfKkX6VIC99o1BEaR_xzQY6e6UMsQXRjPa1jFyhCM,2617
116
+ micrOS/source/modules/LM_rgb.py,sha256=ITPxLTPbFI9vXu9waVEKJ-C66IvORtbCW9OwZFcjEig,11895
117
117
  micrOS/source/modules/LM_rgbcct.py,sha256=Ct0X_O0AuSTsf4YiZjP4Zvke81y6dQMryhcn-HKkR9M,1841
118
- micrOS/source/modules/LM_roboarm.py,sha256=iolt3_MX-K9XSCEecSRnNPwMRltHSFAfghYxUNXU_iI,10018
119
- micrOS/source/modules/LM_robustness.py,sha256=h-53vRxH36Savos4Lmbk0CNQlGC1ozEE5bZ3t2C7JYs,3815
118
+ micrOS/source/modules/LM_roboarm.py,sha256=fmzR0L_EJuLi8u_kCNFyKRBoC-J-90leeMW1EgDq55M,9984
119
+ micrOS/source/modules/LM_robustness.py,sha256=09h-sE10J4PriNB6VK3b544cPMrQbiTqIvpB7mS-lYM,3760
120
120
  micrOS/source/modules/LM_rp2w.py,sha256=vdN-gxc38-WI4XK6MMz3FBPYmLdUSjEyB6JuKR_slbM,391
121
121
  micrOS/source/modules/LM_sdcard.py,sha256=y7pB35Xqb0EporESZ6_wHTUe8ez_R2ud_mwdh-wC-30,1030
122
122
  micrOS/source/modules/LM_servo.py,sha256=83YPK5qlHuEOo3jTn5wXRsvPzzJPp0ZtCW-BhHHMBK0,3481
@@ -125,7 +125,7 @@ micrOS/source/modules/LM_stepper.py,sha256=CkI4QBe2KJ7E5DKL7Z23oAMPDUFlUt7btAvqr
125
125
  micrOS/source/modules/LM_switch.py,sha256=1go-jfbh0zisi3Cw680n9PmcoC-dwh_N4c5fMRceJBc,7868
126
126
  micrOS/source/modules/LM_system.py,sha256=-URoeSdNZkv4veJlxlsj7JrEHbMKFfXlImwZpGUnm-4,6579
127
127
  micrOS/source/modules/LM_tcs3472.py,sha256=Kvkpxigv-9zgfy2_jUqKJzZgMBZxOXqQf4QBU9McndY,5459
128
- micrOS/source/modules/LM_telegram.py,sha256=U3Ww4oSE06Fd7jPGibXGaBVpP8kmIORzoTKQsRSdlPc,15239
128
+ micrOS/source/modules/LM_telegram.py,sha256=unA5P6h_o0MPvESnJxp8RfEg_fbRtMafJjZeazIZ52w,15170
129
129
  micrOS/source/modules/LM_tinyrgb.py,sha256=kChL607HPTl3Z2hYN2XnzXXfZ6omdP78PQutHdbdfCo,3031
130
130
  micrOS/source/modules/LM_trackball.py,sha256=N2hhy3wuk55-ja4dmENpfthBolIEj28d2pzcjel5OKg,9716
131
131
  micrOS/source/modules/LM_veml7700.py,sha256=3eb6-HuMA_tYBA0cJHUsZzOBriHacIpVSrK-1iB3_pY,5762
@@ -137,11 +137,11 @@ micrOS/source/web/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN6uGqw9LpScDrGGF5
137
137
  micrOS/source/web/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
138
138
  micrOS/source/web/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
139
139
  micrOS/source/web/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
140
- microsdevtoolkit-2.19.0.data/scripts/devToolKit.py,sha256=4GutIOErF1ny0HSNWQZzEneZdUWhSdqKPBjpRFTr5do,11192
141
- microsdevtoolkit-2.19.0.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
140
+ microsdevtoolkit-2.21.0.data/scripts/devToolKit.py,sha256=4GutIOErF1ny0HSNWQZzEneZdUWhSdqKPBjpRFTr5do,11192
141
+ microsdevtoolkit-2.21.0.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
142
142
  toolkit/DevEnvCompile.py,sha256=wNBf0T7w07SYC3eLFow3JtZApHQK-92Fu7CvJHqWuSM,13189
143
- toolkit/DevEnvOTA.py,sha256=8IfAcvV0L_H91FAiZDRBmC06cWOXXCpoSDO-JWE6CG4,26889
144
- toolkit/DevEnvUSB.py,sha256=TorXJt5qJ1Wk8Qi5Ncn3ortu432GHVCSQFXhSuA0OSU,37197
143
+ toolkit/DevEnvOTA.py,sha256=oUZsOy9MFO3RWyNypV2jbWWMtd4VI-N14-EAhxVNWe0,26945
144
+ toolkit/DevEnvUSB.py,sha256=NTocKaYBRoNPEJ4jJVHukPqjwS_5KwzDQ_gQcd8y4ao,37207
145
145
  toolkit/Gateway.py,sha256=wz81ZteRtKuNsXmX3Zi9Uo4g5fuCxbErAhas0HrkJqU,25353
146
146
  toolkit/LM_to_compile.dat,sha256=EcJSCR3xugskiLAJY1BWEBfa0A4EhP5qHDXNRQZQ30E,619
147
147
  toolkit/MicrOSDevEnv.py,sha256=Puh0u2oQhPptj-XTvvi8N9Wm3UzDBys1ZHQvzCXjmB4,14583
@@ -168,7 +168,7 @@ toolkit/dashboard_apps/RGBTest.py,sha256=QIky1Ts87h52VS9vHs3rYoEYvwFX02BlJxzK-uE
168
168
  toolkit/dashboard_apps/RoboArm.py,sha256=fqsBFTLEKXLyuZtZhbsNMNLCVtJw3gHWE-37EzjRttw,1814
169
169
  toolkit/dashboard_apps/SED_test.py,sha256=hQG8F2isZvCEsb0EvUdvcowLtJ86vrhLMOvpe9EPcJM,2703
170
170
  toolkit/dashboard_apps/SensorsTest.py,sha256=h6Sqz9HzjUawKuvxBPMltgWAycIXUUqlLANZqlF030M,1472
171
- toolkit/dashboard_apps/SystemTest.py,sha256=3eJ41g-AwSuR8RXFWCsb98vdsZpJvCBh-mv9uIe5WsQ,26282
171
+ toolkit/dashboard_apps/SystemTest.py,sha256=AKV1J9VRSHykSmFMh53dfuyM_qUs-oGUebrIDi6f4w4,26519
172
172
  toolkit/dashboard_apps/Template_app.py,sha256=1OLO-xA6qNKyDCj-J7nHkA3Eis4ZKnHfhMcaSqHNX4A,758
173
173
  toolkit/dashboard_apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
174
  toolkit/dashboard_apps/_app_base.py,sha256=u2-Clkaosftr0bgr2kiClcQ1lkJT8GoUD9UUOOKVVmk,1039
@@ -186,8 +186,8 @@ toolkit/lib/SerialDriverHandler.py,sha256=Zn0zeq4mshTMVc6fzycvrOZiKt6w6YOxJcTWw3
186
186
  toolkit/lib/TerminalColors.py,sha256=Ly_8o9-eBmka1dqA2M3DBlcd1zvCCO2K_BnQ1XbqxcE,947
187
187
  toolkit/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
188
188
  toolkit/lib/macroScript.py,sha256=DQR8cFoks7fa0dgRUfGhTpEdUJWNQ1vikRoqukRKx14,14014
189
- toolkit/lib/micrOSClient.py,sha256=q1zN3nqW9t36sHqYt0fKsP61tPSC-u21-7WYqbJcO0Q,19346
190
- toolkit/lib/micrOSClientHistory.py,sha256=EyCqbFeMy940bfXq4Yfu8dcvb7GnBvuHHxOAIgmW1FQ,4736
189
+ toolkit/lib/micrOSClient.py,sha256=CWSmuYMJ4Rlphh8ZnBFn4Eq2tL26usubKNkGfnPqBFI,20000
190
+ toolkit/lib/micrOSClientHistory.py,sha256=XsymDBTUhfyvmHhAMZ2wHQCZrgkITFeeNm0fAOxgOIQ,5673
191
191
  toolkit/lib/pip_package_installer.py,sha256=BYhJR3KnVan9iTAe4p5ZgpHJlimtRx_yG3uKGbQrjXc,4482
192
192
  toolkit/simulator_lib/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
193
193
  toolkit/simulator_lib/IO_darwin.py,sha256=f8HOfQKJvniShvjpBe6f4nisr6oJd9SnvxPsbdNIGQk,2336
@@ -210,7 +210,7 @@ toolkit/simulator_lib/simgc.py,sha256=qaYlZKW48ciIglgYxZt9ZxRUyThskhoQqke_A_bfIy
210
210
  toolkit/simulator_lib/simulator.py,sha256=BHIQVY0f71ActHJo2Eo3JEg-4ELr2bv-TRSZqlPVHIo,8102
211
211
  toolkit/simulator_lib/tinypico.py,sha256=z6B0743-7Cg8ISa7q7kljvKi0DGoegWus3HbiaOGU3E,156
212
212
  toolkit/simulator_lib/uasyncio.py,sha256=4ENv435IIr56x5IWeJUr1-QdczBBVG1zFr3-H2VDSpw,822
213
- toolkit/simulator_lib/uos.py,sha256=HEa7lK8ow2Zppy8n3z0O_vz0BBmMHxG1MES2cZ_kzy4,3611
213
+ toolkit/simulator_lib/uos.py,sha256=QREvzngY5R4dhxyl-h-6gUxpzvVIJncAwZkWxyHy0Mw,3643
214
214
  toolkit/simulator_lib/usocket.py,sha256=7cqbG03yW5wySY1yCdFRbjDgDvbFqpU1otNJxyedaGU,347
215
215
  toolkit/simulator_lib/ussl.py,sha256=yBXPRGKIWwBRQFcKwciHCDfTj69bgfswH0WSrk3Zhjg,601
216
216
  toolkit/simulator_lib/ustruct.py,sha256=XEcN7BdO_dDw2j5fDNzv-McTGPC0kObt1LJ2KU1Kpm8,136
@@ -266,7 +266,7 @@ toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc,sha256=VPvz9Caomn5rtrR
266
266
  toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc,sha256=ihShEcyfAQVtDTWDcsx3rENRGWKlw4ZLo90OTt_opCQ,2112
267
267
  toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc,sha256=F9FU77fFSaOYcAsDiMTQbOIaQ9bKeI1HuAqLZCjNIfk,976
268
268
  toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc,sha256=OMX0MlM7Y4WWePolE-QTVMoKn1yQnQHxvpsb42JErcI,1355
269
- toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc,sha256=VxxLUl1JT4bIZE79kjCmdESt2v9D37hjTG-1jWt8rM0,6149
269
+ toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc,sha256=3zfY4et_ChyusaeHot6vbuNxufAYVHjb67Mq7fDg8QE,6186
270
270
  toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc,sha256=rAKwfzQXhHGDSvCYyRcohNbb1dzKxZHZ2EGrSF-B8L0,842
271
271
  toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc,sha256=ZffWjvpL_43ihw5Rb4dGQ-8a7s3r5G-6ZvX8LixPCjU,1019
272
272
  toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc,sha256=T_xaVNR9vCkHsrkuBOB9jKzx9HPGo1I3GeSO20b2kRI,516
@@ -290,21 +290,22 @@ toolkit/user_data/webhooks/macro.py,sha256=r1TnOP4Bq-G3XQGwcV0FHcvlzwVaojUrrhbtp
290
290
  toolkit/user_data/webhooks/template.macro,sha256=XikSl3FsD6W9pUx3sqavM5tWIMBquFx9f3bh_CB8k-A,631
291
291
  toolkit/user_data/webhooks/template.py,sha256=UhyXmETAEr-VQutY9ME4gAb-4qi7qVfZ0NjSU1inn-E,342
292
292
  toolkit/workspace/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
293
- toolkit/workspace/precompiled/Common.mpy,sha256=GojFfQ_pMKH04m6WmdvLm43FEJelVhrzgolgx5ACNpU,4183
294
- toolkit/workspace/precompiled/Config.mpy,sha256=tj0x_vwNo59wqBbkoFJ_-7reXQWwwQtG3-Sg_CMeNlo,3272
293
+ toolkit/workspace/precompiled/Common.mpy,sha256=NhIMgu2QPTifEzkZCLBKVxGwNIQ6xyyQ3b03gEJoTBg,4133
294
+ toolkit/workspace/precompiled/Config.mpy,sha256=Zj45tP3RcZ9dNhIsIx69Fnpbf2m6r-mVO6exxlTPoUo,3347
295
295
  toolkit/workspace/precompiled/Debug.mpy,sha256=BJqoH4QdOmeybdUxUlhNu6ApHo4KTraJ5F_winmwOm0,1039
296
- toolkit/workspace/precompiled/Espnow.mpy,sha256=1Dnmn5Uyk7HfdKp45Wu9apy3FgwchbRambwlVhZlnok,4529
297
- toolkit/workspace/precompiled/Files.mpy,sha256=_qwNi5p_d1PXPRoF5SWiFuxmY3qt8OtT8FOhW5JusF0,1798
296
+ toolkit/workspace/precompiled/Espnow.mpy,sha256=esmiz87lAdd_QiQ_ilOkdA1B6LK__XJVGF2qHrndjME,4837
297
+ toolkit/workspace/precompiled/Files.mpy,sha256=AtPakPIScSpVW3GdEDTZ9dlhu02lfpYHdOOsoVousQE,1920
298
298
  toolkit/workspace/precompiled/Hooks.mpy,sha256=Jb-3JliF0O4RitSfsVm8zxSFT3VGcYmPked9W6X1jNw,1769
299
- toolkit/workspace/precompiled/InterConnect.mpy,sha256=6VtkNcotoCGLKN6iDSubnaQpEvWEXjp6s_Sz_DGjibU,3376
299
+ toolkit/workspace/precompiled/InterConnect.mpy,sha256=lpSXfr_c6sXwUxKiIPhF9AuxMj8gpIxZsIGyxsCRDag,3482
300
300
  toolkit/workspace/precompiled/Interrupts.mpy,sha256=0p3Bpx1C7wXWHz9jLM-eqFD0X9wuT6eKzaOdmzpkVBE,2128
301
301
  toolkit/workspace/precompiled/Logger.mpy,sha256=lgAiS5nQqIskNBtEqDoH3GwohOH0mflr8JoYV6b5x4g,1324
302
302
  toolkit/workspace/precompiled/Network.mpy,sha256=foBjsIZ1SafRplCw8v5GgDU_WjPTaRz1W9D6VYyaBSc,3553
303
303
  toolkit/workspace/precompiled/Notify.mpy,sha256=i8LNNynvNxi-tA5QT0pQJ8NJ_DNxJNW4NTZRD6gGS7M,970
304
+ toolkit/workspace/precompiled/Pacman.mpy,sha256=jNKvOMl_4JJyZKoy55h-egVnCA5axQJ9H9p0OjTSjGs,1805
304
305
  toolkit/workspace/precompiled/Scheduler.mpy,sha256=S-ZS1N420Xew74F_90O4FvFvrvmRTMiCh-C8szrdhfI,2198
305
306
  toolkit/workspace/precompiled/Server.mpy,sha256=dS2IY9NAjvy2v7-fQHeY44n080GlL3ZV8ENtN1A3KPw,4896
306
- toolkit/workspace/precompiled/Shell.mpy,sha256=W-VN8XcaoPhV_hAW8RIXqy4kp3FKlANktqPDYNeyZcY,4821
307
- toolkit/workspace/precompiled/Tasks.mpy,sha256=FWwD_8bc_rg90xZhs3DgvCkOs4rM2ocYq63oWB-I5j4,6680
307
+ toolkit/workspace/precompiled/Shell.mpy,sha256=yUVTELQ3Fhkgu5eWuh8Bhy5IRiQV3vxnDB3HUZYpiCQ,4821
308
+ toolkit/workspace/precompiled/Tasks.mpy,sha256=j4GC3pjZ2g2Npm5FUWLZWMZcJrrc5BxfD8G3IloncC8,6762
308
309
  toolkit/workspace/precompiled/Time.mpy,sha256=3thC6iKW4UJdjNP-Jo1Ol0Zn-e4oy2H1wiIz7SH182E,2865
309
310
  toolkit/workspace/precompiled/Types.mpy,sha256=5QGhswa0jWAU1Ywpyl_92miQg4qDHReXLqq3iHBwUCs,1397
310
311
  toolkit/workspace/precompiled/Web.mpy,sha256=X3-nqKYY_RSLsAspTFY_O7H5vkUR0OwECFbSyxqSUUc,4030
@@ -332,15 +333,15 @@ toolkit/workspace/precompiled/modules/LM_OV2640.mpy,sha256=1uZhEZuY8WlLO3c6MWc9n
332
333
  toolkit/workspace/precompiled/modules/LM_VL53L0X.py,sha256=dqK7yP9Qgc-OzRJBAX3-26N_cwoMGlpG7oBcc7faPoM,10122
333
334
  toolkit/workspace/precompiled/modules/LM_aht10.mpy,sha256=ju5Xs_Krt212I6h2CSo7glZlGR3FyAPYnaJPrDuuzHM,1422
334
335
  toolkit/workspace/precompiled/modules/LM_bme280.mpy,sha256=qDxvzKhQkPaKpgXB2KZZ3D8F9nTlDiVDISof7NXxXtQ,4438
335
- toolkit/workspace/precompiled/modules/LM_buzzer.mpy,sha256=m5jzlBr9r6bRAix-F4ebc_neubx48uThRxk173P75sY,5990
336
- toolkit/workspace/precompiled/modules/LM_cct.mpy,sha256=VuGs1sTDwcYq0G62xSd8UbcnXqIVxydnmV1GQrUgskc,3907
336
+ toolkit/workspace/precompiled/modules/LM_buzzer.mpy,sha256=bRQ_V3TuzHVsCrkdkb2OoyBsYDsm7xW3r0GwoUHm0r4,5944
337
+ toolkit/workspace/precompiled/modules/LM_cct.mpy,sha256=0WlWm2v56OquSvC9NChjcXQYUg3KhkPaFOlvOYGGzlY,3836
337
338
  toolkit/workspace/precompiled/modules/LM_cluster.mpy,sha256=GjZHkj6Y-XKBAnQRkEIPmKb_xEox9j738_531E8z1og,3020
338
339
  toolkit/workspace/precompiled/modules/LM_co2.mpy,sha256=ma_cjCG8LoBMq_dt74PsrL-sn6U61a58pl_JgyxXdDM,1487
339
340
  toolkit/workspace/precompiled/modules/LM_dashboard_be.py,sha256=KVaJH37TCJkEwZJdGAVKpJtZXyVqYKDupyJO5BXvI0c,966
340
341
  toolkit/workspace/precompiled/modules/LM_dht11.mpy,sha256=esQhbgiMGiGChsTUAn1VbG9K6JHU3tQAxRKKfVMloEQ,745
341
342
  toolkit/workspace/precompiled/modules/LM_dht22.mpy,sha256=1neWPrEHqMoG3aO6ElLRneZvAFJxTevqiQR5Aq79NMw,745
342
- toolkit/workspace/precompiled/modules/LM_dimmer.mpy,sha256=QruqWLMD-cNM8FcKR_MTrbEAVHbbKTxGGe0XMA2f6RA,2443
343
- toolkit/workspace/precompiled/modules/LM_distance.mpy,sha256=QSgZbsqCZH4vhT7caj-QyIBHuzyZxFvaQmrOqOg7zDE,1514
343
+ toolkit/workspace/precompiled/modules/LM_dimmer.mpy,sha256=5e848cdQnMRYCngIvwl2dKW_QmPXE0iPkeGs1gXfKQY,2382
344
+ toolkit/workspace/precompiled/modules/LM_distance.mpy,sha256=DkMrb_EeiXk8IgWFnvNRyIp_kFE-FuTR1KfMYY40R2c,1476
344
345
  toolkit/workspace/precompiled/modules/LM_ds18.mpy,sha256=WtM_FBMcwvxjqB1EsAgfkUAWBYV7AEGKIoaXOEmifB0,652
345
346
  toolkit/workspace/precompiled/modules/LM_esp32.py,sha256=AAMceuWTWMDu_1EJH-617dmp5ClPaAzFKgDOHWEiX0I,1862
346
347
  toolkit/workspace/precompiled/modules/LM_espnow.py,sha256=8WVKGinXL380aj6-qB2euhpwxN2y9pQcXMH-CrW7FJ0,1085
@@ -348,28 +349,27 @@ toolkit/workspace/precompiled/modules/LM_gameOfLife.mpy,sha256=z-JxoeQ76mTOXY6c_
348
349
  toolkit/workspace/precompiled/modules/LM_genIO.mpy,sha256=M7aYNyNB1SqmLnt9y_Q0MfSMIfewyT3Uc_MSFJpjd3Q,1730
349
350
  toolkit/workspace/precompiled/modules/LM_haptic.mpy,sha256=pNUF7OJJhq-kyiDI9ceuJp3YbB1P8Gj95DvLlZSz1aw,1284
350
351
  toolkit/workspace/precompiled/modules/LM_i2c.py,sha256=hdInP8L2gRPUQ5_8YnqEDOKf5nJ9lwyikRADYO6Em_4,1600
351
- toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy,sha256=7rOnqZrswJz0ScWaMZ5c2ABd7LYSXzKJByR4ZkTFE2E,3997
352
- toolkit/workspace/precompiled/modules/LM_keychain.mpy,sha256=hISvQVuEgTRLu_G5APgdzaMb8xMtHxyHTFvLGXAptdg,3635
352
+ toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy,sha256=6ys15rwdyLjjfwnjXqOOEdHnsHoqeap_l0qW8luvhCI,3959
353
+ toolkit/workspace/precompiled/modules/LM_keychain.mpy,sha256=VfUJDCHBo61TmT5kCMCX2zvVjr4Mn2vlymlB6V8istA,3597
353
354
  toolkit/workspace/precompiled/modules/LM_ld2410.mpy,sha256=Yost6gCTx55nQoyggmHHHoDmFDWpEK14MCsP6o70m_8,2589
354
- toolkit/workspace/precompiled/modules/LM_light_sensor.mpy,sha256=JoNgFgSe52J2c12br6tv2Sg6VL7hdM1OACP02tEE53I,1527
355
- toolkit/workspace/precompiled/modules/LM_mqtt_client.mpy,sha256=IB7Faja_N2aB9welEPvakyF7lDe1Q6HB1Thi2PVYzwE,2826
355
+ toolkit/workspace/precompiled/modules/LM_light_sensor.mpy,sha256=qsGHgrEA5awuQsFyF8v4ps4saS1VqmV9mEH1MtBfdlw,1430
356
+ toolkit/workspace/precompiled/modules/LM_mqtt_client.mpy,sha256=USpE4Q_8dJA3-9d-NS8sdAonZUVzgP0T1L9dhk3pDjw,2857
356
357
  toolkit/workspace/precompiled/modules/LM_neoeffects.mpy,sha256=R3Ssmr3Ag-cJP5IKBsSDTSXQmxMIeo4JzvTEvcug5FU,3089
357
358
  toolkit/workspace/precompiled/modules/LM_neomatrix.mpy,sha256=exJxcMKVP4xUi1ct7yj5LWFAfeIWmU12JnexmGloHM0,5071
358
- toolkit/workspace/precompiled/modules/LM_neopixel.mpy,sha256=7qM4z9gLGDCYxMQ4VmnGcuG3Ck5BC05AVzmG1sADXyA,3698
359
+ toolkit/workspace/precompiled/modules/LM_neopixel.mpy,sha256=INhwGU1maVlk52j8_WS1t9wX22xsnpPeE0rNyZoPKlc,3637
359
360
  toolkit/workspace/precompiled/modules/LM_oled.mpy,sha256=82OqTsCgooB4y6BdMMBaDyfHYoHkq1W_UMteOmy0ePw,3162
360
361
  toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy,sha256=tOsOk5zOT9f5sw027wQyUEXRanx8IcSyuUN6tgfd73w,3769
361
- toolkit/workspace/precompiled/modules/LM_oled_ui.mpy,sha256=JRd-1h_rk8_-r7BuXW18d7abJHgr8zv56Kjd4dJ-Ass,7044
362
- toolkit/workspace/precompiled/modules/LM_oledui.mpy,sha256=vHu7BqEPV4xPAEzRZuLbUcdXaB2esL44gdekf6oWvN8,11543
363
- toolkit/workspace/precompiled/modules/LM_pacman.mpy,sha256=m7S4Gi3fAihwxpfzCaSkTDPyIzmqp4hf6KroBo5ucPw,3946
364
- toolkit/workspace/precompiled/modules/LM_pet_feeder.py,sha256=ILrozpnq2_ckkVDUROysMWRksKjflsKpIHvgHdvn-JA,2572
365
- toolkit/workspace/precompiled/modules/LM_presence.mpy,sha256=1ZRzBCmDqwAYhVp4Ww_bcPj2bp5LLsP8l7jNBtOSpUk,2744
362
+ toolkit/workspace/precompiled/modules/LM_oled_ui.mpy,sha256=_VVkCz9y0VKQy-44DIqwn3yy5p02LxxwFojBljDckGM,6964
363
+ toolkit/workspace/precompiled/modules/LM_oledui.mpy,sha256=mNWY2P7vJ6GCwrbXepcPxN58NdV3CYYPWIFOOYwNrpQ,11084
364
+ toolkit/workspace/precompiled/modules/LM_pacman.mpy,sha256=p4T2GthxJGncvsQZWS7tpRzy5qATga-Es-tsXAvNNmE,3439
365
+ toolkit/workspace/precompiled/modules/LM_presence.mpy,sha256=dYdKcSMimZBHNJakSgfwe0wjqXBPALyNfZC6TrHlK0U,2706
366
366
  toolkit/workspace/precompiled/modules/LM_qmi8658.py,sha256=4OOAUo7NV7G1Rx01l8LK-wGw19GDaAukDjH6vvxt7ds,6303
367
367
  toolkit/workspace/precompiled/modules/LM_rencoder.py,sha256=9w00JP8UKC_GEKr18xgZ5axX9xc_wVeR9XlWpVR2Qzw,3973
368
- toolkit/workspace/precompiled/modules/LM_rest.mpy,sha256=5dOZ5OYJc7UuKzP3kh02ufR7u0m78T-2onyG5pDl5gQ,1044
369
- toolkit/workspace/precompiled/modules/LM_rgb.mpy,sha256=-pa8IljxHIHsxLxtabgz_LMCBCJf2MOoyTUwd-gOND4,3490
368
+ toolkit/workspace/precompiled/modules/LM_rest.mpy,sha256=mRA5YcMgC9gXcOfzfMC0LHwgXO0ni94_Xi9C_y6fX5I,998
369
+ toolkit/workspace/precompiled/modules/LM_rgb.mpy,sha256=adtk1vfNoEC1MuLxmsi9Fax9P6Xq52Q-1XE8Kftfbd8,3429
370
370
  toolkit/workspace/precompiled/modules/LM_rgbcct.mpy,sha256=WGWd6x7r8LEte1tSQkVT_zEnN2_Z5P8CVdUmZ3t0jog,632
371
- toolkit/workspace/precompiled/modules/LM_roboarm.mpy,sha256=gPovssDrCTRp5mAaEb_DFspbstxSuUarzzDqd1qfI3g,3273
372
- toolkit/workspace/precompiled/modules/LM_robustness.py,sha256=h-53vRxH36Savos4Lmbk0CNQlGC1ozEE5bZ3t2C7JYs,3815
371
+ toolkit/workspace/precompiled/modules/LM_roboarm.mpy,sha256=9FTdso0-8gx1SZ-C7ewx8rMTKeBoqtH32bZKmAimK9A,3242
372
+ toolkit/workspace/precompiled/modules/LM_robustness.py,sha256=09h-sE10J4PriNB6VK3b544cPMrQbiTqIvpB7mS-lYM,3760
373
373
  toolkit/workspace/precompiled/modules/LM_rp2w.py,sha256=vdN-gxc38-WI4XK6MMz3FBPYmLdUSjEyB6JuKR_slbM,391
374
374
  toolkit/workspace/precompiled/modules/LM_sdcard.py,sha256=y7pB35Xqb0EporESZ6_wHTUe8ez_R2ud_mwdh-wC-30,1030
375
375
  toolkit/workspace/precompiled/modules/LM_servo.mpy,sha256=xVK5jhO_5ABHHr_pvZRUXmJKMx1QO5idUJzbLhXrZG4,1152
@@ -378,7 +378,7 @@ toolkit/workspace/precompiled/modules/LM_stepper.mpy,sha256=7FJuw86m5AnjPoiD089l
378
378
  toolkit/workspace/precompiled/modules/LM_switch.mpy,sha256=zQCsYkulOQ-vRmlAFjGGThOo2X9FQh6P9-En8t31zy0,2302
379
379
  toolkit/workspace/precompiled/modules/LM_system.mpy,sha256=DIL5FxfWKAn7gjMK5Wcn7t9IyNLQWhI8qREV-8e6R_o,2824
380
380
  toolkit/workspace/precompiled/modules/LM_tcs3472.py,sha256=Kvkpxigv-9zgfy2_jUqKJzZgMBZxOXqQf4QBU9McndY,5459
381
- toolkit/workspace/precompiled/modules/LM_telegram.mpy,sha256=T_R9bNbF-RMjQz6S_bhX4YP0Hn_u2SPQ9k0y1eEXFA0,5172
381
+ toolkit/workspace/precompiled/modules/LM_telegram.mpy,sha256=AfMdTPpG_J7XnL8mWFP-BvIzD6qbMfHKYGOSNN9EK4w,5116
382
382
  toolkit/workspace/precompiled/modules/LM_tinyrgb.mpy,sha256=ggoQ1nT8GJzA96GZovfuzWderEpOwO_aklDGm2O3WcU,1024
383
383
  toolkit/workspace/precompiled/modules/LM_trackball.mpy,sha256=gRdSB3DX1wIFsDqMxLfvBEKy9Xr-otGqx97NvkwHYFI,3479
384
384
  toolkit/workspace/precompiled/modules/LM_veml7700.mpy,sha256=X_2O0XnGtEZgSrXHpZc7uOEAdpMZug7tm4RJ-n-mqbM,1961
@@ -390,7 +390,7 @@ toolkit/workspace/precompiled/web/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN
390
390
  toolkit/workspace/precompiled/web/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
391
391
  toolkit/workspace/precompiled/web/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
392
392
  toolkit/workspace/precompiled/web/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
393
- microsdevtoolkit-2.19.0.dist-info/METADATA,sha256=uM4hFX9QHXatnrIwWEYvCCYLZluk_GHL5Ms_kH0xf7w,55544
394
- microsdevtoolkit-2.19.0.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
395
- microsdevtoolkit-2.19.0.dist-info/top_level.txt,sha256=rOGOIXqLBdGZAoDTiLdZ9B_leFB7bMv7YabLwuIc2bc,25
396
- microsdevtoolkit-2.19.0.dist-info/RECORD,,
393
+ microsdevtoolkit-2.21.0.dist-info/METADATA,sha256=417XpOTgpz2Li0KndHPjqrNMr7jU10WQ0eWZskbnq0I,50837
394
+ microsdevtoolkit-2.21.0.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
395
+ microsdevtoolkit-2.21.0.dist-info/top_level.txt,sha256=rOGOIXqLBdGZAoDTiLdZ9B_leFB7bMv7YabLwuIc2bc,25
396
+ microsdevtoolkit-2.21.0.dist-info/RECORD,,
toolkit/DevEnvOTA.py CHANGED
@@ -42,7 +42,7 @@ class OTA(Compile):
42
42
  # Skip the following modules in OTA update (safe mode) to have recovery mode
43
43
  self.safe_mode_file_exception_list = ['main.py', 'micrOSloader.mpy',
44
44
  'Network.mpy', 'Config.mpy',
45
- 'Debug.mpy']
45
+ 'Debug.mpy', 'Files.py']
46
46
 
47
47
  def safe_core_list(self):
48
48
  return self.safe_mode_file_exception_list
@@ -421,7 +421,7 @@ class OTA(Compile):
421
421
  source_name_target = os.path.join('web', source_name)
422
422
  elif check_python_extensions(source_name):
423
423
  source_name_target = os.path.join('modules', source_name)
424
- elif source_name.endswith("node_config.json"):
424
+ elif source_name.endswith("node_config.json") or source_name.endswith("requirements.txt"):
425
425
  source_name_target = os.path.join('config', source_name)
426
426
  else:
427
427
  # Copy file to micrOS data folder (not web, not module, not config)
toolkit/DevEnvUSB.py CHANGED
@@ -386,7 +386,7 @@ class USB(Compile):
386
386
  # List USB devices on Windows
387
387
  import serial.tools.list_ports as serial_port_list # Import here (only windows...), package not exists on some platforms
388
388
  ports = list(serial_port_list.comports())
389
- win_known_devices = ("CP210", "CH340", "CH343")
389
+ win_known_devices = ("CP210", "CH340", "CH343", "CH9102")
390
390
  for item in ports:
391
391
  self.console(f'[Win] Com device: {item.description}')
392
392
  if any(device in str(item.description) for device in win_known_devices):
@@ -168,38 +168,38 @@ def micrOS_config_set():
168
168
 
169
169
 
170
170
  def micrOS_bgjob_one_shot_check():
171
- info = "[ST] Run micrOS BgJob check [system clock &]"
171
+ info = "[ST] Run async microTask check [system clock &]"
172
172
  print(info)
173
-
174
173
  # Initial task cleanup...
175
174
  CLIENT.execute(['task kill system.clock'])
176
-
177
- for _ in range(0, 2):
178
- cmd_list = ['system clock &']
179
- output = CLIENT.execute(cmd_list)
180
- time.sleep(1)
181
- if output[0]:
182
- if 'Start system.clock' not in output[1].strip():
183
- return False, f'{info} + not expected return: {output[1]}'
184
- return True, info
175
+ time.sleep(1)
176
+ cmd_list = ['system clock &']
177
+ output = CLIENT.execute(cmd_list)
178
+ if output[0]:
179
+ # Legacy return OR New dict return
180
+ if 'Start system.clock' in output[1].strip() or "{'system.clock': 'Starting'}" in output[1].strip():
181
+ return True, info
182
+ return False, f'{info} + not expected return: {output[1]}'
185
183
 
186
184
 
187
185
  def micrOS_bgjob_loop_check():
188
- info = "[ST] Run micrOS Async Task check [system clock &&] + task kill"
186
+ info = "[ST] Run async microTask check [system clock &&] + task kill"
189
187
  print(info)
190
188
 
191
189
  # Start background task loop
192
190
  cmd_list = ['system clock &&']
193
191
  output = CLIENT.execute(cmd_list)
194
192
  if output[0]:
195
- if 'Start system.clock' not in output[1].strip():
193
+ # Legacy return OR New dict return
194
+ if not ('Start system.clock' in output[1].strip() or "{'system.clock': 'Starting'}" in output[1]):
196
195
  return False, f'[Start Task error] {info} + not expected return: {output[1]}'
197
196
 
198
197
  # Attempt to overload background thread
199
198
  cmd_list = ['system clock &&']
200
199
  output = CLIENT.execute(cmd_list)
201
200
  if output[0]:
202
- if 'system.clock is Busy' not in output[1].strip():
201
+ # Legacy return OR New dict return
202
+ if not ('system.clock is Busy' in output[1].strip() or "{'system.clock': 'Already running'}" in output[1]):
203
203
  return False, f'[Overload task - run same] {info} + not expected return: {output[1]}'
204
204
 
205
205
  # Show task output by task tag
@@ -220,6 +220,7 @@ def micrOS_bgjob_loop_check():
220
220
  # Failed verdict
221
221
  return False, f'[Thread not stopped]{info} + not expected return: {output[1]}'
222
222
 
223
+
223
224
  def micrOS_task_list_check():
224
225
  info = "[ST] Run micrOS Task list feature check [task list][task list >json]"
225
226
  print(info)
@@ -243,6 +244,7 @@ def micrOS_task_list_check():
243
244
  print(f"{info} - task list >json error: {output[1]}")
244
245
  return True, info
245
246
 
247
+
246
248
  def micrOS_get_version():
247
249
  info = "[ST] Run micrOS get version [version]"
248
250
  print(info)
@@ -670,6 +672,7 @@ def app(devfid=None, pwd=None):
670
672
  'clean-reboot': after_st_reboot()
671
673
  }
672
674
 
675
+
673
676
  # Test Evaluation
674
677
  final_state = True
675
678
  ok_cnt = 0
@@ -7,6 +7,9 @@ try:
7
7
  except:
8
8
  from TerminalColors import Colors as color
9
9
 
10
+
11
+ ANSI_ESCAPE_RE = re.compile(r"\x1B\[[0-?]*[ -/]*[@-~]")
12
+
10
13
  def load_command_history(prompt_getter):
11
14
  """Optional command history feature"""
12
15
  try:
@@ -173,22 +176,33 @@ class micrOSClient:
173
176
 
174
177
  def __filter_preprompt(self, _data):
175
178
  if len(_data) == 0:
176
- return
177
- last_line = _data.strip().split('\n')[-1]
178
- # get pre-prompt: >[configure]< prompt $
179
+ return _data
180
+
181
+ has_trailing_newline = _data.endswith('\n')
182
+ working = _data.rstrip('\n')
183
+ lines = working.split('\n') if working else ['']
184
+ last_line = lines[-1]
185
+
179
186
  if self.prompt is not None:
180
- # Check prompt is in last line
181
- if self.prompt in last_line:
182
- # Check pre-prompt - remove prompt
183
- x = last_line.replace(self.prompt, '')
184
- # SET preprompt if preprompt exists
185
- self.preprompt = x if len(x) > 0 else self.preprompt
186
- # Pre-prompt remove and cancel preprompt modes
187
- if self.preprompt in last_line:
188
- _data = _data.replace(self.preprompt, "")
189
- else:
190
- self.preprompt = ""
191
- return _data
187
+ prompt_index = last_line.find(self.prompt)
188
+ if prompt_index != -1:
189
+ raw_prefix = last_line[:prompt_index]
190
+ plain_prefix = ANSI_ESCAPE_RE.sub('', raw_prefix)
191
+
192
+ plain_prefix = plain_prefix.rstrip()
193
+ if plain_prefix:
194
+ if not plain_prefix.endswith(' '):
195
+ plain_prefix += ' '
196
+ self.preprompt = plain_prefix
197
+ else:
198
+ self.preprompt = ""
199
+
200
+ lines[-1] = last_line[prompt_index:]
201
+
202
+ rebuilt = '\n'.join(lines)
203
+ if has_trailing_newline:
204
+ rebuilt += '\n'
205
+ return rebuilt
192
206
 
193
207
  def __receive_data(self, read_timeout=20, stream=False):
194
208
  """
@@ -323,18 +337,26 @@ class micrOSClient:
323
337
  return
324
338
 
325
339
  history = load_command_history(self.telnet_prompt) # History: Beta feature
340
+ if history is not None:
341
+ history.prompt = self.telnet_prompt
326
342
  print(self.telnet_prompt, end="")
327
343
  is_empty = False # Empty input support
328
344
  while True:
329
345
  try:
330
346
  # INPUT HANDLING
347
+ if history is not None:
348
+ history.prompt = self.telnet_prompt
331
349
  cmd = input(self.telnet_prompt if is_empty else '') # CANNOT contain prompt - it is coming back from response data
332
350
  if len(cmd.strip()) == 0:
333
351
  is_empty = True
352
+ if history is not None:
353
+ history.prompt = self.telnet_prompt
334
354
  continue
335
355
  is_empty = False
336
356
  # SEND COMMAND
337
357
  output = self.send_cmd(cmd, timeout=timeout, stream=True)
358
+ if history is not None:
359
+ history.prompt = self.telnet_prompt
338
360
  if not (history is None or output is None) and "Shell: for hints type help." not in output: # History: Beta feature
339
361
  history.add_history(cmd)
340
362
  # OUTPUT HANDLING
@@ -1,5 +1,6 @@
1
1
  import sys
2
2
  import os
3
+ import re
3
4
 
4
5
  try:
5
6
  import readline # Linux/macOS
@@ -12,8 +13,14 @@ except:
12
13
  from TerminalColors import Colors as color
13
14
 
14
15
 
16
+ ANSI_ESCAPE_RE = re.compile(r"\x1B\[[0-?]*[ -/]*[@-~]")
17
+
18
+
15
19
  class CommandInterface:
16
20
  def __init__(self, prompt):
21
+ self._prompt = ""
22
+ self._prompt_plain = ""
23
+ self._last_rendered_length = 0
17
24
  self.prompt = prompt
18
25
  self.command_history = ["help"]
19
26
  self.history_file = os.path.expanduser("~/.micrOS_cmd_history") # History file (Linux/macOS)
@@ -76,10 +83,37 @@ class CommandInterface:
76
83
  matches = list(dict.fromkeys(cmd for cmd in self.command_history if cmd.startswith(text)))
77
84
  return matches[state] if state < len(matches) else None
78
85
 
86
+ @staticmethod
87
+ def _strip_ansi(value):
88
+ if not value:
89
+ return ""
90
+ return ANSI_ESCAPE_RE.sub("", value)
91
+
92
+ @property
93
+ def prompt(self):
94
+ return self._prompt
95
+
96
+ @prompt.setter
97
+ def prompt(self, value):
98
+ self._prompt = value
99
+ self._prompt_plain = self._strip_ansi(value)
100
+
79
101
  def pre_input_hook(self):
80
102
  """Ensures prompt visibility when scrolling through history."""
81
- sys.stdout.write(f"\r{self.prompt}{readline.get_line_buffer()}")
103
+ buffer = readline.get_line_buffer()
104
+ sys.stdout.write("\r")
105
+ rendered = f"{self.prompt}{buffer}"
106
+ sys.stdout.write(rendered)
107
+
108
+ visible_length = len(self._prompt_plain) + len(buffer)
109
+ if visible_length < self._last_rendered_length:
110
+ padding = " " * (self._last_rendered_length - visible_length)
111
+ sys.stdout.write(padding)
112
+ sys.stdout.write("\r")
113
+ sys.stdout.write(rendered)
114
+
82
115
  sys.stdout.flush()
116
+ self._last_rendered_length = visible_length
83
117
  readline.redisplay() # Ensures history navigation does not erase prompt
84
118
 
85
119
  def completion_display(self, substitutions, matches, longest_match_length):
@@ -94,6 +94,7 @@ def stat(path):
94
94
 
95
95
 
96
96
  def rmdir(path):
97
+ path = __mock_sim_dir(path)
97
98
  print(f"[uos.SIM] rmdir: {path}")
98
99
  if "simulator" in path and path.replace('/', '').endswith('simulator'):
99
100
  print(f"\t[uos.SIM] rmdir: Invalid path! {path}")
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file