micrOSDevToolKit 2.19.0__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 (52) hide show
  1. micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +21 -25
  2. micrOS/source/Common.py +5 -13
  3. micrOS/source/Espnow.py +3 -6
  4. micrOS/source/InterConnect.py +1 -2
  5. micrOS/source/Shell.py +1 -1
  6. micrOS/source/Tasks.py +55 -53
  7. micrOS/source/modules/LM_buzzer.py +1 -4
  8. micrOS/source/modules/LM_cct.py +2 -4
  9. micrOS/source/modules/LM_dimmer.py +1 -2
  10. micrOS/source/modules/LM_distance.py +1 -3
  11. micrOS/source/modules/LM_i2s_mic.py +1 -2
  12. micrOS/source/modules/LM_keychain.py +1 -2
  13. micrOS/source/modules/LM_light_sensor.py +1 -4
  14. micrOS/source/modules/LM_mqtt_client.py +13 -10
  15. micrOS/source/modules/LM_neopixel.py +1 -2
  16. micrOS/source/modules/LM_oledui.py +2 -4
  17. micrOS/source/modules/LM_presence.py +1 -2
  18. micrOS/source/modules/LM_rest.py +1 -2
  19. micrOS/source/modules/LM_rgb.py +1 -2
  20. micrOS/source/modules/LM_roboarm.py +3 -4
  21. micrOS/source/modules/LM_robustness.py +1 -2
  22. micrOS/source/modules/LM_telegram.py +1 -2
  23. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.20.0.dist-info}/METADATA +149 -213
  24. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.20.0.dist-info}/RECORD +50 -52
  25. toolkit/dashboard_apps/SystemTest.py +17 -14
  26. toolkit/workspace/precompiled/Common.mpy +0 -0
  27. toolkit/workspace/precompiled/Espnow.mpy +0 -0
  28. toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  29. toolkit/workspace/precompiled/Shell.mpy +0 -0
  30. toolkit/workspace/precompiled/Tasks.mpy +0 -0
  31. toolkit/workspace/precompiled/modules/LM_buzzer.mpy +0 -0
  32. toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
  33. toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
  34. toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
  35. toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
  36. toolkit/workspace/precompiled/modules/LM_keychain.mpy +0 -0
  37. toolkit/workspace/precompiled/modules/LM_light_sensor.mpy +0 -0
  38. toolkit/workspace/precompiled/modules/LM_mqtt_client.mpy +0 -0
  39. toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
  40. toolkit/workspace/precompiled/modules/LM_oledui.mpy +0 -0
  41. toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
  42. toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
  43. toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
  44. toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
  45. toolkit/workspace/precompiled/modules/LM_robustness.py +1 -2
  46. toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
  47. micrOS/source/modules/LM_pet_feeder.py +0 -78
  48. toolkit/workspace/precompiled/modules/LM_pet_feeder.py +0 -78
  49. {microsdevtoolkit-2.19.0.data → microsdevtoolkit-2.20.0.data}/scripts/devToolKit.py +0 -0
  50. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.20.0.dist-info}/WHEEL +0 -0
  51. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.20.0.dist-info}/licenses/LICENSE +0 -0
  52. {microsdevtoolkit-2.19.0.dist-info → microsdevtoolkit-2.20.0.dist-info}/top_level.txt +0 -0
@@ -213,8 +213,7 @@ def motion_trig(sample_ms=15, buff_size=10):
213
213
 
214
214
  # [3] Start mic sampling in async task
215
215
  # [!] ASYNC TASK CREATION [1*] with async task callback + taskID (TAG) handling
216
- state = micro_task(tag=Data.TASK_TAG, task=__task(ms_period=sample_ms, buff_size=buff_size))
217
- return "Starting" if state else "Already running"
216
+ return micro_task(tag=Data.TASK_TAG, task=__task(ms_period=sample_ms, buff_size=buff_size))
218
217
 
219
218
 
220
219
  def subscribe_intercon(on, off):
@@ -66,8 +66,7 @@ def aurl(subdomain):
66
66
  tag = "rest." + subdomain.replace("http://", '').replace("https://", '')
