micrOSDevToolKit 2.9.11__py3-none-any.whl → 2.10.5__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 (54) hide show
  1. micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +37 -29
  2. micrOS/source/Common.py +5 -5
  3. micrOS/source/Espnow.py +245 -123
  4. micrOS/source/Files.py +101 -0
  5. micrOS/source/InterConnect.py +14 -11
  6. micrOS/source/LM_espnow.py +10 -7
  7. micrOS/source/LM_intercon.py +3 -0
  8. micrOS/source/LM_light_sensor.py +7 -15
  9. micrOS/source/LM_mqtt_pro.py +211 -0
  10. micrOS/source/LM_oled_ui.py +18 -22
  11. micrOS/source/LM_oledui.py +13 -16
  12. micrOS/source/LM_pacman.py +37 -57
  13. micrOS/source/LM_presence.py +8 -11
  14. micrOS/source/LM_system.py +8 -7
  15. micrOS/source/LM_telegram.py +21 -16
  16. micrOS/source/Logger.py +5 -11
  17. micrOS/source/Shell.py +37 -30
  18. micrOS/source/Tasks.py +32 -17
  19. micrOS/source/Web.py +3 -2
  20. micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
  21. micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
  22. micrOS/source/microIO.py +3 -2
  23. micrOS/source/urequests.py +10 -1
  24. {micrOSDevToolKit-2.9.11.dist-info → microsdevtoolkit-2.10.5.dist-info}/METADATA +13 -15
  25. {micrOSDevToolKit-2.9.11.dist-info → microsdevtoolkit-2.10.5.dist-info}/RECORD +54 -50
  26. {micrOSDevToolKit-2.9.11.dist-info → microsdevtoolkit-2.10.5.dist-info}/WHEEL +1 -1
  27. toolkit/dashboard_apps/SystemTest.py +17 -6
  28. toolkit/lib/micrOSClient.py +25 -6
  29. toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
  30. toolkit/simulator_lib/uos.py +5 -5
  31. toolkit/socketClient.py +2 -3
  32. toolkit/workspace/precompiled/Common.mpy +0 -0
  33. toolkit/workspace/precompiled/Espnow.mpy +0 -0
  34. toolkit/workspace/precompiled/Files.mpy +0 -0
  35. toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  36. toolkit/workspace/precompiled/LM_espnow.py +10 -7
  37. toolkit/workspace/precompiled/LM_intercon.mpy +0 -0
  38. toolkit/workspace/precompiled/LM_light_sensor.mpy +0 -0
  39. toolkit/workspace/precompiled/LM_mqtt_pro.py +211 -0
  40. toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
  41. toolkit/workspace/precompiled/LM_oledui.mpy +0 -0
  42. toolkit/workspace/precompiled/LM_pacman.mpy +0 -0
  43. toolkit/workspace/precompiled/LM_presence.mpy +0 -0
  44. toolkit/workspace/precompiled/LM_system.mpy +0 -0
  45. toolkit/workspace/precompiled/LM_telegram.mpy +0 -0
  46. toolkit/workspace/precompiled/Logger.mpy +0 -0
  47. toolkit/workspace/precompiled/Shell.mpy +0 -0
  48. toolkit/workspace/precompiled/Tasks.mpy +0 -0
  49. toolkit/workspace/precompiled/Web.mpy +0 -0
  50. toolkit/workspace/precompiled/microIO.mpy +0 -0
  51. toolkit/workspace/precompiled/urequests.mpy +0 -0
  52. {micrOSDevToolKit-2.9.11.data → microsdevtoolkit-2.10.5.data}/scripts/devToolKit.py +0 -0
  53. {micrOSDevToolKit-2.9.11.dist-info → microsdevtoolkit-2.10.5.dist-info/licenses}/LICENSE +0 -0
  54. {micrOSDevToolKit-2.9.11.dist-info → microsdevtoolkit-2.10.5.dist-info}/top_level.txt +0 -0
@@ -32,12 +32,13 @@ micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin,sha256=S-sv_QeL_Tylg1
32
32
  micrOS/micropython/esp32s3_spiram_oct-20241129-v1.24.1.bin,sha256=VbOF_F0YeqttkQd2ePTW66Jd34RU8u9ccFfcv8kxO_U,1662672
33
33
  micrOS/micropython/rpi-pico-w-20241129-v1.24.1.uf2,sha256=v4aYIbWaE94_f6DDzBWS-a9L1BzlcdkZwld9R7bOVA4,1727488
34
34
  micrOS/micropython/tinypico-20241129-v1.24.1.bin,sha256=Kf3cr766a5SK99CZy8bwdWjwvAZxls3tBYvaHBsw7ac,1527200
35
- micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json,sha256=hUcG245oSHjZoAqx0yjbKXGGUHWNa7p0kcyDvMwxEKo,5759
35
+ micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json,sha256=rX6vm06dC1ZSH5RD7vBHZIgbxgZ208wRyOdAUtl52GM,5895
36
36
  micrOS/source/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
37
- micrOS/source/Common.py,sha256=PAdtseGY6QxUM-5elOAcApUv8AwGQ_smsYex0FeV5w8,7937
37
+ micrOS/source/Common.py,sha256=NUXz03yaFCw7qqc_7vBbQ6izcKil2iZgPCXVSkoG0w4,8051
38
38
  micrOS/source/Config.py,sha256=E3OTMRI1_T94GMADcvG7MKiuGsKsnbLn17KXHcjhqXM,8795
39
39
  micrOS/source/Debug.py,sha256=_7HZzZ2OKJrcNqeYsG1ZykBa6iN8YTj-K5FFXlEAcRw,5300
40
- micrOS/source/Espnow.py,sha256=_D9XYTT0gQBEWTLzBLCLCbHdFDwjHyMMO94YPtEJlsQ,5510
40
+ micrOS/source/Espnow.py,sha256=WrqzX4RQwJbzCouYMaMLjMD-23f5CDrCN6phpc2gdrU,10481
41
+ micrOS/source/Files.py,sha256=HaHf9_-WD5JgxrzR-eTY_ty0xkLXxv5TgpoTAL9MLeg,3499
41
42
  micrOS/source/Hooks.py,sha256=GyFAVpWJPEnRsqhoGMnmXJNTgFRE6S3mGKfKX6-TvQg,3582
42
43
  micrOS/source/IO_esp32.py,sha256=9gTrdLiySmoacLvCy-DRAplkSZFzJU-9j54DX6YwB0s,2505
43
44
  micrOS/source/IO_esp32c3.py,sha256=YicJTmnh1sHTioyBAZlKcoO4YSuj6CptUnaEGq8MTNQ,1468
@@ -47,7 +48,7 @@ micrOS/source/IO_m5stamp.py,sha256=KyOGvmcWv_gqdajp4zb4-1zARMyYNxhVc-3ZVGlK4gw,1
47
48
  micrOS/source/IO_qtpy.py,sha256=glZvTTmmrJ6qwVC1fJ-pJwk4WEoZVH1KEPCpiHI66Ik,2471
48
49
  micrOS/source/IO_rp2.py,sha256=8ISwnkFvlyeQJlrZiX3xABE9_Pu4u8HhYRVpIFvZdro,131
