micrOSDevToolKit 2.17.2__py3-none-any.whl → 2.20.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 (73) hide show
  1. micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +29 -33
  2. micrOS/source/Common.py +5 -13
  3. micrOS/source/Config.py +2 -2
  4. micrOS/source/Espnow.py +32 -18
  5. micrOS/source/InterConnect.py +106 -31
  6. micrOS/source/Server.py +2 -3
  7. micrOS/source/Shell.py +1 -1
  8. micrOS/source/Tasks.py +66 -62
  9. micrOS/source/micrOSloader.py +1 -1
  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_espnow.py +18 -1
  15. micrOS/source/modules/LM_i2s_mic.py +1 -2
  16. micrOS/source/modules/LM_keychain.py +1 -2
  17. micrOS/source/modules/LM_light_sensor.py +1 -4
  18. micrOS/source/modules/LM_mqtt_client.py +13 -10
  19. micrOS/source/modules/LM_neoeffects.py +1 -1
  20. micrOS/source/modules/LM_neomatrix.py +1 -1
  21. micrOS/source/modules/LM_neopixel.py +1 -2
  22. micrOS/source/modules/LM_oled_ui.py +4 -3
  23. micrOS/source/modules/LM_oledui.py +6 -7
  24. micrOS/source/modules/LM_presence.py +1 -2
  25. micrOS/source/modules/LM_rest.py +1 -2
  26. micrOS/source/modules/LM_rgb.py +1 -2
  27. micrOS/source/modules/LM_roboarm.py +3 -4
  28. micrOS/source/modules/LM_robustness.py +1 -2
  29. micrOS/source/modules/LM_tcs3472.py +131 -17
  30. micrOS/source/modules/LM_telegram.py +17 -18
  31. {microsdevtoolkit-2.17.2.dist-info → microsdevtoolkit-2.20.0.dist-info}/METADATA +151 -215
  32. {microsdevtoolkit-2.17.2.dist-info → microsdevtoolkit-2.20.0.dist-info}/RECORD +69 -73
  33. toolkit/Gateway.py +1 -1
  34. toolkit/dashboard_apps/SystemTest.py +39 -32
  35. toolkit/micrOSdashboard.py +8 -13
  36. toolkit/socketClient.py +27 -7
  37. toolkit/workspace/precompiled/Common.mpy +0 -0
  38. toolkit/workspace/precompiled/Config.mpy +0 -0
  39. toolkit/workspace/precompiled/Espnow.mpy +0 -0
  40. toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  41. toolkit/workspace/precompiled/Server.mpy +0 -0
  42. toolkit/workspace/precompiled/Shell.mpy +0 -0
  43. toolkit/workspace/precompiled/Tasks.mpy +0 -0
  44. toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  45. toolkit/workspace/precompiled/modules/LM_buzzer.mpy +0 -0
  46. toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
  47. toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
  48. toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
  49. toolkit/workspace/precompiled/modules/LM_espnow.py +18 -1
  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_neoeffects.mpy +0 -0
  55. toolkit/workspace/precompiled/modules/LM_neomatrix.mpy +0 -0
  56. toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
  57. toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
  58. toolkit/workspace/precompiled/modules/LM_oledui.mpy +0 -0
  59. toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
  60. toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
  61. toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
  62. toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
  63. toolkit/workspace/precompiled/modules/LM_robustness.py +1 -2
  64. toolkit/workspace/precompiled/modules/LM_tcs3472.py +131 -17
  65. toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
  66. micrOS/micropython/esp32s2-LOLIN_MINI-20220618-v1.19.1.bin +0 -0
  67. micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin +0 -0
  68. micrOS/source/modules/LM_pet_feeder.py +0 -78
  69. toolkit/workspace/precompiled/modules/LM_pet_feeder.py +0 -78
  70. {microsdevtoolkit-2.17.2.data → microsdevtoolkit-2.20.0.data}/scripts/devToolKit.py +0 -0
  71. {microsdevtoolkit-2.17.2.dist-info → microsdevtoolkit-2.20.0.dist-info}/WHEEL +0 -0
  72. {microsdevtoolkit-2.17.2.dist-info → microsdevtoolkit-2.20.0.dist-info}/licenses/LICENSE +0 -0
  73. {microsdevtoolkit-2.17.2.dist-info → microsdevtoolkit-2.20.0.dist-info}/top_level.txt +0 -0
@@ -25,37 +25,35 @@ micrOS/micropython/esp32c3-20240222-v1.22.2.bin,sha256=GktHoOmEndjNy-5d4Jetx2tW1
25
25
  micrOS/micropython/esp32c6-GENERIC-20250415-v1.25.0.bin,sha256=a1womN0H96anNycVgIYT9bMkSi6HHs437ZtantOuSHg,1995392
26
26
  micrOS/micropython/esp32cam-v1.21.0_camera.bin,sha256=0j5OTjWERTfyt_RpPIC8fWA829UcCQE7MEMmYHzBOKs,1433072
27
27
  micrOS/micropython/esp32s2-20240602-v1.23.0.bin,sha256=t2ExDdbS4FZ7o0SZTur34UTQdlaim8LymDnpqtM23Yk,1422304
28
- micrOS/micropython/esp32s2-LOLIN_MINI-20220618-v1.19.1.bin,sha256=bXR9KjDPeHZZ6DnLMXNiEq1oLt1oogyH3Dt2xqk_wUA,1230192
29
28
  micrOS/micropython/esp32s2-LOLIN_MINI-20240602-v1.23.0.bin,sha256=OJi-_TLCDZt_tEALtb9RoQ0S10H0nLQCGJmfxH_TSIg,1422256
30
29
  micrOS/micropython/esp32s3-4MBflash-20241129-v1.24.1.bin,sha256=PXVpriBIBil_96-6z4gqpDrdB5EyuIEBVTW9y33tWyk,1659056
31
30
  micrOS/micropython/esp32s3-8MBflash-20241129-v1.24.1.bin,sha256=Att5Tefiky4cDYBhBgFJx7imcrbLDSqhT7l9_yAE1Do,1659056
32
- micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin,sha256=S-sv_QeL_Tylg1t9nR-5gjxt0-xMpFY-_O8ot-L8jlE,1561184
33
31
  micrOS/micropython/esp32s3_spiram_oct-20241129-v1.24.1.bin,sha256=VbOF_F0YeqttkQd2ePTW66Jd34RU8u9ccFfcv8kxO_U,1662672
34
32
  micrOS/micropython/rpi-pico-w-20241129-v1.24.1.uf2,sha256=v4aYIbWaE94_f6DDzBWS-a9L1BzlcdkZwld9R7bOVA4,1727488
35
33
  micrOS/micropython/tinypico-20241129-v1.24.1.bin,sha256=Kf3cr766a5SK99CZy8bwdWjwvAZxls3tBYvaHBsw7ac,1527200
36
- micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json,sha256=C7NUIDrkLDo7FXoG7zQQyZAyIyn6f0eUqPDEWJW1qnU,6338
34
+ micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json,sha256=jxV1a-5_zokkX1Ot_ZchBpVjMUckk4b6142YbfItyMY,6260
37
35
  micrOS/source/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
38
- micrOS/source/Common.py,sha256=uvfLeei3Koi3MWraIk1LU4ArO7C5krcHm9mSN3tOTDM,16793
39
- micrOS/source/Config.py,sha256=094MYe1UUbRy5qRiC-HBR9GvVOXY7-2fqF9UvEtfIGo,9187
36
+ micrOS/source/Common.py,sha256=Ef6Pk2Esx0SpNbxV951NilMBUqFf2LbGSAeKUSNovxs,16585
37
+ micrOS/source/Config.py,sha256=Ci2VjlK2RW1rvKr1xR4A6HeqktZYAkrU12hFVqngXB0,9178
40
38
  micrOS/source/Debug.py,sha256=in2tx6Dw8EqeKYTrJpLxSevpoIrJjxlH17JLrTui1o8,3287
41
- micrOS/source/Espnow.py,sha256=G3IG0jNIFpzBbDZPtxevO2vwOsm4YuWV8fl4sVcn1Bg,12883
39
+ micrOS/source/Espnow.py,sha256=E-hqJstOrcE2WtniwMdUT3UfXX1NlitAir05pSbou-8,13082
42
40
  micrOS/source/Files.py,sha256=SsA4kDWiB8gcunmu9mVVVGmTzxSvkpBqQV-J-U5rzt4,5428
