micrOSDevToolKit 2.10.2__py3-none-any.whl → 2.10.6__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 (44) hide show
  1. micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +28 -20
  2. micrOS/source/Common.py +2 -2
  3. micrOS/source/Espnow.py +245 -123
  4. micrOS/source/Files.py +101 -0
  5. micrOS/source/LM_espnow.py +10 -7
  6. micrOS/source/LM_mqtt_pro.py +211 -0
  7. micrOS/source/LM_oled_ui.py +18 -5
  8. micrOS/source/LM_pacman.py +37 -57
  9. micrOS/source/LM_rest.py +3 -3
  10. micrOS/source/LM_system.py +1 -1
  11. micrOS/source/Logger.py +5 -11
  12. micrOS/source/Shell.py +33 -28
  13. micrOS/source/Tasks.py +2 -2
  14. micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
  15. micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
  16. micrOS/source/microIO.py +3 -2
  17. micrOS/source/urequests.py +10 -1
  18. {micrOSDevToolKit-2.10.2.dist-info → microsdevtoolkit-2.10.6.dist-info}/METADATA +3 -2
  19. {micrOSDevToolKit-2.10.2.dist-info → microsdevtoolkit-2.10.6.dist-info}/RECORD +44 -40
  20. {micrOSDevToolKit-2.10.2.dist-info → microsdevtoolkit-2.10.6.dist-info}/WHEEL +1 -1
  21. toolkit/Gateway.py +3 -3
  22. toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc +0 -0
  23. toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc +0 -0
  24. toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc +0 -0
  25. toolkit/simulator_lib/uos.py +5 -5
  26. toolkit/user_data/webhooks/generic.py +1 -1
  27. toolkit/user_data/webhooks/macro.py +1 -1
  28. toolkit/user_data/webhooks/template.py +1 -1
  29. toolkit/workspace/precompiled/Espnow.mpy +0 -0
  30. toolkit/workspace/precompiled/Files.mpy +0 -0
  31. toolkit/workspace/precompiled/LM_espnow.py +10 -7
  32. toolkit/workspace/precompiled/LM_mqtt_pro.py +211 -0
  33. toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
  34. toolkit/workspace/precompiled/LM_pacman.mpy +0 -0
  35. toolkit/workspace/precompiled/LM_rest.mpy +0 -0
  36. toolkit/workspace/precompiled/LM_system.mpy +0 -0
  37. toolkit/workspace/precompiled/Logger.mpy +0 -0
  38. toolkit/workspace/precompiled/Shell.mpy +0 -0
  39. toolkit/workspace/precompiled/Tasks.mpy +0 -0
  40. toolkit/workspace/precompiled/microIO.mpy +0 -0
  41. toolkit/workspace/precompiled/urequests.mpy +0 -0
  42. {micrOSDevToolKit-2.10.2.data → microsdevtoolkit-2.10.6.data}/scripts/devToolKit.py +0 -0
  43. {micrOSDevToolKit-2.10.2.dist-info → microsdevtoolkit-2.10.6.dist-info/licenses}/LICENSE +0 -0
  44. {micrOSDevToolKit-2.10.2.dist-info → microsdevtoolkit-2.10.6.dist-info}/top_level.txt +0 -0
micrOS/source/Shell.py CHANGED
@@ -12,9 +12,9 @@ Designed by Marcell Ban aka BxNxM
12
12
  # IMPORTS #
13
13
  #################################################################
14
14
  from sys import modules
15
- from uos import listdir
16
15
  from machine import reset as hard_reset, soft_reset
17
16
  from Config import cfgget, cfgput
17
+ from Files import ilist_fs
18
18
  from Tasks import lm_exec
19
19
  from Debug import errlog_add
20
20
 
@@ -25,7 +25,7 @@ from Debug import errlog_add
25
25
 
26
26
  class Shell:
27
27
  __slots__ = ['__devfid', '__auth_mode', '__hwuid', '__auth_ok', '__conf_mode']
28
- MICROS_VERSION = '2.10.2-0'
28
+ MICROS_VERSION = '2.10.5-1'
29
29
 
30
30
  def __init__(self):
31
31
  """
@@ -106,7 +106,8 @@ class Shell:
106
106
  # No msg to work with
107
107
  return True
108
108
  msg_list = msg.strip().split()
109
- local_cmd = not msg_list[-1].startswith(">>") # intercon request check for shell commands
109
+ # INTERCON embedding: conf mode and remote call request check
110
+ is_local_cmd = self.__conf_mode or not msg_list[-1].startswith(">>")
110
111
 
111
112
  ##########################################
112
113
  # [1] Handle built-in shell commands #
@@ -114,7 +115,7 @@ class Shell:
114
115
  ##########################################
115
116
 
116
117
  # Hello message
117
- if local_cmd and msg_list[0] == 'hello':
118
+ if is_local_cmd and msg_list[0] == 'hello':
118
119
  # For low level device identification - hello msg
119
120
  await self.a_send(f"hello:{self.__devfid}:{self.__hwuid}")
120
121
  return True
@@ -127,62 +128,65 @@ class Shell:
127
128
  return True
128
129
 
129
130
  # Version handling
130
- if local_cmd and msg_list[0] == 'version':
131
+ if is_local_cmd and msg_list[0] == 'version':
131
132
  # For micrOS system version info
132
133
  await self.a_send(str(Shell.MICROS_VERSION))
133
134
  return True
134
135
 
135
136
  # Reboot micropython VM
136
- if local_cmd and msg_list[0] == 'reboot':
137
+ if is_local_cmd and msg_list[0] == 'reboot':
137
138
  hard = False
138
139
  if len(msg_list) >= 2 and "-h" in msg_list[1]:
139
140
  # reboot / reboot -h
140
141
  hard = True
141
142
  await self.reboot(hard)
142
143
 
143
- if local_cmd and msg_list[0].startswith('webrepl'):
144
+ if is_local_cmd and msg_list[0].startswith('webrepl'):
144
145
  if len(msg_list) == 2 and '-u' in msg_list[1]:
145
146
  await Shell.webrepl(msg_obj=self.a_send, update=True)
146
147
  return await Shell.webrepl(msg_obj=self.a_send)
147
148
 
148
149
  # CONFIGURE MODE STATE: ACCESS FOR NODE_CONFIG.JSON
149
- if local_cmd and msg_list[0].startswith('conf'):
150
+ if is_local_cmd and msg_list[0].startswith('conf'):
150
151
  self.__conf_mode = True
151
152
  return True
152
- if local_cmd and msg_list[0].startswith('noconf'):
153
+ if is_local_cmd and msg_list[0].startswith('noconf'):
153
154
  self.__conf_mode = False
154
155
  return True
155
156
 
156
157
  # HELP MSG
157
- if local_cmd and msg_list[0] == "help":
158
- await self.a_send("[MICROS] - built-in shell commands")
158
+ if is_local_cmd and msg_list[0] == "help":
159
+ await self.a_send("[MICROS]")
159
160
  await self.a_send(" hello - hello msg - for device identification")
160
161
  await self.a_send(" modules - show active Load Modules")
161
162
  await self.a_send(" version - returns micrOS version")
162
- await self.a_send(" exit - exit from shell socket prompt")
163
+ await self.a_send(" exit - exit shell session")
163
164
  await self.a_send(" reboot - system soft reboot (vm), hard reboot (hw): reboot -h")
164
165
  await self.a_send(" webrepl - start webrepl, for file transfers use with --update")
165
- await self.a_send("[CONF] Configure mode - built-in shell commands")
166
+ await self.a_send("[CONF] Configuration mode")
166
167
  await self.a_send(" conf - Enter conf mode")
167
- await self.a_send(" dump - Dump all data")
168
+ await self.a_send(" dump - Dump all data, filter: dump <str>")
168
169
  await self.a_send(" key - Get value")
169
170
  await self.a_send(" key value - Set value")
170
171
  await self.a_send(" noconf - Exit conf mode")
171
- await self.a_send("[TASK] postfix: ...&x - one-time, ...&&x - periodic, x: wait ms [x min: 20ms]")
172
- await self.a_send(" task list - list tasks by <tag>s")
172
+ await self.a_send("[TASK] Task operations")
173
+ await self.a_send(" task list - list tasks by tags")
173
174
  await self.a_send(" task kill <tag> - stop task")
174
175
  await self.a_send(" task show <tag> - show task output")
175
- await self.a_send("[EXEC] Command mode (LMs):")
176
- await self.a_send(" >>node01.local - INTERCON postfix, execute command on remote device")
177
- await self.a_send(" >json - JSON postfix, request json formatted output")
178
- await self.a_send(" help lm - list ALL LoadModules")
176
+ await self.a_send("[EXEC] Command mode, syntax(...): <module> <function> <params> <postfix>")
177
+ await self.a_send(" Postfix hints:")
178
+ await self.a_send(" ... &<x> - start one-shot task")
179
+ await self.a_send(" ... &&<x> - start periodic task, where <x>: delay ms [x min: 20ms]")
180
+ await self.a_send(" ... >>hostname - remote command execution (intercon)")
181
+ await self.a_send(" ... >json - request json formatted output")
182
+ await self.a_send(" help lm - list ALL available LoadModules")
179
183
  if "lm" in str(msg_list):
180
184
  return await Shell._show_lm_funcs(msg_obj=self.a_send)
181
185
  return await Shell._show_lm_funcs(msg_obj=self.a_send, active_only=True)
182
186
 
183
187
  # [2] EXECUTE:
184
188
  # @1 Configure mode
185
- if local_cmd and self.__conf_mode and len(msg_list) > 0:
189
+ if is_local_cmd and self.__conf_mode and len(msg_list) > 0:
186
190
  # Lock thread under config handling is threads available
187
191
  return await Shell._configure(self.a_send, msg_list)
188
192
  # @2 Command mode
@@ -252,13 +256,13 @@ class Shell:
252
256
  Dump LM modules with functions - in case of [py] files
253
257
  Dump LM module with help function call - in case of [mpy] files
254
258
  """
