micrOSDevToolKit 2.9.1__py3-none-any.whl → 2.26.1__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.
Files changed (368) hide show
  1. env/driver_cp210x/macOS_VCP_Driver/SiLabsUSBDriverDisk.dmg +0 -0
  2. env/driver_cp210x/macOS_VCP_Driver/macOS_VCP_Driver_Release_Notes.txt +17 -1
  3. micrOS/micropython/esp32-20251209-v1.27.0.bin +0 -0
  4. micrOS/micropython/esp32c3-20251209-v1.27.0.bin +0 -0
  5. micrOS/micropython/esp32c6-20251209-v1.27.0.bin +0 -0
  6. micrOS/micropython/esp32s2-20251209-v1.27.0.bin +0 -0
  7. micrOS/micropython/esp32s2-LOLIN_MINI-20251209-v1.27.0.bin +0 -0
  8. micrOS/micropython/{esp32s3-20241129-v1.24.1.bin → esp32s3-4MBflash-20241129-v1.24.1.bin} +0 -0
  9. micrOS/micropython/esp32s3-8MBflash-20251209-v1.27.0.bin +0 -0
  10. micrOS/micropython/esp32s3_spiram_oct-20251209-v1.27.0.bin +0 -0
  11. micrOS/micropython/rpi-pico-w-20251209-v1.27.0.uf2 +0 -0
  12. micrOS/micropython/tinypico-20251209-v1.27.0.bin +0 -0
  13. micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +167 -163
  14. micrOS/source/Auth.py +37 -0
  15. micrOS/source/Common.py +361 -116
  16. micrOS/source/Config.py +32 -22
  17. micrOS/source/Debug.py +50 -94
  18. micrOS/source/Espnow.py +377 -100
  19. micrOS/source/Files.py +207 -0
  20. micrOS/source/Hooks.py +48 -20
  21. micrOS/source/InterConnect.py +126 -42
  22. micrOS/source/Interrupts.py +6 -6
  23. micrOS/source/Logger.py +63 -26
  24. micrOS/source/Network.py +41 -21
  25. micrOS/source/Notify.py +48 -22
  26. micrOS/source/Pacman.py +326 -0
  27. micrOS/source/Scheduler.py +14 -54
  28. micrOS/source/Server.py +67 -69
  29. micrOS/source/Shell.py +99 -91
  30. micrOS/source/Tasks.py +141 -95
  31. micrOS/source/Time.py +19 -18
  32. micrOS/source/Types.py +53 -9
  33. micrOS/source/Web.py +381 -76
  34. micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
  35. micrOS/source/__pycache__/Debug.cpython-312.pyc +0 -0
  36. micrOS/source/__pycache__/Files.cpython-312.pyc +0 -0
  37. micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
  38. micrOS/source/__pycache__/Scheduler.cpython-312.pyc +0 -0
  39. micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
  40. micrOS/source/__pycache__/Shell.cpython-312.pyc +0 -0
  41. micrOS/source/__pycache__/replhelper.cpython-312.pyc +0 -0
  42. micrOS/source/config/_git.keep +0 -0
  43. micrOS/source/helpers.py +132 -0
  44. micrOS/source/micrOS.py +17 -7
  45. micrOS/source/micrOSloader.py +5 -12
  46. micrOS/source/microIO.py +44 -20
  47. micrOS/source/modules/IO_esp32c6.py +38 -0
  48. micrOS/source/{IO_esp32s3.py → modules/IO_esp32s3.py} +37 -1
  49. micrOS/source/{IO_m5stamp.py → modules/IO_m5stamp.py} +35 -1
  50. micrOS/source/{IO_qtpy.py → modules/IO_qtpy.py} +22 -17
  51. micrOS/source/{IO_tinypico.py → modules/IO_tinypico.py} +38 -0
  52. micrOS/source/modules/LM_L298N.py +161 -0
  53. {toolkit/workspace/precompiled → micrOS/source/modules}/LM_L9110_DCmotor.py +3 -3
  54. micrOS/source/{LM_OV2640.py → modules/LM_OV2640.py} +45 -27
  55. micrOS/source/{LM_VL53L0X.py → modules/LM_VL53L0X.py} +3 -3
  56. micrOS/source/{LM_aht10.py → modules/LM_aht10.py} +2 -2
  57. micrOS/source/{LM_bme280.py → modules/LM_bme280.py} +3 -3
  58. micrOS/source/{LM_buzzer.py → modules/LM_buzzer.py} +18 -25
  59. micrOS/source/{LM_cct.py → modules/LM_cct.py} +17 -21
  60. micrOS/source/modules/LM_cluster.py +255 -0
  61. micrOS/source/{LM_co2.py → modules/LM_co2.py} +3 -3
  62. micrOS/source/{LM_dht11.py → modules/LM_dht11.py} +2 -2
  63. micrOS/source/{LM_dht22.py → modules/LM_dht22.py} +2 -2
  64. micrOS/source/{LM_dimmer.py → modules/LM_dimmer.py} +9 -9
  65. micrOS/source/{LM_distance.py → modules/LM_distance.py} +4 -6
  66. micrOS/source/{LM_ds18.py → modules/LM_ds18.py} +2 -2
  67. micrOS/source/{LM_esp32.py → modules/LM_esp32.py} +5 -0
  68. micrOS/source/modules/LM_espnow.py +53 -0
  69. micrOS/source/modules/LM_fileserver.py +265 -0
  70. micrOS/source/{LM_genIO.py → modules/LM_genIO.py} +52 -37
  71. micrOS/source/{LM_haptic.py → modules/LM_haptic.py} +2 -2
  72. {toolkit/workspace/precompiled → micrOS/source/modules}/LM_i2c.py +5 -4
  73. micrOS/source/{LM_i2s_mic.py → modules/LM_i2s_mic.py} +6 -7
  74. micrOS/source/{LM_ld2410.py → modules/LM_ld2410.py} +2 -2
  75. micrOS/source/{LM_light_sensor.py → modules/LM_light_sensor.py} +10 -21
  76. micrOS/source/modules/LM_mh_z19c.py +198 -0
  77. micrOS/source/modules/LM_neoeffects.py +284 -0
  78. micrOS/source/{LM_neopixel.py → modules/LM_neopixel.py} +19 -23
  79. micrOS/source/{LM_oled.py → modules/LM_oled.py} +2 -2
  80. micrOS/source/{LM_oled_sh1106.py → modules/LM_oled_sh1106.py} +3 -3
  81. micrOS/source/{LM_oled_ui.py → modules/LM_oled_ui.py} +72 -64
  82. micrOS/source/modules/LM_pacman.py +320 -0
  83. micrOS/source/{LM_presence.py → modules/LM_presence.py} +11 -15
  84. micrOS/source/modules/LM_qmi8658.py +204 -0
  85. micrOS/source/{LM_rencoder.py → modules/LM_rencoder.py} +2 -2
  86. micrOS/source/{LM_rest.py → modules/LM_rest.py} +4 -6
  87. micrOS/source/{LM_rgb.py → modules/LM_rgb.py} +21 -29
  88. micrOS/source/{LM_roboarm.py → modules/LM_roboarm.py} +8 -8
  89. micrOS/source/modules/LM_robustness.py +137 -0
  90. micrOS/source/{LM_servo.py → modules/LM_servo.py} +3 -3
  91. micrOS/source/{LM_stepper.py → modules/LM_stepper.py} +5 -5
  92. micrOS/source/{LM_switch.py → modules/LM_switch.py} +11 -9
  93. micrOS/source/{LM_system.py → modules/LM_system.py} +38 -32
  94. micrOS/source/modules/LM_tcs3472.py +187 -0
  95. micrOS/source/{LM_telegram.py → modules/LM_telegram.py} +164 -116
  96. micrOS/source/{LM_trackball.py → modules/LM_trackball.py} +3 -3
  97. micrOS/source/{LM_veml7700.py → modules/LM_veml7700.py} +2 -2
  98. micrOS/source/modules/LM_web.py +38 -0
  99. micrOS/source/urequests.py +39 -15
  100. {toolkit/workspace/precompiled → micrOS/source/web}/dashboard.html +4 -0
  101. micrOS/source/web/editor.js +440 -0
  102. micrOS/source/web/filesui.html +178 -0
  103. micrOS/source/web/filesui.js +338 -0
  104. {toolkit/workspace/precompiled → micrOS/source/web}/index.html +44 -2
  105. micrOS/source/{uapi.js → web/uapi.js} +48 -7
  106. micrOS/source/{ustyle.css → web/ustyle.css} +6 -3
  107. micrOS/utests/__init__.py +0 -0
  108. micrOS/utests/test_scheduler.py +435 -0
  109. {micrOSDevToolKit-2.9.1.data → microsdevtoolkit-2.26.1.data}/scripts/devToolKit.py +33 -3
  110. {micrOSDevToolKit-2.9.1.dist-info → microsdevtoolkit-2.26.1.dist-info}/METADATA +327 -268
  111. microsdevtoolkit-2.26.1.dist-info/RECORD +396 -0
  112. {micrOSDevToolKit-2.9.1.dist-info → microsdevtoolkit-2.26.1.dist-info}/WHEEL +1 -1
  113. toolkit/DevEnvCompile.py +63 -33
  114. toolkit/DevEnvOTA.py +58 -22
  115. toolkit/DevEnvUSB.py +110 -55
  116. toolkit/Gateway.py +6 -6
  117. toolkit/LM_to_compile.dat +6 -4
  118. toolkit/MicrOSDevEnv.py +127 -57
  119. toolkit/WebRepl.py +73 -0
  120. toolkit/dashboard_apps/BackupRestore.py +20 -35
  121. toolkit/dashboard_apps/CCTDemo.py +12 -17
  122. toolkit/dashboard_apps/CCTTest.py +20 -24
  123. toolkit/dashboard_apps/CamStream.py +2 -6
  124. toolkit/dashboard_apps/CatGame.py +14 -16
  125. toolkit/dashboard_apps/Dimmer.py +11 -21
  126. toolkit/dashboard_apps/GetVersion.py +11 -19
  127. toolkit/dashboard_apps/MicrophoneTest.py +1 -6
  128. toolkit/dashboard_apps/NeoEffectsDemo.py +22 -35
  129. toolkit/dashboard_apps/NeopixelTest.py +20 -25
  130. toolkit/dashboard_apps/PresenceTest.py +2 -8
  131. toolkit/dashboard_apps/QMI8685_GYRO.py +68 -0
  132. toolkit/dashboard_apps/RGBTest.py +20 -24
  133. toolkit/dashboard_apps/RoboArm.py +24 -32
  134. toolkit/dashboard_apps/SED_test.py +10 -14
  135. toolkit/dashboard_apps/SensorsTest.py +61 -0
  136. toolkit/dashboard_apps/SystemTest.py +202 -105
  137. toolkit/dashboard_apps/Template_app.py +11 -23
  138. toolkit/dashboard_apps/_app_base.py +34 -0
  139. toolkit/dashboard_apps/_gyro_visualizer.py +78 -0
  140. toolkit/dashboard_apps/uLightDemo.py +15 -24
  141. toolkit/index.html +4 -4
  142. toolkit/lib/LocalMachine.py +6 -1
  143. toolkit/lib/MicrosFiles.py +46 -0
  144. toolkit/lib/Repository.py +64 -0
  145. toolkit/lib/TerminalColors.py +4 -0
  146. toolkit/lib/macroScript.py +6 -0
  147. toolkit/lib/micrOSClient.py +123 -50
  148. toolkit/lib/micrOSClientHistory.py +156 -0
  149. toolkit/lib/pip_package_installer.py +5 -2
  150. toolkit/micrOSdashboard.py +12 -17
  151. toolkit/micrOSlint.py +20 -8
  152. toolkit/simulator_lib/__pycache__/IO_darwin.cpython-312.pyc +0 -0
  153. toolkit/simulator_lib/__pycache__/aioespnow.cpython-312.pyc +0 -0
  154. toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc +0 -0
  155. toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
  156. toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc +0 -0
  157. toolkit/simulator_lib/__pycache__/mip.cpython-312.pyc +0 -0
  158. toolkit/simulator_lib/__pycache__/neopixel.cpython-312.pyc +0 -0
  159. toolkit/simulator_lib/__pycache__/network.cpython-312.pyc +0 -0
  160. toolkit/simulator_lib/__pycache__/sim_common.cpython-312.pyc +0 -0
  161. toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc +0 -0
  162. toolkit/simulator_lib/__pycache__/simulator.cpython-312.pyc +0 -0
  163. toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc +0 -0
  164. toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
  165. toolkit/simulator_lib/__pycache__/urandom.cpython-312.pyc +0 -0
  166. toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc +0 -0
  167. toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc +0 -0
  168. toolkit/simulator_lib/aioespnow.py +28 -0
  169. toolkit/simulator_lib/dht.py +1 -1
  170. toolkit/simulator_lib/framebuf.py +49 -1
  171. toolkit/simulator_lib/machine.py +17 -2
  172. toolkit/simulator_lib/micropython.py +3 -3
  173. toolkit/simulator_lib/mip.py +165 -0
  174. toolkit/simulator_lib/neopixel.py +3 -2
  175. toolkit/simulator_lib/network.py +2 -1
  176. toolkit/simulator_lib/node_config.json +2 -3
  177. toolkit/simulator_lib/ntptime.py +1 -1
  178. toolkit/simulator_lib/{sim_console.py → sim_common.py} +2 -3
  179. toolkit/simulator_lib/simgc.py +6 -2
  180. toolkit/simulator_lib/simulator.py +137 -59
  181. toolkit/simulator_lib/uasyncio.py +33 -2
  182. toolkit/simulator_lib/uos.py +147 -0
  183. toolkit/simulator_lib/urandom.py +4 -0
  184. toolkit/socketClient.py +43 -23
  185. toolkit/user_data/webhooks/generic.py +1 -1
  186. toolkit/user_data/webhooks/macro.py +1 -1
  187. toolkit/user_data/webhooks/template.py +1 -1
  188. toolkit/workspace/precompiled/Auth.mpy +0 -0
  189. toolkit/workspace/precompiled/Common.mpy +0 -0
  190. toolkit/workspace/precompiled/Config.mpy +0 -0
  191. toolkit/workspace/precompiled/Debug.mpy +0 -0
  192. toolkit/workspace/precompiled/Espnow.mpy +0 -0
  193. toolkit/workspace/precompiled/Files.mpy +0 -0
  194. toolkit/workspace/precompiled/Hooks.mpy +0 -0
  195. toolkit/workspace/precompiled/InterConnect.mpy +0 -0
  196. toolkit/workspace/precompiled/Interrupts.mpy +0 -0
  197. toolkit/workspace/precompiled/Logger.mpy +0 -0
  198. toolkit/workspace/precompiled/Network.mpy +0 -0
  199. toolkit/workspace/precompiled/Notify.mpy +0 -0
  200. toolkit/workspace/precompiled/Pacman.mpy +0 -0
  201. toolkit/workspace/precompiled/Scheduler.mpy +0 -0
  202. toolkit/workspace/precompiled/Server.mpy +0 -0
  203. toolkit/workspace/precompiled/Shell.mpy +0 -0
  204. toolkit/workspace/precompiled/Tasks.mpy +0 -0
  205. toolkit/workspace/precompiled/Time.mpy +0 -0
  206. toolkit/workspace/precompiled/Types.mpy +0 -0
  207. toolkit/workspace/precompiled/Web.mpy +0 -0
  208. toolkit/workspace/precompiled/_mpy.version +1 -1
  209. toolkit/workspace/precompiled/config/_git.keep +0 -0
  210. toolkit/workspace/precompiled/helpers.mpy +0 -0
  211. toolkit/workspace/precompiled/micrOS.mpy +0 -0
  212. toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  213. toolkit/workspace/precompiled/microIO.mpy +0 -0
  214. toolkit/workspace/precompiled/{IO_esp32.mpy → modules/IO_esp32.mpy} +0 -0
  215. toolkit/workspace/precompiled/{IO_esp32c3.mpy → modules/IO_esp32c3.mpy} +0 -0
  216. toolkit/workspace/precompiled/modules/IO_esp32c6.mpy +0 -0
  217. toolkit/workspace/precompiled/{IO_esp32s2.mpy → modules/IO_esp32s2.mpy} +0 -0
  218. toolkit/workspace/precompiled/modules/IO_esp32s3.mpy +0 -0
  219. toolkit/workspace/precompiled/modules/IO_m5stamp.mpy +0 -0
  220. toolkit/workspace/precompiled/modules/IO_qtpy.mpy +0 -0
  221. toolkit/workspace/precompiled/modules/IO_rp2.mpy +0 -0
  222. toolkit/workspace/precompiled/modules/IO_tinypico.mpy +0 -0
  223. toolkit/workspace/precompiled/modules/LM_L298N.mpy +0 -0
  224. {micrOS/source → toolkit/workspace/precompiled/modules}/LM_L9110_DCmotor.py +3 -3
  225. toolkit/workspace/precompiled/modules/LM_OV2640.mpy +0 -0
  226. toolkit/workspace/precompiled/{LM_VL53L0X.py → modules/LM_VL53L0X.py} +3 -3
  227. toolkit/workspace/precompiled/{LM_aht10.mpy → modules/LM_aht10.mpy} +0 -0
  228. toolkit/workspace/precompiled/{LM_bme280.mpy → modules/LM_bme280.mpy} +0 -0
  229. toolkit/workspace/precompiled/{LM_buzzer.mpy → modules/LM_buzzer.mpy} +0 -0
  230. toolkit/workspace/precompiled/modules/LM_cct.mpy +0 -0
  231. toolkit/workspace/precompiled/modules/LM_cluster.mpy +0 -0
  232. toolkit/workspace/precompiled/{LM_co2.mpy → modules/LM_co2.mpy} +0 -0
  233. toolkit/workspace/precompiled/{LM_dht11.mpy → modules/LM_dht11.mpy} +0 -0
  234. toolkit/workspace/precompiled/{LM_dht22.mpy → modules/LM_dht22.mpy} +0 -0
  235. toolkit/workspace/precompiled/modules/LM_dimmer.mpy +0 -0
  236. toolkit/workspace/precompiled/modules/LM_distance.mpy +0 -0
  237. toolkit/workspace/precompiled/{LM_ds18.mpy → modules/LM_ds18.mpy} +0 -0
  238. toolkit/workspace/precompiled/{LM_esp32.py → modules/LM_esp32.py} +5 -0
  239. toolkit/workspace/precompiled/modules/LM_espnow.py +53 -0
  240. toolkit/workspace/precompiled/modules/LM_fileserver.mpy +0 -0
  241. toolkit/workspace/precompiled/{LM_gameOfLife.mpy → modules/LM_gameOfLife.mpy} +0 -0
  242. toolkit/workspace/precompiled/modules/LM_genIO.mpy +0 -0
  243. toolkit/workspace/precompiled/{LM_haptic.mpy → modules/LM_haptic.mpy} +0 -0
  244. {micrOS/source → toolkit/workspace/precompiled/modules}/LM_i2c.py +5 -4
  245. toolkit/workspace/precompiled/modules/LM_i2s_mic.mpy +0 -0
  246. toolkit/workspace/precompiled/{LM_ld2410.mpy → modules/LM_ld2410.mpy} +0 -0
  247. toolkit/workspace/precompiled/modules/LM_light_sensor.mpy +0 -0
  248. toolkit/workspace/precompiled/modules/LM_mh_z19c.py +198 -0
  249. toolkit/workspace/precompiled/modules/LM_neoeffects.mpy +0 -0
  250. toolkit/workspace/precompiled/modules/LM_neopixel.mpy +0 -0
  251. toolkit/workspace/precompiled/{LM_oled.mpy → modules/LM_oled.mpy} +0 -0
  252. toolkit/workspace/precompiled/{LM_oled_sh1106.mpy → modules/LM_oled_sh1106.mpy} +0 -0
  253. toolkit/workspace/precompiled/modules/LM_oled_ui.mpy +0 -0
  254. toolkit/workspace/precompiled/modules/LM_pacman.mpy +0 -0
  255. toolkit/workspace/precompiled/modules/LM_presence.mpy +0 -0
  256. toolkit/workspace/precompiled/modules/LM_qmi8658.py +204 -0
  257. toolkit/workspace/precompiled/{LM_rencoder.py → modules/LM_rencoder.py} +2 -2
  258. toolkit/workspace/precompiled/modules/LM_rest.mpy +0 -0
  259. toolkit/workspace/precompiled/modules/LM_rgb.mpy +0 -0
  260. toolkit/workspace/precompiled/{LM_rgbcct.mpy → modules/LM_rgbcct.mpy} +0 -0
  261. toolkit/workspace/precompiled/modules/LM_roboarm.mpy +0 -0
  262. toolkit/workspace/precompiled/modules/LM_robustness.py +137 -0
  263. toolkit/workspace/precompiled/{LM_servo.mpy → modules/LM_servo.mpy} +0 -0
  264. toolkit/workspace/precompiled/{LM_sound_event.mpy → modules/LM_sound_event.mpy} +0 -0
  265. toolkit/workspace/precompiled/{LM_stepper.mpy → modules/LM_stepper.mpy} +0 -0
  266. toolkit/workspace/precompiled/modules/LM_switch.mpy +0 -0
  267. toolkit/workspace/precompiled/modules/LM_system.mpy +0 -0
  268. toolkit/workspace/precompiled/modules/LM_tcs3472.py +187 -0
  269. toolkit/workspace/precompiled/modules/LM_telegram.mpy +0 -0
  270. toolkit/workspace/precompiled/{LM_tinyrgb.mpy → modules/LM_tinyrgb.mpy} +0 -0
  271. toolkit/workspace/precompiled/{LM_trackball.mpy → modules/LM_trackball.mpy} +0 -0
  272. toolkit/workspace/precompiled/{LM_veml7700.mpy → modules/LM_veml7700.mpy} +0 -0
  273. toolkit/workspace/precompiled/modules/LM_web.mpy +0 -0
  274. toolkit/workspace/precompiled/urequests.mpy +0 -0
  275. {micrOS/source → toolkit/workspace/precompiled/web}/dashboard.html +4 -0
  276. toolkit/workspace/precompiled/web/editor.js +440 -0
  277. toolkit/workspace/precompiled/web/filesui.html +178 -0
  278. toolkit/workspace/precompiled/web/filesui.js +338 -0
  279. {micrOS/source → toolkit/workspace/precompiled/web}/index.html +44 -2
  280. toolkit/workspace/precompiled/{uapi.js → web/uapi.js} +48 -7
  281. toolkit/workspace/precompiled/{ustyle.css → web/ustyle.css} +6 -3
  282. micrOS/micropython/esp32-20241129-v1.24.1.bin +0 -0
  283. micrOS/micropython/esp32c3-20240222-v1.22.2.bin +0 -0
  284. micrOS/micropython/esp32s2-20240602-v1.23.0.bin +0 -0
  285. micrOS/micropython/esp32s2-LOLIN_MINI-20220618-v1.19.1.bin +0 -0
  286. micrOS/micropython/esp32s2-LOLIN_MINI-20240602-v1.23.0.bin +0 -0
  287. micrOS/micropython/esp32s3-20240105-v1.22.1.bin +0 -0
  288. micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin +0 -0
  289. micrOS/micropython/esp32s3_spiram_oct-20241129-v1.24.1.bin +0 -0
  290. micrOS/micropython/rpi-pico-w-20241129-v1.24.1.uf2 +0 -0
  291. micrOS/micropython/tinypico-20241129-v1.24.1.bin +0 -0
  292. micrOS/source/LM_L298N_DCmotor.py +0 -86
  293. micrOS/source/LM_catgame.py +0 -75
  294. micrOS/source/LM_dashboard_be.py +0 -37
  295. micrOS/source/LM_demo.py +0 -97
  296. micrOS/source/LM_espnow.py +0 -23
  297. micrOS/source/LM_intercon.py +0 -57
  298. micrOS/source/LM_keychain.py +0 -322
  299. micrOS/source/LM_lmpacman.py +0 -126
  300. micrOS/source/LM_neoeffects.py +0 -331
  301. micrOS/source/LM_oledui.py +0 -972
  302. micrOS/source/LM_pet_feeder.py +0 -78
  303. micrOS/source/LM_ph_sensor.py +0 -51
  304. micrOS/source/LM_robustness.py +0 -74
  305. micrOS/source/reset.py +0 -11
  306. micrOSDevToolKit-2.9.1.dist-info/RECORD +0 -365
  307. toolkit/dashboard_apps/AirQualityBME280.py +0 -36
  308. toolkit/dashboard_apps/AirQualityDHT22_CO2.py +0 -36
  309. toolkit/lib/file_extensions.py +0 -16
  310. toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc +0 -0
  311. toolkit/simulator_lib/__pycache__/sim_console.cpython-38.pyc +0 -0
  312. toolkit/simulator_lib/__pycache__/sim_console.cpython-39.pyc +0 -0
  313. toolkit/workspace/precompiled/IO_esp32s3.mpy +0 -0
  314. toolkit/workspace/precompiled/IO_m5stamp.mpy +0 -0
  315. toolkit/workspace/precompiled/IO_qtpy.mpy +0 -0
  316. toolkit/workspace/precompiled/IO_rp2.mpy +0 -0
  317. toolkit/workspace/precompiled/IO_tinypico.mpy +0 -0
  318. toolkit/workspace/precompiled/LM_L298N_DCmotor.mpy +0 -0
  319. toolkit/workspace/precompiled/LM_OV2640.mpy +0 -0
  320. toolkit/workspace/precompiled/LM_catgame.py +0 -75
  321. toolkit/workspace/precompiled/LM_cct.mpy +0 -0
  322. toolkit/workspace/precompiled/LM_dashboard_be.py +0 -37
  323. toolkit/workspace/precompiled/LM_demo.py +0 -97
  324. toolkit/workspace/precompiled/LM_dimmer.mpy +0 -0
  325. toolkit/workspace/precompiled/LM_distance.mpy +0 -0
  326. toolkit/workspace/precompiled/LM_espnow.py +0 -23
  327. toolkit/workspace/precompiled/LM_genIO.mpy +0 -0
  328. toolkit/workspace/precompiled/LM_i2s_mic.mpy +0 -0
  329. toolkit/workspace/precompiled/LM_intercon.mpy +0 -0
  330. toolkit/workspace/precompiled/LM_keychain.mpy +0 -0
  331. toolkit/workspace/precompiled/LM_light_sensor.mpy +0 -0
  332. toolkit/workspace/precompiled/LM_lmpacman.mpy +0 -0
  333. toolkit/workspace/precompiled/LM_neoeffects.mpy +0 -0
  334. toolkit/workspace/precompiled/LM_neopixel.mpy +0 -0
  335. toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
  336. toolkit/workspace/precompiled/LM_oledui.mpy +0 -0
  337. toolkit/workspace/precompiled/LM_pet_feeder.py +0 -78
  338. toolkit/workspace/precompiled/LM_ph_sensor.py +0 -51
  339. toolkit/workspace/precompiled/LM_presence.mpy +0 -0
  340. toolkit/workspace/precompiled/LM_rest.mpy +0 -0
  341. toolkit/workspace/precompiled/LM_rgb.mpy +0 -0
  342. toolkit/workspace/precompiled/LM_roboarm.mpy +0 -0
  343. toolkit/workspace/precompiled/LM_robustness.py +0 -74
  344. toolkit/workspace/precompiled/LM_switch.mpy +0 -0
  345. toolkit/workspace/precompiled/LM_system.mpy +0 -0
  346. toolkit/workspace/precompiled/LM_telegram.mpy +0 -0
  347. toolkit/workspace/precompiled/node_config.json +0 -1
  348. toolkit/workspace/precompiled/reset.mpy +0 -0
  349. /micrOS/source/{IO_esp32.py → modules/IO_esp32.py} +0 -0
  350. /micrOS/source/{IO_esp32c3.py → modules/IO_esp32c3.py} +0 -0
  351. /micrOS/source/{IO_esp32s2.py → modules/IO_esp32s2.py} +0 -0
  352. /micrOS/source/{IO_rp2.py → modules/IO_rp2.py} +0 -0
  353. /micrOS/source/{LM_gameOfLife.py → modules/LM_gameOfLife.py} +0 -0
  354. /micrOS/source/{LM_rgbcct.py → modules/LM_rgbcct.py} +0 -0
  355. /micrOS/source/{LM_rp2w.py → modules/LM_rp2w.py} +0 -0
  356. /micrOS/source/{LM_sdcard.py → modules/LM_sdcard.py} +0 -0
  357. /micrOS/source/{LM_sound_event.py → modules/LM_sound_event.py} +0 -0
  358. /micrOS/source/{LM_tinyrgb.py → modules/LM_tinyrgb.py} +0 -0
  359. /micrOS/source/{udashboard.js → web/udashboard.js} +0 -0
  360. /micrOS/source/{uwidgets.js → web/uwidgets.js} +0 -0
  361. /micrOS/source/{uwidgets_pro.js → web/uwidgets_pro.js} +0 -0
  362. {micrOSDevToolKit-2.9.1.dist-info → microsdevtoolkit-2.26.1.dist-info/licenses}/LICENSE +0 -0
  363. {micrOSDevToolKit-2.9.1.dist-info → microsdevtoolkit-2.26.1.dist-info}/top_level.txt +0 -0
  364. /toolkit/workspace/precompiled/{LM_rp2w.py → modules/LM_rp2w.py} +0 -0
  365. /toolkit/workspace/precompiled/{LM_sdcard.py → modules/LM_sdcard.py} +0 -0
  366. /toolkit/workspace/precompiled/{udashboard.js → web/udashboard.js} +0 -0
  367. /toolkit/workspace/precompiled/{uwidgets.js → web/uwidgets.js} +0 -0
  368. /toolkit/workspace/precompiled/{uwidgets_pro.js → web/uwidgets_pro.js} +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 2.9.1