49
50
  micrOS/source/IO_tinypico.py,sha256=S9utgFQdRLjzasylJc2HITRwy9FOb9q5cJIQdkw1UF0,2356
50
- micrOS/source/InterConnect.py,sha256=r_k7_KhAScFoFV3Vhr1D8TxgDc6pJ4Rd3bSqaEL-V3I,7739
51
+ micrOS/source/InterConnect.py,sha256=wYMoNU3GS1VzLeQfcHTYQ3JGnpXLmTm4GyUm7EmH5Qg,7859
51
52
  micrOS/source/Interrupts.py,sha256=lbDZcFTWfrjbJur1Q_hGJM1ZDsRRMWmSXREAHFogqLc,7551
52
53
  micrOS/source/LM_L298N_DCmotor.py,sha256=TsD74hXwfPwmUjHWe6r6wE49nQ82fVygevxwsCasmx8,2426
53
54
  micrOS/source/LM_L9110_DCmotor.py,sha256=sf6TtuXRrfElhm_9rbp4bPjnKGTwO3PnuXVCC5Ob7Us,1847
@@ -67,26 +68,27 @@ micrOS/source/LM_dimmer.py,sha256=Jhpeh0Kq7Dnt9nA8PVobENbsf1x-U7rOv9EGGdhC_30,83
67
68
  micrOS/source/LM_distance.py,sha256=iVqQchaUOvK8Ilzr7qMi-ESvS_U8RsBwdqNHY_4qZ-c,4394
68
69
  micrOS/source/LM_ds18.py,sha256=mLaH97j8d4lUXcjS8hNtwU8hL5Ybt-Q1WuoiWPnk5Ho,1807
69
70
  micrOS/source/LM_esp32.py,sha256=yUIMWsfimCAhgyV4pT4sh-kqE_mDL83cmAZji_2uFpI,1738
70
- micrOS/source/LM_espnow.py,sha256=Tto5JGnhbqyKT0hzDlJ_G-o_34dVf0CIaiMPbP-xbHU,1070
71
+ micrOS/source/LM_espnow.py,sha256=hlhSHXB8gI8fdPru-UKplpzg1Gpc20ctmG5Ex4ds06c,1198
71
72
  micrOS/source/LM_gameOfLife.py,sha256=Mvr_S5zsJ6x_pMCGrkdgl5QdejNQjAF9mBYLN5-OA38,7685
72
73
  micrOS/source/LM_genIO.py,sha256=rTiFByly8ImjHBgc2RceGczGp1rzti7Juz_Vvg5hrtc,5013
73
74
  micrOS/source/LM_haptic.py,sha256=W0WiuOCxIu9RB-pWu8r8fvHmvuseet1UI7RSc9WO8zo,2862
74
75
  micrOS/source/LM_i2c.py,sha256=WKuKxC85TKBSAT8SO4cm8OCPyceAsohHCQFTmomp8iA,1533
75
76
  micrOS/source/LM_i2s_mic.py,sha256=1Yu6RLYvSWWHT4KL1kCAuy_avV_z6WJXgIwWuQ73jcA,12271
76
- micrOS/source/LM_intercon.py,sha256=BRk8o2ksGdYTSrykTsXdkrncQZWsFYbQDHQjkwl-uy0,1680
77
+ micrOS/source/LM_intercon.py,sha256=QFXeYlrgpVeBPOjrhgWk6IWH-MM1-hPjsf-JSXn7vgk,1806
77
78
  micrOS/source/LM_keychain.py,sha256=-GN-Xzoour2vjg5MyZtmbcxo8LdSn6dYrk1wSliNQh4,12695
78
79
  micrOS/source/LM_ld2410.py,sha256=dWBsIkI0ryomn0zDrmz5YxaGcoH5TqjAsi2qwGd8UZM,6524
79
- micrOS/source/LM_light_sensor.py,sha256=FtgAhHLJvXq_ew3sNutqX2z-Poo6Yl_Tc_bmP6GW3dU,4669
80
+ micrOS/source/LM_light_sensor.py,sha256=xzsPmiLQHx5v8pyNQC0UNXFa76qsV-CqFACY7UZmVKk,4561
81
+ micrOS/source/LM_mqtt_pro.py,sha256=Vma1efLJ9Z9MrDd0qSrfJdoAxcaPfxdnqNjMIkHoHzY,7847
80
82
  micrOS/source/LM_neoeffects.py,sha256=kfReEz9pTB0GRSat6--86PZtjfiT_S9ilfb-igt-bbg,10929
81
83
  micrOS/source/LM_neopixel.py,sha256=4TWwlmW6bnnmS76fVZVri6bI2zPXbiPJ9spEtA7NTjE,13260
82
84
  micrOS/source/LM_oled.py,sha256=ZwLndxWuY1Ii5d06YEf9Z_jxmTyoOYRL-BO3VhJ0b14,9903
83
85
  micrOS/source/LM_oled_sh1106.py,sha256=av2_ftFHvfAIxcPYHbrOMQNZgM1Go6MQzBu5cIeVK4w,11723
84
- micrOS/source/LM_oled_ui.py,sha256=rs-YmYdJQy3AVokxF_oBrkjFFGGhRdnxKoHjmO-x158,21611
85
- micrOS/source/LM_oledui.py,sha256=hYt_3hWPdrZBOreVdupJxHhk9-xHkmuiqmEIA08mB2M,35407
86
- micrOS/source/LM_pacman.py,sha256=k_R0X0YGkRc6-NoF5fvqng7lD5RNmV-rsVa-uBcrleE,8227
86
+ micrOS/source/LM_oled_ui.py,sha256=65OwlWD4X4b3r64XalDTdp0fNakWY1jpnIZvNBoSyno,21655
87
+ micrOS/source/LM_oledui.py,sha256=ym502-2eNN_e9qCysBjszrfPYdJek-izf2W2UyF_g1g,35429
88
+ micrOS/source/LM_pacman.py,sha256=qXPXPNW-t3CsljP9vj0nUtwu_f384C0XXD-buWy8uRU,7507
87
89
  micrOS/source/LM_pet_feeder.py,sha256=ILrozpnq2_ckkVDUROysMWRksKjflsKpIHvgHdvn-JA,2572
88
90
  micrOS/source/LM_ph_sensor.py,sha256=QBVF6cHX3l9jsKcbEZprpyFtwRVLbup-_A7RmRYsdp8,1355
89
- micrOS/source/LM_presence.py,sha256=ihOr20szXPaMWh36n5pip60_xkOHCHpkXA4e3F1K3OE,8849
91
+ micrOS/source/LM_presence.py,sha256=xHB-U_Ywp6F-DEOFlYmjx0QFFQGwKgh8RS77r805YhQ,8830
90
92
  micrOS/source/LM_rencoder.py,sha256=9w00JP8UKC_GEKr18xgZ5axX9xc_wVeR9XlWpVR2Qzw,3973
91
93
  micrOS/source/LM_rest.py,sha256=NmkAPcSCIc_eSNYMy64Kb4fa4_JEpNXkmCSXF_zEkNk,2673
92
94
  micrOS/source/LM_rgb.py,sha256=ohzGxqC-dXIVc_YPXOtmmI9vRBFFjK-OfvsTnAFaDVM,11949