43
41
  micrOS/source/Hooks.py,sha256=XdHCo2avht0wUj5xT1oM4tPGZM4uZ2DYmaCOFHYIpjM,4190
44
- micrOS/source/InterConnect.py,sha256=ZEYNzHmKaVYkkAfesxXSFVFPyBrmaY_JFDAmF4FxXyw,7839
42
+ micrOS/source/InterConnect.py,sha256=MZGPo1h2fcztDkXUBHt9oRknbg6Mr281-3z6XKrUZgo,11098
45
43
  micrOS/source/Interrupts.py,sha256=kLDsByjoGeEiDk_0yV7iAvsZlKs9uFqPcAKkdNNR6HU,7543
46
44
  micrOS/source/Logger.py,sha256=QSABn-dFDBDQFxgQzu1vpWnqHFg7UjJ-6utMmpEWqes,3979
47
45
  micrOS/source/Network.py,sha256=bFG_OE1baHQFJgpcNC_KAKTGPQlgN7pisV07CI30k1g,10165
48
46
  micrOS/source/Notify.py,sha256=5_Sqy2FeBVG6HznC48Rgg812AglGjO8pkDYGSpp5qSg,2637
49
47
  micrOS/source/Scheduler.py,sha256=EhOdDQqN4V1G0TD2jU5cmjUjY_g-sU8NwFoUfniBKF0,9628
50
- micrOS/source/Server.py,sha256=gNT3pcNsw8NVwldEe3c6uXlyMdawNS6F1bKUoy-OpLQ,16862
51
- micrOS/source/Shell.py,sha256=bGsDJ2teXwxUGnFgL5-5BiqvvUlurRU4coINHNc1hxs,13309
52
- micrOS/source/Tasks.py,sha256=9ITabnBkiI9W6g_wechD0fdRZvynTFyaFzUk3qNnmM4,23996
48
+ micrOS/source/Server.py,sha256=WSDW2BaCkTxkDruKZXW98jhtQXHKaCz7Em1oPYQL4Kk,16869
49
+ micrOS/source/Shell.py,sha256=I1zK7WFhOVUt9VicUJLnv-pmwTWNVMFu4hu7pSOZRfs,13309
50
+ micrOS/source/Tasks.py,sha256=yZK3LeDcAZZ-tthFdAD1BWon5pbTzY-ReW-I1Q-0-mY,24383
53
51
  micrOS/source/Time.py,sha256=8EHp86CAkbGIErGgN-VGAsslUBFIooRGkHB1hUYwwOE,6408
54
52
  micrOS/source/Types.py,sha256=Ft_gHokGNa9aQRGSwE3NYIvYZuolT3zfkD5JzhycQ1s,3499
55
53
  micrOS/source/Web.py,sha256=EeZzKcZMTDVls5Qu-kT8dnX2Mt8L6M4eLiCBhDBJa40,11059
56
54
  micrOS/source/main.py,sha256=cVlhoWwU9dSKEol0HWPihFAPzrUUvzSGwZNNMrpyfSY,440
57
55
  micrOS/source/micrOS.py,sha256=QM1lgUnv2qrklj5-qgU6MM_6YsTKq4VGk71Od3Dzx1M,2872
58
- micrOS/source/micrOSloader.py,sha256=wFS1i90q5po-fKpnEpwL_O4KQV9QujgwAR1QvXpjNvA,4627
56
+ micrOS/source/micrOSloader.py,sha256=9o6VIWPAgnQVb3uQDHENW9aO21gkM4jgR4O1t6uoPHI,4624
59
57
  micrOS/source/microIO.py,sha256=h7i78Rl_DKG5vwpCgk1dsY-Z9ikvmOQLMiusYP_yRMI,7096
60
58
  micrOS/source/reset.py,sha256=i7wsPkOXE7Mm0xOiw1CjqCvCdNjBvYswn9CRDvE2VbE,248
61
59
  micrOS/source/urequests.py,sha256=SrzOgo8UF9YncjfeItM9-xqUr5xEoUt1kOcPxisn6uw,9456
@@ -81,44 +79,43 @@ micrOS/source/modules/LM_OV2640.py,sha256=E8zveGtp7GHerY4Chokvd0iREf-qMGXD2nA4YR
81
79
  micrOS/source/modules/LM_VL53L0X.py,sha256=dqK7yP9Qgc-OzRJBAX3-26N_cwoMGlpG7oBcc7faPoM,10122
82
80
  micrOS/source/modules/LM_aht10.py,sha256=aC6-cvfG6OWoBinYD47mYGg7eIY8BfJxg6yMENr7k90,4002
83
81
  micrOS/source/modules/LM_bme280.py,sha256=4v7HtJ3HgbLwpRe-OwKR-D2nTM_PBDyFR8SHInig3Is,12708
84
- micrOS/source/modules/LM_buzzer.py,sha256=S8pwUZI8OidoATQPVmdvrSiJjPycDYp0gJiMxey7WCQ,12432
85
- micrOS/source/modules/LM_cct.py,sha256=D6lGBO4YAU44rt_ymm0rlkbqSH4agaacZXz7Om22Bmk,14207
82
+ micrOS/source/modules/LM_buzzer.py,sha256=EWkAWkC-W0-zFbxv1XCg_j_kS6hl5zVj03CxGw9jFSg,12356
83
+ micrOS/source/modules/LM_cct.py,sha256=iZKgAHeTF16TmNDPfb-UNfw9x-5LvV_3me-O_GBbFjk,14049
86
84
  micrOS/source/modules/LM_cluster.py,sha256=iI-l6TJP4ejOY8tlE3OgjP82AL7dPNmn2fnaq4CRIdo,8937
87
85
  micrOS/source/modules/LM_co2.py,sha256=Eopq9eEPV9W2x5mx5EJGllg09_HFTYiI1hZE2T_PWTY,5460
88
86
  micrOS/source/modules/LM_dashboard_be.py,sha256=KVaJH37TCJkEwZJdGAVKpJtZXyVqYKDupyJO5BXvI0c,966
89
87
  micrOS/source/modules/LM_dht11.py,sha256=pmmtpxnYHApo63WvQXHlgx_z3A86dMSi1Stb9pSRpYY,2010
90
88
  micrOS/source/modules/LM_dht22.py,sha256=QVJ1OidP27LFPGesSSdEUr19QXAwYOcqEWC622k_eIA,2011
91
- micrOS/source/modules/LM_dimmer.py,sha256=jmcwuyyNSCeDRNx4GieNld82eaT_K-c6zybcA7bo91k,8398
92
- micrOS/source/modules/LM_distance.py,sha256=iVqQchaUOvK8Ilzr7qMi-ESvS_U8RsBwdqNHY_4qZ-c,4394
89
+ micrOS/source/modules/LM_dimmer.py,sha256=qMmYGKhij2euvM9IpXHPlGdA9oOfv7NzbxqMcZqBgE8,8321
90
+ micrOS/source/modules/LM_distance.py,sha256=kxqtx2_Zo4v3oohbdtm6jgNF_dmZOug-qf9yHHReTI8,4338
93
91
  micrOS/source/modules/LM_ds18.py,sha256=mLaH97j8d4lUXcjS8hNtwU8hL5Ybt-Q1WuoiWPnk5Ho,1807
94
92
  micrOS/source/modules/LM_esp32.py,sha256=AAMceuWTWMDu_1EJH-617dmp5ClPaAzFKgDOHWEiX0I,1862
95
- micrOS/source/modules/LM_espnow.py,sha256=WD3gnXMWjIYZGcwQM62T0xd9yMb9wzEfS0ZYlkqESjA,761
93
+ micrOS/source/modules/LM_espnow.py,sha256=8WVKGinXL380aj6-qB2euhpwxN2y9pQcXMH-CrW7FJ0,1085
96
94
  micrOS/source/modules/LM_gameOfLife.py,sha256=Mvr_S5zsJ6x_pMCGrkdgl5QdejNQjAF9mBYLN5-OA38,7685