255
- async def _help(mod):
256
- for lm_path in (i for i in mod if i.startswith('LM_') and (i.endswith('py'))):
259
+ async def _help(mods):
260
+ for lm_path in mods:
257
261
  lm_name = lm_path.replace('LM_', '').split('.')[0]
258
262
  try:
259
- await msg_obj(f" {lm_name}")
263
+ await msg_obj(f" {lm_name}")
260
264
  if lm_path.endswith('.mpy'):
261
- await msg_obj(f" {' ' * len(lm_path.replace('LM_', '').split('.')[0])}help")
265
+ await msg_obj(f" {' ' * len(lm_path.replace('LM_', '').split('.')[0])}help")
262
266
  continue
263
267
  with open(lm_path, 'r') as f:
264
268
  line = "micrOSisTheBest"
@@ -266,19 +270,20 @@ class Shell:
266
270
  line = f.readline()
267
271
  ldata = line.strip()
268
272
  if ldata.startswith('def ') and not ldata.split()[1].startswith("_") and 'self' not in ldata:
269
- await msg_obj(f" {' ' * len(lm_name)}{ldata.replace('def ', '').split('(')[0]}")
273
+ await msg_obj(f" {' ' * len(lm_name)}{ldata.replace('def ', '').split('(')[0]}")
270
274
  except Exception as e:
271
275
  await msg_obj(f"[{lm_path}] SHOW LM PARSER WARNING: {e}")
272
276
  return False
273
277
  return True
274
278
 
279
+ await msg_obj("")
275
280
  # [1] list active modules (default in shell)
276
281
  if active_only:
277
282
  mod_keys = modules.keys()
278
- active_modules = (dir_mod for dir_mod in listdir() if dir_mod.split('.')[0] in mod_keys)
283
+ active_modules = (dir_mod for dir_mod in ilist_fs(type_filter='f', select="LM") if dir_mod.split('.')[0] in mod_keys)
279
284
  return await _help(active_modules)
280
285
  # [2] list all LMs on file system (ALL - help lm) - manual
281
- return await _help(listdir())
286
+ return await _help(ilist_fs(type_filter='f', select="LM"))
282
287
 
283
288
  @staticmethod
284
289
  async def webrepl(msg_obj, update=False):
micrOS/source/Tasks.py CHANGED
@@ -44,7 +44,7 @@ class TaskBase:
44
44
  self.out = "" # Store task output
45
45
 
46
46
  @staticmethod