@@ -99,38 +101,39 @@ micrOS/source/LM_servo.py,sha256=83YPK5qlHuEOo3jTn5wXRsvPzzJPp0ZtCW-BhHHMBK0,348
99
101
  micrOS/source/LM_sound_event.py,sha256=9BZnrT8Jc2HL-28yVZE5sdeTa8Biq1qkQiTJsTw8y08,27500
100
102
  micrOS/source/LM_stepper.py,sha256=CkI4QBe2KJ7E5DKL7Z23oAMPDUFlUt7btAvqrn4H6Kg,4278
101
103
  micrOS/source/LM_switch.py,sha256=uxw2opz41OpBiBfb5ioojsUzPsETnkinkDXI4NRHMZs,7819
102
- micrOS/source/LM_system.py,sha256=A3k2ToZmk1kSSnrcq15R5HSDjupTL0LSChO4go9r3BE,6541
103
- micrOS/source/LM_telegram.py,sha256=n5mZeompavjfFXyCUiHYmmeusY-rJRuVbWOb9tNOZ4E,14848
104
+ micrOS/source/LM_system.py,sha256=-URoeSdNZkv4veJlxlsj7JrEHbMKFfXlImwZpGUnm-4,6579
105
+ micrOS/source/LM_telegram.py,sha256=DY4WEzthGExQ0A6iE6LCMYrXaMLAjsU5OsmY92X3kgg,15153
104
106
  micrOS/source/LM_tinyrgb.py,sha256=kChL607HPTl3Z2hYN2XnzXXfZ6omdP78PQutHdbdfCo,3031
105
107
  micrOS/source/LM_trackball.py,sha256=N2hhy3wuk55-ja4dmENpfthBolIEj28d2pzcjel5OKg,9716
106
108
  micrOS/source/LM_veml7700.py,sha256=3eb6-HuMA_tYBA0cJHUsZzOBriHacIpVSrK-1iB3_pY,5762
107
- micrOS/source/Logger.py,sha256=CtmjmQc9hzCystEzY0AtopjRnSy5T6AdWwpj2KTmGWg,3942
109
+ micrOS/source/Logger.py,sha256=Lk6pGZQeafidnfJd0_k1v1VZuXEW9t9km8tNuzk_Ixk,3818
108
110
  micrOS/source/Network.py,sha256=wLhAPiRyi376TKJA7tzCQidDBHq-AbZGGp7JabHIyl8,9417
109
111
  micrOS/source/Notify.py,sha256=jVf7wg7b7ehuh12A8tlYz5ZU00NQEgpVuTK0lN6cNcY,2645
110
112
  micrOS/source/Scheduler.py,sha256=K6fw807UJnOmbfzgeJQGzGbTL4s2sTIB120ZcS5qrLs,9648
111
113
  micrOS/source/Server.py,sha256=HMkHWofMmtpTQtKiGy_Gh6R2xHy4Vpud_aT2zhC4l58,16245
112
- micrOS/source/Shell.py,sha256=a8nIVnmoGgkq-7i3jCOrQFPQagxJWiUHgXd1I9pmaG8,12453
113
- micrOS/source/Tasks.py,sha256=qAcniMejAHwpRK1cq-jcN4vQ1AotU0YqmH7Y5_pQy70,22510
114
+ micrOS/source/Shell.py,sha256=vjMTXsDFyRhAs8En-BpQqvTAWQ5Qb8NfQvOt3bTYRSQ,13101
115
+ micrOS/source/Tasks.py,sha256=Y7F3ouNL_4TKAOJPNm5_b-_DWCKMadhm9YPzoextPVM,23262
114
116
  micrOS/source/Time.py,sha256=vTl8-sL-iO4l9eZMVCHTJ6oUwfhPiB1VHXTrrg-l59Y,6344
115
117
  micrOS/source/Types.py,sha256=3O_Vb1jN92RPtvgbV8ui6_iFzDOD-BUzVXlPB7PgmM4,3507
116
- micrOS/source/Web.py,sha256=BAp7mFYzJwmzUGFc6O7DZDDKKPGjgW5EY5lRcfx-SU0,8893
118
+ micrOS/source/Web.py,sha256=KxRc6zt_8acAJyL9uv2JW2c27qtzYgi673ob0kxfxpE,8933
117
119
  micrOS/source/dashboard.html,sha256=xBZOZ8AMO55QheuZ41Sl0Arvb44qnnai9D67A8YxlVE,2641
118
120
  micrOS/source/index.html,sha256=cv0hap5bhBoRR_z1KALC3fbjH2rQZY9JJPfF-dxVclw,1656
119
121
  micrOS/source/main.py,sha256=cVlhoWwU9dSKEol0HWPihFAPzrUUvzSGwZNNMrpyfSY,440
120
122
  micrOS/source/micrOS.py,sha256=3PQR7_xNLsI7KJtPJQUudIgpL2JIe7pctCjXH-bwFtA,2556
121
123
  micrOS/source/micrOSloader.py,sha256=IgiQgUm97raQB0yHxUjQtvXSjsCdA_1OwSkRwwNLDzU,4794
122
- micrOS/source/microIO.py,sha256=pFRvRlEK9OulVmdXOTbcnHHhSKt-JuEpjUr9GzY-rUQ,7087
124
+ micrOS/source/microIO.py,sha256=3Gk0BstSTwHWVxcANSBwWU9mFvb_FaHmnbRGrM4YwpA,7110
123
125
  micrOS/source/reset.py,sha256=i7wsPkOXE7Mm0xOiw1CjqCvCdNjBvYswn9CRDvE2VbE,248
124
126
  micrOS/source/uapi.js,sha256=fZ0E9-ZndCoUNQq1yJ7yUCiLYxe3p8hzSFnlN2R9roc,2959
125
127
  micrOS/source/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN6uGqw9LpScDrGGF58c,4581
126
- micrOS/source/urequests.py,sha256=p7_8X9SrWk4wXhAZKpVPd-PZBHHToX8b1gwhFEi96FM,9089
128
+ micrOS/source/urequests.py,sha256=8vNxp_pkd_OlSrimg83FiQW0Y-t7j1UkC8If1VI_qJg,9472
127
129
  micrOS/source/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
128
130
  micrOS/source/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
129
131
  micrOS/source/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
130
- micrOS/source/__pycache__/Common.cpython-312.pyc,sha256=qugnjE4Q1mMrR3VJaMhq71hsOoWLuft2lwv4O8Bo6ts,10366
131
- micrOS/source/__pycache__/Logger.cpython-312.pyc,sha256=CCdkMRG0lBy7nVsc4DHwdRK0Ap0Mu9yB5fa_Hxx-RHY,5075
132
+ micrOS/source/__pycache__/Common.cpython-312.pyc,sha256=pSCsRbzAHZs-B99AsBsBqAu8vLprS8R8Sw-mVJ3y9so,10514
133
+ micrOS/source/__pycache__/Logger.cpython-312.pyc,sha256=AgoBYSXZpdwAJvEWjYE18W5zHbC67u7kbWLJJEYzBPM,5028
132
134
  micrOS/source/__pycache__/Server.cpython-312.pyc,sha256=xy1ImeXPtGhtYlAWpuWaxLmJO2nLVGdefOuqltABR9k,20615