97
95
  micrOS/source/modules/LM_genIO.py,sha256=rTiFByly8ImjHBgc2RceGczGp1rzti7Juz_Vvg5hrtc,5013
98
96
  micrOS/source/modules/LM_haptic.py,sha256=W0WiuOCxIu9RB-pWu8r8fvHmvuseet1UI7RSc9WO8zo,2862
99
97
  micrOS/source/modules/LM_i2c.py,sha256=hdInP8L2gRPUQ5_8YnqEDOKf5nJ9lwyikRADYO6Em_4,1600
100
- micrOS/source/modules/LM_i2s_mic.py,sha256=1Yu6RLYvSWWHT4KL1kCAuy_avV_z6WJXgIwWuQ73jcA,12271
101
- micrOS/source/modules/LM_keychain.py,sha256=-GN-Xzoour2vjg5MyZtmbcxo8LdSn6dYrk1wSliNQh4,12695
98
+ micrOS/source/modules/LM_i2s_mic.py,sha256=HpyrzeHLa5yDbgS6TYVj7zaXXud8PLvq0WivlFhVPRo,12216
99
+ micrOS/source/modules/LM_keychain.py,sha256=0PPAjdBGHXSj47GeovO-YdrQK0uf2toEFjkDbelNzAE,12640
102
100
  micrOS/source/modules/LM_ld2410.py,sha256=dWBsIkI0ryomn0zDrmz5YxaGcoH5TqjAsi2qwGd8UZM,6524
103
- micrOS/source/modules/LM_light_sensor.py,sha256=ptOcfjLDtL930s9J9uPO9YOnIZBGvh5Fa4F01dmFFzI,4527
104
- micrOS/source/modules/LM_mqtt_client.py,sha256=KeHMplcRgPQf4H-RDSOQ4ODlUKm1tzDDBOQVf832UEw,8511
105
- micrOS/source/modules/LM_neoeffects.py,sha256=nKwoNHUvUOM3gmNFXlNSR3uFIF0k9NLlxwfw2VxfdNo,9848
106
- micrOS/source/modules/LM_neomatrix.py,sha256=UIZsYoNW77WagaMVUJS4hUYrt8bGuimrZWqICwaD4qg,14334
107
- micrOS/source/modules/LM_neopixel.py,sha256=HwyATyAvXSJ1paUn9u-I3etu4A9cCNXwo8cPbKr93iw,13289
101
+ micrOS/source/modules/LM_light_sensor.py,sha256=QTyzkJKOOqHvkbzkzn1ZUQe4gSpXVMzJOP05-u8L52U,4401
102
+ micrOS/source/modules/LM_mqtt_client.py,sha256=QEtmnMWUZJsGVe8Ca5Q10gbR8TQMewWa4HMRz7iCFFU,8567
103
+ micrOS/source/modules/LM_neoeffects.py,sha256=zzsHEfZE7-c6cLVlRM9tPhbUDqBYytdHlvm41fv1nG0,9858
104
+ micrOS/source/modules/LM_neomatrix.py,sha256=jCNpV-HDOpNHe7k00fr4TfDVYkM45wCmB4ZfvKAm_NA,14332
105
+ micrOS/source/modules/LM_neopixel.py,sha256=V0WEwHtjj0cKfiUpWNdRVOa6KEJ6q3VhNzobN9PfQr4,13212
108
106
  micrOS/source/modules/LM_oled.py,sha256=ZwLndxWuY1Ii5d06YEf9Z_jxmTyoOYRL-BO3VhJ0b14,9903
109
107
  micrOS/source/modules/LM_oled_sh1106.py,sha256=av2_ftFHvfAIxcPYHbrOMQNZgM1Go6MQzBu5cIeVK4w,11723
110
- micrOS/source/modules/LM_oled_ui.py,sha256=1UGyXupMc8xU9zvE2AVnLRcDZEin8T1cFblsBCZ29xA,22232
111
- micrOS/source/modules/LM_oledui.py,sha256=zLj-RZ-bcWoMqcmK-pxyfSs7IU-xrXW_GLPzCMvjOXY,35395
108
+ micrOS/source/modules/LM_oled_ui.py,sha256=Dux4h8zUwSPa8zfo_lwmhH31Xmyb76d04AFoSTlwa98,22276
109
+ micrOS/source/modules/LM_oledui.py,sha256=LlkJixv3bl3o-8Das7Iu8ouaivuB79iWs2ZLiSRnwuI,35321
112
110
  micrOS/source/modules/LM_pacman.py,sha256=YWshcR0itd3CAZSfvpOkyH9Ux9H0dBKonI4fzK77qls,9750
113
- micrOS/source/modules/LM_pet_feeder.py,sha256=ILrozpnq2_ckkVDUROysMWRksKjflsKpIHvgHdvn-JA,2572
114
- micrOS/source/modules/LM_presence.py,sha256=8cagHD12HF4E6qgSn6zkf6yyY6aiBiIcEvRrfVuPyzE,8796
111
+ micrOS/source/modules/LM_presence.py,sha256=jzJKJJ6hwPCZjQfOTO8iQdVIym89V4DhIiYf72KtXso,8741
115
112
  micrOS/source/modules/LM_qmi8658.py,sha256=4OOAUo7NV7G1Rx01l8LK-wGw19GDaAukDjH6vvxt7ds,6303
116
113
  micrOS/source/modules/LM_rencoder.py,sha256=9w00JP8UKC_GEKr18xgZ5axX9xc_wVeR9XlWpVR2Qzw,3973
117
- micrOS/source/modules/LM_rest.py,sha256=K2FMlW2o8zLu9GTk1nrtc9j-lebQvbg8bJTQWfv6xlA,2674
118
- micrOS/source/modules/LM_rgb.py,sha256=yfllJVyy_JFx6L0BMhwnbBLk4nHrZZKDqomfaYa13nI,11972
114
+ micrOS/source/modules/LM_rest.py,sha256=HwKfKkX6VIC99o1BEaR_xzQY6e6UMsQXRjPa1jFyhCM,2617
115
+ micrOS/source/modules/LM_rgb.py,sha256=ITPxLTPbFI9vXu9waVEKJ-C66IvORtbCW9OwZFcjEig,11895
119
116
  micrOS/source/modules/LM_rgbcct.py,sha256=Ct0X_O0AuSTsf4YiZjP4Zvke81y6dQMryhcn-HKkR9M,1841
120
- micrOS/source/modules/LM_roboarm.py,sha256=iolt3_MX-K9XSCEecSRnNPwMRltHSFAfghYxUNXU_iI,10018
121
- micrOS/source/modules/LM_robustness.py,sha256=h-53vRxH36Savos4Lmbk0CNQlGC1ozEE5bZ3t2C7JYs,3815
117
+ micrOS/source/modules/LM_roboarm.py,sha256=fmzR0L_EJuLi8u_kCNFyKRBoC-J-90leeMW1EgDq55M,9984
118
+ micrOS/source/modules/LM_robustness.py,sha256=09h-sE10J4PriNB6VK3b544cPMrQbiTqIvpB7mS-lYM,3760
122
119
  micrOS/source/modules/LM_rp2w.py,sha256=vdN-gxc38-WI4XK6MMz3FBPYmLdUSjEyB6JuKR_slbM,391
123
120
  micrOS/source/modules/LM_sdcard.py,sha256=y7pB35Xqb0EporESZ6_wHTUe8ez_R2ud_mwdh-wC-30,1030
124
121
  micrOS/source/modules/LM_servo.py,sha256=83YPK5qlHuEOo3jTn5wXRsvPzzJPp0ZtCW-BhHHMBK0,3481
@@ -126,8 +123,8 @@ micrOS/source/modules/LM_sound_event.py,sha256=9BZnrT8Jc2HL-28yVZE5sdeTa8Biq1qkQ
126
123
  micrOS/source/modules/LM_stepper.py,sha256=CkI4QBe2KJ7E5DKL7Z23oAMPDUFlUt7btAvqrn4H6Kg,4278
127
124
  micrOS/source/modules/LM_switch.py,sha256=1go-jfbh0zisi3Cw680n9PmcoC-dwh_N4c5fMRceJBc,7868