47
- def is_busy(tag) -> bool:
47
+ def is_busy(tag:str) -> bool:
48
48
  """
49
49
  Check task is busy by tag
50
50
  :param tag: for task selection
@@ -335,7 +335,7 @@ class Manager:
335
335
  _tasks = []
336
336
  tag_parts = tag.split('.')
337
337
  for t in TaskBase.TASKS:
338
- if t.startswith(tag_parts[0]) and len(tag_parts) > 1 and tag_parts[1] == '*':
338
+ if len(tag_parts) > 1 and t.startswith('.'.join(tag_parts[0:-1])) and tag_parts[-1] == '*':
339
339
  _tasks.append(t)
340
340
  if len(_tasks) == 0:
341
341
  return []
micrOS/source/microIO.py CHANGED
@@ -10,7 +10,8 @@ Designed by Marcell Ban aka BxNxM
10
10
  # IMPORTS #
11
11
  #################################################################
12
12
  from sys import platform
13
- from uos import listdir, uname
13
+ from uos import uname
14
+ from Files import ilist_fs
14
15
  from Logger import syslog
15
16
 
16
17
  #################################################################
@@ -65,7 +66,7 @@ def set_pinmap(map_data=None):
65
66
 
66
67
  # SELECT LOOKUP TABLE BASED ON PLATFORM / User input
67
68
  if isinstance(io_file, str) and io_file != 'n/a':
68
- if f"IO_{io_file}" in [io.split('.')[0] for io in listdir() if io.startswith('IO_')]:
69
+ if f"IO_{io_file}" in [io.split('.')[0] for io in ilist_fs(type_filter='f', select="IO")]:
69
70
  PinMap.MAPPING_LUT = io_file
70
71
  return PinMap.MAPPING_LUT
71
72
  PinMap.MAPPING_LUT = detect_platform()
@@ -197,10 +197,19 @@ async def arequest(method:str, url:str, data:str=None, json=None, headers:dict=N
197
197
  addr = _host_to_addr(host, port)
198
198
  reader, writer = None, None
199
199
 
200
+ # Open a connection
200
201
  try:
201
- # Open a connection
202
202
  reader, writer = await asyncio.open_connection(addr[0], port, ssl=(proto == 'https:'))
203
+ except Exception as e:
204
+ # Refresh host address & reconnect
205
+ if "EHOSTUNREACH" in str(e):
206
+ addr = _host_to_addr(host, port, force=True)
207
+ reader, writer = await asyncio.open_connection(addr[0], port, ssl=(proto == 'https:'))
208
+ else:
209
+ errlog_add(f"[ERR] arequest connection: {e}")
203
210
 
211
+ # Send request + Wait for the response
212
+ try:
204
213
  # Build the HTTP request
205
214
  http_request = _build_request(host, method, path, headers, data, json)
206
215
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: micrOSDevToolKit
3
- Version: 2.10.2
3
+ Version: 2.10.6
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
@@ -31,6 +31,7 @@ Dynamic: description
31
31
  Dynamic: description-content-type
32
32
  Dynamic: home-page
33
33
  Dynamic: license
34
+ Dynamic: license-file
34
35
  Dynamic: project-url
35
36
  Dynamic: requires-dist
36
37
  Dynamic: summary
@@ -32,12 +32,13 @@ micrOS/micropython/esp32s3_spiram_oct-20231005-v1.21.0.bin,sha256=S-sv_QeL_Tylg1
32
32
  micrOS/micropython/esp32s3_spiram_oct-20241129-v1.24.1.bin,sha256=VbOF_F0YeqttkQd2ePTW66Jd34RU8u9ccFfcv8kxO_U,1662672
33
33
  micrOS/micropython/rpi-pico-w-20241129-v1.24.1.uf2,sha256=v4aYIbWaE94_f6DDzBWS-a9L1BzlcdkZwld9R7bOVA4,1727488
34
34
  micrOS/micropython/tinypico-20241129-v1.24.1.bin,sha256=Kf3cr766a5SK99CZy8bwdWjwvAZxls3tBYvaHBsw7ac,1527200
35
- micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json,sha256=zhIWl4uMC9VNiTB0WY2zylxxXdjSfWyH3DvWPFQIK2Y,5759
35
+ micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json,sha256=Nx7__F7pYaRgUpQGXw728GALubty3w9B0q3jUzKu-UU,5894
36
36
  micrOS/source/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
37
- micrOS/source/Common.py,sha256=LEdYxNT7M5aVEIyx0nPoODOYgsVsY7Japxe9diZpU5A,8020
37
+ micrOS/source/Common.py,sha256=NUXz03yaFCw7qqc_7vBbQ6izcKil2iZgPCXVSkoG0w4,8051
38
38
  micrOS/source/Config.py,sha256=E3OTMRI1_T94GMADcvG7MKiuGsKsnbLn17KXHcjhqXM,8795
39
39
  micrOS/source/Debug.py,sha256=_7HZzZ2OKJrcNqeYsG1ZykBa6iN8YTj-K5FFXlEAcRw,5300
40
- micrOS/source/Espnow.py,sha256=_D9XYTT0gQBEWTLzBLCLCbHdFDwjHyMMO94YPtEJlsQ,5510
40
+ micrOS/source/Espnow.py,sha256=WrqzX4RQwJbzCouYMaMLjMD-23f5CDrCN6phpc2gdrU,10481
41
+ micrOS/source/Files.py,sha256=HaHf9_-WD5JgxrzR-eTY_ty0xkLXxv5TgpoTAL9MLeg,3499
41
42
  micrOS/source/Hooks.py,sha256=GyFAVpWJPEnRsqhoGMnmXJNTgFRE6S3mGKfKX6-TvQg,3582
42
43
  micrOS/source/IO_esp32.py,sha256=9gTrdLiySmoacLvCy-DRAplkSZFzJU-9j54DX6YwB0s,2505
43
44
  micrOS/source/IO_esp32c3.py,sha256=YicJTmnh1sHTioyBAZlKcoO4YSuj6CptUnaEGq8MTNQ,1468
@@ -67,7 +68,7 @@ micrOS/source/LM_dimmer.py,sha256=Jhpeh0Kq7Dnt9nA8PVobENbsf1x-U7rOv9EGGdhC_30,83
67
68
  micrOS/source/LM_distance.py,sha256=iVqQchaUOvK8Ilzr7qMi-ESvS_U8RsBwdqNHY_4qZ-c,4394
68
69
  micrOS/source/LM_ds18.py,sha256=mLaH97j8d4lUXcjS8hNtwU8hL5Ybt-Q1WuoiWPnk5Ho,1807
69
70
  micrOS/source/LM_esp32.py,sha256=yUIMWsfimCAhgyV4pT4sh-kqE_mDL83cmAZji_2uFpI,1738
70
- micrOS/source/LM_espnow.py,sha256=Tto5JGnhbqyKT0hzDlJ_G-o_34dVf0CIaiMPbP-xbHU,1070
71
+ micrOS/source/LM_espnow.py,sha256=hlhSHXB8gI8fdPru-UKplpzg1Gpc20ctmG5Ex4ds06c,1198
71
72
  micrOS/source/LM_gameOfLife.py,sha256=Mvr_S5zsJ6x_pMCGrkdgl5QdejNQjAF9mBYLN5-OA38,7685
72
73
  micrOS/source/LM_genIO.py,sha256=rTiFByly8ImjHBgc2RceGczGp1rzti7Juz_Vvg5hrtc,5013
73
74
  micrOS/source/LM_haptic.py,sha256=W0WiuOCxIu9RB-pWu8r8fvHmvuseet1UI7RSc9WO8zo,2862
@@ -77,18 +78,19 @@ micrOS/source/LM_intercon.py,sha256=QFXeYlrgpVeBPOjrhgWk6IWH-MM1-hPjsf-JSXn7vgk,
77
78
  micrOS/source/LM_keychain.py,sha256=-GN-Xzoour2vjg5MyZtmbcxo8LdSn6dYrk1wSliNQh4,12695
78
79
  micrOS/source/LM_ld2410.py,sha256=dWBsIkI0ryomn0zDrmz5YxaGcoH5TqjAsi2qwGd8UZM,6524
79
80
  micrOS/source/LM_light_sensor.py,sha256=xzsPmiLQHx5v8pyNQC0UNXFa76qsV-CqFACY7UZmVKk,4561
81
+ micrOS/source/LM_mqtt_pro.py,sha256=Vma1efLJ9Z9MrDd0qSrfJdoAxcaPfxdnqNjMIkHoHzY,7847
80
82
  micrOS/source/LM_neoeffects.py,sha256=kfReEz9pTB0GRSat6--86PZtjfiT_S9ilfb-igt-bbg,10929
81
83
  micrOS/source/LM_neopixel.py,sha256=4TWwlmW6bnnmS76fVZVri6bI2zPXbiPJ9spEtA7NTjE,13260
82
84
  micrOS/source/LM_oled.py,sha256=ZwLndxWuY1Ii5d06YEf9Z_jxmTyoOYRL-BO3VhJ0b14,9903
83
85
  micrOS/source/LM_oled_sh1106.py,sha256=av2_ftFHvfAIxcPYHbrOMQNZgM1Go6MQzBu5cIeVK4w,11723
84
- micrOS/source/LM_oled_ui.py,sha256=65OwlWD4X4b3r64XalDTdp0fNakWY1jpnIZvNBoSyno,21655
86
+ micrOS/source/LM_oled_ui.py,sha256=svU7_cb_VNqcfbtJbzWLXmA21wldsdVyZ0z9sV2OWK4,22266
85
87
  micrOS/source/LM_oledui.py,sha256=ym502-2eNN_e9qCysBjszrfPYdJek-izf2W2UyF_g1g,35429
86
- micrOS/source/LM_pacman.py,sha256=k_R0X0YGkRc6-NoF5fvqng7lD5RNmV-rsVa-uBcrleE,8227
88
+ micrOS/source/LM_pacman.py,sha256=qXPXPNW-t3CsljP9vj0nUtwu_f384C0XXD-buWy8uRU,7507
87
89
  micrOS/source/LM_pet_feeder.py,sha256=ILrozpnq2_ckkVDUROysMWRksKjflsKpIHvgHdvn-JA,2572
88
90
  micrOS/source/LM_ph_sensor.py,sha256=QBVF6cHX3l9jsKcbEZprpyFtwRVLbup-_A7RmRYsdp8,1355
89
91
  micrOS/source/LM_presence.py,sha256=xHB-U_Ywp6F-DEOFlYmjx0QFFQGwKgh8RS77r805YhQ,8830
90
92
  micrOS/source/LM_rencoder.py,sha256=9w00JP8UKC_GEKr18xgZ5axX9xc_wVeR9XlWpVR2Qzw,3973
91
- micrOS/source/LM_rest.py,sha256=NmkAPcSCIc_eSNYMy64Kb4fa4_JEpNXkmCSXF_zEkNk,2673
93
+ micrOS/source/LM_rest.py,sha256=K2FMlW2o8zLu9GTk1nrtc9j-lebQvbg8bJTQWfv6xlA,2674
92
94
  micrOS/source/LM_rgb.py,sha256=ohzGxqC-dXIVc_YPXOtmmI9vRBFFjK-OfvsTnAFaDVM,11949
93
95
  micrOS/source/LM_rgbcct.py,sha256=Ct0X_O0AuSTsf4YiZjP4Zvke81y6dQMryhcn-HKkR9M,1841
94
96
  micrOS/source/LM_roboarm.py,sha256=V7NX0nJuU9ZQuNH-r-FnjKcKH1a-qHBdVwMJzAN6Sv0,9967
@@ -99,18 +101,18 @@ micrOS/source/LM_servo.py,sha256=83YPK5qlHuEOo3jTn5wXRsvPzzJPp0ZtCW-BhHHMBK0,348
99
101
  micrOS/source/LM_sound_event.py,sha256=9BZnrT8Jc2HL-28yVZE5sdeTa8Biq1qkQiTJsTw8y08,27500
100
102
  micrOS/source/LM_stepper.py,sha256=CkI4QBe2KJ7E5DKL7Z23oAMPDUFlUt7btAvqrn4H6Kg,4278
101
103
  micrOS/source/LM_switch.py,sha256=uxw2opz41OpBiBfb5ioojsUzPsETnkinkDXI4NRHMZs,7819
102
- micrOS/source/LM_system.py,sha256=p_QvbigWe1Pp8Vdjm_ebi1EW6mFG18lB6L8mP9rYTwM,6588
104
+ micrOS/source/LM_system.py,sha256=-URoeSdNZkv4veJlxlsj7JrEHbMKFfXlImwZpGUnm-4,6579
103
105
  micrOS/source/LM_telegram.py,sha256=DY4WEzthGExQ0A6iE6LCMYrXaMLAjsU5OsmY92X3kgg,15153
104
106
  micrOS/source/LM_tinyrgb.py,sha256=kChL607HPTl3Z2hYN2XnzXXfZ6omdP78PQutHdbdfCo,3031
105
107
  micrOS/source/LM_trackball.py,sha256=N2hhy3wuk55-ja4dmENpfthBolIEj28d2pzcjel5OKg,9716
106
108
  micrOS/source/LM_veml7700.py,sha256=3eb6-HuMA_tYBA0cJHUsZzOBriHacIpVSrK-1iB3_pY,5762
107
- micrOS/source/Logger.py,sha256=CtmjmQc9hzCystEzY0AtopjRnSy5T6AdWwpj2KTmGWg,3942
109
+ micrOS/source/Logger.py,sha256=Lk6pGZQeafidnfJd0_k1v1VZuXEW9t9km8tNuzk_Ixk,3818
108
110
  micrOS/source/Network.py,sha256=wLhAPiRyi376TKJA7tzCQidDBHq-AbZGGp7JabHIyl8,9417
109
111
  micrOS/source/Notify.py,sha256=jVf7wg7b7ehuh12A8tlYz5ZU00NQEgpVuTK0lN6cNcY,2645
110
112
  micrOS/source/Scheduler.py,sha256=K6fw807UJnOmbfzgeJQGzGbTL4s2sTIB120ZcS5qrLs,9648
111
113
  micrOS/source/Server.py,sha256=HMkHWofMmtpTQtKiGy_Gh6R2xHy4Vpud_aT2zhC4l58,16245
112
- micrOS/source/Shell.py,sha256=hgvP41HinmQKBW7cbiit9jkNZcTyZ6jucJnoO6htxGo,12896
113
- micrOS/source/Tasks.py,sha256=dl5Vol9WY5bnmsPr-DdLCn1So2W9mStHw16F-JeYPww,23244
114
+ micrOS/source/Shell.py,sha256=LIczQXD3L2aTFrH9bA4M8dmu6qe4bRMLQktXZAkAJKQ,13172
115
+ micrOS/source/Tasks.py,sha256=Y7F3ouNL_4TKAOJPNm5_b-_DWCKMadhm9YPzoextPVM,23262
114
116
  micrOS/source/Time.py,sha256=vTl8-sL-iO4l9eZMVCHTJ6oUwfhPiB1VHXTrrg-l59Y,6344
115
117
  micrOS/source/Types.py,sha256=3O_Vb1jN92RPtvgbV8ui6_iFzDOD-BUzVXlPB7PgmM4,3507
116
118
  micrOS/source/Web.py,sha256=KxRc6zt_8acAJyL9uv2JW2c27qtzYgi673ob0kxfxpE,8933
@@ -119,22 +121,23 @@ micrOS/source/index.html,sha256=cv0hap5bhBoRR_z1KALC3fbjH2rQZY9JJPfF-dxVclw,1656
119
121
  micrOS/source/main.py,sha256=cVlhoWwU9dSKEol0HWPihFAPzrUUvzSGwZNNMrpyfSY,440
120
122
  micrOS/source/micrOS.py,sha256=3PQR7_xNLsI7KJtPJQUudIgpL2JIe7pctCjXH-bwFtA,2556
121
123
  micrOS/source/micrOSloader.py,sha256=IgiQgUm97raQB0yHxUjQtvXSjsCdA_1OwSkRwwNLDzU,4794
122
- micrOS/source/microIO.py,sha256=pFRvRlEK9OulVmdXOTbcnHHhSKt-JuEpjUr9GzY-rUQ,7087
124
+ micrOS/source/microIO.py,sha256=3Gk0BstSTwHWVxcANSBwWU9mFvb_FaHmnbRGrM4YwpA,7110
123
125
  micrOS/source/reset.py,sha256=i7wsPkOXE7Mm0xOiw1CjqCvCdNjBvYswn9CRDvE2VbE,248
124
126
  micrOS/source/uapi.js,sha256=fZ0E9-ZndCoUNQq1yJ7yUCiLYxe3p8hzSFnlN2R9roc,2959
125
127
  micrOS/source/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN6uGqw9LpScDrGGF58c,4581
126
- micrOS/source/urequests.py,sha256=p7_8X9SrWk4wXhAZKpVPd-PZBHHToX8b1gwhFEi96FM,9089
128
+ micrOS/source/urequests.py,sha256=8vNxp_pkd_OlSrimg83FiQW0Y-t7j1UkC8If1VI_qJg,9472
127
129
  micrOS/source/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
128
130
  micrOS/source/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
129
131
  micrOS/source/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
130
- micrOS/source/__pycache__/Common.cpython-312.pyc,sha256=DbSNgmSjJTDfmDemMp3Us-0uDCm2bxE000P7a-6ye3s,10455
131
- micrOS/source/__pycache__/Logger.cpython-312.pyc,sha256=CCdkMRG0lBy7nVsc4DHwdRK0Ap0Mu9yB5fa_Hxx-RHY,5075
132
+ micrOS/source/__pycache__/Common.cpython-312.pyc,sha256=pSCsRbzAHZs-B99AsBsBqAu8vLprS8R8Sw-mVJ3y9so,10514
133
+ micrOS/source/__pycache__/Logger.cpython-312.pyc,sha256=AgoBYSXZpdwAJvEWjYE18W5zHbC67u7kbWLJJEYzBPM,5028
132
134
  micrOS/source/__pycache__/Server.cpython-312.pyc,sha256=xy1ImeXPtGhtYlAWpuWaxLmJO2nLVGdefOuqltABR9k,20615
133
- micrOSDevToolKit-2.10.2.data/scripts/devToolKit.py,sha256=4GutIOErF1ny0HSNWQZzEneZdUWhSdqKPBjpRFTr5do,11192
135
+ microsdevtoolkit-2.10.6.data/scripts/devToolKit.py,sha256=4GutIOErF1ny0HSNWQZzEneZdUWhSdqKPBjpRFTr5do,11192
136
+ microsdevtoolkit-2.10.6.dist-info/licenses/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
134
137
  toolkit/DevEnvCompile.py,sha256=H19-60ZpHzP30C-wqR5QTzMDHHpWrTk0Uzh--TZHxvw,12148
135
138
  toolkit/DevEnvOTA.py,sha256=vNa827MOhbNQbeMGGu72YmGlNN_Tm9D6Trdnz3YGpyU,25499
136
139
  toolkit/DevEnvUSB.py,sha256=G-Ram-OR27flvVhul8J_ObiMY07Wjvom6Prc4dTfkmo,34108
137
- toolkit/Gateway.py,sha256=OSsJYeAmFhNnb1uu2bjLvZzE3A32O7lza8-NxlGr1DQ,25335
140
+ toolkit/Gateway.py,sha256=AzZydQMVOBNGyWUtEm5Rja0m47F1AU10YSQll7_2QkQ,25335
138
141
  toolkit/LM_to_compile.dat,sha256=TmcSZcPNVtJKWdyMxY1YtHPnqbD6zcI7B7FISbr6as4,579
139
142
  toolkit/MicrOSDevEnv.py,sha256=xMsfbImyPAkiRh8wz1EYyWSWX8FvJIrGjwjjRC3q7d8,13562
140
143
  toolkit/WebRepl.py,sha256=805SJGoflJztyFR4DFxP80KVvNEeJfqZxlYeA3uD680,2696
@@ -200,7 +203,7 @@ toolkit/simulator_lib/simgc.py,sha256=qaYlZKW48ciIglgYxZt9ZxRUyThskhoQqke_A_bfIy
200
203
  toolkit/simulator_lib/simulator.py,sha256=-qgwcGwFFUgyIZ6CzpxQMgKDFUVAY_rDWA-4XwlJLCg,7688
201
204
  toolkit/simulator_lib/tinypico.py,sha256=z6B0743-7Cg8ISa7q7kljvKi0DGoegWus3HbiaOGU3E,156
202
205
  toolkit/simulator_lib/uasyncio.py,sha256=4ENv435IIr56x5IWeJUr1-QdczBBVG1zFr3-H2VDSpw,822
203
- toolkit/simulator_lib/uos.py,sha256=QJFXf2wW-U_2Iuzw2b38h9t6pihWpDd02368Ofmb0V4,3508
206
+ toolkit/simulator_lib/uos.py,sha256=rdtP19Xrq9hjtRXkq0tps9v4WY4hhHiOx4cL4EqhdZ0,3609
204
207
  toolkit/simulator_lib/usocket.py,sha256=7cqbG03yW5wySY1yCdFRbjDgDvbFqpU1otNJxyedaGU,347
205
208
  toolkit/simulator_lib/ussl.py,sha256=yBXPRGKIWwBRQFcKwciHCDfTj69bgfswH0WSrk3Zhjg,601
206
209
  toolkit/simulator_lib/ustruct.py,sha256=XEcN7BdO_dDw2j5fDNzv-McTGPC0kObt1LJ2KU1Kpm8,136
@@ -225,7 +228,7 @@ toolkit/simulator_lib/__pycache__/esp32.cpython-39.pyc,sha256=9BPjuqlQ1A0wUHUq3e
225
228
  toolkit/simulator_lib/__pycache__/framebuf.cpython-312.pyc,sha256=kuAZ1nWTZ17Q_r5Qnez2K5F_VC0O_fLd1Rph_b59HRQ,348
226
229
  toolkit/simulator_lib/__pycache__/framebuf.cpython-38.pyc,sha256=GD_dpNCxLu2h2hhnm2C6QFWy0v_xXmlWPzyon6lX91c,319
227
230
  toolkit/simulator_lib/__pycache__/framebuf.cpython-39.pyc,sha256=YxjMmXPgZBDAXgYG6xRZHQ2x1v9GBzHR7dgbJe4Pxvw,319
228
- toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc,sha256=huwsG3mIcnBUBHFaVF-tWHHzrh-i7pL1W2mjINVYcJc,11646
231
+ toolkit/simulator_lib/__pycache__/machine.cpython-312.pyc,sha256=X7KsyRTsooQ00ZhyLDbVH1a0L29byZoGbhizanKVEW0,11646
229
232
  toolkit/simulator_lib/__pycache__/machine.cpython-38.pyc,sha256=FZ-Xb6N80NaftyXGKKQvGIjNNkZX2XNtn3WLUsSdUcw,6832
230
233
  toolkit/simulator_lib/__pycache__/machine.cpython-39.pyc,sha256=jmaaD2crvtv4kvrWNf83r7-i7YsAVAlgHKPtilPF5Ag,7455
231
234
  toolkit/simulator_lib/__pycache__/micropython.cpython-312.pyc,sha256=HgMTdM9h8iFk0oRTsL750uz9big9360cAsvHEIL7fcE,1868
@@ -241,7 +244,7 @@ toolkit/simulator_lib/__pycache__/ntptime.cpython-312.pyc,sha256=HJOBT8nVJxiInAo
241
244
  toolkit/simulator_lib/__pycache__/onewire.cpython-312.pyc,sha256=Die4owai9JwhSzQUfC2mlo4jasIdpTrCSpTqL14u-R8,469
242
245
  toolkit/simulator_lib/__pycache__/onewire.cpython-38.pyc,sha256=0FRUNzBTRO3ynfwS98sScmUpN-4YBRLh5nVavrYtdz8,430
243
246
  toolkit/simulator_lib/__pycache__/onewire.cpython-39.pyc,sha256=pu-oFfL83DF4xIct74clABJKQPitsQGZhL8wWd6uE5E,430
244
- toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc,sha256=l5nEbYNKII7zYIPZW6_XwucAp5GozprhkfOKBxvaG9Q,1786
247
+ toolkit/simulator_lib/__pycache__/sim_console.cpython-312.pyc,sha256=8yzkxw_mzi7fPs7INKqosXYY10A4du-vIGIE32qe_cM,1786
245
248
  toolkit/simulator_lib/__pycache__/sim_console.cpython-38.pyc,sha256=BU5BsZpngpnhfwIpDtJHH9flmI85t_tmXjRZRilJqkU,1063
246
249
  toolkit/simulator_lib/__pycache__/sim_console.cpython-39.pyc,sha256=Q1s-DqjO3w2FQB_hfqbYbkHGVJdD5Caycz9FBv6c_Ws,1065
247
250
  toolkit/simulator_lib/__pycache__/simgc.cpython-312.pyc,sha256=3s-xY8_SB6PzlZwa5p719G6i4q9F0fFhGhwDT9RBVS0,1455
@@ -256,7 +259,7 @@ toolkit/simulator_lib/__pycache__/tinypico.cpython-39.pyc,sha256=VPvz9Caomn5rtrR
256
259
  toolkit/simulator_lib/__pycache__/uasyncio.cpython-312.pyc,sha256=ihShEcyfAQVtDTWDcsx3rENRGWKlw4ZLo90OTt_opCQ,2112
257
260
  toolkit/simulator_lib/__pycache__/uasyncio.cpython-38.pyc,sha256=F9FU77fFSaOYcAsDiMTQbOIaQ9bKeI1HuAqLZCjNIfk,976
258
261
  toolkit/simulator_lib/__pycache__/uasyncio.cpython-39.pyc,sha256=OMX0MlM7Y4WWePolE-QTVMoKn1yQnQHxvpsb42JErcI,1355
259
- toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc,sha256=n72JhneQF_KBwEZEoUUiZfziqZPvpNW8xKf0dr3ewQM,6005
262
+ toolkit/simulator_lib/__pycache__/uos.cpython-312.pyc,sha256=RdyxO9jlfueaDvbNtKvhtRAXZxGw_jPlBYJ-Y1FJiH4,6149
260
263
  toolkit/simulator_lib/__pycache__/usocket.cpython-312.pyc,sha256=rAKwfzQXhHGDSvCYyRcohNbb1dzKxZHZ2EGrSF-B8L0,842
261
264
  toolkit/simulator_lib/__pycache__/ussl.cpython-312.pyc,sha256=ZffWjvpL_43ihw5Rb4dGQ-8a7s3r5G-6ZvX8LixPCjU,1019
262
265
  toolkit/simulator_lib/__pycache__/ustruct.cpython-312.pyc,sha256=T_xaVNR9vCkHsrkuBOB9jKzx9HPGo1I3GeSO20b2kRI,516
@@ -268,15 +271,16 @@ toolkit/simulator_lib/__pycache__/webrepl.cpython-312.pyc,sha256=e27KovjuMy4NJxB
268
271
  toolkit/simulator_lib/__pycache__/webrepl.cpython-38.pyc,sha256=B2BqzZQyYBWGobjCGm_rAIj93Mpo_dGGhM23ctCsNoQ,254
269
272
  toolkit/simulator_lib/__pycache__/webrepl.cpython-39.pyc,sha256=5gJJZImKLPRj4Dutj9y3ly36oXTRoal8lzwu4yBPAHc,254
270
273
  toolkit/user_data/.include,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
271
- toolkit/user_data/webhooks/generic.py,sha256=SMNXM0SdELMJKBLDHpL_geDcHIrNNIFrNvXvNJOgPvU,743
272
- toolkit/user_data/webhooks/macro.py,sha256=E_Um6fc9P6sBKvChyrKgksHmBmaFUuq_Xxy8Ig6vi7U,1138
274
+ toolkit/user_data/webhooks/generic.py,sha256=JKZrvLhguhPA4IRe46NTfm8sqGiWiDl5zImK_2jH8yw,743
275
+ toolkit/user_data/webhooks/macro.py,sha256=r1TnOP4Bq-G3XQGwcV0FHcvlzwVaojUrrhbtpBkkBbw,1138
273
276
  toolkit/user_data/webhooks/template.macro,sha256=XikSl3FsD6W9pUx3sqavM5tWIMBquFx9f3bh_CB8k-A,631
274
- toolkit/user_data/webhooks/template.py,sha256=WssXY2BDKIwvObq0SpFCjjpEGzgbLlozFTug4ANswWM,342
277
+ toolkit/user_data/webhooks/template.py,sha256=UhyXmETAEr-VQutY9ME4gAb-4qi7qVfZ0NjSU1inn-E,342
275
278
  toolkit/workspace/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
276
279
  toolkit/workspace/precompiled/Common.mpy,sha256=30q9Yqa0QgfEaLk_Xb85XizYbBE8HPcmR-gEfkVWzDI,2151
277
280
  toolkit/workspace/precompiled/Config.mpy,sha256=A9ew69drKFA0SbfIvuTdeaXZQSvmwX0gDlnQa_8i-IE,3082
278
281
  toolkit/workspace/precompiled/Debug.mpy,sha256=OpoE-QcllAnASSnAC0V364G7zHjbYI_0jSPzPRBhWkI,1823
279
- toolkit/workspace/precompiled/Espnow.mpy,sha256=6201uzjatkJ9QHh7JXiLoX_mPxJCMJ90H4v6vgduc0Q,1834
282
+ toolkit/workspace/precompiled/Espnow.mpy,sha256=I8Kcp6pWQjVAGNbrTSbf00jvJrsD4r03vUmdkqHmHo8,3333
283
+ toolkit/workspace/precompiled/Files.mpy,sha256=OdEU5MoKiczhNiKPk_jqkIoipvi8eWCpYmfeKCrBnGY,970
280
284
  toolkit/workspace/precompiled/Hooks.mpy,sha256=qFpJrST1zIDwm16NvvWwDA982X_FDgm_fH38G1wQays,1438
281
285
  toolkit/workspace/precompiled/IO_esp32.mpy,sha256=ojJXxhRX6V8ubT1cFXpYlhHB1NplNrT2bTi247CXFrc,661
282
286
  toolkit/workspace/precompiled/IO_esp32c3.mpy,sha256=VFbiQWpnefXO5LirEb_Nfz1286UeAbvcmE3Z8_vupTs,403
@@ -306,7 +310,7 @@ toolkit/workspace/precompiled/LM_dimmer.mpy,sha256=dRdDr3WfFy-um3-fRiK4IuZdwBTUD
306
310
  toolkit/workspace/precompiled/LM_distance.mpy,sha256=6VoSsyd-hQ4P16USDnSqpq5gpi0v2WbseeHnTFJxuJA,1506
307
311
  toolkit/workspace/precompiled/LM_ds18.mpy,sha256=1TYvc8hj1ypE1v52l6u83e8XqUi0_Rjwil-BnYXDSKI,644
308
312
  toolkit/workspace/precompiled/LM_esp32.py,sha256=yUIMWsfimCAhgyV4pT4sh-kqE_mDL83cmAZji_2uFpI,1738
309
- toolkit/workspace/precompiled/LM_espnow.py,sha256=Tto5JGnhbqyKT0hzDlJ_G-o_34dVf0CIaiMPbP-xbHU,1070
313
+ toolkit/workspace/precompiled/LM_espnow.py,sha256=hlhSHXB8gI8fdPru-UKplpzg1Gpc20ctmG5Ex4ds06c,1198
310
314
  toolkit/workspace/precompiled/LM_gameOfLife.mpy,sha256=mAOivt472fRGOcpgx6xShyfbrpT0GTbLhT2vujncS4w,2051
311
315
  toolkit/workspace/precompiled/LM_genIO.mpy,sha256=F9utR5Ng-QuTq5R5ISvYPO8xASEdSnndc1hFfxcNWOE,1722
312
316
  toolkit/workspace/precompiled/LM_haptic.mpy,sha256=46BgYkjC3AdNaJaKflFnY0oEUsd9qg6yGquX7jyFLnM,1276
@@ -316,18 +320,19 @@ toolkit/workspace/precompiled/LM_intercon.mpy,sha256=jlQECkdZ8LUGQ3yuwrW2gfjFYZh
316
320
  toolkit/workspace/precompiled/LM_keychain.mpy,sha256=cZVyHNny2uNsWfTNaGWBtZUr5bqQ76wEyFcxWx3Nagg,3627
317
321
  toolkit/workspace/precompiled/LM_ld2410.mpy,sha256=H7XHzLPkpyE-pRFZqBKn6M-Y5RtpNiV9prOPcmfZ6zg,2581
318
322
  toolkit/workspace/precompiled/LM_light_sensor.mpy,sha256=FQsOIOaioYpzBETO_2EM5NrOGGR15_-C44Fd5uz14eM,1538
323
+ toolkit/workspace/precompiled/LM_mqtt_pro.py,sha256=Vma1efLJ9Z9MrDd0qSrfJdoAxcaPfxdnqNjMIkHoHzY,7847
319
324
  toolkit/workspace/precompiled/LM_neoeffects.mpy,sha256=lO0sxfiAgyASgYNjX3c_usY3TR9WeT3F2NHJkiJ182U,3091
320
325
  toolkit/workspace/precompiled/LM_neopixel.mpy,sha256=3o4Jvmc3Knr30VJ4b7JebpUsU7dBdcYBZzRD_9a4zBI,3663
321
326
  toolkit/workspace/precompiled/LM_oled.mpy,sha256=KQj4jfLwlmx2dT_GWbFzZE6FlMRPUgJvri5XbnSIod0,3154
322
327
  toolkit/workspace/precompiled/LM_oled_sh1106.mpy,sha256=0cQpu1MPkrPxvd1Fvln9c9lq9qPV6oi8iGNTZM4YbIY,3761
323
- toolkit/workspace/precompiled/LM_oled_ui.mpy,sha256=nwYPXJ2Q_ogZCp1PcWlAXPzj9OlPWc82Okc1dcn-kVk,6865
328
+ toolkit/workspace/precompiled/LM_oled_ui.mpy,sha256=67hlB6dtu9YBe2Yz4E9Xz1RUOclbFeG4qzWP4Co6f-I,7047
324
329
  toolkit/workspace/precompiled/LM_oledui.mpy,sha256=T7Fy0o_8H6h7oiVRYK43BuVb-RKZOyeJGUvHzeWHorQ,11562
325
- toolkit/workspace/precompiled/LM_pacman.mpy,sha256=njOwVrPKOtC4J5kRCtwV8E8hHTTTt7HzqV121HmCsxE,3507
330
+ toolkit/workspace/precompiled/LM_pacman.mpy,sha256=xfSDpYrJaFkr-pKLSAM3LetF9Hs3_0ivXOK9mbOII0g,3090
326
331
  toolkit/workspace/precompiled/LM_pet_feeder.py,sha256=ILrozpnq2_ckkVDUROysMWRksKjflsKpIHvgHdvn-JA,2572
327
332
  toolkit/workspace/precompiled/LM_ph_sensor.py,sha256=QBVF6cHX3l9jsKcbEZprpyFtwRVLbup-_A7RmRYsdp8,1355
328
333
  toolkit/workspace/precompiled/LM_presence.mpy,sha256=vcu_qUj6oU-Cp_jepQRio3BxPe0SQFTBYkJex9JCcDM,2754
329
334
  toolkit/workspace/precompiled/LM_rencoder.py,sha256=9w00JP8UKC_GEKr18xgZ5axX9xc_wVeR9XlWpVR2Qzw,3973
330
- toolkit/workspace/precompiled/LM_rest.mpy,sha256=U-2Pihzos6A2xLtcE33qWW6qtoYLH2UM_ZN8LmRrexg,1036
335
+ toolkit/workspace/precompiled/LM_rest.mpy,sha256=YgAqLhcr_k0I9QIsmPgaMwksXRnYAG2T0oKTypxCaTA,1036
331
336
  toolkit/workspace/precompiled/LM_rgb.mpy,sha256=o12V42r67SvMkhLMINbUVAguShK_GN7AzqmtX4fOqCE,3467
332
337
  toolkit/workspace/precompiled/LM_rgbcct.mpy,sha256=7UKvHyQ-rqHG1jzZTWcNaxZVcwL4hak3dOAGMYjf-OA,624
333
338
  toolkit/workspace/precompiled/LM_roboarm.mpy,sha256=OahB57_MvUoztQ28q7d3KXsQK8_DKyvUJpo3GvftIr8,3222
@@ -338,18 +343,18 @@ toolkit/workspace/precompiled/LM_servo.mpy,sha256=S1mH7tS6WK-vclAPQrWK46_IB2GlBZ
338
343
  toolkit/workspace/precompiled/LM_sound_event.mpy,sha256=QJ5xmKtK2sfA9lyROJRRpSAjypl10MkwLdW-QsXhRf8,7384
339
344
  toolkit/workspace/precompiled/LM_stepper.mpy,sha256=20Jpee74AjyjjMaHmgKbZvU5phcOvh8nQNSUDCAk_KE,1466
340
345
  toolkit/workspace/precompiled/LM_switch.mpy,sha256=58sjZQokfBYBZlplFQB5-t-3O-2mlsE3NXjvJ5FgD_U,2237
341
- toolkit/workspace/precompiled/LM_system.mpy,sha256=Z5f_YXa9-XFTFOjl4ndE2zTrVETFtF5oG2ht3GqcejA,2831
346
+ toolkit/workspace/precompiled/LM_system.mpy,sha256=6rHe07pXPzNplojqFur3npBnfGkU-ojlIcbd3innp1A,2816
342
347
  toolkit/workspace/precompiled/LM_telegram.mpy,sha256=NhkPz77bvvXXXJhZAsN7WbKn40fzZlHPWQIDWPe4uCs,5080
343
348
  toolkit/workspace/precompiled/LM_tinyrgb.mpy,sha256=qWR-e8DXuzmstxQlyic0YjwFaGiBBBWpf57Wyn1jjFc,1016
344
349
  toolkit/workspace/precompiled/LM_trackball.mpy,sha256=eDVf55dNJXd0Mzg1MZH0talUloPEGFNccE08vwbgn0g,3471
345
350
  toolkit/workspace/precompiled/LM_veml7700.mpy,sha256=NxOvdbrqyyhhwjm2d2dfrJK0dTK3NiP5kQ5GDXjXgq0,1953
346
- toolkit/workspace/precompiled/Logger.mpy,sha256=Nz33LQBUliSguxuy4EV3GWXLd9PFyqzivuNivWdLJ_w,1388
351
+ toolkit/workspace/precompiled/Logger.mpy,sha256=xVHOykBlMALlztUuutWMg2q0-pd-SMePIimI56lU28A,1403
347
352
  toolkit/workspace/precompiled/Network.mpy,sha256=WtpvhGB2bvEe94dAHV40fpEyk-Fi0D6vL1q_m6k4qBg,3274
348
353
  toolkit/workspace/precompiled/Notify.mpy,sha256=ioeDVMh9qBtACWQMASrrhGkSfp1KKUN6d2rt0NpbClo,974
349
354
  toolkit/workspace/precompiled/Scheduler.mpy,sha256=ctCj7FfXj5TchPPxe_9dmnTXWN88egtbAnmJ0N9u_1w,2202
350
355
  toolkit/workspace/precompiled/Server.mpy,sha256=dtSXLYpBcdz0DveB_S6nos46h-m6hwlQ-38G-iVQwKQ,4762
351
- toolkit/workspace/precompiled/Shell.mpy,sha256=tmtwNjJdCoKqrNZfBYW7JN9jt-XS6TEf7BTtApuICDw,4620
352
- toolkit/workspace/precompiled/Tasks.mpy,sha256=RfYvJZwvY1wAOT3CWHGTlE9B8F-nZMmKgTAc3WElF5M,6459
356
+ toolkit/workspace/precompiled/Shell.mpy,sha256=DIApDve_e2dLMaltmzcwHovfPBrsFYY2gEwgX_Qnqy4,4753
357
+ toolkit/workspace/precompiled/Tasks.mpy,sha256=ee740jEMPqmieC1fCJYp3pJM72qIzL_HvOBRHTDwQaY,6469
353
358
  toolkit/workspace/precompiled/Time.mpy,sha256=AZAtFj-l2ERKUpWgQS4gyq_XUx1ddy4ZTTgpRxbWK9M,2773
354
359
  toolkit/workspace/precompiled/Types.mpy,sha256=LssRbPgvsWuR4d2m3R7VMIvsnkVp9nN0ltwaY2wGop8,1401
355
360
  toolkit/workspace/precompiled/Web.mpy,sha256=-YbLZ4LeJtsXY1o2a2V7e3JBlqi9XldMxQjnbl_ps-g,3133
@@ -359,16 +364,15 @@ toolkit/workspace/precompiled/index.html,sha256=cv0hap5bhBoRR_z1KALC3fbjH2rQZY9J
359
364
  toolkit/workspace/precompiled/main.py,sha256=cVlhoWwU9dSKEol0HWPihFAPzrUUvzSGwZNNMrpyfSY,440
360
365
  toolkit/workspace/precompiled/micrOS.mpy,sha256=x20-mxGB7mkvdcyulttyXhjdLvXeyXlpl57yctS3eTA,1129
361
366
  toolkit/workspace/precompiled/micrOSloader.mpy,sha256=Gcznp2z2Zv4N4dHv7PE7d6bNSQPTdvHLeStCCHGNuEg,1747
362
- toolkit/workspace/precompiled/microIO.mpy,sha256=SWYlvjIHgcMsSVCuxWataoqI03T8Aq6u4TzeGU3I3fs,1638
367
+ toolkit/workspace/precompiled/microIO.mpy,sha256=h_dKLRe0GQJAcXPbC5663A-15xJqJwzdSL0E-5jokuw,1674
363
368
  toolkit/workspace/precompiled/reset.mpy,sha256=D-ZwUk-oR8OAg5ERWJXErdPAGbx_3M13hK4IBawhIg0,217
364
369
  toolkit/workspace/precompiled/uapi.js,sha256=fZ0E9-ZndCoUNQq1yJ7yUCiLYxe3p8hzSFnlN2R9roc,2959
365
370
  toolkit/workspace/precompiled/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN6uGqw9LpScDrGGF58c,4581
366
- toolkit/workspace/precompiled/urequests.mpy,sha256=-JDY-DOtJrGdwQo0-P809zZu-cJBRqKH3X4ZHuo38k4,2387
371
+ toolkit/workspace/precompiled/urequests.mpy,sha256=ZMXbz4uwU7h2_1TKFoyLa1CFC7ZRFuDowAtEwt4rtdU,2520
367
372
  toolkit/workspace/precompiled/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
368
373
  toolkit/workspace/precompiled/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
369
374
  toolkit/workspace/precompiled/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
370
- micrOSDevToolKit-2.10.2.dist-info/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
371
- micrOSDevToolKit-2.10.2.dist-info/METADATA,sha256=WM1uEW7xxmdoHqnDNsWP3skrTFhWrfT-S8yQV7LpLO0,55150
372
- micrOSDevToolKit-2.10.2.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
373
- micrOSDevToolKit-2.10.2.dist-info/top_level.txt,sha256=rOGOIXqLBdGZAoDTiLdZ9B_leFB7bMv7YabLwuIc2bc,25
374
- micrOSDevToolKit-2.10.2.dist-info/RECORD,,
375
+ microsdevtoolkit-2.10.6.dist-info/METADATA,sha256=DJG379-H1OaFLVnc5Q05q-vnoTvg0Z9D0Cbcck3RU04,55172
376
+ microsdevtoolkit-2.10.6.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
377
+ microsdevtoolkit-2.10.6.dist-info/top_level.txt,sha256=rOGOIXqLBdGZAoDTiLdZ9B_leFB7bMv7YabLwuIc2bc,25
378
+ microsdevtoolkit-2.10.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (79.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
toolkit/Gateway.py CHANGED
@@ -154,7 +154,7 @@ class Hello(Resource):
154
154
 
155
155
  class SendCmd(Resource):
156
156
  """