133
- micrOSDevToolKit-2.9.11.data/scripts/devToolKit.py,sha256=4GutIOErF1ny0HSNWQZzEneZdUWhSdqKPBjpRFTr5do,11192
135
+ microsdevtoolkit-2.10.5.data/scripts/devToolKit.py,sha256=4GutIOErF1ny0HSNWQZzEneZdUWhSdqKPBjpRFTr5do,11192
136
+ microsdevtoolkit-2.10.5.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
134
137
  toolkit/DevEnvCompile.py,sha256=H19-60ZpHzP30C-wqR5QTzMDHHpWrTk0Uzh--TZHxvw,12148
135
138
  toolkit/DevEnvOTA.py,sha256=vNa827MOhbNQbeMGGu72YmGlNN_Tm9D6Trdnz3YGpyU,25499
136
139
  toolkit/DevEnvUSB.py,sha256=G-Ram-OR27flvVhul8J_ObiMY07Wjvom6Prc4dTfkmo,34108
@@ -143,7 +146,7 @@ toolkit/img_stream.html,sha256=ZGyrUgpi-JhMl4euS-TTjwwGrg66a2pGUQCopWiveds,5135
143
146
  toolkit/index.html,sha256=agTgT1d4FH8l2h47Hfb4Lv061BW9shsCAgq1abO5hlI,10998
144
147
  toolkit/micrOSdashboard.py,sha256=SOBzGU1b-NIn40GMd2gE01Fuo8HZP5d1XyVG24RkPeA,54433
145
148
  toolkit/micrOSlint.py,sha256=HEv6q32Iy5FHx3tn_yA-iMJEeElOVNJIVN51sshv1go,25142
146
- toolkit/socketClient.py,sha256=aDKQl_I422KFoy0RcjPBIcHXgrBPwLRn9MpxuXEtUF8,18610
149
+ toolkit/socketClient.py,sha256=lZ67lpE3IcZPpVlUjxpxdYNfLuzbLY0QgzOjTpoXalg,18556
147
150
  toolkit/dashboard_apps/BackupRestore.py,sha256=udhuFpCawO0mwyiN4vFMfV8wONqHnUjYvL0udJzkq44,5897
148
151
  toolkit/dashboard_apps/CCTDemo.py,sha256=oV7k6sxepOxEa7tBNcuK5IHgKnv01sIQRPvUljic8NI,1125
149
152
  toolkit/dashboard_apps/CCTTest.py,sha256=saU4L8gOst31bno44vlwaeSzqrIBppW2DrZf2KV7_4o,3641
@@ -159,7 +162,7 @@ toolkit/dashboard_apps/RGBTest.py,sha256=QIky1Ts87h52VS9vHs3rYoEYvwFX02BlJxzK-uE
159
162
  toolkit/dashboard_apps/RoboArm.py,sha256=fqsBFTLEKXLyuZtZhbsNMNLCVtJw3gHWE-37EzjRttw,1814
160
163
  toolkit/dashboard_apps/SED_test.py,sha256=hQG8F2isZvCEsb0EvUdvcowLtJ86vrhLMOvpe9EPcJM,2703
161
164
  toolkit/dashboard_apps/SensorsTest.py,sha256=h6Sqz9HzjUawKuvxBPMltgWAycIXUUqlLANZqlF030M,1472
162
- toolkit/dashboard_apps/SystemTest.py,sha256=NaqTUWA5ub_8dHZQBrcO1n7nU95aPKVIjEn8nbaa2mI,25335
165
+ toolkit/dashboard_apps/SystemTest.py,sha256=J87ZSWP-QI5qx0EBSFZwS7f6nsZ7bhdPFaqtKfNjDcI,25740
163
166
  toolkit/dashboard_apps/Template_app.py,sha256=1OLO-xA6qNKyDCj-J7nHkA3Eis4ZKnHfhMcaSqHNX4A,758
164
167
  toolkit/dashboard_apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
168
  toolkit/dashboard_apps/_app_base.py,sha256=wNurhv7AT2imsiVO3rkwPlRkss-2UQU9KsRoXjeb7rk,1007
@@ -176,7 +179,7 @@ toolkit/lib/TerminalColors.py,sha256=Ly_8o9-eBmka1dqA2M3DBlcd1zvCCO2K_BnQ1XbqxcE
176
179
  toolkit/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
180
  toolkit/lib/file_extensions.py,sha256=0DpayBGjKQg7y2ZGJXf5wVPnre_4C5j-7YIViNGvYz4,372
178
181
  toolkit/lib/macroScript.py,sha256=DQR8cFoks7fa0dgRUfGhTpEdUJWNQ1vikRoqukRKx14,14014
179
- toolkit/lib/micrOSClient.py,sha256=fLRkyOjbYQkFzcqeC3yDLa4IymarSOitbxJERa_jeHI,18752
182
+ toolkit/lib/micrOSClient.py,sha256=q1zN3nqW9t36sHqYt0fKsP61tPSC-u21-7WYqbJcO0Q,19346
180
183
  toolkit/lib/micrOSClientHistory.py,sha256=EyCqbFeMy940bfXq4Yfu8dcvb7GnBvuHHxOAIgmW1FQ,4736
181
184
  toolkit/lib/pip_package_installer.py,sha256=jpC-y1KR72_PJlqyUR6-U5b6l1szVqnIZ4nrSgUsOTM,4262
182
185
  toolkit/simulator_lib/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
@@ -200,7 +203,7 @@ toolkit/simulator_lib/simgc.py,sha256=qaYlZKW48ciIglgYxZt9ZxRUyThskhoQqke_A_bfIy
200
203
  toolkit/simulator_lib/simulator.py,sha256=-qgwcGwFFUgyIZ6CzpxQMgKDFUVAY_rDWA-4XwlJLCg,7688
201
204
  toolkit/simulator_lib/tinypico.py,sha256=z6B0743-7Cg8ISa7q7kljvKi0DGoegWus3HbiaOGU3E,156
202
205
  toolkit/simulator_lib/uasyncio.py,sha256=4ENv435IIr56x5IWeJUr1-QdczBBVG1zFr3-H2VDSpw,822
203
- toolkit/simulator_lib/uos.py,sha256=QJFXf2wW-U_2Iuzw2b38h9t6pihWpDd02368Ofmb0V4,3508
206
+ toolkit/simulator_lib/uos.py,sha256=rdtP19Xrq9hjtRXkq0tps9v4WY4hhHiOx4cL4EqhdZ0,3609
204
207
  toolkit/simulator_lib/usocket.py,sha256=7cqbG03yW5wySY1yCdFRbjDgDvbFqpU1otNJxyedaGU,347
205
208
  toolkit/simulator_lib/ussl.py,sha256=yBXPRGKIWwBRQFcKwciHCDfTj69bgfswH0WSrk3Zhjg,601
206
209
  toolkit/simulator_lib/ustruct.py,sha256=XEcN7BdO_dDw2j5fDNzv-McTGPC0kObt1LJ2KU1Kpm8,136
@@ -256,7 +259,7 @@ toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc,sha256=VPvz9Caomn5rtrR
256
259
  toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc,sha256=ihShEcyfAQVtDTWDcsx3rENRGWKlw4ZLo90OTt_opCQ,2112
257
260
  toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc,sha256=F9FU77fFSaOYcAsDiMTQbOIaQ9bKeI1HuAqLZCjNIfk,976