128
125
  micrOS/source/modules/LM_system.py,sha256=-URoeSdNZkv4veJlxlsj7JrEHbMKFfXlImwZpGUnm-4,6579
129
- micrOS/source/modules/LM_tcs3472.py,sha256=rl_-4IE6f5BYTN52xY93yZJMI_PZwq9AVK2fzi_t7c0,1829
130
- micrOS/source/modules/LM_telegram.py,sha256=EdceSUvPN8hWB4oRnr73GMGFVe5_10OLak8jo_tJMcQ,15199
126
+ micrOS/source/modules/LM_tcs3472.py,sha256=Kvkpxigv-9zgfy2_jUqKJzZgMBZxOXqQf4QBU9McndY,5459
127
+ micrOS/source/modules/LM_telegram.py,sha256=unA5P6h_o0MPvESnJxp8RfEg_fbRtMafJjZeazIZ52w,15170
131
128
  micrOS/source/modules/LM_tinyrgb.py,sha256=kChL607HPTl3Z2hYN2XnzXXfZ6omdP78PQutHdbdfCo,3031
132
129
  micrOS/source/modules/LM_trackball.py,sha256=N2hhy3wuk55-ja4dmENpfthBolIEj28d2pzcjel5OKg,9716
133
130
  micrOS/source/modules/LM_veml7700.py,sha256=3eb6-HuMA_tYBA0cJHUsZzOBriHacIpVSrK-1iB3_pY,5762
@@ -139,21 +136,21 @@ micrOS/source/web/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN6uGqw9LpScDrGGF5
139
136
  micrOS/source/web/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
140
137
  micrOS/source/web/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
141
138
  micrOS/source/web/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
142
- microsdevtoolkit-2.17.2.data/scripts/devToolKit.py,sha256=4GutIOErF1ny0HSNWQZzEneZdUWhSdqKPBjpRFTr5do,11192
143
- microsdevtoolkit-2.17.2.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
139
+ microsdevtoolkit-2.20.0.data/scripts/devToolKit.py,sha256=4GutIOErF1ny0HSNWQZzEneZdUWhSdqKPBjpRFTr5do,11192
140
+ microsdevtoolkit-2.20.0.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
144
141
  toolkit/DevEnvCompile.py,sha256=wNBf0T7w07SYC3eLFow3JtZApHQK-92Fu7CvJHqWuSM,13189
145
142
  toolkit/DevEnvOTA.py,sha256=8IfAcvV0L_H91FAiZDRBmC06cWOXXCpoSDO-JWE6CG4,26889
146
143
  toolkit/DevEnvUSB.py,sha256=TorXJt5qJ1Wk8Qi5Ncn3ortu432GHVCSQFXhSuA0OSU,37197
147
- toolkit/Gateway.py,sha256=AzZydQMVOBNGyWUtEm5Rja0m47F1AU10YSQll7_2QkQ,25335
144
+ toolkit/Gateway.py,sha256=wz81ZteRtKuNsXmX3Zi9Uo4g5fuCxbErAhas0HrkJqU,25353
148
145
  toolkit/LM_to_compile.dat,sha256=EcJSCR3xugskiLAJY1BWEBfa0A4EhP5qHDXNRQZQ30E,619
149
146
  toolkit/MicrOSDevEnv.py,sha256=Puh0u2oQhPptj-XTvvi8N9Wm3UzDBys1ZHQvzCXjmB4,14583
150
147
  toolkit/WebRepl.py,sha256=805SJGoflJztyFR4DFxP80KVvNEeJfqZxlYeA3uD680,2696
151
148
  toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
149
  toolkit/img_stream.html,sha256=ZGyrUgpi-JhMl4euS-TTjwwGrg66a2pGUQCopWiveds,5135
153
150
  toolkit/index.html,sha256=agTgT1d4FH8l2h47Hfb4Lv061BW9shsCAgq1abO5hlI,10998
154
- toolkit/micrOSdashboard.py,sha256=Hw7Fz6chn6z29Kx04InV9K_8iTz-HHRvYGqKVDe0xac,54425
151
+ toolkit/micrOSdashboard.py,sha256=5cd7-m3VlTMBX4jkw-kzVHS-Rzj7MnYNKKLm4w9hgOM,54335
155
152
  toolkit/micrOSlint.py,sha256=39TpsZs815L3XCI3opweOGiIJHYdvEizFbd9TlHiuck,26126
156
- toolkit/socketClient.py,sha256=cVXTO_EVYOwxHJhHuTG2Nrx6q9RDZoPyPocSFBU9MyM,18608
153
+ toolkit/socketClient.py,sha256=sQ1I04WPSmk8KwvJTgjPCWdMHKE5sKLSwMsUrOUxCao,19980
157
154
  toolkit/dashboard_apps/BackupRestore.py,sha256=udhuFpCawO0mwyiN4vFMfV8wONqHnUjYvL0udJzkq44,5897
158
155
  toolkit/dashboard_apps/CCTDemo.py,sha256=oV7k6sxepOxEa7tBNcuK5IHgKnv01sIQRPvUljic8NI,1125
159
156
  toolkit/dashboard_apps/CCTTest.py,sha256=saU4L8gOst31bno44vlwaeSzqrIBppW2DrZf2KV7_4o,3641
@@ -170,7 +167,7 @@ toolkit/dashboard_apps/RGBTest.py,sha256=QIky1Ts87h52VS9vHs3rYoEYvwFX02BlJxzK-uE
170
167
  toolkit/dashboard_apps/RoboArm.py,sha256=fqsBFTLEKXLyuZtZhbsNMNLCVtJw3gHWE-37EzjRttw,1814
171
168
  toolkit/dashboard_apps/SED_test.py,sha256=hQG8F2isZvCEsb0EvUdvcowLtJ86vrhLMOvpe9EPcJM,2703
172
169
  toolkit/dashboard_apps/SensorsTest.py,sha256=h6Sqz9HzjUawKuvxBPMltgWAycIXUUqlLANZqlF030M,1472
173
- toolkit/dashboard_apps/SystemTest.py,sha256=rrHZWToda0zVgWP3g-OpnnCuxr-5TgaaAjwLmoAzBhI,26054
170
+ toolkit/dashboard_apps/SystemTest.py,sha256=AKV1J9VRSHykSmFMh53dfuyM_qUs-oGUebrIDi6f4w4,26519
174
171
  toolkit/dashboard_apps/Template_app.py,sha256=1OLO-xA6qNKyDCj-J7nHkA3Eis4ZKnHfhMcaSqHNX4A,758
175
172
  toolkit/dashboard_apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
173
  toolkit/dashboard_apps/_app_base.py,sha256=u2-Clkaosftr0bgr2kiClcQ1lkJT8GoUD9UUOOKVVmk,1039
@@ -292,28 +289,28 @@ toolkit/user_data/webhooks/macro.py,sha256=r1TnOP4Bq-G3XQGwcV0FHcvlzwVaojUrrhbtp
292
289
  toolkit/user_data/webhooks/template.macro,sha256=XikSl3FsD6W9pUx3sqavM5tWIMBquFx9f3bh_CB8k-A,631
293
290
  toolkit/user_data/webhooks/template.py,sha256=UhyXmETAEr-VQutY9ME4gAb-4qi7qVfZ0NjSU1inn-E,342
294
291
  toolkit/workspace/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
295
- toolkit/workspace/precompiled/Common.mpy,sha256=GojFfQ_pMKH04m6WmdvLm43FEJelVhrzgolgx5ACNpU,4183
296
- toolkit/workspace/precompiled/Config.mpy,sha256=Y50bjJnmk-uI-_rkIKvPuR5zfbrHVodsSt5G7LG4eH0,3279
292
+ toolkit/workspace/precompiled/Common.mpy,sha256=NhIMgu2QPTifEzkZCLBKVxGwNIQ6xyyQ3b03gEJoTBg,4133
293
+ toolkit/workspace/precompiled/Config.mpy,sha256=tj0x_vwNo59wqBbkoFJ_-7reXQWwwQtG3-Sg_CMeNlo,3272
297
294
  toolkit/workspace/precompiled/Debug.mpy,sha256=BJqoH4QdOmeybdUxUlhNu6ApHo4KTraJ5F_winmwOm0,1039