3
+ Version: 2.26.1
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
@@ -19,18 +19,54 @@ Requires-Dist: pylint
19
19
  Requires-Dist: pyserial
20
20
  Requires-Dist: resources
21
21
  Requires-Dist: flask
22
- Requires-Dist: flask-restful
22
+ Requires-Dist: flask_restful
23
23
  Requires-Dist: numpy
24
24
  Requires-Dist: json2html
25
25
  Requires-Dist: requests
26
26
  Requires-Dist: Flask-BasicAuth
27
27
  Requires-Dist: soundfile
28
+ Dynamic: author
29
+ Dynamic: author-email
30
+ Dynamic: description
31
+ Dynamic: description-content-type
32
+ Dynamic: home-page
33
+ Dynamic: license
34
+ Dynamic: license-file
35
+ Dynamic: project-url
36
+ Dynamic: requires-dist
37
+ Dynamic: summary
28
38
 
29
39
  # ![LOGO](./media/logo_mini.png?raw=true) micrOS
30
40
 
31
41
  > **"The mini yet powerful operating system for DIY projects."**
32
42
 
33
- ![telnet](https://img.shields.io/badge/wifi-telnet-blue) ![esp32S2](https://img.shields.io/badge/esp32-S2-olive) ![tinypico](https://img.shields.io/badge/esp32-tinypico-olive) ![esp32S3](https://img.shields.io/badge/esp32-S3-olive) ![esp32S3](https://img.shields.io/badge/esp32-S3_RAM-olive) ![PYQT](https://img.shields.io/badge/esp32-PYQT-olive) ![raspberry-pico-w](https://img.shields.io/badge/raspberry-pico_W-critical) ![espCAM-esp-s](https://img.shields.io/badge/esp32-CAM_OV2640-olive) ![esp32-c3](https://img.shields.io/badge/esp32-C3_RISCV-olive) ![OTA](https://img.shields.io/badge/ota-update-blue) ![GPIO](https://img.shields.io/badge/gpio-i2c-success) ![clock](https://img.shields.io/badge/rtc-ntp-success) ![async](https://img.shields.io/badge/async-task_manager-success) ![irq](https://img.shields.io/badge/hardware-IRQs-success) ![socket](https://img.shields.io/badge/socket-STA_or_AP-blue) ![cron](https://img.shields.io/badge/scheduling-cron-success) ![stable](https://img.shields.io/badge/stabile-master_HEAD-success) ![stable](https://img.shields.io/badge/micropython-OS-gold)<br/>
43
+ ![stable](https://img.shields.io/badge/master-HEAD-success)
44
+ ![stable](https://img.shields.io/badge/micropython-OS-gold)
45
+ ![async](https://img.shields.io/badge/async-task_manager-olive)
46
+ ![config](https://img.shields.io/badge/config-manager-olive)
47
+ ![cron](https://img.shields.io/badge/IRQs-Cron-olive)
48
+ ![events](https://img.shields.io/badge/IRQs-Events-olive)
49
+ ![web](https://img.shields.io/badge/Web-Rest-olive)
50
+ ![web](https://img.shields.io/badge/Web-UI-olive)
51
+ ![socket](https://img.shields.io/badge/Socket-Shell-olive)
52
+ ![GPIO](https://img.shields.io/badge/GPIO-I2C-olive)
53
+ ![clock](https://img.shields.io/badge/RTC-NTP-olive)
54
+ ![wifi](https://img.shields.io/badge/Wifi-STA_or_AP-blue)
55
+ ![OTA](https://img.shields.io/badge/OTA-Update-blue)
56
+ ![ic1](https://img.shields.io/badge/InterCon-socket-blue)
57
+ ![ic2](https://img.shields.io/badge/InterCon-espnow-blue)
58
+ <br/>
59
+ ![tinypico](https://img.shields.io/badge/esp32-tinypico-purple)
60
+ ![esp32S3](https://img.shields.io/badge/esp32-S3-purple)
61
+ ![esp32S3](https://img.shields.io/badge/esp32-S3_RAM-purple)
62
+ ![espCAM-esp-s](https://img.shields.io/badge/esp32-CAM_OV2640-purple)
63
+ ![esp32-c6](https://img.shields.io/badge/esp32-C6_RISCV-purple)
64
+ ![esp32-c3](https://img.shields.io/badge/esp32-C3_RISCV-purple)
65
+ ![esp32S2](https://img.shields.io/badge/esp32-S2-purple)
66
+ ![PYQT](https://img.shields.io/badge/esp32-PYQT-purple)
67
+ ![raspberry-pico-w](https://img.shields.io/badge/raspberry-pico_W-critical)
68
+ ![esp32-etc](https://img.shields.io/badge/esp32-etc.-purple)
69
+ <br/>
34
70
 
35
71
 
36
72
  Thanks for ![GitHub stars](https://img.shields.io/github/stars/BxNxM/micrOS), follow us on:
@@ -57,8 +93,8 @@ Access rest api over browser: `http://<nodename>.local`
57
93
  ----------------------------------------
58
94
  ----------------------------------------
59
95
 
60
- 📲 💻 ShellCli: Generic session-based communication API <br/>
61
- 📲 WebCli: Apple shortcuts compatible **REST API** and **http homepage** <br/>
96
+ 📲 💻 ShellCli: Generic session-based communication API (OAM Interface) <br/>
97
+ 📲 WebCli: Apple shortcuts compatible **REST API** and **HTTP Homepage** <br/>
62
98
  &nbsp;&nbsp; ✉️ Expose upython module functions - telnet **TCP/IP** and **REST API** <br/>
63
99
  ⚙️ 📝 Device initialization from user config <br/>
64
100
  🧩 Codeless end user experience via phone client <br/>
@@ -74,15 +110,17 @@ Access rest api over browser: `http://<nodename>.local`
74
110
  🚀🎈Lightweight and high performance core system that leaves you space 😎
75
111
 
76
112
  ## ◉ Shortcuts:
77
- 1. micrOS Client Application [link](https://github.com/BxNxM/micrOS/#micros-client-application)
113
+ 1. 📲 micrOS Client Application [link](https://github.com/BxNxM/micrOS/#micros-client-application)
78
114
  2. micrOS Installer [link](https://github.com/BxNxM/micrOS/#installing-micros-with-devtoolkit-esp32-and-more)
79
- 3. micrOS Tutorials [link](https://github.com/BxNxM/micrOS/#micros-video-tutorials)
115
+ 3. ▶️ micrOS Tutorials [link](https://github.com/BxNxM/micrOS/#micros-video-tutorials)
80
116
  4. micrOS System and features [link](https://github.com/BxNxM/micrOS/#micros-framework-features)
117
+ 5. 🎮 Built-in app modules: [link](https://htmlpreview.github.io/?https://github.com/BxNxM/micrOS/blob/master/micrOS/client/sfuncman/sfuncman.html)
81
118
  5. Pin mapping - GPIO [link](https://github.com/BxNxM/micrOS/#device-pinouts-for-wiring)
82
- 6. micrOS Node configuration [link](https://github.com/BxNxM/micrOS/#micros-node-configuration-parameters-with-description)
83
- 7. micrOS create custom Load Modules: [link](./APPLICATION_GUIDE.md)
84
- 8. micrOS Gateway server with Prometheus&Grafana: [link](https://github.com/BxNxM/micrOS/#micros-gateway-in-docker)
85
- 9. Release notes: [link](https://github.com/BxNxM/micrOS/#relese-note)
119
+ 6. ⚙️ micrOS Node configuration [link](https://github.com/BxNxM/micrOS/#micros-node-configuration-parameters-with-description)
120
+ 7. 🧑‍💻 micrOS create custom Load Modules: [link](./APPLICATION_GUIDE.md)
121
+ 8. 📦 micrOS Package Management: [link](https://github.com/BxNxM/micrOSPackages)
122
+ 9. micrOS Gateway server with Prometheus&Grafana: [link](https://github.com/BxNxM/micrOS/#micros-gateway-in-docker)
123
+ 10. Release notes: [release-note](https://github.com/BxNxM/micrOS/#release-note)
86
124
 
87
125
  ----------------------------------------
88
126
  ----------------------------------------
@@ -109,20 +147,18 @@ I would suggest to use micrOS GUI as a primary interface for micrOS development
109
147
 
110
148
  ## 1. Prerequisites
111
149
 
112
- ### 1.1 Install python3.9+
150
+ ### 1.1 Install python3.12+
113
151
 
114
- Link for python 3.9+ [download](https://www.python.org/downloads/release/python-390/)
152
+ Download Python 3.12+ [link](https://www.python.org/downloads/release/python-3120/)
115
153
 
116
154
  > Note: **Allow extend system path** with that python version (installation parameter) </br>
117
155
  > On **Windows**: RUN AS ADMINISTARTOR
118
156
 
119
- ### 1.2 Install git
120
-
121
- Link for git [download](https://git-scm.com/downloads)
157
+ Check Python3 version
122
158
 
123
- > Git is a distributed version control system that helps developers track changes, collaborate on code, and manage project history efficiently.
124
-
125
- It is needed to be able to download webrepl client (automatic), that is used for OverTheAir file transfers and other features.
159
+ ```bash
160
+ python3 --version
161
+ ```
126
162
 
127
163
  ----------------------------------------
128
164
 
@@ -237,26 +273,31 @@ It will install your board via USB with default settings. **Continue with micrOS
237
273
  ![MICROSARCHITECTURE](./media/micrOSArchitecture.png?raw=true)
238
274
 
239
275
  - 🕯**micrOS loader** - starts micrOS or WEBREPL(update / recovery modes)
240
- - **OTA update** - push update over wifi (webrepl automation) / monitor update and auto restart node
276
+ - **OTA update** - push update over wifi (webrepl automation: monitor update and auto restart node)
241
277
  - 📄**Config handling** - user config - **node_config.json**
242
- - ⏳**Boot phase** - preload Load Module(s)
243
- - For pinout and last state initialization - based on node_config `boothook`
278
+ - ⏳**Boot phase** - preload Load Module(s) - based on node_config
279
+ - Parameter: `boothook` Device initialization (optional), load applications (pinout and last state initialization)
280
+ - It runs **as soon as possible** in the boot sequence (before network setup)
244
281
  - Example values: `rgb load; neopixel load`
245
282
  - Comments `#` can be used: `#rgb load; neopixel load`, excellect for experimentation.
246
283
  - 📡**Network handling** - based on node_config
247
- - STA / AP network modes, `nwmd`
248
- - NTP + UTC aka clock setup
284
+ - Parameter: `nwmd` network modes: `STA` Station OR `AP` AccessPoint
285
+ - In STA mode: NTP + UTC aka clock setup
249
286
  - API: [ip-api.com](http://ip-api.com/json/?fields=lat,lon,timezone,offset)
250
287
  - Static IP configuration, `devip`
251
288
  - dhcp hostname setup, `devfid`.local
252
289
  - system `uptime` measurement
253
290
  - ⚙️**Scheduling / External events** - Interrupt callback - based on node_config
254
291
  - Time based
255
- - ⌛️simple LM task pool execution `timirq` & `timirqcbf`
256
- - `Timer(0)`
292
+ - ⌛️simple LM task pool execution on `Timer(0)`
293
+ - To enable the feature set `timirq` to `True`
294
+ - Set period in milliseconds with `timirqseq` like: `5000`
295
+ - Configure callbalcks with `timirqcbf`
296
+ - Example: `bme280 measure`, so this will measure with the sensor every 5 seconds.
257
297
  - Comments `#` can be used in `timirqcbf`
258
- - 🗓cron [time stump!LM task] pool execution `cron` & `crontasks`
259
- - `Timer(1)`
298
+ - 🗓cron [time stump!LM task] pool execution `Timer(1)`
299
+ - To enable this feature set `cron` to `True`
300
+ - Configure callbalcks with `crontasks `
260
301
  - timestamp: `WD:H:M:S!LM FUNC`, ranges: `0-6:0-23:0-59:0-59!LM FUNC`
261
302
  - example: `*:8:0:0!rgb rgb r=10 g=60 b=100; etc.`, it will set rgb color on analog rgb periphery at 8am every day.
262
303
  - `WD: 0...6` 0=Monday, 6=Sunday
@@ -292,11 +333,13 @@ It will install your board via USB with default settings. **Continue with micrOS
292
333
  - exit configuration mode:`noconf`
293
334
  - **LM** - Load Module function execution (application modules)
294
335
  - Example: `system info`
336
+ - That points to `/modules/LM_system.py` file `info()` function and calls it.
295
337
  - 🖇**microIO** pinout handling - lookuptables for each board
296
- - Predefined pinout modules for esp32, tinyPico
338
+ - Predefined pinout modules for esp32, tinyPico, etc. (files under: `modules/IO_*.py`)
297
339
  - Create your pinout based on `IO_esp32.py`, naming convencion: `IO_<name>.py`
298
340
  - To activate your custom pinout set `cstmpmap` config parameter to `<name>`
299
341
  - HINT: to get pin number you can get it by pin label, like: `system pinamp`
342
+ - HINT: with `cstmpmap` you can overwrite pin mapping as well, like: `neop:25` set neop virtual pin to pin 25 real pinout.
300
343
 
301
344
  - 🔄 **Task manager** aka **Async LM jobs**
302
345
  - Capable of execute [L]oad [M]odules in the background
@@ -308,12 +351,30 @@ It will install your board via USB with default settings. **Continue with micrOS
308
351
  - Delayed execution (ms): `system heartbeat &1000`, waits 1 sec before execution.
309
352
  - Stop task: `task kill system.heartbeat`
310
353
  - Show task live ouput: `task show system.heartbeat`
354
+ - List tasks with `task list`:
355
+
356
+ ```
357
+ TinyDevBoard $ task list
358
+ ---- micrOS top ----
359
+ #queue: 18 #load: 3%
360
+
361
+ #Active #taskID
362
+ Yes server
363
+ Yes idle
364
+ Yes telegram.server_bot
365
+ Yes espnow.server
366
+ ```
311
367
 
312
368
 
313
369
  ⌘ DevToolKit CLI feature:
314
370
 
315
371
  - Socket client python plugin - interactive - non interactive mode
316
372
 
373
+ ```bash
374
+ ./devToolKit.py --search --connect
375
+ ```
376
+
377
+
317
378
  ----------------------
318
379
 
319
380
  ### Boards and suggestions
@@ -363,14 +424,14 @@ So prefer boards with more psram 2Mb-8Mb, **minumum requirement for the full fla
363
424
 
364
425
  LogicalPin lookup tables:
365
426
 
366
- - [tinypico](./micrOS/source/IO_tinypico.py)
367
- - [esp32](./micrOS/source/IO_esp32.py)
368
- - [esp32s2](./micrOS/source/IO_esp32s2.py)
369
- - [esp32s3](./micrOS/source/IO_esp32s3.py)
370
- - [raspberryPicoW](./micrOS/source/IO_rp2.py) - reset needed after ota update (webrepl limitation)
427
+ - [tinypico](micrOS/source/modules/IO_tinypico.py)
428
+ - [esp32](micrOS/source/modules/IO_esp32.py)
429
+ - [esp32s2](micrOS/source/modules/IO_esp32s2.py)
430
+ - [esp32s3](micrOS/source/modules/IO_esp32s3.py)
431
+ - [raspberryPicoW](micrOS/source/modules/IO_rp2.py) - reset needed after ota update (webrepl limitation)
371
432
  - `IO_*.py` [etc.](./micrOS/source)
372
433
 
373
- > Note: Good idea to use costant variable for pin map declaration, check the files for more info, These files are also precompiled automatically into byte steams -> `.mpy`
434
+ > Note: Good idea to use costant variable for pin map declaration, check the files for more info, These files are also precompiled automatically into byte streams -> `.mpy`
374
435
 
375
436
  ![MicrOStinyPicopinout](./media/NodeMCUPinOutTinyPico.png?raw=true)
376
437
 
@@ -395,15 +456,16 @@ These parameters controlls micrOS core functionalities, so you can define an ent
395
456
 
396
457
  | Config keys | Default value and type | Reboot required | Description |
397
458
  | :-----------------: | :-------------------------: | :-------------: | ----------------------------------------- |
398
- | **`devfid`** | `node01` `<str>` | Yes | Device friendly "unique" ID - (1) defines AccessPoint (AP) network name and (2) in Station (STA) network mode the DHCP device name for IP address resolve also (3) this is the ShellCli prompt.
459
+ | **`devfid`** | `node01` `<str>` | No | Device friendly "unique" ID - (1) defines AccessPoint (AP) network name and (2) in Station (STA) network mode the DHCP device name for IP address resolve also (3) this is the ShellCli prompt.
399
460
  | **`staessid`** | `your_wifi_name` `<str>` | Yes | Wifi router name to connect (for STA default connection mode). You can list multiple wifi names separated with `;`
400
461
  | **`stapwd`** | `your_wifi_passwd` `<str>` | Yes | Wifi router password (for STA default connection mode). You can list multiple wifi passwords separated with `;` connected in order to `staessid` wifi names.
401
462
  | **`appwd`** | `ADmin123` `<str>` | Yes | Device system password.: Used in AP password (access point mode) + webrepl password + micrOS auth
402
463
  | **`boothook`** | `n/a` `<str>` | Yes | Add Load Module execution(s) to the boot sequence. Separator `;`. Examples: `rgb load; cct load` but you can call any load module function here if you want to run it at boot time.
403
464
  | **`webui`** | `False` `bool` | Yes | Launch http rest server on port 80 (in parallel with micrOS shell on port 9008 aka `socport`). It has 2 endpoints: / aka main page (index.html) and /rest aka rest (json) interface for load module execution. Example: `<devfid>.local` or `<devfid>.local/rest` + optional parameters: `/rgb/toggle`. **Apple shortcuts compatible**
465
+ | **`espnow`** | `False` `bool` | Yes | Enable **ESPNow communication protocol**. It starts `espnow.server` task, that can receive espnow messages and execute Load Module commands. It is an extension for **InterCon** feature example: `system heartbeat >>target.local`.
404
466
  | | |
405
467
  | **`cron`** | `False` `<bool>` | Yes | Enable timestamp based Load Module execution aka Cron scheduler (linux terminology), Timer(1) hardware interrupt enabler.
406
- | **`crontasks`** | `n/a` `<str>` | Yes | Cron scheduler input, task format: `WD:H:M:S!module function` e.g.: `1:8:0:0!system heartbeat`, task separator in case of multiple tasks: `;`. [WD:0-6, H:0-23, M:0-59, S:0-59] in case of each use: `*`. Instead `WD:H:M:S` you can use suntime tags: `sunset`, `sunrise`, optional offset: `sunset+-<minutes>`, `sunrise+-<minutes>`, example: `sunset-30!system heartbeat`. Range of days: WD can be conrete day number or range like: 0-2 means Monday to Wednesday.
468
+ | **`crontasks`** | `n/a` `<str>` | No | Cron scheduler input, task format: `WD:H:M:S!module function` e.g.: `1:8:0:0!system heartbeat`, task separator in case of multiple tasks: `;`. [WD:0-6, H:0-23, M:0-59, S:0-59] in case of each use: `*`. Instead `WD:H:M:S` you can use suntime tags: `sunset`, `sunrise`, optional offset: `sunset+-<minutes>`, `sunrise+-<minutes>`, example: `sunset-30!system heartbeat`. Range of days: WD can be conrete day number or range like: 0-2 means Monday to Wednesday.
407
469
  | | |
408
470
  | **`irq1`** | `False` `<bool>` | Yes | External event interrupt enabler - Triggers when desired signal state detected - button press happens / motion detection / etc.
409
471
  | **`irq1_cbf`** | `n/a` `<str>` | Yes | `irq1` enabled, calls the given Load Modules, e.x.: `module function optional_parameter(s)` when external trigger happens.
@@ -422,8 +484,6 @@ These parameters controlls micrOS core functionalities, so you can define an ent
422
484
  | **`timirq`** | `False` `<bool>` | Yes | Timer(0) interrupt enabler - background "subprocess" like execution, timer based infinite loop for the LoadModule execution.
423
485
  | **`timirqcbf`** | `n/a` `<str>` | Yes | if `timirq` enabled, calls the given Load Module(s), e.x.: `module function optional_parameter(s)`, task separator: `;`
424
486
  | **`timirqseq`** | `1000` `<int>` | Yes | Timer interrupt period in ms, default: `3000` ms (for `timirq` infinite loop timer value)
425
- | | |
426
- | **`telegram`** | `n/a` `str` | No | `TELEGRAM_BOT_TOKEN` to enable micrOS Notifications. **Hint**, to create bot with botfather: [click](https://blog.devgenius.io/how-to-set-up-your-telegram-bot-using-botfather-fd1896d68c02). After enabling this, send `/ping` to telegram chat for chat ID sync.
427
487
 
428
488
  ### Advanced parameter options:
429
489
 
@@ -438,7 +498,7 @@ These parameters controlls micrOS core functionalities, so you can define an ent
438
498
  | **`nwmd`** | `n/a` `<str>` | Yes | Prefered network mode - `AP` or `STA`, default is `STA`.
439
499
  | **`soctout`** | `30` `<int>` | Yes | Socket server connection timeout. If user is passive for `soctout` sec, and new connection incoming, then close passive connection. So it is time limit per connection in the `aioqueue`.
440
500
  | **`socport`** | `9008` `<int>` | Yes | Socket server service port (should not be changed due to client and API inconpatibility).
441
- | **`auth`** | `False` `<bool>` | Yes | Enables socket password authentication, password: `appwd`. Passwordless functions: `hello`, `version`, `exit`. **WARNING** OTA upade not supported in this mode (yet).
501
+ | **`auth`** | `False` `<bool>` | Yes | Enables socket password authentication, password: `appwd`. Passwordless functions: `hello`, `version`, `exit`. Plus access for loaded modules. Auth protects the configuration and new module loads.
442
502
  | | |
443
503
  | **`dbg`** | `True` `<bool>` | Yes | Debug mode - enable micrOS system printout, server info, etc. + progress LED.
444
504
  | **`hwuid`** | `n/a` `<str>` | N/A | USED BY SYSTEM (state storage) - hardware address - dev uid
@@ -483,41 +543,144 @@ Official [DockerHub](https://hub.docker.com/repository/docker/bxnxm/micros-gatew
483
543
  ----------------------------------------
484
544
 
485
545
 
486
- ## FUTURE RELEASE PLANS
546
+ ## FUTURE MAIN RELEASE PLANS
487
547
 
488
- Version **3.0.0-0**
548
+ Version **3.0.0-0** `micrOS-Autonomous`
489
549
 
490
550
  ```
491
551
  Core:
492
- - Async SSL/TLS integration (micropython 1.22+ required)
493
- - urequest module async redesign for rest clients
494
- - LM_telegram (Notify) + server (listener - chatbot)
495
- - Time (ntp location + sunset/sunrise api)
496
- - ESP-NOW (peer-to-peer communication) integration into InterCon
497
- - ??? New intercon syntax ???:
552
+ - (1) Async SSL/TLS integration (micropython 1.22+ required) [DONE]
553
+ - urequest module async redesign for rest clients [OK]
554
+ - LM_telegram (Notify) + server (listener - chatbot) [OK]
555
+ - (2) ESP-NOW (peer-to-peer communication) integration into InterCon [DONE]
556
+ - Multi command same device improvement (session ID handling) [DONE]
557
+ - (3) New intercon syntax - command level integration: [DONE]
498
558
  - rgb toggle >>RingLight.local
499
- - similar as: intercon sendcmd host="RingLight.local" cmd="rgb toggle"
559
+ - similar as (obsolete): intercon sendcmd host="RingLight.local" cmd="rgb toggle"
560
+ - espnow integration into `rgb toggle >>RingLight.local` syntax (when available on target)
561
+ - (4) Create multi level project structure (curret is flat fs) [DONE]
562
+ - New micrOS FS structure:
563
+ - Automatic dir creation at bootup: '/logs', '/web', '/data', '/config', '/modules'
564
+ - Automatic sub-dir handling /source and /precompiled
565
+ - Automatic dir creation over USB
566
+
567
+ System Core File Structure:
568
+ - [DONE] root fs (stays untouched (approx.: 24)): /
569
+ - micrOS.py (core)
570
+ - Config.py (core)
571
+ - Tasks.py (core)
572
+ - Shell.py (core)
573
+ - Web.py (core)
574
+ - Server.py (core)
575
+ - etc... (core)
576
+ - [DONE] web folder: /web
577
+ - *.html
578
+ - *.js
579
+ - *.css
580
+ - etc.
581
+ - [DONE][RUNTIME] data folder: /data
582
+ - Dynamic/Runtime (approx.: 0-8):
583
+ - *.pds (LM app cache - persistent data storage)
584
+ - *.dat (Common datalogger output)
585
+ - Or store any application data here
586
+ - [DONE][RUNTIME] logs folder: /logs
587
+ - *.log
588
+ - *.sys.log
589
+ - [DONE] config folder /config
590
+ - node_config.json (core config)
591
+ - *.key files (offloaded core config values, like: guimeta)
592
+ - [DONE] module folder /modules - (mip complient: /modules/lib)
593
+ - LM_* (approx.: 54)
594
+ - IO_* (approx.: 5)
595
+
596
+
597
+ - (5) [DONE] Universal task creation response: `{taskID: verdict}`
598
+
599
+ - (6) [DONE] Proper mip installer support (/modules or /lib or /web)
600
+ - Note: Autonomous package management over wifi (github)
601
+ - pacman install <package-url>
602
+ - pacman uninstall <package-name>
603
+ - pacman upgrade <package-name>
604
+ - pacman ls
605
+ - pacman dirtree
606
+ - (7) [DONE] /config/requirements.txt handling (native micropython requirements syntax)
607
+ - pacman install "requirements.txt"
608
+ - (8) [DONE] micrOS/packages - submodule to create individual installable applications for micrOS
609
+ - Application registry (package.json and pacman.json): https://github.com/BxNxM/micrOSPackages
610
+ - micrOS devToolKit micrOS/packages Load Module feature rendering (same as for built-in LMs)
611
+ - sfuncman.json and sfuncman.html - external packages highlight
612
+
613
+ - (9) [DONE] micropython uplift to `1.27`
614
+ - [DONE] fix micrOS USB update config restore issue
615
+
616
+ - (10) [DONE] WebEngine: Web mounts/aliases for /data and /modules
617
+ - Default web mount: /web
618
+ - Extended web mounts (if in this dict logic):
619
+ WEB_MOUNTS = {
620
+ # PATH
621
+ "$modules": "/modules",
622
+ "$data": "/data",
623
+ ...
624
+ }
625
+ - Absolute usr input path check (Files.py)
626
+ - Fileserver integration
627
+ - custom listing for /modules (without .mpy files)
628
+ - mount pathes write access handlig
629
+ - mount pathes read (+visibility) access handlig
630
+
631
+ - (11) [DONE] @Auth.sudo decorator
632
+ - Require pwd="<password>" parameter
633
+ - Two modes:
634
+ - Always require
635
+ - Require when force=True (_force_only=(True, 0))
636
+ - Apply this to:
637
+ - pacman rm
638
+ - pacman rmdir
639
+ - pacman uninstall
640
+ - pacman upgrade ... force=True
641
+ - ...
642
+
643
+ [TODO] TESTING + RELEASE `./micrOS/release_info/micrOS_ReleaseInfo`
644
+ - Create release notes (legacy: `release_3.0.0-0_note_esp32.md`)
645
+ - Introduce automatic release metrics generation...
646
+ - `system_analysis_sum.json` and `devices_system_metrics.json`
647
+
500
648
  ```
501
649
 
502
- Version **3.1.0-0**
650
+ Version **3.1.0-0** `micrOS-Waterbear`
503
651
 
504
652
  ```
505
653
  Core:
506
- - Async socket servers with SSL/TLS integration (with auth.)
507
- - WebCli (https?), ShellCli (ssocket/sterminal) and InterCon
654
+ - Low power mode (wake on event, hibernate command)?
655
+ - Remote controller / Sensor UseCase
656
+ - WebEngine additional path shering:
657
+ - web shared root (already done): /web
658
+ - optional additional pathes:
659
+ - @modules -> /modules
660
+ - @data -> /data
508
661
  ```
509
662
 
510
- Version **4.0.0-0**
663
+
664
+ Version **3.X.0-0** `micrOS-SecurePower`
511
665
 
512
666
  ```
513
667
  Core:
514
- - Network stack redesign
515
- - Network
516
- - wifi (defualt, current interfaces)
517
- - Study of BLE (Shell)
518
- - Low power mode (with BLE) and soft-sleep / deep-sleep
668
+ - Async socket servers with SSL/TLS integration (with auth.)
669
+ - ShellCli (with TLS) and InterCon adaptation (default port: 9008, new secure port 9009)
670
+ - WebCli (https) and webUI adaptation
671
+ - Intercon-Wire (?)
672
+ - Idea of wired message communication protocol same as Intercon-Shell/Intercon-ESPNow
673
+ - Possible HW protocols: i2c / onewire / uart BUT it should support bidirectional message transfers
674
+ - Goal: CoProcessor easy integration feature - Arduino env support
675
+ - Application deployment automation: /config/compose.json
676
+ - enables application deployment:
677
+ - configuration (node_config.json) handling - safe parameter injection (boothook and irqs)
678
+ - [done] requirements.txt handling
679
+ - Automatic behaviour in core system if file exists in STA mode
519
680
  ```
520
681
 
682
+ <a id="release-note"></a>
683
+ ## Release notes
521
684
 
522
685
  | VERSION (TAG) | RELEASE INFO | MICROS CORE MEMORY USAGE | SUPPORTED DEVICE(S) | APP PROFILES | Load Modules | NOTE |
523
686
  | :----------: | :----------------: | :------------------------: | :-----------------: | :------------: | :------------:| -------------- |
@@ -531,6 +694,7 @@ Version **4.0.0-0**
531
694
  | **v 1.21.0-4** | [release_Info-1.21.0-4](./micrOS/release_info/micrOS_ReleaseInfo/release_1.21.0-4_note_esp32.md) | **57.3%** 63 728 byte | esp32 (tinyPico, esp32s2, esp32s3) | [App Profiles](./micrOS/release_info/node_config_profiles/) | [LM manual](./micrOS/client/sfuncman/sfuncman_1.21.0-4.json) | Full async core system with advanced task management and device to device communication, task scheduling and much more ... with more then 30 application/pheriphery support.
532
695
  | **v 2.0.0-0** | [release_Info-2.0.0-0](./micrOS/release_info/micrOS_ReleaseInfo/release_2.0.0-0_note_esp32.md) | **45.4%** 68.7 kb | esp32 (tinyPico, esp32s2, esp32s3) | [App Profiles](./micrOS/release_info/node_config_profiles/) | [LM manual](./micrOS/client/sfuncman/sfuncman_2.0.0-0.json) | Optimizations, WebCli with web frontends, Camera support. Micropython 1.21 async maxed out :D
533
696
  | **v 2.6.0-0** | [release_Info-2.6.0-0](./micrOS/release_info/micrOS_ReleaseInfo/release_2.6.0-0_note_esp32.md) | **48.3%** 72.6 kb | esp32 (tinyPico, esp32s2, esp32s3) | [App Profiles](./micrOS/release_info/node_config_profiles/) | [LM manual](./micrOS/client/sfuncman/sfuncman_2.6.0-0.json) | WebCli http server enhancements. New webapps: dashboard. Core system official interface finalization towards Load Modules: Common.py, Types.py (frontend generation), microIO.py (pinout handling).
697
+ | **v 3.0.0-0** | [release_Info-3.0.0-0](./micrOS/release_info/micrOS_ReleaseInfo/release_3.0.0-0_note_esp32.md) | **??%** ?? kb | esp32 (tinyPico, esp32s2, esp32s3) | [App Profiles](./micrOS/release_info/node_config_profiles/) | [LM manual](./micrOS/client/sfuncman/sfuncman_3.0.0-0.json) | ... Coming soon ...
534
698
 
535
699
  ----------------------------------------
536
700
  ----------------------------------------
@@ -686,8 +850,6 @@ devToolKit.py -c -p '--dev BedLamp help'
686
850
  help
687
851
  dht22
688
852
  help
689
- intercon
690
- help
691
853
  robustness
692
854
  help
693
855
  system
@@ -817,8 +979,6 @@ BedLamp $ help
817
979
  help
818
980
  dht22
819
981
  help
820
- intercon
821
- help
822
982
  robustness
823
983
  help
824
984
  system
@@ -830,214 +990,113 @@ Bye!
830
990
 
831
991
  ## Project structure
832
992
 
833
- ### micrOS resources library
834
-
835
- #### micrOS Core
836
-
837
- ```
838
- Core micrOS resources
839
- 1 154 Time.py (mlint: True) (pylint: 9.17) (ref.: 6)
840
- 2 104 micrOSloader.py (mlint: True) (pylint: 7.59) (ref.: 1)
841
- 3 50 Hooks.py (mlint: True) (pylint: 9.68) (ref.: 1)
842
- 4 418 Server.py (mlint: True) (pylint: 9.29) (ref.: 4)
843
- 5 454 Tasks.py (mlint: True) (pylint: 9.71) (ref.: 13)
844
- 6 185 Config.py (mlint: True) (pylint: 9.44) (ref.: 13)
845
- 7 9 reset.py (mlint: True) (pylint: 8.75) (ref.: 0)
846
- 8 225 Shell.py (mlint: True) (pylint: 9.61) (ref.: 1)
847
- 9 179 Notify.py (mlint: True) (pylint: 9.55) (ref.: 2)
848
- 10 77 Types.py (mlint: True) (pylint: 9.69) (ref.: 11)
849
- 11 157 Common.py (mlint: True) (pylint: 9.1) (ref.: 24)
850
- 12 153 InterConnect.py (mlint: True) (pylint: 9.4) (ref.: 1)
851
- 13 177 Debug.py (mlint: True) (pylint: 8.72) (ref.: 22)
852
- 14 164 Network.py (mlint: True) (pylint: 9.71) (ref.: 10)
853
- 15 183 Scheduler.py (mlint: True) (pylint: 9.61) (ref.: 1)
854
- 16 113 microIO.py (mlint: True) (pylint: 9.08) (ref.: 38)
855
- 17 49 micrOS.py (mlint: True) (pylint: 9.3) (ref.: 1)
856
- 18 113 Interrupts.py (mlint: True) (pylint: 9.05) (ref.: 2)
857
- 19 15 main.py (mlint: True) (pylint: 8.89) (ref.: 0)
858
- 20 117 urequests.py (mlint: True) (pylint: 8.9) (ref.: 4)
859
-
860
- SUM CODE LINES (WITH COMMENTS, WITHOUT EMPTY LINES): 3096
861
- ```
862
-
863
- #### micrOS Load Modules
864
-
865
993
  ```
866
- micrOS Load Module resources
867
- 1 231 LM_roboarm.py (mlint: True) (pylint: 9.11) (ref.: 0)
868
- 2 122 LM_stepper.py (mlint: True) (pylint: 8.9) (ref.: 1)
869
- 3 118 LM_genIO.py (mlint: True) (pylint: 7.26) (ref.: 1)
870
- 4 498 LM_oled_ui.py (mlint: False) (pylint: 8.83) (ref.: 0)
871
- 5 190 LM_system.py (mlint: True) (pylint: 7.57) (ref.: 3)
872
- 6 63 LM_robustness.py (mlint: True) (pylint: 7.5) (ref.: 0)
873
- 7 115 LM_co2.py (mlint: True) (pylint: 8.42) (ref.: 3)
874
- 8 34 LM_rest.py (mlint: False) (pylint: 7.0) (ref.: 0)
875
- 9 266 LM_oled.py (mlint: True) (pylint: 9.23) (ref.: 3)
876
- 10 72 LM_tinyrgb.py (mlint: True) (pylint: 7.95) (ref.: 0)
877
- 11 96 LM_aht10.py (mlint: True) (pylint: 8.73) (ref.: 0)
878
- 12 293 LM_bme280.py (mlint: True) (pylint: 8.03) (ref.: 0)
879
- 13 37 LM_ph_sensor.py (mlint: True) (pylint: 5.79) (ref.: 0)
880
- 14 241 LM_buzzer.py (mlint: True) (pylint: 8.83) (ref.: 0)
881
- 15 199 LM_switch.py (mlint: True) (pylint: 8.56) (ref.: 2)
882
- 16 113 LM_servo.py (mlint: True) (pylint: 7.73) (ref.: 4)
883
- 17 53 LM_rgbcct.py (mlint: True) (pylint: 8.62) (ref.: 0)
884
- 18 284 LM_oled_sh1106.py (mlint: True) (pylint: 8.79) (ref.: 1)
885
- 19 150 LM_ld2410.py (mlint: True) (pylint: 9.07) (ref.: 0)
886
- 20 273 LM_neopixel.py (mlint: True) (pylint: 7.59) (ref.: 2)
887
- 21 274 LM_cct.py (mlint: True) (pylint: 8.83) (ref.: 1)
888
- 22 38 LM_L9110_DCmotor.py (mlint: True) (pylint: 7.69) (ref.: 0)
889
- 23 256 LM_neoeffects.py (mlint: True) (pylint: 6.91) (ref.: 0)
890
- 24 30 LM_i2c.py (mlint: True) (pylint: 5.71) (ref.: 0)
891
- 25 69 LM_dht22.py (mlint: True) (pylint: 8.0) (ref.: 0)
892
- 26 59 LM_L298N_DCmotor.py (mlint: True) (pylint: 8.78) (ref.: 0)
893
- 27 37 LM_esp32.py (mlint: True) (pylint: 4.38) (ref.: 0)
894
- 28 56 LM_pet_feeder.py (mlint: True) (pylint: 7.88) (ref.: 0)
895
- 29 82 LM_rencoder.py (mlint: True) (pylint: 8.92) (ref.: 0)
896
- 30 247 LM_keychain.py (mlint: False) (pylint: 9.14) (ref.: 0)
897
- 31 69 LM_dht11.py (mlint: True) (pylint: 8.0) (ref.: 0)
898
- 32 74 LM_telegram.py (mlint: False) (pylint: 8.94) (ref.: 0)
899
- 33 177 LM_OV2640.py (mlint: False) (pylint: 9.06) (ref.: 0)
900
- 34 249 LM_rgb.py (mlint: True) (pylint: 8.66) (ref.: 1)
901
- 35 62 LM_distance.py (mlint: True) (pylint: 8.14) (ref.: 0)
902
- 36 313 LM_VL53L0X.py (mlint: True) (pylint: 9.07) (ref.: 0)
903
- 37 107 LM_light_sensor.py (mlint: True) (pylint: 8.94) (ref.: 0)
904
- 38 12 LM_rp2w.py (mlint: True) (pylint: 4.44) (ref.: 0)
905
- 39 190 LM_presence.py (mlint: True) (pylint: 8.75) (ref.: 4)
906
- 40 29 LM_dashboard_be.py (mlint: True) (pylint: 6.5) (ref.: 0)
907
- 41 170 LM_dimmer.py (mlint: True) (pylint: 8.22) (ref.: 0)
908
- 42 66 LM_demo.py (mlint: False) (pylint: 8.21) (ref.: 0)
909
- 43 105 LM_lmpacman.py (mlint: True) (pylint: 8.38) (ref.: 0)
910
- 44 176 LM_gameOfLife.py (mlint: True) (pylint: 9.29) (ref.: 2)
911
- 45 58 LM_catgame.py (mlint: True) (pylint: 8.46) (ref.: 0)
912
- 46 42 LM_intercon.py (mlint: True) (pylint: 8.18) (ref.: 3)
913
- 47 43 LM_ds18.py (mlint: True) (pylint: 5.0) (ref.: 2)
914
- 48 250 LM_i2s_mic.py (mlint: False) (pylint: 8.71) (ref.: 1)
915
- 49 34 LM_sdcard.py (mlint: True) (pylint: 7.88) (ref.: 0)
916
-
917
- SUM CODE LINES (WITH COMMENTS, WITHOUT EMPTY LINES): 6822
994
+ ./micrOS/source
995
+ ├── Common.py
996
+ ├── Config.py
997
+ ├── Debug.py
998
+ ├── Espnow.py
999
+ ├── Files.py
1000
+ ├── Hooks.py
1001
+ ├── InterConnect.py
1002
+ ├── Interrupts.py
1003
+ ├── Logger.py
1004
+ ├── Network.py
1005
+ ├── Notify.py
1006
+ ├── Scheduler.py
1007
+ ├── Server.py
1008
+ ├── Shell.py
1009
+ ├── Tasks.py
1010
+ ├── Time.py
1011
+ ├── Types.py
1012
+ ├── Web.py
1013
+ ├── main.py
1014
+ ├── micrOS.py
1015
+ ├── micrOSloader.py
1016
+ ├── reset.py
1017
+ ├── urequests.py
1018
+ ├── microIO.py
1019
+ ├── config
1020
+ │   └── _git.keep
1021
+ ├── modules
1022
+ │   ├── IO_esp32.py
1023
+ │   ├── IO_esp32c3.py
1024
+ │   ├── IO_esp32c6.py
1025
+ │   ├── IO_esp32s2.py
1026
+ │   ├── IO_esp32s3.py
1027
+ │   ├── IO_m5stamp.py
1028
+ │   ├── IO_qtpy.py
1029
+ │   ├── IO_rp2.py
1030
+ │   ├── IO_s3matrix.py
1031
+ │   ├── IO_tinypico.py
1032
+ │   ├── LM_L298N.py
1033
+ │   ├── LM_L9110_DCmotor.py
1034
+ │   ├── LM_OV2640.py
1035
+ │   ├── LM_VL53L0X.py
1036
+ │   ├── LM_aht10.py
1037
+ │   ├── LM_bme280.py
1038
+ │   ├── LM_buzzer.py
1039
+ │   ├── LM_cct.py
1040
+ │   ├── LM_cluster.py
1041
+ │   ├── LM_co2.py
1042
+ │   ├── LM_dashboard_be.py
1043
+ │   ├── LM_dht11.py
1044
+ │   ├── LM_dht22.py
1045
+ │   ├── LM_dimmer.py
1046
+ │   ├── LM_distance.py
1047
+ │   ├── LM_ds18.py
1048
+ │   ├── LM_esp32.py
1049
+ │   ├── LM_espnow.py
1050
+ │   ├── LM_gameOfLife.py
1051
+ │   ├── LM_genIO.py
1052
+ │   ├── LM_haptic.py
1053
+ │   ├── LM_i2c.py
1054
+ │   ├── LM_i2s_mic.py
1055
+ │   ├── LM_keychain.py
1056
+ │   ├── LM_ld2410.py
1057
+ │   ├── LM_light_sensor.py
1058
+ │   ├── LM_mqtt_client.py
1059
+ │   ├── LM_neoeffects.py
1060
+ │   ├── LM_neomatrix.py
1061
+ │   ├── LM_neopixel.py
1062
+ │   ├── LM_oled.py
1063
+ │   ├── LM_oled_sh1106.py
1064
+ │   ├── LM_oled_ui.py
1065
+ │   ├── LM_oledui.py
1066
+ │   ├── LM_pacman.py
1067
+ │   ├── LM_presence.py
1068
+ │   ├── LM_qmi8658.py
1069
+ │   ├── LM_rencoder.py
1070
+ │   ├── LM_rest.py
1071
+ │   ├── LM_rgb.py
1072
+ │   ├── LM_rgbcct.py
1073
+ │   ├── LM_roboarm.py
1074
+ │   ├── LM_robustness.py
1075
+ │   ├── LM_rp2w.py
1076
+ │   ├── LM_sdcard.py
1077
+ │   ├── LM_servo.py
1078
+ │   ├── LM_sound_event.py
1079
+ │   ├── LM_stepper.py
1080
+ │   ├── LM_switch.py
1081
+ │   ├── LM_system.py
1082
+ │   ├── LM_tcs3472.py
1083
+ │   ├── LM_telegram.py
1084
+ │   ├── LM_tinyrgb.py
1085
+ │   ├── LM_trackball.py
1086
+ │   └── LM_veml7700.py
1087
+ └── web
1088
+ ├── dashboard.html
1089
+ ├── index.html
1090
+ ├── matrix_draw.html
1091
+ ├── uapi.js
1092
+ ├── udashboard.js
1093
+ ├── ustyle.css
1094
+ ├── uwidgets.js
1095
+ └── uwidgets_pro.js
1096
+
1097
+ 4 directories, 98 files
918
1098
  ```
919
1099
 
920
- > LM (Load Modules) - Application logic - accessable over socket server as a command
921
-
922
- ### micrOS devToolkit resources
923
-
924
- #### DevToolKit Dashboard apps
925
-
926
- > You can easly copy the `Template_app.py`, and create a new socket based app.
927
- [Template_app.py](https://github.com/BxNxM/micrOS/blob/master/toolkit/dashboard_apps/Template_app.py)
928
-
929
- ```
930
- micrOS/toolkit/dashboard_apps
931
- │   ├── AirQualityBME280_app.py
932
- │   ├── AirQualityDHT22_CO2_app.py
933
- │   ├── AnalogCCT_app.py
934
- │   ├── AnalogRGB_app.py
935
- │   ├── CatGame_app.py
936
- │   ├── Dimmer_app.py
937
- │   ├── GetVersion_app.py
938
- │   ├── GetVersion_app.pyc
939
- │   ├── NeopixelTest_app.py
940
- │   ├── RoboArm_app.py
941
- │   ├── SysCheck_app.py
942
- │   ├── Template_app.py
943
- ```
944
-
945
- #### Stored connection data and default node configs
946
-
947
- ```
948
- micrOS/toolkit/user_data
949
- │   ├── device_conn_cache.json <- connection cache
950
- │   └── node_config_archive
951
- │   ├── BigRGB-node_config.json
952
- │   ├── Chillight-node_config.json
953
- │   ├── Kapcsolo230-node_config.json
954
- │   ├── LampController-node_config.json
955
- │   ├── MeasureNode-node_config.json
956
- │   ├── MrGreen-node_config.json
957
- │   ├── RingLamp-node_config.json
958
- │   └── test-node_config.json
959
- ```
960
-
961
- #### Virtaulenv for development and stored USB-Serial drivers
962
-
963
- ```
964
- micrOS/env/
965
- ├── __init__.py
966
- ├── driver_cp210x
967
- │   ├── CP210x_Universal_Windows_Driver
968
- │   └── macOS_VCP_Driver
969
- ├── requirements.txt
970
- └── venv
971
- ├── bin
972
- ├── include
973
- ├── lib
974
- └── pyvenv.cfg
975
- ```
976
-
977
- #### Precompiled resources for easy install
978
-
979
- ```
980
- micrOS/toolkit/workspace/precompiled
981
- │   ├── BgJob.mpy
982
- │   ├── Common.mpy
983
- │   ├── ConfigHandler.mpy
984
- │   ├── Debug.mpy
985
- │   ├── Hooks.mpy
986
- │   ├── InterConnect.mpy
987
- │   ├── InterpreterCore.mpy
988
- │   ├── InterpreterShell.mpy
989
- │   ├── InterruptHandler.mpy
990
- │   ├── LM_L298N_DCmotor.mpy
991
- │   ├── LM_L9110_DCmotor.py
992
- │   ├── LM_VL53L0X.py
993
- │   ├── LM_bme280.mpy
994
- │   ├── LM_buzzer.mpy
995
- │   ├── LM_catgame.py
996
- │   ├── LM_cct.mpy
997
- │   ├── LM_co2.mpy
998
- │   ├── LM_dht11.mpy
999
- │   ├── LM_dht22.mpy
1000
- │   ├── LM_dimmer.mpy
1001
- │   ├── LM_distance_HCSR04.py
1002
- │   ├── LM_ds18.mpy
1003
- │   ├── LM_esp32.py
1004
- │   ├── LM_genIO.mpy
1005
- │   ├── LM_i2c.py
1006
- │   ├── LM_intercon.mpy
1007
- │   ├── LM_light_sensor.mpy
1008
- │   ├── LM_neoeffects.mpy
1009
- │   ├── LM_neopixel.mpy
1010
- │   ├── LM_oled.mpy
1011
- │   ├── LM_oled_ui.mpy
1012
- │   ├── LM_pet_feeder.py
1013
- │   ├── LM_ph_sensor.py
1014
- │   ├── LM_rgb.mpy
1015
- │   ├── LM_roboarm.mpy
1016
- │   ├── LM_robustness.py
1017
- │   ├── LM_servo.mpy
1018
- │   ├── LM_stepper.mpy
1019
- │   ├── LM_switch.mpy
1020
- │   ├── LM_system.mpy
1021
- │   ├── LM_tinyrgb.mpy
1022
- │   ├── IO_esp32.mpy
1023
- │   ├── IO_tinypico.mpy
1024
- │   ├── LogicalPins.mpy
1025
- │   ├── Network.mpy
1026
- │   ├── Scheduler.mpy
1027
- │   ├── SocketServer.mpy
1028
- │   ├── Time.mpy
1029
- │   ├── TinyPLed.mpy
1030
- │   ├── boot.py
1031
- │   ├── micrOS.mpy
1032
- │   ├── micrOSloader.mpy
1033
- │   └── reset.mpy
1034
- ```
1035
-
1036
- > Note: From the `micrOS/source/` by default the LMs are not compiling, to extend complied LM list add LM explicitly to the following file:
1037
-
1038
- ```
1039
- micrOs/toolkit/LM_to_compile.dat
1040
- ```
1041
1100
 
1042
1101
  ----------------------------------------
1043
1102