258
261
  toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc,sha256=OMX0MlM7Y4WWePolE-QTVMoKn1yQnQHxvpsb42JErcI,1355
259
- toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc,sha256=n72JhneQF_KBwEZEoUUiZfziqZPvpNW8xKf0dr3ewQM,6005
262
+ toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc,sha256=RdyxO9jlfueaDvbNtKvhtRAXZxGw_jPlBYJ-Y1FJiH4,6149
260
263
  toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc,sha256=rAKwfzQXhHGDSvCYyRcohNbb1dzKxZHZ2EGrSF-B8L0,842
261
264
  toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc,sha256=ZffWjvpL_43ihw5Rb4dGQ-8a7s3r5G-6ZvX8LixPCjU,1019
262
265
  toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc,sha256=T_xaVNR9vCkHsrkuBOB9jKzx9HPGo1I3GeSO20b2kRI,516
@@ -273,10 +276,11 @@ toolkit/user_data/webhooks/macro.py,sha256=E_Um6fc9P6sBKvChyrKgksHmBmaFUuq_Xxy8I
273
276
  toolkit/user_data/webhooks/template.macro,sha256=XikSl3FsD6W9pUx3sqavM5tWIMBquFx9f3bh_CB8k-A,631
274
277
  toolkit/user_data/webhooks/template.py,sha256=WssXY2BDKIwvObq0SpFCjjpEGzgbLlozFTug4ANswWM,342
275
278
  toolkit/workspace/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
276
- toolkit/workspace/precompiled/Common.mpy,sha256=2bUIMJPc9AAVGtgzI_6DaNqF6T-kLyyd4Ys_yjrgI9A,2140
279
+ toolkit/workspace/precompiled/Common.mpy,sha256=30q9Yqa0QgfEaLk_Xb85XizYbBE8HPcmR-gEfkVWzDI,2151
277
280
  toolkit/workspace/precompiled/Config.mpy,sha256=A9ew69drKFA0SbfIvuTdeaXZQSvmwX0gDlnQa_8i-IE,3082
278
281
  toolkit/workspace/precompiled/Debug.mpy,sha256=OpoE-QcllAnASSnAC0V364G7zHjbYI_0jSPzPRBhWkI,1823
279
- toolkit/workspace/precompiled/Espnow.mpy,sha256=6201uzjatkJ9QHh7JXiLoX_mPxJCMJ90H4v6vgduc0Q,1834
282
+ toolkit/workspace/precompiled/Espnow.mpy,sha256=9rRRyICUkj1p75K-3PKgvKxuLuAanmOuTZcxapjhRjs,3301
283
+ toolkit/workspace/precompiled/Files.mpy,sha256=OdEU5MoKiczhNiKPk_jqkIoipvi8eWCpYmfeKCrBnGY,970
280
284
  toolkit/workspace/precompiled/Hooks.mpy,sha256=qFpJrST1zIDwm16NvvWwDA982X_FDgm_fH38G1wQays,1438
281
285
  toolkit/workspace/precompiled/IO_esp32.mpy,sha256=ojJXxhRX6V8ubT1cFXpYlhHB1NplNrT2bTi247CXFrc,661
282
286
  toolkit/workspace/precompiled/IO_esp32c3.mpy,sha256=VFbiQWpnefXO5LirEb_Nfz1286UeAbvcmE3Z8_vupTs,403
@@ -286,7 +290,7 @@ toolkit/workspace/precompiled/IO_m5stamp.mpy,sha256=cn991tZyBZd4W3iO10EiLW29g8mV
286
290
  toolkit/workspace/precompiled/IO_qtpy.mpy,sha256=eHy5zmBlv3Yn6KgubYEBMWeC8OAdQRWtfJPRoppJnaE,872
287
291
  toolkit/workspace/precompiled/IO_rp2.mpy,sha256=eODuSmUmahkSp__Fb3j0M6dJdhhnC5Xq3agOMFo5pwk,60
288
292
  toolkit/workspace/precompiled/IO_tinypico.mpy,sha256=GS1NSeCBed-xLa3ZpVrk8UQONlgMgaukuH6BzTcDbFU,559
289
- toolkit/workspace/precompiled/InterConnect.mpy,sha256=tybNHMajxI6nQQOMjIHTcPSiCq2AYJE1OCZNZ15jN-c,2342
293
+ toolkit/workspace/precompiled/InterConnect.mpy,sha256=kvjpZZ4DYu-BAX2aK-Kuby-iTB9gh58CYG5HP4bTyCU,2362
290
294
  toolkit/workspace/precompiled/Interrupts.mpy,sha256=5lOWBB8qoF3YIOzNem4_9W-NWxCZsSbtGTusfUsql2E,2132
291
295
  toolkit/workspace/precompiled/LM_L298N_DCmotor.mpy,sha256=1QPhQTw3YijVSh0pkaxCfEAjb1M5FAafyGe_J7xLUJM,878
292
296
  toolkit/workspace/precompiled/LM_L9110_DCmotor.py,sha256=sf6TtuXRrfElhm_9rbp4bPjnKGTwO3PnuXVCC5Ob7Us,1847
@@ -306,26 +310,27 @@ toolkit/workspace/precompiled/LM_dimmer.mpy,sha256=dRdDr3WfFy-um3-fRiK4IuZdwBTUD
306
310
  toolkit/workspace/precompiled/LM_distance.mpy,sha256=6VoSsyd-hQ4P16USDnSqpq5gpi0v2WbseeHnTFJxuJA,1506
307
311
  toolkit/workspace/precompiled/LM_ds18.mpy,sha256=1TYvc8hj1ypE1v52l6u83e8XqUi0_Rjwil-BnYXDSKI,644
308
312
  toolkit/workspace/precompiled/LM_esp32.py,sha256=yUIMWsfimCAhgyV4pT4sh-kqE_mDL83cmAZji_2uFpI,1738
309
- toolkit/workspace/precompiled/LM_espnow.py,sha256=Tto5JGnhbqyKT0hzDlJ_G-o_34dVf0CIaiMPbP-xbHU,1070
313
+ toolkit/workspace/precompiled/LM_espnow.py,sha256=hlhSHXB8gI8fdPru-UKplpzg1Gpc20ctmG5Ex4ds06c,1198
310
314
  toolkit/workspace/precompiled/LM_gameOfLife.mpy,sha256=mAOivt472fRGOcpgx6xShyfbrpT0GTbLhT2vujncS4w,2051
311
315
  toolkit/workspace/precompiled/LM_genIO.mpy,sha256=F9utR5Ng-QuTq5R5ISvYPO8xASEdSnndc1hFfxcNWOE,1722
312
316
  toolkit/workspace/precompiled/LM_haptic.mpy,sha256=46BgYkjC3AdNaJaKflFnY0oEUsd9qg6yGquX7jyFLnM,1276
313
317
  toolkit/workspace/precompiled/LM_i2c.py,sha256=WKuKxC85TKBSAT8SO4cm8OCPyceAsohHCQFTmomp8iA,1533
314
318
  toolkit/workspace/precompiled/LM_i2s_mic.mpy,sha256=lTYjVoLA8QF5JKauAY67Lugl0mhlBabwQwimO9EmOIk,3989