298
- toolkit/workspace/precompiled/Espnow.mpy,sha256=mGTP_GI9uts2oqH_xw1WhcExtra3TsZrDzsopgsWUDo,4368
295
+ toolkit/workspace/precompiled/Espnow.mpy,sha256=iIWsO_ov7Wh_iQlEeqtb8vHd6ppo8BgqnInbuRFljsA,4445
299
296
  toolkit/workspace/precompiled/Files.mpy,sha256=_qwNi5p_d1PXPRoF5SWiFuxmY3qt8OtT8FOhW5JusF0,1798
300
297
  toolkit/workspace/precompiled/Hooks.mpy,sha256=Jb-3JliF0O4RitSfsVm8zxSFT3VGcYmPked9W6X1jNw,1769
301
- toolkit/workspace/precompiled/InterConnect.mpy,sha256=KMlKFZHhF-7SlRe_GcFnydQQuSduDEGJtgHYhhOvLFI,2358
298
+ toolkit/workspace/precompiled/InterConnect.mpy,sha256=bhoTshgN07Ou4fRnW5YHDtd8sk2e3-dCQEgdJWlsnYQ,3330
302
299
  toolkit/workspace/precompiled/Interrupts.mpy,sha256=0p3Bpx1C7wXWHz9jLM-eqFD0X9wuT6eKzaOdmzpkVBE,2128
303
300
  toolkit/workspace/precompiled/Logger.mpy,sha256=lgAiS5nQqIskNBtEqDoH3GwohOH0mflr8JoYV6b5x4g,1324
304
301
  toolkit/workspace/precompiled/Network.mpy,sha256=foBjsIZ1SafRplCw8v5GgDU_WjPTaRz1W9D6VYyaBSc,3553
305
302
  toolkit/workspace/precompiled/Notify.mpy,sha256=i8LNNynvNxi-tA5QT0pQJ8NJ_DNxJNW4NTZRD6gGS7M,970
306
303
  toolkit/workspace/precompiled/Scheduler.mpy,sha256=S-ZS1N420Xew74F_90O4FvFvrvmRTMiCh-C8szrdhfI,2198
307
- toolkit/workspace/precompiled/Server.mpy,sha256=Q6kIxjxhbkJ1nvxiPQD_6KvQYNfOhM3NTWbLMAIZaWA,4896
308
- toolkit/workspace/precompiled/Shell.mpy,sha256=OHOR-0z3OB4eQaVnF6QoUTxzWLZDmKG2eLdkTAdb_cQ,4821
309
- toolkit/workspace/precompiled/Tasks.mpy,sha256=1iBQXjiJm-s8OfqL2hAehhG_EqSfmubVRAgrJw_rNhc,6660
304
+ toolkit/workspace/precompiled/Server.mpy,sha256=dS2IY9NAjvy2v7-fQHeY44n080GlL3ZV8ENtN1A3KPw,4896
305
+ toolkit/workspace/precompiled/Shell.mpy,sha256=EgF2dSFgednlMKdoR4TCndHV4frf4h2XBseIzU31_xw,4821
306
+ toolkit/workspace/precompiled/Tasks.mpy,sha256=OCEIC_9OCjOA0hye1t-d_5iGv1Hg700XZMvyz2UIFts,6712
310
307
  toolkit/workspace/precompiled/Time.mpy,sha256=3thC6iKW4UJdjNP-Jo1Ol0Zn-e4oy2H1wiIz7SH182E,2865
311
308
  toolkit/workspace/precompiled/Types.mpy,sha256=5QGhswa0jWAU1Ywpyl_92miQg4qDHReXLqq3iHBwUCs,1397
312
309
  toolkit/workspace/precompiled/Web.mpy,sha256=X3-nqKYY_RSLsAspTFY_O7H5vkUR0OwECFbSyxqSUUc,4030
313
310
  toolkit/workspace/precompiled/_mpy.version,sha256=Kik-fvRGfWAmpEjKdJLq7nPOqYR_jVgB0aiXZ8LMvMA,6
314
311
  toolkit/workspace/precompiled/main.py,sha256=cVlhoWwU9dSKEol0HWPihFAPzrUUvzSGwZNNMrpyfSY,440
315
312
  toolkit/workspace/precompiled/micrOS.mpy,sha256=zNzWg5S_-sHW_kxX9FOPlMboGMCNe_kzc1WWdN1_PEg,1208
316
- toolkit/workspace/precompiled/micrOSloader.mpy,sha256=jnrYRrHlo7YnBS2BTbF6-7lMJzyD3XoxhHLYel5ngd8,1578
313
+ toolkit/workspace/precompiled/micrOSloader.mpy,sha256=-4nL5AeXCf1-lKP6sXbj4F_QayQjCo2PpA0AHdZYQEg,1574
317
314
  toolkit/workspace/precompiled/microIO.mpy,sha256=pyfx0fA6VPniMKvmOID9Uzkq0loakhntT59hbtinsH4,1722
318
315
  toolkit/workspace/precompiled/reset.mpy,sha256=D-ZwUk-oR8OAg5ERWJXErdPAGbx_3M13hK4IBawhIg0,217
319
316
  toolkit/workspace/precompiled/urequests.mpy,sha256=tG4ttpfHPkyNk5vvbXDHKZm8zYPNEw1NYE0Ltnrjca8,2516
@@ -334,44 +331,43 @@ toolkit/workspace/precompiled/modules/LM_OV2640.mpy,sha256=1uZhEZuY8WlLO3c6MWc9n
334
331
  toolkit/workspace/precompiled/modules/LM_VL53L0X.py,sha256=dqK7yP9Qgc-OzRJBAX3-26N_cwoMGlpG7oBcc7faPoM,10122
335
332
  toolkit/workspace/precompiled/modules/LM_aht10.mpy,sha256=ju5Xs_Krt212I6h2CSo7glZlGR3FyAPYnaJPrDuuzHM,1422
336
333
  toolkit/workspace/precompiled/modules/LM_bme280.mpy,sha256=qDxvzKhQkPaKpgXB2KZZ3D8F9nTlDiVDISof7NXxXtQ,4438
337
- toolkit/workspace/precompiled/modules/LM_buzzer.mpy,sha256=m5jzlBr9r6bRAix-F4ebc_neubx48uThRxk173P75sY,5990
338
- toolkit/workspace/precompiled/modules/LM_cct.mpy,sha256=VuGs1sTDwcYq0G62xSd8UbcnXqIVxydnmV1GQrUgskc,3907
334
+ toolkit/workspace/precompiled/modules/LM_buzzer.mpy,sha256=bRQ_V3TuzHVsCrkdkb2OoyBsYDsm7xW3r0GwoUHm0r4,5944
335
+ toolkit/workspace/precompiled/modules/LM_cct.mpy,sha256=0WlWm2v56OquSvC9NChjcXQYUg3KhkPaFOlvOYGGzlY,3836
339
336
  toolkit/workspace/precompiled/modules/LM_cluster.mpy,sha256=GjZHkj6Y-XKBAnQRkEIPmKb_xEox9j738_531E8z1og,3020
340
337
  toolkit/workspace/precompiled/modules/LM_co2.mpy,sha256=ma_cjCG8LoBMq_dt74PsrL-sn6U61a58pl_JgyxXdDM,1487
341
338
  toolkit/workspace/precompiled/modules/LM_dashboard_be.py,sha256=KVaJH37TCJkEwZJdGAVKpJtZXyVqYKDupyJO5BXvI0c,966
342
339
  toolkit/workspace/precompiled/modules/LM_dht11.mpy,sha256=esQhbgiMGiGChsTUAn1VbG9K6JHU3tQAxRKKfVMloEQ,745
343
340
  toolkit/workspace/precompiled/modules/LM_dht22.mpy,sha256=1neWPrEHqMoG3aO6ElLRneZvAFJxTevqiQR5Aq79NMw,745