67
67
  if len(tag) > 50:
68
68
  tag = tag[0:50]
69
- state = micro_task(tag=tag, task=__task(subdomain, tag))
70
- return f"Starting" if state else f"Already running"
69
+ return micro_task(tag=tag, task=__task(subdomain, tag))
71
70
 
72
71
 
73
72
  def help(widgets=False):
@@ -246,8 +246,7 @@ def transition(r=None, g=None, b=None, sec=1.0, wake=False):
246
246
  # Create transition generator and calculate step_ms
247
247
  rgb_gen, step_ms = transition_gen(r_from, r, g_from, g, b_from, b, interval_sec=sec)
248
248
  # [!] ASYNC TASK CREATION [1*] with async task callback + taskID (TAG) handling
249
- state = micro_task(tag=Data.RGB_TASK_TAG, task=_task(ms_period=step_ms, iterable=rgb_gen))
250
- return "Starting transition" if state else "Transition already running"
249
+ return micro_task(tag=Data.RGB_TASK_TAG, task=_task(ms_period=step_ms, iterable=rgb_gen))
251
250
 
252
251
 
253
252
  def random(smooth=True, max_val=1000):
@@ -204,11 +204,10 @@ def play(*args, s=None, delay=None, deinit=True):
204
204
 
205
205
  # Start play - servo XY in async task
206
206
  # [!] ASYNC TASK CREATION [1*] with async task callback + taskID (TAG) handling
207
- state = micro_task(tag=RoboArm.PLAY_TAG, task=_play(args, deinit, delay))
208
- if state:
209
- return 'Play: {} steps'.format(int(len(args)/2))
210
- return 'Play - already running'
211
207
 
208
+ state:dict = micro_task(tag=RoboArm.PLAY_TAG, task=_play(args, deinit, delay))
209
+ state.update({"Play steps": int(len(args)/2)})
210
+ return state
212
211
 
213
212
  def record(clean=False, rec_limit=8):
214
213
  """
@@ -83,8 +83,7 @@ def create_task():
83
83
  """
84
84
  # [!] ASYNC TASK CREATION [1*] with async task callback + taskID (TAG) handling
85
85
  task_tag = "microtask.run"
86
- state = micro_task(tag=task_tag, task=__task(tag=task_tag, period_ms=5))
87
- return "Starting" if state else "Already running"
86
+ return micro_task(tag=task_tag, task=__task(tag=task_tag, period_ms=5))
88
87
 
89
88
 
90
89
  @micro_task("microtask", _wrap=True)
@@ -362,8 +362,7 @@ def receiver_loop(period=3):
362
362
  if Telegram.INSTANCE is None:
363
363
  return "Network unavailable."
364
364
  tag = 'telegram.server_bot'
365
- state = micro_task(tag=tag, task=Telegram.server_bot(tag=tag, period=period))
366
- return {tag: "Starting"} if state else {tag: "Already running"}
365
+ return micro_task(tag=tag, task=Telegram.server_bot(tag=tag, period=period))
367
366
 
368
367
 
369
368
  def help(widgets=False):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 2.19.0
3
+ Version: 2.20.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,9 +497,11 @@ 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) [TODO]
500
501
  - (3) New intercon syntax - command level integration: [DONE]
501
502
  - rgb toggle >>RingLight.local
502
503
  - similar as (obsolete): intercon sendcmd host="RingLight.local" cmd="rgb toggle"
504
+ - espnow integration into `rgb toggle >>RingLight.local` syntax (when available on target)
503
505
  - (4) Create multi level project structure (curret is flat fs) [DONE]
504
506
  - New micrOS FS structure:
505
507
  - Automatic dir creation at bootup: '/logs', '/web', '/data', '/config', '/modules'
@@ -536,30 +538,63 @@ Version **3.0.0-0** `micrOS-Autonomous`
536
538
  - IO_* (approx.: 5)
537
539
 
538
540
 