315
- toolkit/workspace/precompiled/LM_intercon.mpy,sha256=tmumM6s9WZquQ9dpvXb7NGBdJOC5PNniDbIXUHu5Bmo,621
319
+ toolkit/workspace/precompiled/LM_intercon.mpy,sha256=jlQECkdZ8LUGQ3yuwrW2gfjFYZhZKEVZRdAuNdWAGjA,621
316
320
  toolkit/workspace/precompiled/LM_keychain.mpy,sha256=cZVyHNny2uNsWfTNaGWBtZUr5bqQ76wEyFcxWx3Nagg,3627
317
321
  toolkit/workspace/precompiled/LM_ld2410.mpy,sha256=H7XHzLPkpyE-pRFZqBKn6M-Y5RtpNiV9prOPcmfZ6zg,2581
318
- toolkit/workspace/precompiled/LM_light_sensor.mpy,sha256=zGIj5mgDh0hTb1ih7WTjT0jNj0P-LLm6H0NlCcjqn5I,1511
322
+ toolkit/workspace/precompiled/LM_light_sensor.mpy,sha256=FQsOIOaioYpzBETO_2EM5NrOGGR15_-C44Fd5uz14eM,1538
323
+ toolkit/workspace/precompiled/LM_mqtt_pro.py,sha256=Vma1efLJ9Z9MrDd0qSrfJdoAxcaPfxdnqNjMIkHoHzY,7847
319
324
  toolkit/workspace/precompiled/LM_neoeffects.mpy,sha256=lO0sxfiAgyASgYNjX3c_usY3TR9WeT3F2NHJkiJ182U,3091
320
325
  toolkit/workspace/precompiled/LM_neopixel.mpy,sha256=3o4Jvmc3Knr30VJ4b7JebpUsU7dBdcYBZzRD_9a4zBI,3663
321
326
  toolkit/workspace/precompiled/LM_oled.mpy,sha256=KQj4jfLwlmx2dT_GWbFzZE6FlMRPUgJvri5XbnSIod0,3154
322
327
  toolkit/workspace/precompiled/LM_oled_sh1106.mpy,sha256=0cQpu1MPkrPxvd1Fvln9c9lq9qPV6oi8iGNTZM4YbIY,3761
323
- toolkit/workspace/precompiled/LM_oled_ui.mpy,sha256=toUOIvcp8zIjsckWLMVNZK8i2KIvpLH2Xy8ORj0aPsI,6821
324
- toolkit/workspace/precompiled/LM_oledui.mpy,sha256=bSNnW6rlts7KM3YY-dTV34gG5r5zJMYvsqQorPb191E,11555
325
- toolkit/workspace/precompiled/LM_pacman.mpy,sha256=njOwVrPKOtC4J5kRCtwV8E8hHTTTt7HzqV121HmCsxE,3507
328
+ toolkit/workspace/precompiled/LM_oled_ui.mpy,sha256=nwYPXJ2Q_ogZCp1PcWlAXPzj9OlPWc82Okc1dcn-kVk,6865
329
+ toolkit/workspace/precompiled/LM_oledui.mpy,sha256=T7Fy0o_8H6h7oiVRYK43BuVb-RKZOyeJGUvHzeWHorQ,11562
330
+ toolkit/workspace/precompiled/LM_pacman.mpy,sha256=xfSDpYrJaFkr-pKLSAM3LetF9Hs3_0ivXOK9mbOII0g,3090
326
331
  toolkit/workspace/precompiled/LM_pet_feeder.py,sha256=ILrozpnq2_ckkVDUROysMWRksKjflsKpIHvgHdvn-JA,2572
327
332
  toolkit/workspace/precompiled/LM_ph_sensor.py,sha256=QBVF6cHX3l9jsKcbEZprpyFtwRVLbup-_A7RmRYsdp8,1355
328
- toolkit/workspace/precompiled/LM_presence.mpy,sha256=xO3hw8VAEl7tqHM014Sb7JYOd2qr8TsLPFG-PzrAWSc,2742
333
+ toolkit/workspace/precompiled/LM_presence.mpy,sha256=vcu_qUj6oU-Cp_jepQRio3BxPe0SQFTBYkJex9JCcDM,2754
329
334
  toolkit/workspace/precompiled/LM_rencoder.py,sha256=9w00JP8UKC_GEKr18xgZ5axX9xc_wVeR9XlWpVR2Qzw,3973
330
335
  toolkit/workspace/precompiled/LM_rest.mpy,sha256=U-2Pihzos6A2xLtcE33qWW6qtoYLH2UM_ZN8LmRrexg,1036
331
336
  toolkit/workspace/precompiled/LM_rgb.mpy,sha256=o12V42r67SvMkhLMINbUVAguShK_GN7AzqmtX4fOqCE,3467
@@ -338,37 +343,36 @@ toolkit/workspace/precompiled/LM_servo.mpy,sha256=S1mH7tS6WK-vclAPQrWK46_IB2GlBZ
338
343
  toolkit/workspace/precompiled/LM_sound_event.mpy,sha256=QJ5xmKtK2sfA9lyROJRRpSAjypl10MkwLdW-QsXhRf8,7384
339
344
  toolkit/workspace/precompiled/LM_stepper.mpy,sha256=20Jpee74AjyjjMaHmgKbZvU5phcOvh8nQNSUDCAk_KE,1466
340
345
  toolkit/workspace/precompiled/LM_switch.mpy,sha256=58sjZQokfBYBZlplFQB5-t-3O-2mlsE3NXjvJ5FgD_U,2237
341
- toolkit/workspace/precompiled/LM_system.mpy,sha256=Desld_4SY-bsOHdrNTx-jjqIx809cwuVnnx68HwZSZk,2802
342
- toolkit/workspace/precompiled/LM_telegram.mpy,sha256=5Y-YrdYjBLN7gmIqlE6WhbWhA3Dak4IVd7j_FQYOQho,4877
346
+ toolkit/workspace/precompiled/LM_system.mpy,sha256=6rHe07pXPzNplojqFur3npBnfGkU-ojlIcbd3innp1A,2816
347
+ toolkit/workspace/precompiled/LM_telegram.mpy,sha256=NhkPz77bvvXXXJhZAsN7WbKn40fzZlHPWQIDWPe4uCs,5080
343
348
  toolkit/workspace/precompiled/LM_tinyrgb.mpy,sha256=qWR-e8DXuzmstxQlyic0YjwFaGiBBBWpf57Wyn1jjFc,1016
344
349
  toolkit/workspace/precompiled/LM_trackball.mpy,sha256=eDVf55dNJXd0Mzg1MZH0talUloPEGFNccE08vwbgn0g,3471
345
350
  toolkit/workspace/precompiled/LM_veml7700.mpy,sha256=NxOvdbrqyyhhwjm2d2dfrJK0dTK3NiP5kQ5GDXjXgq0,1953
346
- toolkit/workspace/precompiled/Logger.mpy,sha256=Nz33LQBUliSguxuy4EV3GWXLd9PFyqzivuNivWdLJ_w,1388
351
+ toolkit/workspace/precompiled/Logger.mpy,sha256=xVHOykBlMALlztUuutWMg2q0-pd-SMePIimI56lU28A,1403
347
352
  toolkit/workspace/precompiled/Network.mpy,sha256=WtpvhGB2bvEe94dAHV40fpEyk-Fi0D6vL1q_m6k4qBg,3274