344
- toolkit/workspace/precompiled/modules/LM_dimmer.mpy,sha256=QruqWLMD-cNM8FcKR_MTrbEAVHbbKTxGGe0XMA2f6RA,2443
345
- toolkit/workspace/precompiled/modules/LM_distance.mpy,sha256=QSgZbsqCZH4vhT7caj-QyIBHuzyZxFvaQmrOqOg7zDE,1514
341
+ toolkit/workspace/precompiled/modules/LM_dimmer.mpy,sha256=5e848cdQnMRYCngIvwl2dKW_QmPXE0iPkeGs1gXfKQY,2382
342
+ toolkit/workspace/precompiled/modules/LM_distance.mpy,sha256=DkMrb_EeiXk8IgWFnvNRyIp_kFE-FuTR1KfMYY40R2c,1476
346
343
  toolkit/workspace/precompiled/modules/LM_ds18.mpy,sha256=WtM_FBMcwvxjqB1EsAgfkUAWBYV7AEGKIoaXOEmifB0,652
347
344
  toolkit/workspace/precompiled/modules/LM_esp32.py,sha256=AAMceuWTWMDu_1EJH-617dmp5ClPaAzFKgDOHWEiX0I,1862
348
- toolkit/workspace/precompiled/modules/LM_espnow.py,sha256=WD3gnXMWjIYZGcwQM62T0xd9yMb9wzEfS0ZYlkqESjA,761
345
+ toolkit/workspace/precompiled/modules/LM_espnow.py,sha256=8WVKGinXL380aj6-qB2euhpwxN2y9pQcXMH-CrW7FJ0,1085
349
346
  toolkit/workspace/precompiled/modules/LM_gameOfLife.mpy,sha256=z-JxoeQ76mTOXY6c_NnKclRJ4Mny0O-b9s2XBPJfXUE,2059
350
347
  toolkit/workspace/precompiled/modules/LM_genIO.mpy,sha256=M7aYNyNB1SqmLnt9y_Q0MfSMIfewyT3Uc_MSFJpjd3Q,1730
351
348
  toolkit/workspace/precompiled/modules/LM_haptic.mpy,sha256=pNUF7OJJhq-kyiDI9ceuJp3YbB1P8Gj95DvLlZSz1aw,1284
352
349
  toolkit/workspace/precompiled/modules/LM_i2c.py,sha256=hdInP8L2gRPUQ5_8YnqEDOKf5nJ9lwyikRADYO6Em_4,1600
353
- toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy,sha256=7rOnqZrswJz0ScWaMZ5c2ABd7LYSXzKJByR4ZkTFE2E,3997
354
- toolkit/workspace/precompiled/modules/LM_keychain.mpy,sha256=hISvQVuEgTRLu_G5APgdzaMb8xMtHxyHTFvLGXAptdg,3635
350
+ toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy,sha256=6ys15rwdyLjjfwnjXqOOEdHnsHoqeap_l0qW8luvhCI,3959
351
+ toolkit/workspace/precompiled/modules/LM_keychain.mpy,sha256=VfUJDCHBo61TmT5kCMCX2zvVjr4Mn2vlymlB6V8istA,3597
355
352
  toolkit/workspace/precompiled/modules/LM_ld2410.mpy,sha256=Yost6gCTx55nQoyggmHHHoDmFDWpEK14MCsP6o70m_8,2589
356
- toolkit/workspace/precompiled/modules/LM_light_sensor.mpy,sha256=JoNgFgSe52J2c12br6tv2Sg6VL7hdM1OACP02tEE53I,1527
357
- toolkit/workspace/precompiled/modules/LM_mqtt_client.mpy,sha256=IB7Faja_N2aB9welEPvakyF7lDe1Q6HB1Thi2PVYzwE,2826
358
- toolkit/workspace/precompiled/modules/LM_neoeffects.mpy,sha256=_xNdGdT_cpIYl5zz9VyZe1p6fj-4Y01Ku8TLpJjl9XA,3079
359
- toolkit/workspace/precompiled/modules/LM_neomatrix.mpy,sha256=lp7TxCInP9E2VwZMSmIudMk0ZxYgX2LAIdC53hWMAY8,5073
360
- toolkit/workspace/precompiled/modules/LM_neopixel.mpy,sha256=7qM4z9gLGDCYxMQ4VmnGcuG3Ck5BC05AVzmG1sADXyA,3698
353
+ toolkit/workspace/precompiled/modules/LM_light_sensor.mpy,sha256=qsGHgrEA5awuQsFyF8v4ps4saS1VqmV9mEH1MtBfdlw,1430
354
+ toolkit/workspace/precompiled/modules/LM_mqtt_client.mpy,sha256=USpE4Q_8dJA3-9d-NS8sdAonZUVzgP0T1L9dhk3pDjw,2857
355
+ toolkit/workspace/precompiled/modules/LM_neoeffects.mpy,sha256=R3Ssmr3Ag-cJP5IKBsSDTSXQmxMIeo4JzvTEvcug5FU,3089
356
+ toolkit/workspace/precompiled/modules/LM_neomatrix.mpy,sha256=exJxcMKVP4xUi1ct7yj5LWFAfeIWmU12JnexmGloHM0,5071
357
+ toolkit/workspace/precompiled/modules/LM_neopixel.mpy,sha256=INhwGU1maVlk52j8_WS1t9wX22xsnpPeE0rNyZoPKlc,3637
361
358
  toolkit/workspace/precompiled/modules/LM_oled.mpy,sha256=82OqTsCgooB4y6BdMMBaDyfHYoHkq1W_UMteOmy0ePw,3162
362
359
  toolkit/workspace/precompiled/modules/LM_oled_sh1106.mpy,sha256=tOsOk5zOT9f5sw027wQyUEXRanx8IcSyuUN6tgfd73w,3769
363
- toolkit/workspace/precompiled/modules/LM_oled_ui.mpy,sha256=KEbp8UCDKMJbYy4h0U8ITLWH2l9UgRgrtJHxqMDXleE,7034
364
- toolkit/workspace/precompiled/modules/LM_oledui.mpy,sha256=F7UEuoYYhwae7_7CYiAKv_Lk5nYLupUVhzNNJMLAhsU,11549
360
+ toolkit/workspace/precompiled/modules/LM_oled_ui.mpy,sha256=JRd-1h_rk8_-r7BuXW18d7abJHgr8zv56Kjd4dJ-Ass,7044
361
+ toolkit/workspace/precompiled/modules/LM_oledui.mpy,sha256=vf3dnKokNmOlE4e_z1J6gMV1bfOuWmJ3quGzQWgP0UY,11488
365
362
  toolkit/workspace/precompiled/modules/LM_pacman.mpy,sha256=m7S4Gi3fAihwxpfzCaSkTDPyIzmqp4hf6KroBo5ucPw,3946
366
- toolkit/workspace/precompiled/modules/LM_pet_feeder.py,sha256=ILrozpnq2_ckkVDUROysMWRksKjflsKpIHvgHdvn-JA,2572
367
- toolkit/workspace/precompiled/modules/LM_presence.mpy,sha256=1ZRzBCmDqwAYhVp4Ww_bcPj2bp5LLsP8l7jNBtOSpUk,2744
363
+ toolkit/workspace/precompiled/modules/LM_presence.mpy,sha256=dYdKcSMimZBHNJakSgfwe0wjqXBPALyNfZC6TrHlK0U,2706
368
364
  toolkit/workspace/precompiled/modules/LM_qmi8658.py,sha256=4OOAUo7NV7G1Rx01l8LK-wGw19GDaAukDjH6vvxt7ds,6303
369
365
  toolkit/workspace/precompiled/modules/LM_rencoder.py,sha256=9w00JP8UKC_GEKr18xgZ5axX9xc_wVeR9XlWpVR2Qzw,3973
370
- toolkit/workspace/precompiled/modules/LM_rest.mpy,sha256=5dOZ5OYJc7UuKzP3kh02ufR7u0m78T-2onyG5pDl5gQ,1044
371
- toolkit/workspace/precompiled/modules/LM_rgb.mpy,sha256=-pa8IljxHIHsxLxtabgz_LMCBCJf2MOoyTUwd-gOND4,3490
366
+ toolkit/workspace/precompiled/modules/LM_rest.mpy,sha256=mRA5YcMgC9gXcOfzfMC0LHwgXO0ni94_Xi9C_y6fX5I,998
367
+ toolkit/workspace/precompiled/modules/LM_rgb.mpy,sha256=adtk1vfNoEC1MuLxmsi9Fax9P6Xq52Q-1XE8Kftfbd8,3429
372
368
  toolkit/workspace/precompiled/modules/LM_rgbcct.mpy,sha256=WGWd6x7r8LEte1tSQkVT_zEnN2_Z5P8CVdUmZ3t0jog,632