157
- http://127.0.0.1:5000/sendcmd/micr240ac4f679e8OS/rgb+toggle
157
+ http://127.0.0.1:5005/sendcmd/micr240ac4f679e8OS/rgb+toggle
158
158
  {
159
159
  "cmd": [
160
160
  "rgb",
@@ -621,11 +621,11 @@ api.add_resource(WebHook, '/webhooks', '/webhooks/<string:payload>', '/webhooks/
621
621
 
622
622
  def gateway(debug=True):
623
623
  global API_URL_CACHE
624
- API_URL_CACHE = f"http://{my_local_ip()}:5000"
624
+ API_URL_CACHE = f"http://{my_local_ip()}:5005"
625
625
  print("\n############### START MICROS GATEWAY ###############")
626
626
  print("# {} #".format(API_URL_CACHE))
627
627
  print("####################################################\n")
628
- app.run(debug=debug, use_reloader=debug, host='0.0.0.0', port=5000) # host='0.0.0.0' automatic, manual: host=my_local_ip()
628
+ app.run(debug=debug, use_reloader=debug, host='0.0.0.0', port=5005) # host='0.0.0.0' automatic, manual: host=my_local_ip()
629
629
 
630
630
 
631
631
  # driver function
@@ -31,12 +31,12 @@ def __mock_sim_dir(path):
31
31
  """
32
32
  micropython sim hack
33
33
  """
34
- if MOCK_SIM:
35
- cwd = getcwd()
34
+ cwd = getcwd()
35
+ cwd = cwd if cwd.endswith(os.sep) else f"{cwd}{os.sep}" # CHECK AND FIX CWD / ENDING
36
+ if MOCK_SIM or "workspace/simulator" not in path:
36
37
  path = f"{cwd}{path}"
37
- print(f"[!!!] [uos.SIM] CWD PATH HACK: {path}")
38
- elif "workspace/simulator" not in path:
39
- path = f"{getcwd()}{path}"
38
+ if MOCK_SIM:
39
+ print(f"[!!!] [uos.SIM][MOCK:{MOCK_SIM}] CWD PATH HACK: {path}")
40
40
  return path
41
41
 
42
42
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  """
4
4
  Generic webhook for socketClient that can invoke LoadModule calls remotely from any device.
5
- Example: http://10.0.1.61:5000/webhooks/generic/TinyDevBoard+system+clock
5
+ Example: http://10.0.1.61:5005/webhooks/generic/TinyDevBoard+system+clock
6
6
  """
7
7
 
8
8
  import sys, os
@@ -3,7 +3,7 @@
3
3
  """
4
4
  Template for webhook creation
5
5
  - replies with basic response message
6
- Example: http://10.0.1.61:5000/webhooks/template
6
+ Example: http://10.0.1.61:5005/webhooks/template
7
7
  """
8
8
 
9
9
  import sys, os
@@ -3,7 +3,7 @@
3
3
  """
4
4
  Template for webhook creation
5
5
  - replies with basic response message
6
- Example: http://10.0.1.61:5000/webhooks/template
6
+ Example: http://10.0.1.61:5005/webhooks/template
7
7
  """
8
8
 
9
9
  import sys, os
Binary file
Binary file