348
353
  toolkit/workspace/precompiled/Notify.mpy,sha256=ioeDVMh9qBtACWQMASrrhGkSfp1KKUN6d2rt0NpbClo,974
349
354
  toolkit/workspace/precompiled/Scheduler.mpy,sha256=ctCj7FfXj5TchPPxe_9dmnTXWN88egtbAnmJ0N9u_1w,2202
350
355
  toolkit/workspace/precompiled/Server.mpy,sha256=dtSXLYpBcdz0DveB_S6nos46h-m6hwlQ-38G-iVQwKQ,4762
351
- toolkit/workspace/precompiled/Shell.mpy,sha256=-HCVQVnKCyKf1k-DsR_-MxN4PladJl3cMA6JwtRRxsA,4385
352
- toolkit/workspace/precompiled/Tasks.mpy,sha256=vL3tDV7Us3Wg7qtZA8ovqEsvLndOmu14GHcZF2_DtrY,6253
356
+ toolkit/workspace/precompiled/Shell.mpy,sha256=7DDUAntfvcxJejOnnE-iJMzsj98MRP1L6ZsAhbCTl3A,4747
357
+ toolkit/workspace/precompiled/Tasks.mpy,sha256=ee740jEMPqmieC1fCJYp3pJM72qIzL_HvOBRHTDwQaY,6469
353
358
  toolkit/workspace/precompiled/Time.mpy,sha256=AZAtFj-l2ERKUpWgQS4gyq_XUx1ddy4ZTTgpRxbWK9M,2773
354
359
  toolkit/workspace/precompiled/Types.mpy,sha256=LssRbPgvsWuR4d2m3R7VMIvsnkVp9nN0ltwaY2wGop8,1401
355
- toolkit/workspace/precompiled/Web.mpy,sha256=RuZNz2Yfe3MGoMV09nRLUS0MQ2CoJHHBVh7FnC9dYY4,3116
360
+ toolkit/workspace/precompiled/Web.mpy,sha256=-YbLZ4LeJtsXY1o2a2V7e3JBlqi9XldMxQjnbl_ps-g,3133
356
361
  toolkit/workspace/precompiled/_mpy.version,sha256=Kik-fvRGfWAmpEjKdJLq7nPOqYR_jVgB0aiXZ8LMvMA,6
357
362
  toolkit/workspace/precompiled/dashboard.html,sha256=xBZOZ8AMO55QheuZ41Sl0Arvb44qnnai9D67A8YxlVE,2641
358
363
  toolkit/workspace/precompiled/index.html,sha256=cv0hap5bhBoRR_z1KALC3fbjH2rQZY9JJPfF-dxVclw,1656
359
364
  toolkit/workspace/precompiled/main.py,sha256=cVlhoWwU9dSKEol0HWPihFAPzrUUvzSGwZNNMrpyfSY,440
360
365
  toolkit/workspace/precompiled/micrOS.mpy,sha256=x20-mxGB7mkvdcyulttyXhjdLvXeyXlpl57yctS3eTA,1129
361
366
  toolkit/workspace/precompiled/micrOSloader.mpy,sha256=Gcznp2z2Zv4N4dHv7PE7d6bNSQPTdvHLeStCCHGNuEg,1747
362
- toolkit/workspace/precompiled/microIO.mpy,sha256=SWYlvjIHgcMsSVCuxWataoqI03T8Aq6u4TzeGU3I3fs,1638
367
+ toolkit/workspace/precompiled/microIO.mpy,sha256=h_dKLRe0GQJAcXPbC5663A-15xJqJwzdSL0E-5jokuw,1674
363
368
  toolkit/workspace/precompiled/reset.mpy,sha256=D-ZwUk-oR8OAg5ERWJXErdPAGbx_3M13hK4IBawhIg0,217
364
369
  toolkit/workspace/precompiled/uapi.js,sha256=fZ0E9-ZndCoUNQq1yJ7yUCiLYxe3p8hzSFnlN2R9roc,2959
365
370
  toolkit/workspace/precompiled/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN6uGqw9LpScDrGGF58c,4581
366
- toolkit/workspace/precompiled/urequests.mpy,sha256=-JDY-DOtJrGdwQo0-P809zZu-cJBRqKH3X4ZHuo38k4,2387
371
+ toolkit/workspace/precompiled/urequests.mpy,sha256=ZMXbz4uwU7h2_1TKFoyLa1CFC7ZRFuDowAtEwt4rtdU,2520
367
372
  toolkit/workspace/precompiled/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
368
373
  toolkit/workspace/precompiled/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
369
374
  toolkit/workspace/precompiled/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