373
- toolkit/workspace/precompiled/modules/LM_roboarm.mpy,sha256=gPovssDrCTRp5mAaEb_DFspbstxSuUarzzDqd1qfI3g,3273
374
- toolkit/workspace/precompiled/modules/LM_robustness.py,sha256=h-53vRxH36Savos4Lmbk0CNQlGC1ozEE5bZ3t2C7JYs,3815
369
+ toolkit/workspace/precompiled/modules/LM_roboarm.mpy,sha256=9FTdso0-8gx1SZ-C7ewx8rMTKeBoqtH32bZKmAimK9A,3242
370
+ toolkit/workspace/precompiled/modules/LM_robustness.py,sha256=09h-sE10J4PriNB6VK3b544cPMrQbiTqIvpB7mS-lYM,3760
375
371
  toolkit/workspace/precompiled/modules/LM_rp2w.py,sha256=vdN-gxc38-WI4XK6MMz3FBPYmLdUSjEyB6JuKR_slbM,391
376
372
  toolkit/workspace/precompiled/modules/LM_sdcard.py,sha256=y7pB35Xqb0EporESZ6_wHTUe8ez_R2ud_mwdh-wC-30,1030
377
373
  toolkit/workspace/precompiled/modules/LM_servo.mpy,sha256=xVK5jhO_5ABHHr_pvZRUXmJKMx1QO5idUJzbLhXrZG4,1152
@@ -379,8 +375,8 @@ toolkit/workspace/precompiled/modules/LM_sound_event.mpy,sha256=HhHnSYPTzd4hHjUK
379
375
  toolkit/workspace/precompiled/modules/LM_stepper.mpy,sha256=7FJuw86m5AnjPoiD089l90MvXFcpH7sJL8prhrcyjB0,1474
380
376
  toolkit/workspace/precompiled/modules/LM_switch.mpy,sha256=zQCsYkulOQ-vRmlAFjGGThOo2X9FQh6P9-En8t31zy0,2302
381
377
  toolkit/workspace/precompiled/modules/LM_system.mpy,sha256=DIL5FxfWKAn7gjMK5Wcn7t9IyNLQWhI8qREV-8e6R_o,2824
382
- toolkit/workspace/precompiled/modules/LM_tcs3472.py,sha256=rl_-4IE6f5BYTN52xY93yZJMI_PZwq9AVK2fzi_t7c0,1829
383
- toolkit/workspace/precompiled/modules/LM_telegram.mpy,sha256=yufAtrSVCfUXGCRhliLeT8YWjzkZLmPoUctH_gkUs6o,5148
378
+ toolkit/workspace/precompiled/modules/LM_tcs3472.py,sha256=Kvkpxigv-9zgfy2_jUqKJzZgMBZxOXqQf4QBU9McndY,5459
379
+ toolkit/workspace/precompiled/modules/LM_telegram.mpy,sha256=AfMdTPpG_J7XnL8mWFP-BvIzD6qbMfHKYGOSNN9EK4w,5116
384
380
  toolkit/workspace/precompiled/modules/LM_tinyrgb.mpy,sha256=ggoQ1nT8GJzA96GZovfuzWderEpOwO_aklDGm2O3WcU,1024
385
381
  toolkit/workspace/precompiled/modules/LM_trackball.mpy,sha256=gRdSB3DX1wIFsDqMxLfvBEKy9Xr-otGqx97NvkwHYFI,3479
386
382
  toolkit/workspace/precompiled/modules/LM_veml7700.mpy,sha256=X_2O0XnGtEZgSrXHpZc7uOEAdpMZug7tm4RJ-n-mqbM,1961
@@ -392,7 +388,7 @@ toolkit/workspace/precompiled/web/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN
392
388
  toolkit/workspace/precompiled/web/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
393
389
  toolkit/workspace/precompiled/web/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
394
390
  toolkit/workspace/precompiled/web/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
395
- microsdevtoolkit-2.17.2.dist-info/METADATA,sha256=F9depELdXOy3V_MZ4DHfJuQHLf5AYIZ3su8QFyKdnNg,55554
396
- microsdevtoolkit-2.17.2.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
397
- microsdevtoolkit-2.17.2.dist-info/top_level.txt,sha256=rOGOIXqLBdGZAoDTiLdZ9B_leFB7bMv7YabLwuIc2bc,25
398
- microsdevtoolkit-2.17.2.dist-info/RECORD,,
391
+ microsdevtoolkit-2.20.0.dist-info/METADATA,sha256=RozLFA-_nXNRhi9y_plpL6s0ZKpPu0nlDfwzDdBR6jQ,50711
392
+ microsdevtoolkit-2.20.0.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
393
+ microsdevtoolkit-2.20.0.dist-info/top_level.txt,sha256=rOGOIXqLBdGZAoDTiLdZ9B_leFB7bMv7YabLwuIc2bc,25
394
+ microsdevtoolkit-2.20.0.dist-info/RECORD,,
toolkit/Gateway.py CHANGED
@@ -211,7 +211,7 @@ class ListDevices(Resource):
211
211
 
212
212
  def sort_devices(self):
213
213
  device_struct = socketClient.ConnectionData.list_devices()
214
- online_devices = socketClient.ConnectionData.nodes_status()
214
+ online_devices = socketClient.ConnectionData.nodes_status(feature_stat=False)
215
215
  filtered_devices = {"online": {}, "offline": {}}
216
216
  for uid, data in device_struct.items():
217
217
  if data[0] in online_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)
@@ -412,6 +414,10 @@ def check_intercon(host=None):
412
414
  except Exception as e:
413
415
  print(f"WARNING: cannot parse output as dir: {e}")
414
416
  data_dict = {'tag': None, 'verdict': f'{data}: {str(e)}'}
417
+ # Handle new syntax: {"taskID": "verdict"}
418
+ if data[0] and data_dict.get("tag") is None:
419
+ _ttag = list(data_dict.keys())[0]
420
+ data_dict = {'tag': _ttag, 'verdict': f'{list(data_dict.values())[0]}: task show {_ttag}'}
415
421
  return data[0], data_dict
416
422
 
417
423
  def _get_intercon_output(tag):
@@ -426,51 +432,51 @@ def check_intercon(host=None):
426
432
  break
427
433
  return _state, _output
428
434
 
429
- def run_intercon_hello(tout):
435
+ def run_intercon_hello(tout=8):
430
436
  nonlocal host
431
437
  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
438
+ _output = CLIENT.execute(cmd_list, tout=tout)
439
+ return _output
440
440
 
441
441
  info_msg = '[ST] Check device-device connectivity'
442
442
  print(info_msg)
443
443
  host = 'test.local' if host is None else host
444
- new_intercon, output = run_intercon_hello(tout=8)
444
+ output = run_intercon_hello(tout=8)
445
445
  output = _convert_return_to_dict(output)
446
+
446
447
  device_was_found = False
447
448
  if output[0] is False or output[1] is None:
448
449
  output = 'Device was not found: {}:{}'.format(host, output)
449
450
  return False, output
450
- elif output[1] == '[]':
451
+ if output[1] == '[]':
451
452
  # Valid input, device was not found
452
453
  output = 'Device was not found: {}:{}'.format(host, output)
453
454
  state = True, f'{info_msg}:\n\t\t{output}'
454
455
  elif len(output[1]) > 1 and "hello" in output[1]['verdict']:
455
456
  response_state, response = _get_intercon_output(output[1]['tag'])
456
457
  # Valid input on online device
457
- output = "Device was found: {}:{} version: {}".format(host, f"{output}: {response}", "NEW" if new_intercon else "LEGACY")
458
- state = True & response_state, f'{info_msg}:\n\t\t{output}'
458
+ output = "Device was found: {}:{}".format(host, f"{output}: {response}")
459
+ state = response_state, f'{info_msg}:\n\t\t{output}'
459
460
  device_was_found = True
460
461
  else:
461
- state = False, output
462
+ state = False, f" InterCon Failed: {output}"
462
463
 
463
464
  if device_was_found:
464
465
  # DO Negative testing as well
465
466
  host = "notavailable.local"
466
- _, output_neg = run_intercon_hello(tout=20)
467
+ output_neg = run_intercon_hello(tout=20)
468
+ if output_neg[0] and output_neg[1] == '':
469
+ # NO HOST TIMEOUT ...
470
+ output_neg = f'Device was not found (dhcp timeout): {host}:{output_neg}: {output_neg[1]}'
471
+ return True & state[0], f"{state[1]}\n\t\tNegative test: {output_neg}"
472
+ # Valid return on negative testing
467
473
  output_neg = _convert_return_to_dict(output_neg)
468
- state_neg = False, output_neg
474
+ state_neg = False, f"Negative test failed: {output_neg}"
469
475
  if len(output_neg[1]) > 1 and "hello" in output_neg[1]['verdict']:
470
476
  response_state, response = _get_intercon_output(output_neg[1]['tag'])
471
477
  output_neg = f'Device was not found: {host}":{output_neg}: {response}'
472
- state_neg = True & response_state, output_neg
473
- return state[0] & state_neg[0], "{}\n\t\tNegative test: {}".format(state[1], state_neg[1])
478
+ state_neg = response_state, output_neg
479
+ return state[0] & state_neg[0], f"{state[1]}\n\t\tNegative test: {state_neg[1]}"
474
480
  return state
475
481
 
476
482
 
@@ -666,6 +672,7 @@ def app(devfid=None, pwd=None):
666
672
  'clean-reboot': after_st_reboot()
667
673
  }
668
674
 
675
+
669
676
  # Test Evaluation
670
677
  final_state = True
671
678
  ok_cnt = 0
@@ -6,17 +6,12 @@ import os
6
6
  import threading
7
7
  import subprocess
8
8
  import time
9
- from PyQt5.QtWidgets import QPushButton
10
- import PyQt5.QtCore as QtCore
11
- from PyQt5.QtCore import pyqtSlot
12
- from PyQt5.QtWidgets import *
13
- from PyQt5.QtGui import QIcon
14
- from PyQt5.QtGui import QTextCursor
15
- from PyQt5.QtWidgets import QApplication, QPlainTextEdit
16
- from PyQt5.QtCore import QThread, pyqtSignal
17
- from PyQt5.QtGui import QFont
18
- from PyQt5 import QtGui
19
- from PyQt5.QtGui import QPixmap
9
+
10
+ from PyQt5.QtWidgets import (QApplication, QPlainTextEdit, QPushButton, QProgressBar, QComboBox, QLabel, QCheckBox,
11
+ QLineEdit, QMessageBox, QWidget, QToolTip)
12
+ from PyQt5.QtCore import pyqtSlot, QThread, QSize, pyqtSignal
13
+ from PyQt5.QtGui import QIcon, QTextCursor, QFont, QPixmap
14
+
20
15
  import concurrent.futures
21
16
 
22
17
  MYPATH = os.path.dirname(__file__)
@@ -454,7 +449,7 @@ class HeaderInfo:
454
449
  logo_path = os.path.join(MYPATH, '../media/logo_mini.png')
455
450
  button = QPushButton('', self.parent_obj)
456
451
  button.setIcon(QIcon(logo_path))
457
- button.setIconSize(QtCore.QSize(50, 50))
452
+ button.setIconSize(QSize(50, 50))
458
453
  button.setGeometry(20, 5, 50, 50)
459
454
  button.setToolTip(f"Open micrOS repo documentation\n{self.url}")
460
455
  button.setStyleSheet('border: 0px solid black;')
@@ -1219,7 +1214,7 @@ class micrOSGUI(QWidget):
1219
1214
 
1220
1215
  def main():
1221
1216
  app = QApplication(sys.argv)
1222
- app.setWindowIcon(QtGui.QIcon(os.path.join(MYPATH, '../media/logo.png')))
1217
+ app.setWindowIcon(QIcon(os.path.join(MYPATH, '../media/logo.png')))
1223
1218
  ex = micrOSGUI()
1224
1219
  ex.draw()
1225
1220
  sys.exit(app.exec_())
toolkit/socketClient.py CHANGED
@@ -185,8 +185,8 @@ class ConnectionData:
185
185
  return None, None, None, None
186
186
 
187
187
  @staticmethod
188
- def nodes_status():
189
- spr_offset1 = 30
188
+ def nodes_status(feature_stat=True):
189
+ spr_offset1 = 25
190
190
  spr_offset2 = 57
191
191
 
192
192
  def _dev_status(ip, port, fuid, uid):
@@ -199,6 +199,10 @@ class ConnectionData:
199
199
  Colors.WARN, Colors.NC)
200
200
  version_data = '<n/a>'
201
201
  elapsed_time = 'n/a'
202
+ webui_state = 'n/a'
203
+ espnow_state = 'n/a'
204
+ cron_state = 'n/a'
205
+ timirq_state = 'n/a'
202
206
  online_ip = None
203
207
 
204
208
  # is online
@@ -206,9 +210,17 @@ class ConnectionData:
206
210
  # get version data
207
211
  online_ip = ip
208
212
  try:
213
+ connection = SocketDictClient(host=ip, port=port, silent_mode=True, tout=3)
214
+ # Get version and elapsed time data
209
215
  start_comm = time.time()
210
- version_data = SocketDictClient(host=ip, port=port, silent_mode=True, tout=3).non_interactive(['version'])
216
+ version_data = connection.non_interactive(['version'])
211
217
  elapsed_time = "{:.3f}".format(time.time() - start_comm)
218
+ if feature_stat:
219
+ # Get active features info
220
+ webui_state = connection.non_interactive(['conf', 'webui'])
221
+ espnow_state = connection.non_interactive(['conf', 'espnow'])
222
+ cron_state = connection.non_interactive(['conf', 'cron'])
223
+ timirq_state = connection.non_interactive(['conf', 'timirq'])
212
224
  except Exception as e:
213
225
  print(f"Getting device version {fuid}:{uid} error: {e}")
214
226
 
@@ -216,14 +228,22 @@ class ConnectionData:
216
228
  base_info = "{uid}{spr1}{fuid}".format(uid=uid, spr1=spacer1, fuid=fuid)
217
229
  spacer1 = " " * (spr_offset2 - len(base_info))
218
230
  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}"
231
+ feature_info = ""
232
+ if feature_stat:
233
+ _on_str = f"{Colors.OKGREEN}{Colors.BOLD}ON {Colors.NC}"
234
+ _off_str = f"{Colors.BOLD}OFF{Colors.NC}"
235
+ _fspacer = " "*6
236
+ bool2str = lambda x: _on_str if x.strip() == "True" else _off_str if x != "n/a" else x
237
+ feature_info = f"\t\t{bool2str(webui_state)}{_fspacer}{bool2str(espnow_state)}{_fspacer}{bool2str(cron_state)}{_fspacer}{bool2str(timirq_state)}"
238
+ data_line_str = f"{base_info}{spacer1}{ip}\t{is_online}\t\t{version_data}{spacer2}{elapsed_time}{feature_info}"
220
239
  return data_line_str, online_ip
221
240
  return None
222
241
 
223
242
  nodes_dict = ConnectionData.read_micrOS_device_cache()
224
- spacer1 = " " * (spr_offset1 - 14)
225
- print("{cols} [ UID ]{spr1}[ FUID ]\t\t[ IP ]\t\t[ STATUS ]\t[ VERSION ]\t[COMM SEC]{cole}"
226
- .format(spr1=spacer1, cols=Colors.OKBLUE + Colors.BOLD, cole=Colors.NC))
243
+ spacer1 = " " * (spr_offset1 - 8)
244
+ feature_header_str = "\t[WEBUI | ESPNOW | CRON | TIMIRQ]" if feature_stat else ""
245
+ print("{cols}[ UID ]{spr1}[ FUID ]\t\t[ IP ]\t\t[ STATUS ]\t[ VERSION ]\t[COMM SEC]{features}{cole}"
246
+ .format(spr1=spacer1, cols=Colors.OKBLUE + Colors.BOLD, features=feature_header_str, cole=Colors.NC))
227
247
 
228
248
  # Start parallel status queries
229
249
  query_list = []
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file