539
- - (5) [TODO] Proper mip installer support (/modules or /lib or /web)
540
- - Note: Autonomous package management over wifi (github)
541
+ - (5) [DONE] Universal task creation response: `{taskID: verdict}`
542
+
543
+ - (6) [TODO] Proper mip installer support (/modules or /lib or /web)
544
+ - Note: Autonomous package management over wifi (github)
541
545
  - pacman download [POC][DONE][TODO]
542
546
  - pacman ls [DONE]
543
547
  - pacman dirtree [DONE]
544
548
  - pacman ...
549
+
550
+ - (7) [TODO] /config/requirements.txt handling
551
+ - pacman requirements install/remove/list
545
552
  ```
546
553
 
547
- Version **3.1.0-0** `micrOS-SecurePower`
554
+ Version **3.1.0-0** `micrOS-Waterbear`
548
555
 
549
556
  ```
550
557
  Core:
551
- - Async socket servers with SSL/TLS integration (with auth.)
552
- - WebCli (https?), ShellCli (ssocket/sterminal) and InterCon
553
- - Low power mode with ESPNOW + (AP mode?)
558
+ - Low power mode (wake on event, hibernate command)?
554
559
  - Remote controller / Sensor UseCase
555
- - --- client mode (fyi: normally micrOS operates in server mode)
560
+ ```
561
+
562
+
563
+ Version **3.X.0-0** `micrOS-SecurePower`
564
+
565
+ ```
566
+ Core:
567
+ - Async socket servers with SSL/TLS integration (with auth.)
568
+ - ShellCli (with TLS) and InterCon adaptation (default port: 9008, new secure port 9009)
569
+ - WebCli (https) and webUI adaptation
556
570
  - Intercon-Wire (?)
557
571
  - Idea of wired message communication protocol same as Intercon-Shell/Intercon-ESPNow
558
572
  - Possible HW protocols: i2c / onewire / uart BUT it should support bidirectional message transfers
559
- - Goal: CoProcessor easy integration feature - Arduino env support
573
+ - Goal: CoProcessor easy integration feature - Arduino env support
574
+ - Application deployment automation: /config/compose.json
575
+ - enables application deployment: configuration (node_config.json), requirements handling
576
+ - Automatic behaviour in core system if file exists in STA mode
577
+
578
+ Application registry???
579
+ - Applications repository as module registry, structure:
580
+ - micrOSApps repository:
581
+ - engineer:
582
+ - apps.txt (name and short description pairs)
583
+ - app1
584
+ - descriptor.json (targets: /modules, /lib, /web)
585
+ - app.py
586
+ - foo.py
587
+ - bar.html
588
+ - app2
589
+ - descriptor.json
590
+ - app.py
591
+ - engineer2:
592
+ - apps.txt (name and short description pairs)
593
+ - app1
594
+ - descriptor.json (targets: /modules, /lib, /web)
595
+ - app.py
560
596
  ```
561
597
 
562
-
563
598
  <a id="release-note"></a>
564
599
  ## Release notes
565
600
 
@@ -870,212 +905,113 @@ Bye!
870
905
 
871
906
  ## Project structure
872
907
 
873
- ### micrOS resources library
874
-
875
- #### micrOS Core
876
-
877
- ```
878
- Core micrOS resources
879
- 1 154 Time.py (mlint: True) (pylint: 9.17) (ref.: 6)
880
- 2 104 micrOSloader.py (mlint: True) (pylint: 7.59) (ref.: 1)
881
- 3 50 Hooks.py (mlint: True) (pylint: 9.68) (ref.: 1)
882
- 4 418 Server.py (mlint: True) (pylint: 9.29) (ref.: 4)
883
- 5 454 Tasks.py (mlint: True) (pylint: 9.71) (ref.: 13)
884
- 6 185 Config.py (mlint: True) (pylint: 9.44) (ref.: 13)
885
- 7 9 reset.py (mlint: True) (pylint: 8.75) (ref.: 0)
886
- 8 225 Shell.py (mlint: True) (pylint: 9.61) (ref.: 1)
887
- 9 179 Notify.py (mlint: True) (pylint: 9.55) (ref.: 2)
888
- 10 77 Types.py (mlint: True) (pylint: 9.69) (ref.: 11)
889
- 11 157 Common.py (mlint: True) (pylint: 9.1) (ref.: 24)
890
- 12 153 InterConnect.py (mlint: True) (pylint: 9.4) (ref.: 1)
891
- 13 177 Debug.py (mlint: True) (pylint: 8.72) (ref.: 22)
892
- 14 164 Network.py (mlint: True) (pylint: 9.71) (ref.: 10)
893
- 15 183 Scheduler.py (mlint: True) (pylint: 9.61) (ref.: 1)
894
- 16 113 microIO.py (mlint: True) (pylint: 9.08) (ref.: 38)
895
- 17 49 micrOS.py (mlint: True) (pylint: 9.3) (ref.: 1)
896
- 18 113 Interrupts.py (mlint: True) (pylint: 9.05) (ref.: 2)
897
- 19 15 main.py (mlint: True) (pylint: 8.89) (ref.: 0)
898
- 20 117 urequests.py (mlint: True) (pylint: 8.9) (ref.: 4)
899
-
900
- SUM CODE LINES (WITH COMMENTS, WITHOUT EMPTY LINES): 3096
901
- ```
902
-
903
- #### micrOS Load Modules
904
-
905
908
  ```