370
- micrOSDevToolKit-2.9.11.dist-info/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
371
- micrOSDevToolKit-2.9.11.dist-info/METADATA,sha256=BqgNJ6O6FQZJclGKfkWwg2h04G8pL1_n1zVdaSVRsVY,55250
372
- micrOSDevToolKit-2.9.11.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
373
- micrOSDevToolKit-2.9.11.dist-info/top_level.txt,sha256=rOGOIXqLBdGZAoDTiLdZ9B_leFB7bMv7YabLwuIc2bc,25
374
- micrOSDevToolKit-2.9.11.dist-info/RECORD,,
375
+ microsdevtoolkit-2.10.5.dist-info/METADATA,sha256=8P2k8XxlRBmFAzBrbSfEWLinL6BUi-dDJMRBTtp5WCg,55172
376
+ microsdevtoolkit-2.10.5.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
377
+ microsdevtoolkit-2.10.5.dist-info/top_level.txt,sha256=rOGOIXqLBdGZAoDTiLdZ9B_leFB7bMv7YabLwuIc2bc,25
378
+ microsdevtoolkit-2.10.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (79.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -426,11 +426,22 @@ def check_intercon(host=None):
426
426
  break
427
427
  return _state, _output
428
428
 
429
+ def run_intercon_hello(tout):
430
+ nonlocal host
431
+ cmd_list = [f'hello >>{host}']
432
+ _output = CLIENT.execute(cmd_list, tout=8)
433
+ _new_intercon = True
434
+ if "hello:" in _output[1]: # TODO: remove...
435
+ # LEGACY WAY: FALLBACK
436
+ cmd_list = ['intercon sendcmd "{}" "hello" >json'.format(host)]
437
+ _output = CLIENT.execute(cmd_list, tout=tout)
438
+ _new_intercon = False
439
+ return _new_intercon, _output
440
+
429
441
  info_msg = '[ST] Check device-device connectivity'
430
442
  print(info_msg)
431
443
  host = 'test.local' if host is None else host
432
- cmd_list = ['intercon sendcmd "{}" "hello" >json'.format(host)]
433
- output = CLIENT.execute(cmd_list, tout=8)
444
+ new_intercon, output = run_intercon_hello(tout=8)
434
445
  output = _convert_return_to_dict(output)
435
446
  device_was_found = False
436
447
  if output[0] is False or output[1] is None:
@@ -443,7 +454,7 @@ def check_intercon(host=None):
443
454
  elif len(output[1]) > 1 and "hello" in output[1]['verdict']:
444
455
  response_state, response = _get_intercon_output(output[1]['tag'])
445
456
  # Valid input on online device
446
- output = "Device was found: {}:{}".format(host, f"{output}: {response}")
457
+ output = "Device was found: {}:{} version: {}".format(host, f"{output}: {response}", "NEW" if new_intercon else "LEGACY")
447
458
  state = True & response_state, f'{info_msg}:\n\t\t{output}'
448
459
  device_was_found = True
449
460
  else:
@@ -451,13 +462,13 @@ def check_intercon(host=None):
451
462
 
452
463
  if device_was_found:
453
464
  # DO Negative testing as well
454
- cmd_list = ['intercon sendcmd "notavailable.local" "hello" >json']
455
- output_neg = CLIENT.execute(cmd_list, tout=15)
465
+ host = "notavailable.local"
466
+ _, output_neg = run_intercon_hello(tout=20)
456
467
  output_neg = _convert_return_to_dict(output_neg)
457
468
  state_neg = False, output_neg
458
469
  if len(output_neg[1]) > 1 and "hello" in output_neg[1]['verdict']:
459
470
  response_state, response = _get_intercon_output(output_neg[1]['tag'])
460
- output_neg = f'Device was not found: "notavailable.local":{output_neg}: {response}'
471
+ output_neg = f'Device was not found: {host}":{output_neg}: {response}'
461
472
  state_neg = True & response_state, output_neg
462
473
  return state[0] & state_neg[0], "{}\n\t\tNegative test: {}".format(state[1], state_neg[1])
463
474
  return state
@@ -85,10 +85,22 @@ class micrOSClient:
85
85
 
86
86
  @staticmethod
87
87
  def validate_ipv4(str_in):
88
- pattern = "^([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"
89
- if bool(re.match(pattern, str_in)):
90
- return True
91
- return False
88
+ parts = str_in.split(".")
89
+ # An IPv4 address must have exactly 4 parts
90
+ if len(parts) != 4:
91
+ return False
92
+ for part in parts:
93
+ # Each part must be a number and not empty
94
+ if not part.isdigit():
95
+ return False
96
+ num = int(part)
97
+ # Each number must be in the valid range (0-255)
98
+ if num < 0 or num > 255:
99
+ return False
100
+ # Prevents leading zeros (e.g., "01" is invalid)
101
+ if part != str(num):
102
+ return False
103
+ return True
92
104
 
93
105
  def __connect(self, timeout):
94
106
  # Server connection - create socket
@@ -312,13 +324,20 @@ class micrOSClient:
312
324
 
313
325
  history = load_command_history(self.telnet_prompt) # History: Beta feature
314
326
  print(self.telnet_prompt, end="")
327
+ is_empty = False # Empty input support
315
328
  while True:
316
329
  try:
317
- cmd = input() # CANNOT contain prompt - it is coming back from response data
318
- # send command
330
+ # INPUT HANDLING
331
+ cmd = input(self.telnet_prompt if is_empty else '') # CANNOT contain prompt - it is coming back from response data
332
+ if len(cmd.strip()) == 0:
333
+ is_empty = True
334
+ continue
335
+ is_empty = False
336
+ # SEND COMMAND
319
337
  output = self.send_cmd(cmd, timeout=timeout, stream=True)
320
338
  if not (history is None or output is None) and "Shell: for hints type help." not in output: # History: Beta feature
321
339
  history.add_history(cmd)
340
+ # OUTPUT HANDLING
322
341
  if 'Bye!' in str(output):
323
342
  break
324
343
  if output is None:
@@ -31,12 +31,12 @@ def __mock_sim_dir(path):
31
31
  """
32
32
  micropython sim hack
33
33
  """
34
- if MOCK_SIM:
35
- cwd = getcwd()
34
+ cwd = getcwd()
35
+ cwd = cwd if cwd.endswith(os.sep) else f"{cwd}{os.sep}" # CHECK AND FIX CWD / ENDING
36
+ if MOCK_SIM or "workspace/simulator" not in path:
36
37
  path = f"{cwd}{path}"
37
- print(f"[!!!] [uos.SIM] CWD PATH HACK: {path}")
38
- elif "workspace/simulator" not in path:
39
- path = f"{getcwd()}{path}"
38
+ if MOCK_SIM:
39
+ print(f"[!!!] [uos.SIM][MOCK:{MOCK_SIM}] CWD PATH HACK: {path}")
40
40
  return path
41
41
 
42
42
 
toolkit/socketClient.py CHANGED
@@ -215,9 +215,8 @@ class ConnectionData:
215
215
  # Generate line printout
216
216
  base_info = "{uid}{spr1}{fuid}".format(uid=uid, spr1=spacer1, fuid=fuid)
217
217
  spacer1 = " " * (spr_offset2 - len(base_info))
218
- data_line_str = "{base}{spr2}{ip}\t{stat}\t\t{version}\t\t{elapt}" \
219
- .format(base=base_info, spr2=spacer1, ip=ip,
220
- stat=is_online, version=version_data, elapt=elapsed_time)
218
+ spacer2 = "\t" if len(version_data) > 7 else "\t\t"
219
+ data_line_str = f"{base_info}{spacer1}{ip}\t{is_online}\t\t{version_data}{spacer2}{elapsed_time}"
221
220
  return data_line_str, online_ip
222
221
  return None
223
222
 
Binary file
Binary file
Binary file
@@ -6,13 +6,14 @@ def load():
6
6
  """
7
7
  return Espnow.initialize()
8
8
 
9
- def send(peer, msg='modules'):
9
+ def send(peer:bytes|str, msg:str='modules'):
10
10
  """
11
11
  Send message to peer (by mac address)
12
12
  :param peer: mac address of espnow device
13
13
  :param msg: message string/load module call
14
14
  """
15
- return Espnow.espnow_send(peer, msg)
15
+ now = Espnow.initialize()
16
+ return now.send(peer, msg)
16
17
 
17
18
  def start_server():
18
19
  """
@@ -20,21 +21,23 @@ def start_server():
20
21
  - this can receive espnow messages
21
22
  - it includes Load Module execution logic (beta)
22
23
  """
23
- return Espnow.espnow_server()
24
+ now = Espnow.initialize()
25
+ return now.start_server()
24
26
 
25
27
  def stats():
26
28
  """
27
29
  Get ESPNOW stats
28
30
  """
29
- return Espnow.stats()
31
+ now = Espnow.initialize()
32
+ return now.stats()
30
33
 
31
- def add_peer(peer):
34
+ def add_peer(peer:bytes, dev_name:str=None):
32
35
  """
33
36
  Add ESPNOW peer to known hosts
34
37
  - It is needed before first send(...)
35
38
  """
36
39
  now = Espnow.initialize()
37
- return Espnow.add_peer(now, peer)
40
+ return now.add_peer(peer, dev_name)
38
41
 
39
42
  def mac_address():
40
43
  """
@@ -46,4 +49,4 @@ def help():
46
49
  """
47
50
  [beta] ESPNOW sender/receiver with LM execution
48
51
  """
49
- return 'load', 'send <peer> "ping"', 'start_server', 'add_peer <peer>', 'stats', 'mac_address'
52
+ return 'load', 'send <peer> "ping"', 'start_server', 'add_peer <peer> dev_name=None', 'stats', 'mac_address'