micrOSDevToolKit 2.20.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.
- micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +19 -15
- micrOS/source/Config.py +5 -2
- micrOS/source/Espnow.py +99 -40
- micrOS/source/Files.py +50 -23
- micrOS/source/InterConnect.py +9 -3
- micrOS/source/Pacman.py +141 -0
- micrOS/source/Shell.py +1 -1
- micrOS/source/Tasks.py +4 -1
- micrOS/source/modules/LM_oled_ui.py +39 -41
- micrOS/source/modules/LM_oledui.py +56 -85
- micrOS/source/modules/LM_pacman.py +36 -44
- micrOS/source/urequests.py +1 -1
- {microsdevtoolkit-2.20.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/METADATA +9 -6
- {microsdevtoolkit-2.20.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/RECORD +34 -32
- toolkit/DevEnvOTA.py +2 -2
- toolkit/DevEnvUSB.py +1 -1
- toolkit/lib/micrOSClient.py +37 -15
- toolkit/lib/micrOSClientHistory.py +35 -1
- toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
- toolkit/simulator_lib/uos.py +1 -0
- toolkit/workspace/precompiled/Config.mpy +0 -0
- toolkit/workspace/precompiled/Espnow.mpy +0 -0
- toolkit/workspace/precompiled/Files.mpy +0 -0
- toolkit/workspace/precompiled/InterConnect.mpy +0 -0
- toolkit/workspace/precompiled/Pacman.mpy +0 -0
- toolkit/workspace/precompiled/Shell.mpy +0 -0
- toolkit/workspace/precompiled/Tasks.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_oledui.mpy +0 -0
- toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
- {microsdevtoolkit-2.20.0.data → microsdevtoolkit-2.21.0.data}/scripts/devToolKit.py +0 -0
- {microsdevtoolkit-2.20.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/WHEEL +0 -0
- {microsdevtoolkit-2.20.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/licenses/LICENSE +0 -0
- {microsdevtoolkit-2.20.0.dist-info → microsdevtoolkit-2.21.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: micrOSDevToolKit
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.21.0
|
|
4
4
|
Summary: Development and deployment environment for micrOS, the diy micropython automation OS (IoT)
|
|
5
5
|
Home-page: https://github.com/BxNxM/micrOS
|
|
6
6
|
Author: Marcell Ban
|
|
@@ -497,7 +497,7 @@ Version **3.0.0-0** `micrOS-Autonomous`
|
|
|
497
497
|
- urequest module async redesign for rest clients [OK]
|
|
498
498
|
- LM_telegram (Notify) + server (listener - chatbot) [OK]
|
|
499
499
|
- (2) ESP-NOW (peer-to-peer communication) integration into InterCon [DONE]
|
|
500
|
-
- Multi command same device improvement (session ID handling)
|
|
500
|
+
- Multi command same device improvement (session ID handling) [DONE]
|
|
501
501
|
- (3) New intercon syntax - command level integration: [DONE]
|
|
502
502
|
- rgb toggle >>RingLight.local
|
|
503
503
|
- similar as (obsolete): intercon sendcmd host="RingLight.local" cmd="rgb toggle"
|
|
@@ -540,15 +540,18 @@ Version **3.0.0-0** `micrOS-Autonomous`
|
|
|
540
540
|
|
|
541
541
|
- (5) [DONE] Universal task creation response: `{taskID: verdict}`
|
|
542
542
|
|
|
543
|
-
- (6) [
|
|
543
|
+
- (6) [DONE] Proper mip installer support (/modules or /lib or /web)
|
|
544
544
|
- Note: Autonomous package management over wifi (github)
|
|
545
|
-
- pacman download [
|
|
545
|
+
- pacman download [DONE]
|
|
546
546
|
- pacman ls [DONE]
|
|
547
547
|
- pacman dirtree [DONE]
|
|
548
548
|
- pacman ...
|
|
549
549
|
|
|
550
|
-
- (7) [
|
|
551
|
-
- pacman requirements
|
|
550
|
+
- (7) [DONE] /config/requirements.txt handling (native micropython requirements syntax)
|
|
551
|
+
- pacman download "requirements.txt"
|
|
552
|
+
|
|
553
|
+
- [TODO] General system review and optimization (with Codex AI)
|
|
554
|
+
- memory usage and performance
|
|
552
555
|
```
|
|
553
556
|
|
|
554
557
|
Version **3.1.0-0** `micrOS-Waterbear`
|
|
@@ -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=
|
|
34
|
+
micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json,sha256=hCygQauU89dR9vLlp2xTkmeRudATsc9v8idyw-wVfuI,6327
|
|
35
35
|
micrOS/source/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
|
|
36
36
|
micrOS/source/Common.py,sha256=Ef6Pk2Esx0SpNbxV951NilMBUqFf2LbGSAeKUSNovxs,16585
|
|
37
|
-
micrOS/source/Config.py,sha256=
|
|
37
|
+
micrOS/source/Config.py,sha256=IdKoyawKSIGwhyeD34Gl9rIHASmoweC_3gQdrn8dyms,9311
|
|
38
38
|
micrOS/source/Debug.py,sha256=in2tx6Dw8EqeKYTrJpLxSevpoIrJjxlH17JLrTui1o8,3287
|
|
39
|
-
micrOS/source/Espnow.py,sha256=
|
|
40
|
-
micrOS/source/Files.py,sha256=
|
|
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=
|
|
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=
|
|
50
|
-
micrOS/source/Tasks.py,sha256=
|
|
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=
|
|
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
|
|
@@ -105,9 +106,9 @@ micrOS/source/modules/LM_neomatrix.py,sha256=jCNpV-HDOpNHe7k00fr4TfDVYkM45wCmB4Z
|
|
|
105
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=
|
|
109
|
-
micrOS/source/modules/LM_oledui.py,sha256=
|
|
110
|
-
micrOS/source/modules/LM_pacman.py,sha256=
|
|
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
|
|
111
112
|
micrOS/source/modules/LM_presence.py,sha256=jzJKJJ6hwPCZjQfOTO8iQdVIym89V4DhIiYf72KtXso,8741
|
|
112
113
|
micrOS/source/modules/LM_qmi8658.py,sha256=4OOAUo7NV7G1Rx01l8LK-wGw19GDaAukDjH6vvxt7ds,6303
|
|
113
114
|
micrOS/source/modules/LM_rencoder.py,sha256=9w00JP8UKC_GEKr18xgZ5axX9xc_wVeR9XlWpVR2Qzw,3973
|
|
@@ -136,11 +137,11 @@ micrOS/source/web/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN6uGqw9LpScDrGGF5
|
|
|
136
137
|
micrOS/source/web/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
|
|
137
138
|
micrOS/source/web/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
|
|
138
139
|
micrOS/source/web/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
|
|
139
|
-
microsdevtoolkit-2.
|
|
140
|
-
microsdevtoolkit-2.
|
|
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
|
|
141
142
|
toolkit/DevEnvCompile.py,sha256=wNBf0T7w07SYC3eLFow3JtZApHQK-92Fu7CvJHqWuSM,13189
|
|
142
|
-
toolkit/DevEnvOTA.py,sha256=
|
|
143
|
-
toolkit/DevEnvUSB.py,sha256=
|
|
143
|
+
toolkit/DevEnvOTA.py,sha256=oUZsOy9MFO3RWyNypV2jbWWMtd4VI-N14-EAhxVNWe0,26945
|
|
144
|
+
toolkit/DevEnvUSB.py,sha256=NTocKaYBRoNPEJ4jJVHukPqjwS_5KwzDQ_gQcd8y4ao,37207
|
|
144
145
|
toolkit/Gateway.py,sha256=wz81ZteRtKuNsXmX3Zi9Uo4g5fuCxbErAhas0HrkJqU,25353
|
|
145
146
|
toolkit/LM_to_compile.dat,sha256=EcJSCR3xugskiLAJY1BWEBfa0A4EhP5qHDXNRQZQ30E,619
|
|
146
147
|
toolkit/MicrOSDevEnv.py,sha256=Puh0u2oQhPptj-XTvvi8N9Wm3UzDBys1ZHQvzCXjmB4,14583
|
|
@@ -185,8 +186,8 @@ toolkit/lib/SerialDriverHandler.py,sha256=Zn0zeq4mshTMVc6fzycvrOZiKt6w6YOxJcTWw3
|
|
|
185
186
|
toolkit/lib/TerminalColors.py,sha256=Ly_8o9-eBmka1dqA2M3DBlcd1zvCCO2K_BnQ1XbqxcE,947
|
|
186
187
|
toolkit/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
187
188
|
toolkit/lib/macroScript.py,sha256=DQR8cFoks7fa0dgRUfGhTpEdUJWNQ1vikRoqukRKx14,14014
|
|
188
|
-
toolkit/lib/micrOSClient.py,sha256=
|
|
189
|
-
toolkit/lib/micrOSClientHistory.py,sha256=
|
|
189
|
+
toolkit/lib/micrOSClient.py,sha256=CWSmuYMJ4Rlphh8ZnBFn4Eq2tL26usubKNkGfnPqBFI,20000
|
|
190
|
+
toolkit/lib/micrOSClientHistory.py,sha256=XsymDBTUhfyvmHhAMZ2wHQCZrgkITFeeNm0fAOxgOIQ,5673
|
|
190
191
|
toolkit/lib/pip_package_installer.py,sha256=BYhJR3KnVan9iTAe4p5ZgpHJlimtRx_yG3uKGbQrjXc,4482
|
|
191
192
|
toolkit/simulator_lib/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
|
|
192
193
|
toolkit/simulator_lib/IO_darwin.py,sha256=f8HOfQKJvniShvjpBe6f4nisr6oJd9SnvxPsbdNIGQk,2336
|
|
@@ -209,7 +210,7 @@ toolkit/simulator_lib/simgc.py,sha256=qaYlZKW48ciIglgYxZt9ZxRUyThskhoQqke_A_bfIy
|
|
|
209
210
|
toolkit/simulator_lib/simulator.py,sha256=BHIQVY0f71ActHJo2Eo3JEg-4ELr2bv-TRSZqlPVHIo,8102
|
|
210
211
|
toolkit/simulator_lib/tinypico.py,sha256=z6B0743-7Cg8ISa7q7kljvKi0DGoegWus3HbiaOGU3E,156
|
|
211
212
|
toolkit/simulator_lib/uasyncio.py,sha256=4ENv435IIr56x5IWeJUr1-QdczBBVG1zFr3-H2VDSpw,822
|
|
212
|
-
toolkit/simulator_lib/uos.py,sha256=
|
|
213
|
+
toolkit/simulator_lib/uos.py,sha256=QREvzngY5R4dhxyl-h-6gUxpzvVIJncAwZkWxyHy0Mw,3643
|
|
213
214
|
toolkit/simulator_lib/usocket.py,sha256=7cqbG03yW5wySY1yCdFRbjDgDvbFqpU1otNJxyedaGU,347
|
|
214
215
|
toolkit/simulator_lib/ussl.py,sha256=yBXPRGKIWwBRQFcKwciHCDfTj69bgfswH0WSrk3Zhjg,601
|
|
215
216
|
toolkit/simulator_lib/ustruct.py,sha256=XEcN7BdO_dDw2j5fDNzv-McTGPC0kObt1LJ2KU1Kpm8,136
|
|
@@ -265,7 +266,7 @@ toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc,sha256=VPvz9Caomn5rtrR
|
|
|
265
266
|
toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc,sha256=ihShEcyfAQVtDTWDcsx3rENRGWKlw4ZLo90OTt_opCQ,2112
|
|
266
267
|
toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc,sha256=F9FU77fFSaOYcAsDiMTQbOIaQ9bKeI1HuAqLZCjNIfk,976
|
|
267
268
|
toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc,sha256=OMX0MlM7Y4WWePolE-QTVMoKn1yQnQHxvpsb42JErcI,1355
|
|
268
|
-
toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc,sha256=
|
|
269
|
+
toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc,sha256=3zfY4et_ChyusaeHot6vbuNxufAYVHjb67Mq7fDg8QE,6186
|
|
269
270
|
toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc,sha256=rAKwfzQXhHGDSvCYyRcohNbb1dzKxZHZ2EGrSF-B8L0,842
|
|
270
271
|
toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc,sha256=ZffWjvpL_43ihw5Rb4dGQ-8a7s3r5G-6ZvX8LixPCjU,1019
|
|
271
272
|
toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc,sha256=T_xaVNR9vCkHsrkuBOB9jKzx9HPGo1I3GeSO20b2kRI,516
|
|
@@ -290,20 +291,21 @@ toolkit/user_data/webhooks/template.macro,sha256=XikSl3FsD6W9pUx3sqavM5tWIMBquFx
|
|
|
290
291
|
toolkit/user_data/webhooks/template.py,sha256=UhyXmETAEr-VQutY9ME4gAb-4qi7qVfZ0NjSU1inn-E,342
|
|
291
292
|
toolkit/workspace/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
292
293
|
toolkit/workspace/precompiled/Common.mpy,sha256=NhIMgu2QPTifEzkZCLBKVxGwNIQ6xyyQ3b03gEJoTBg,4133
|
|
293
|
-
toolkit/workspace/precompiled/Config.mpy,sha256=
|
|
294
|
+
toolkit/workspace/precompiled/Config.mpy,sha256=Zj45tP3RcZ9dNhIsIx69Fnpbf2m6r-mVO6exxlTPoUo,3347
|
|
294
295
|
toolkit/workspace/precompiled/Debug.mpy,sha256=BJqoH4QdOmeybdUxUlhNu6ApHo4KTraJ5F_winmwOm0,1039
|
|
295
|
-
toolkit/workspace/precompiled/Espnow.mpy,sha256=
|
|
296
|
-
toolkit/workspace/precompiled/Files.mpy,sha256=
|
|
296
|
+
toolkit/workspace/precompiled/Espnow.mpy,sha256=esmiz87lAdd_QiQ_ilOkdA1B6LK__XJVGF2qHrndjME,4837
|
|
297
|
+
toolkit/workspace/precompiled/Files.mpy,sha256=AtPakPIScSpVW3GdEDTZ9dlhu02lfpYHdOOsoVousQE,1920
|
|
297
298
|
toolkit/workspace/precompiled/Hooks.mpy,sha256=Jb-3JliF0O4RitSfsVm8zxSFT3VGcYmPked9W6X1jNw,1769
|
|
298
|
-
toolkit/workspace/precompiled/InterConnect.mpy,sha256=
|
|
299
|
+
toolkit/workspace/precompiled/InterConnect.mpy,sha256=lpSXfr_c6sXwUxKiIPhF9AuxMj8gpIxZsIGyxsCRDag,3482
|
|
299
300
|
toolkit/workspace/precompiled/Interrupts.mpy,sha256=0p3Bpx1C7wXWHz9jLM-eqFD0X9wuT6eKzaOdmzpkVBE,2128
|
|
300
301
|
toolkit/workspace/precompiled/Logger.mpy,sha256=lgAiS5nQqIskNBtEqDoH3GwohOH0mflr8JoYV6b5x4g,1324
|
|
301
302
|
toolkit/workspace/precompiled/Network.mpy,sha256=foBjsIZ1SafRplCw8v5GgDU_WjPTaRz1W9D6VYyaBSc,3553
|
|
302
303
|
toolkit/workspace/precompiled/Notify.mpy,sha256=i8LNNynvNxi-tA5QT0pQJ8NJ_DNxJNW4NTZRD6gGS7M,970
|
|
304
|
+
toolkit/workspace/precompiled/Pacman.mpy,sha256=jNKvOMl_4JJyZKoy55h-egVnCA5axQJ9H9p0OjTSjGs,1805
|
|
303
305
|
toolkit/workspace/precompiled/Scheduler.mpy,sha256=S-ZS1N420Xew74F_90O4FvFvrvmRTMiCh-C8szrdhfI,2198
|
|
304
306
|
toolkit/workspace/precompiled/Server.mpy,sha256=dS2IY9NAjvy2v7-fQHeY44n080GlL3ZV8ENtN1A3KPw,4896
|
|
305
|
-
toolkit/workspace/precompiled/Shell.mpy,sha256=
|
|
306
|
-
toolkit/workspace/precompiled/Tasks.mpy,sha256=
|
|
307
|
+
toolkit/workspace/precompiled/Shell.mpy,sha256=yUVTELQ3Fhkgu5eWuh8Bhy5IRiQV3vxnDB3HUZYpiCQ,4821
|
|
308
|
+
toolkit/workspace/precompiled/Tasks.mpy,sha256=j4GC3pjZ2g2Npm5FUWLZWMZcJrrc5BxfD8G3IloncC8,6762
|
|
307
309
|
toolkit/workspace/precompiled/Time.mpy,sha256=3thC6iKW4UJdjNP-Jo1Ol0Zn-e4oy2H1wiIz7SH182E,2865
|
|
308
310
|
toolkit/workspace/precompiled/Types.mpy,sha256=5QGhswa0jWAU1Ywpyl_92miQg4qDHReXLqq3iHBwUCs,1397
|
|
309
311
|
toolkit/workspace/precompiled/Web.mpy,sha256=X3-nqKYY_RSLsAspTFY_O7H5vkUR0OwECFbSyxqSUUc,4030
|
|
@@ -357,9 +359,9 @@ toolkit/workspace/precompiled/modules/LM_neomatrix.mpy,sha256=exJxcMKVP4xUi1ct7y
|
|
|
357
359
|
toolkit/workspace/precompiled/modules/LM_neopixel.mpy,sha256=INhwGU1maVlk52j8_WS1t9wX22xsnpPeE0rNyZoPKlc,3637
|
|
358
360
|
toolkit/workspace/precompiled/modules/LM_oled.mpy,sha256=82OqTsCgooB4y6BdMMBaDyfHYoHkq1W_UMteOmy0ePw,3162
|
|
359
361
|
toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy,sha256=tOsOk5zOT9f5sw027wQyUEXRanx8IcSyuUN6tgfd73w,3769
|
|
360
|
-
toolkit/workspace/precompiled/modules/LM_oled_ui.mpy,sha256=
|
|
361
|
-
toolkit/workspace/precompiled/modules/LM_oledui.mpy,sha256=
|
|
362
|
-
toolkit/workspace/precompiled/modules/LM_pacman.mpy,sha256=
|
|
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
|
|
363
365
|
toolkit/workspace/precompiled/modules/LM_presence.mpy,sha256=dYdKcSMimZBHNJakSgfwe0wjqXBPALyNfZC6TrHlK0U,2706
|
|
364
366
|
toolkit/workspace/precompiled/modules/LM_qmi8658.py,sha256=4OOAUo7NV7G1Rx01l8LK-wGw19GDaAukDjH6vvxt7ds,6303
|
|
365
367
|
toolkit/workspace/precompiled/modules/LM_rencoder.py,sha256=9w00JP8UKC_GEKr18xgZ5axX9xc_wVeR9XlWpVR2Qzw,3973
|
|
@@ -388,7 +390,7 @@ toolkit/workspace/precompiled/web/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN
|
|
|
388
390
|
toolkit/workspace/precompiled/web/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
|
|
389
391
|
toolkit/workspace/precompiled/web/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
|
|
390
392
|
toolkit/workspace/precompiled/web/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
|
|
391
|
-
microsdevtoolkit-2.
|
|
392
|
-
microsdevtoolkit-2.
|
|
393
|
-
microsdevtoolkit-2.
|
|
394
|
-
microsdevtoolkit-2.
|
|
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):
|
toolkit/lib/micrOSClient.py
CHANGED
|
@@ -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
|
-
|
|
178
|
-
|
|
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
|
-
|
|
181
|
-
if
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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
|
-
|
|
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):
|
|
Binary file
|
toolkit/simulator_lib/uos.py
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|