906
- micrOS Load Module resources
907
- 1 231 LM_roboarm.py (mlint: True) (pylint: 9.11) (ref.: 0)
908
- 2 122 LM_stepper.py (mlint: True) (pylint: 8.9) (ref.: 1)
909
- 3 118 LM_genIO.py (mlint: True) (pylint: 7.26) (ref.: 1)
910
- 4 498 LM_oled_ui.py (mlint: False) (pylint: 8.83) (ref.: 0)
911
- 5 190 LM_system.py (mlint: True) (pylint: 7.57) (ref.: 3)
912
- 6 63 LM_robustness.py (mlint: True) (pylint: 7.5) (ref.: 0)
913
- 7 115 LM_co2.py (mlint: True) (pylint: 8.42) (ref.: 3)
914
- 8 34 LM_rest.py (mlint: False) (pylint: 7.0) (ref.: 0)
915
- 9 266 LM_oled.py (mlint: True) (pylint: 9.23) (ref.: 3)
916
- 10 72 LM_tinyrgb.py (mlint: True) (pylint: 7.95) (ref.: 0)
917
- 11 96 LM_aht10.py (mlint: True) (pylint: 8.73) (ref.: 0)
918
- 12 293 LM_bme280.py (mlint: True) (pylint: 8.03) (ref.: 0)
919
- 13 37 LM_ph_sensor.py (mlint: True) (pylint: 5.79) (ref.: 0)
920
- 14 241 LM_buzzer.py (mlint: True) (pylint: 8.83) (ref.: 0)
921
- 15 199 LM_switch.py (mlint: True) (pylint: 8.56) (ref.: 2)
922
- 16 113 LM_servo.py (mlint: True) (pylint: 7.73) (ref.: 4)
923
- 17 53 LM_rgbcct.py (mlint: True) (pylint: 8.62) (ref.: 0)
924
- 18 284 LM_oled_sh1106.py (mlint: True) (pylint: 8.79) (ref.: 1)
925
- 19 150 LM_ld2410.py (mlint: True) (pylint: 9.07) (ref.: 0)
926
- 20 273 LM_neopixel.py (mlint: True) (pylint: 7.59) (ref.: 2)
927
- 21 274 LM_cct.py (mlint: True) (pylint: 8.83) (ref.: 1)
928
- 22 38 LM_L9110_DCmotor.py (mlint: True) (pylint: 7.69) (ref.: 0)
929
- 23 256 LM_neoeffects.py (mlint: True) (pylint: 6.91) (ref.: 0)
930
- 24 30 LM_i2c.py (mlint: True) (pylint: 5.71) (ref.: 0)
931
- 25 69 LM_dht22.py (mlint: True) (pylint: 8.0) (ref.: 0)
932
- 26 59 LM_L298N_DCmotor.py (mlint: True) (pylint: 8.78) (ref.: 0)
933
- 27 37 LM_esp32.py (mlint: True) (pylint: 4.38) (ref.: 0)
934
- 28 56 LM_pet_feeder.py (mlint: True) (pylint: 7.88) (ref.: 0)
935
- 29 82 LM_rencoder.py (mlint: True) (pylint: 8.92) (ref.: 0)
936
- 30 247 LM_keychain.py (mlint: False) (pylint: 9.14) (ref.: 0)
937
- 31 69 LM_dht11.py (mlint: True) (pylint: 8.0) (ref.: 0)
938
- 32 74 LM_telegram.py (mlint: False) (pylint: 8.94) (ref.: 0)
939
- 33 177 LM_OV2640.py (mlint: False) (pylint: 9.06) (ref.: 0)
940
- 34 249 LM_rgb.py (mlint: True) (pylint: 8.66) (ref.: 1)
941
- 35 62 LM_distance.py (mlint: True) (pylint: 8.14) (ref.: 0)
942
- 36 313 LM_VL53L0X.py (mlint: True) (pylint: 9.07) (ref.: 0)
943
- 37 107 LM_light_sensor.py (mlint: True) (pylint: 8.94) (ref.: 0)
944
- 38 12 LM_rp2w.py (mlint: True) (pylint: 4.44) (ref.: 0)
945
- 39 190 LM_presence.py (mlint: True) (pylint: 8.75) (ref.: 4)
946
- 40 29 LM_dashboard_be.py (mlint: True) (pylint: 6.5) (ref.: 0)
947
- 41 170 LM_dimmer.py (mlint: True) (pylint: 8.22) (ref.: 0)
948
- 42 66 LM_demo.py (mlint: False) (pylint: 8.21) (ref.: 0)
949
- 43 105 LM_lmpacman.py (mlint: True) (pylint: 8.38) (ref.: 0)
950
- 44 176 LM_gameOfLife.py (mlint: True) (pylint: 9.29) (ref.: 2)
951
- 45 58 LM_catgame.py (mlint: True) (pylint: 8.46) (ref.: 0)
952
- 46 43 LM_ds18.py (mlint: True) (pylint: 5.0) (ref.: 2)
953
- 47 250 LM_i2s_mic.py (mlint: False) (pylint: 8.71) (ref.: 1)
954
- 48 34 LM_sdcard.py (mlint: True) (pylint: 7.88) (ref.: 0)
955
-
956
- SUM CODE LINES (WITH COMMENTS, WITHOUT EMPTY LINES): 6822
909
+ ./micrOS/source
910
+ ├── Common.py
911
+ ├── Config.py
912
+ ├── Debug.py
913
+ ├── Espnow.py
914
+ ├── Files.py
915
+ ├── Hooks.py
916
+ ├── InterConnect.py
917
+ ├── Interrupts.py
918
+ ├── Logger.py
919
+ ├── Network.py
920
+ ├── Notify.py
921
+ ├── Scheduler.py
922
+ ├── Server.py
923
+ ├── Shell.py
924
+ ├── Tasks.py
925
+ ├── Time.py
926
+ ├── Types.py
927
+ ├── Web.py
928
+ ├── main.py
929
+ ├── micrOS.py
930
+ ├── micrOSloader.py
931
+ ├── reset.py
932
+ ├── urequests.py
933
+ ├── microIO.py
934
+ ├── config
935
+ │   └── _git.keep
936
+ ├── modules
937
+ │   ├── IO_esp32.py
938
+ │   ├── IO_esp32c3.py
939
+ │   ├── IO_esp32c6.py
940
+ │   ├── IO_esp32s2.py
941
+ │   ├── IO_esp32s3.py
942
+ │   ├── IO_m5stamp.py
943
+ │   ├── IO_qtpy.py
944
+ │   ├── IO_rp2.py
945
+ │   ├── IO_s3matrix.py
946
+ │   ├── IO_tinypico.py
947
+ │   ├── LM_L298N.py
948
+ │   ├── LM_L9110_DCmotor.py
949
+ │   ├── LM_OV2640.py
950
+ │   ├── LM_VL53L0X.py
951
+ │   ├── LM_aht10.py
952
+ │   ├── LM_bme280.py
953
+ │   ├── LM_buzzer.py
954
+ │   ├── LM_cct.py
955
+ │   ├── LM_cluster.py
956
+ │   ├── LM_co2.py
957
+ │   ├── LM_dashboard_be.py
958
+ │   ├── LM_dht11.py
959
+ │   ├── LM_dht22.py
960
+ │   ├── LM_dimmer.py
961
+ │   ├── LM_distance.py
962
+ │   ├── LM_ds18.py
963
+ │   ├── LM_esp32.py
964
+ │   ├── LM_espnow.py
965
+ │   ├── LM_gameOfLife.py
966
+ │   ├── LM_genIO.py
967
+ │   ├── LM_haptic.py
968
+ │   ├── LM_i2c.py
969
+ │   ├── LM_i2s_mic.py
970
+ │   ├── LM_keychain.py
971
+ │   ├── LM_ld2410.py
972
+ │   ├── LM_light_sensor.py
973
+ │   ├── LM_mqtt_client.py
974
+ │   ├── LM_neoeffects.py
975
+ │   ├── LM_neomatrix.py
976
+ │   ├── LM_neopixel.py
977
+ │   ├── LM_oled.py
978
+ │   ├── LM_oled_sh1106.py
979
+ │   ├── LM_oled_ui.py
980
+ │   ├── LM_oledui.py
981
+ │   ├── LM_pacman.py
982
+ │   ├── LM_presence.py
983
+ │   ├── LM_qmi8658.py
984
+ │   ├── LM_rencoder.py
985
+ │   ├── LM_rest.py
986
+ │   ├── LM_rgb.py
987
+ │   ├── LM_rgbcct.py
988
+ │   ├── LM_roboarm.py
989
+ │   ├── LM_robustness.py
990
+ │   ├── LM_rp2w.py
991
+ │   ├── LM_sdcard.py
992
+ │   ├── LM_servo.py
993
+ │   ├── LM_sound_event.py
994
+ │   ├── LM_stepper.py
995
+ │   ├── LM_switch.py
996
+ │   ├── LM_system.py
997
+ │   ├── LM_tcs3472.py
998
+ │   ├── LM_telegram.py
999
+ │   ├── LM_tinyrgb.py
1000
+ │   ├── LM_trackball.py
1001
+ │   └── LM_veml7700.py
1002
+ └── web
1003
+ ├── dashboard.html
1004
+ ├── index.html
1005
+ ├── matrix_draw.html
1006
+ ├── uapi.js
1007
+ ├── udashboard.js
1008
+ ├── ustyle.css
1009
+ ├── uwidgets.js
1010
+ └── uwidgets_pro.js
1011
+
1012
+ 4 directories, 98 files
957
1013
  ```
958
1014
 
959
- > LM (Load Modules) - Application logic - accessable over socket server as a command
960
-
961
- ### micrOS devToolkit resources
962
-
963
- #### DevToolKit Dashboard apps
964
-
965
- > You can easly copy the `Template_app.py`, and create a new socket based app.
966
- [Template_app.py](https://github.com/BxNxM/micrOS/blob/master/toolkit/dashboard_apps/Template_app.py)
967
-
968
- ```
969
- micrOS/toolkit/dashboard_apps
970
- │   ├── AirQualityBME280_app.py
971
- │   ├── AirQualityDHT22_CO2_app.py
972
- │   ├── AnalogCCT_app.py
973
- │   ├── AnalogRGB_app.py
974
- │   ├── CatGame_app.py
975
- │   ├── Dimmer_app.py
976
- │   ├── GetVersion_app.py
977
- │   ├── GetVersion_app.pyc
978
- │   ├── NeopixelTest_app.py
979
- │   ├── RoboArm_app.py
980
- │   ├── SysCheck_app.py
981
- │   ├── Template_app.py
982
- ```
983
-
984
- #### Stored connection data and default node configs
985
-
986
- ```
987
- micrOS/toolkit/user_data
988
- │   ├── device_conn_cache.json <- connection cache
989
- │   └── node_config_archive
990
- │   ├── BigRGB-node_config.json
991
- │   ├── Chillight-node_config.json
992
- │   ├── Kapcsolo230-node_config.json
993
- │   ├── LampController-node_config.json
994
- │   ├── MeasureNode-node_config.json
995
- │   ├── MrGreen-node_config.json
996
- │   ├── RingLamp-node_config.json
997
- │   └── test-node_config.json
998
- ```
999
-
1000
- #### Virtaulenv for development and stored USB-Serial drivers
1001
-
1002
- ```
1003
- micrOS/env/
1004
- ├── __init__.py
1005
- ├── driver_cp210x
1006
- │   ├── CP210x_Universal_Windows_Driver
1007
- │   └── macOS_VCP_Driver
1008
- ├── requirements.txt
1009
- └── venv
1010
- ├── bin
1011
- ├── include
1012
- ├── lib
1013
- └── pyvenv.cfg
1014
- ```
1015
-
1016
- #### Precompiled resources for easy install
1017
-
1018
- ```
1019
- micrOS/toolkit/workspace/precompiled
1020
- │   ├── BgJob.mpy
1021
- │   ├── Common.mpy
1022
- │   ├── ConfigHandler.mpy
1023
- │   ├── Debug.mpy
1024
- │   ├── Hooks.mpy
1025
- │   ├── InterConnect.mpy
1026
- │   ├── InterpreterCore.mpy
1027
- │   ├── InterpreterShell.mpy
1028
- │   ├── InterruptHandler.mpy
1029
- │   ├── LM_L298N_DCmotor.mpy
1030
- │   ├── LM_L9110_DCmotor.py
1031
- │   ├── LM_VL53L0X.py
1032
- │   ├── LM_bme280.mpy
1033
- │   ├── LM_buzzer.mpy
1034
- │   ├── LM_catgame.py
1035
- │   ├── LM_cct.mpy
1036
- │   ├── LM_co2.mpy
1037
- │   ├── LM_dht11.mpy
1038
- │   ├── LM_dht22.mpy
1039
- │   ├── LM_dimmer.mpy
1040
- │   ├── LM_distance_HCSR04.py
1041
- │   ├── LM_ds18.mpy
1042
- │   ├── LM_esp32.py
1043
- │   ├── LM_genIO.mpy
1044
- │   ├── LM_i2c.py
1045
- │   ├── LM_light_sensor.mpy
1046
- │   ├── LM_neoeffects.mpy
1047
- │   ├── LM_neopixel.mpy
1048
- │   ├── LM_oled.mpy
1049
- │   ├── LM_oled_ui.mpy
1050
- │   ├── LM_pet_feeder.py
1051
- │   ├── LM_ph_sensor.py
1052
- │   ├── LM_rgb.mpy
1053
- │   ├── LM_roboarm.mpy
1054
- │   ├── LM_robustness.py
1055
- │   ├── LM_servo.mpy
1056
- │   ├── LM_stepper.mpy
1057
- │   ├── LM_switch.mpy
1058
- │   ├── LM_system.mpy
1059
- │   ├── LM_tinyrgb.mpy
1060
- │   ├── IO_esp32.mpy
1061
- │   ├── IO_tinypico.mpy
1062
- │   ├── LogicalPins.mpy
1063
- │   ├── Network.mpy
1064
- │   ├── Scheduler.mpy
1065
- │   ├── SocketServer.mpy
1066
- │   ├── Time.mpy
1067
- │   ├── TinyPLed.mpy
1068
- │   ├── boot.py
1069
- │   ├── micrOS.mpy
1070
- │   ├── micrOSloader.mpy
1071
- │   └── reset.mpy
1072
- ```
1073
-
1074
- > Note: From the `micrOS/source/` by default the LMs are not compiling, to extend complied LM list add LM explicitly to the following file:
1075
-
1076
- ```
1077
- micrOs/toolkit/LM_to_compile.dat
1078
- ```
1079
1015
 
1080
1016
  ----------------------------------------
1081
1017