micrOSDevToolKit 2.9.9__py3-none-any.whl → 2.9.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of micrOSDevToolKit might be problematic. Click here for more details.

Files changed (52) hide show
  1. micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json +20 -20
  2. micrOS/source/LM_oled_ui.py +1 -1
  3. micrOS/source/LM_system.py +4 -4
  4. micrOS/source/Notify.py +4 -0
  5. micrOS/source/Server.py +1 -1
  6. micrOS/source/Shell.py +3 -3
  7. micrOS/source/Tasks.py +1 -1
  8. micrOS/source/Time.py +7 -8
  9. micrOS/source/__pycache__/Common.cpython-312.pyc +0 -0
  10. micrOS/source/__pycache__/Logger.cpython-312.pyc +0 -0
  11. micrOS/source/__pycache__/Server.cpython-312.pyc +0 -0
  12. micrOS/source/micrOSloader.py +0 -1
  13. micrOS/source/urequests.py +8 -6
  14. {micrOSDevToolKit-2.9.9.data → micrOSDevToolKit-2.9.10.data}/scripts/devToolKit.py +10 -0
  15. {micrOSDevToolKit-2.9.9.dist-info → micrOSDevToolKit-2.9.10.dist-info}/METADATA +14 -4
  16. {micrOSDevToolKit-2.9.9.dist-info → micrOSDevToolKit-2.9.10.dist-info}/RECORD +50 -46
  17. {micrOSDevToolKit-2.9.9.dist-info → micrOSDevToolKit-2.9.10.dist-info}/WHEEL +1 -1
  18. toolkit/MicrOSDevEnv.py +19 -5
  19. toolkit/WebRepl.py +73 -0
  20. toolkit/dashboard_apps/BackupRestore.py +20 -31
  21. toolkit/dashboard_apps/CCTDemo.py +12 -17
  22. toolkit/dashboard_apps/CCTTest.py +20 -24
  23. toolkit/dashboard_apps/CamStream.py +2 -6
  24. toolkit/dashboard_apps/CatGame.py +14 -16
  25. toolkit/dashboard_apps/Dimmer.py +11 -21
  26. toolkit/dashboard_apps/GetVersion.py +11 -19
  27. toolkit/dashboard_apps/MicrophoneTest.py +1 -6
  28. toolkit/dashboard_apps/NeoEffectsDemo.py +28 -34
  29. toolkit/dashboard_apps/NeopixelTest.py +20 -25
  30. toolkit/dashboard_apps/PresenceTest.py +2 -8
  31. toolkit/dashboard_apps/RGBTest.py +20 -24
  32. toolkit/dashboard_apps/RoboArm.py +24 -32
  33. toolkit/dashboard_apps/SED_test.py +10 -14
  34. toolkit/dashboard_apps/SensorsTest.py +61 -0
  35. toolkit/dashboard_apps/SystemTest.py +151 -77
  36. toolkit/dashboard_apps/Template_app.py +11 -23
  37. toolkit/dashboard_apps/_app_base.py +34 -0
  38. toolkit/dashboard_apps/uLightDemo.py +15 -24
  39. toolkit/lib/micrOSClient.py +11 -9
  40. toolkit/micrOSlint.py +3 -3
  41. toolkit/socketClient.py +0 -1
  42. toolkit/workspace/precompiled/LM_oled_ui.mpy +0 -0
  43. toolkit/workspace/precompiled/LM_system.mpy +0 -0
  44. toolkit/workspace/precompiled/Notify.mpy +0 -0
  45. toolkit/workspace/precompiled/Shell.mpy +0 -0
  46. toolkit/workspace/precompiled/Time.mpy +0 -0
  47. toolkit/workspace/precompiled/micrOSloader.mpy +0 -0
  48. toolkit/workspace/precompiled/urequests.mpy +0 -0
  49. toolkit/dashboard_apps/AirQualityBME280.py +0 -36
  50. toolkit/dashboard_apps/AirQualityDHT22_CO2.py +0 -36
  51. {micrOSDevToolKit-2.9.9.dist-info → micrOSDevToolKit-2.9.10.dist-info}/LICENSE +0 -0
  52. {micrOSDevToolKit-2.9.9.dist-info → micrOSDevToolKit-2.9.10.dist-info}/top_level.txt +0 -0
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "files": {
3
3
  "Time.py": [
4
- 9.17,
4
+ 9.16,
5
5
  7
6
6
  ],
7
7
  "micrOSloader.py": [
8
- 8.0,
8
+ 7.33,
9
9
  1
10
10
  ],
11
11
  "Hooks.py": [
@@ -33,11 +33,11 @@
33
33
  0
34
34
  ],
35
35
  "Shell.py": [
36
- 9.33,
36
+ 9.11,
37
37
  1
38
38
  ],
39
39
  "Notify.py": [
40
- 8.38,
40
+ 8.46,
41
41
  3
42
42
  ],
43
43
  "Types.py": [
@@ -89,7 +89,7 @@
89
89
  0
90
90
  ],
91
91
  "urequests.py": [
92
- 9.04,
92
+ 8.99,
93
93
  5
94
94
  ],
95
95
  "LM_roboarm.py": [
@@ -109,7 +109,7 @@
109
109
  0
110
110
  ],
111
111
  "LM_oled_ui.py": [
112
- 9.07,
112
+ 9.02,
113
113
  0
114
114
  ],
115
115
  "LM_system.py": [
@@ -129,7 +129,7 @@
129
129
  0
130
130
  ],
131
131
  "LM_oled.py": [
132
- 9.23,
132
+ 9.09,
133
133
  4
134
134
  ],
135
135
  "LM_tinyrgb.py": [
@@ -165,7 +165,7 @@
165
165
  0
166
166
  ],
167
167
  "LM_oled_sh1106.py": [
168
- 8.84,
168
+ 8.54,
169
169
  2
170
170
  ],
171
171
  "LM_haptic.py": [
@@ -177,7 +177,7 @@
177
177
  0
178
178
  ],
179
179
  "LM_neopixel.py": [
180
- 7.54,
180
+ 7.43,
181
181
  2
182
182
  ],
183
183
  "LM_cct.py": [
@@ -229,11 +229,11 @@
229
229
  0
230
230
  ],
231
231
  "LM_sound_event.py": [
232
- 8.49,
232
+ 8.46,
233
233
  0
234
234
  ],
235
235
  "LM_oledui.py": [
236
- 8.52,
236
+ 8.16,
237
237
  0
238
238
  ],
239
239
  "LM_espnow.py": [
@@ -245,11 +245,11 @@
245
245
  0
246
246
  ],
247
247
  "LM_OV2640.py": [
248
- 9.19,
248
+ 9.11,
249
249
  0
250
250
  ],
251
251
  "LM_rgb.py": [
252
- 8.82,
252
+ 8.75,
253
253
  1
254
254
  ],
255
255
  "LM_distance.py": [
@@ -273,7 +273,7 @@
273
273
  4
274
274
  ],
275
275
  "LM_trackball.py": [
276
- 8.43,
276
+ 8.31,
277
277
  1
278
278
  ],
279
279
  "LM_dashboard_be.py": [
@@ -305,7 +305,7 @@
305
305
  2
306
306
  ],
307
307
  "LM_i2s_mic.py": [
308
- 8.37,
308
+ 8.3,
309
309
  2
310
310
  ],
311
311
  "LM_sdcard.py": [
@@ -315,7 +315,7 @@
315
315
  },
316
316
  "summary": {
317
317
  "core": [
318
- 3363,
318
+ 3367,
319
319
  23
320
320
  ],
321
321
  "load": [
@@ -328,10 +328,10 @@
328
328
  ],
329
329
  "load_dep": [
330
330
  true,
331
- 6
331
+ 5
332
332
  ],
333
- "core_score": 9.13,
334
- "load_score": 8.23,
335
- "version": "2.9.8-0"
333
+ "core_score": 9.09,
334
+ "load_score": 8.21,
335
+ "version": "2.9.9-0"
336
336
  }
337
337
  }
@@ -159,7 +159,7 @@ class PageUI:
159
159
  if pin:
160
160
  pin_obj = Pin(pin, Pin.IN, Pin.PULL_DOWN)
161
161
  # [IRQ] - event type setup
162
- pin_obj.irq(trigger=Pin.IRQ_RISING, handler=callback)
162
+ pin_obj.irq(trigger=Pin.IRQ_FALLING, handler=callback)
163
163
 
164
164
  _set("js_right", lambda pin: self.control('next'))
165
165
  _set("js_left", lambda pin: self.control('prev'))
@@ -124,18 +124,18 @@ def sun(refresh=False):
124
124
  return Sun.TIME
125
125
 
126
126
 
127
- def setclock(year, month, mday, hour, min, sec):
127
+ def setclock(year, month, mday, hour, minute, sec):
128
128
  """
129
129
  Set Localtime + RTC Clock manually
130
130
  :param year
131
131
  :param month
132
132
  :param mday
133
133
  :param hour
134
- :param min
134
+ :param minute
135
135
  :param sec
136
136
  :return: localtime
137
137
  """
138
- set_time(year, month, mday, hour, min, sec)
138
+ set_time(year, month, mday, hour, minute, sec)
139
139
  return localtime()
140
140
 
141
141
 
@@ -242,7 +242,7 @@ def help(widgets=False):
242
242
  (widgets=True) list of widget json for UI generation
243
243
  """
244
244
  return resolve(('info', 'TEXTBOX top', 'gclean', 'heartbeat', 'clock',
245
- 'setclock year month mday hour min sec',
245
+ 'setclock year month mday hour minute sec',
246
246
  'ntp', 'rssi', 'list_stations', 'pinmap key="dhtpin"/None', 'alarms clean=False',
247
247
  'notifications enable=<None,True,False>',
248
248
  'sun refresh=False', 'ifconfig', 'memory_usage',
micrOS/source/Notify.py CHANGED
@@ -32,6 +32,10 @@ class Notify:
32
32
  return True
33
33
  raise Exception("Subscribe error, Notify parent missing")
34
34
 
35
+ @staticmethod
36
+ def send_msg(text, reply_to=None, chat_id=None):
37
+ raise NotImplementedError("Child class must implement send_msg method")
38
+
35
39
  @staticmethod
36
40
  def message(text, reply_to=None, chat_id=None):
37
41
  """
micrOS/source/Server.py CHANGED
@@ -114,7 +114,7 @@ class Client:
114
114
  console_write("[Client] NoCon: response>dev/nul")
115
115
 
116
116
  def send(self, response):
117
- # Implement in child class - synchronous send (all) method
117
+ # Optional - Implement in child class - synchronous send (all) method
118
118
  pass
119
119
 
120
120
  async def close(self):
micrOS/source/Shell.py CHANGED
@@ -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.9.8-0'
28
+ MICROS_VERSION = '2.9.9-0'
29
29
 
30
30
  def __init__(self):
31
31
  """
@@ -46,8 +46,8 @@ class Shell:
46
46
  errlog_add(f"[ERR] micrOS version export failed (config): {e}")
47
47
 
48
48
  async def a_send(self, msg):
49
- """ Must be defined by parent class... """
50
- pass
49
+ """ Must be defined by child class... """
50
+ raise NotImplementedError("Child class must implement a_send method")
51
51
 
52
52
  def reset(self):
53
53
  """Reset shell state"""
micrOS/source/Tasks.py CHANGED
@@ -415,7 +415,7 @@ class Manager:
415
415
  #################################################################
416
416
  def exec_builtins(func):
417
417
  """
418
- Module execution built-in commands and modifiers
418
+ [Decorator] Module execution built-in commands and modifiers
419
419
  - modules - show active modules list
420
420
  - task kill ... - task termination
421
421
  show ... - task output dump
micrOS/source/Time.py CHANGED
@@ -24,17 +24,17 @@ class Sun:
24
24
  BOOTIME = None # Initialize BOOTIME: Not SUN, but for system uptime
25
25
 
26
26
 
27
- def set_time(year, month, mday, hour, min, sec):
27
+ def set_time(year, month, mday, hour, minute, sec):
28
28
  """
29
29
  Set Localtime + RTC Clock manually + update BOOTIME/uptime
30
30
  https://docs.micropython.org/en/latest/library/machine.RTC.html
31
31
  """
32
32
  # Make time from tuple to sec
33
- time_sec = mktime((year, month, mday, hour, min, sec, 0, 0))
33
+ time_sec = mktime((year, month, mday, hour, minute, sec, 0, 0))
34
34
  # Set localtime
35
35
  localtime(time_sec)
36
36
  # Set RTC
37
- RTC().datetime((year, month, mday, 0, hour, min, sec, 0))
37
+ RTC().datetime((year, month, mday, 0, hour, minute, sec, 0))
38
38
  # (re)set uptime when settime - normally at boot time
39
39
  if Sun.BOOTIME is None:
40
40
  Sun.BOOTIME = time()
@@ -95,19 +95,18 @@ def __sun_cache(mode):
95
95
  """
96
96
  if mode == 's':
97
97
  # SAVE CACHE
98
- temp = {}
99
98
  try:
100
99
  with open('sun.pds', 'w') as f:
101
- for k, v in Sun.TIME.items():
102
- temp[k] = tuple([str(t) for t in v])
103
- f.write(';'.join([f'{k}:{"-".join(v)}' for k, v in temp.items()]))
100
+ cache = {k:tuple([str(t) for t in v]) for k, v in Sun.TIME.items()}
101
+ f.write(';'.join([f'{k}:{"-".join(v)}' for k, v in cache.items()]))
104
102
  except:
105
103
  errlog_add("[ERR] Cannot write sun cache")
106
104
  return
107
105
  try:
108
106
  # RESTORE CACHE
109
107
  with open('sun.pds', 'r') as f:
110
- buff = {data.split(':')[0]: data.split(':')[1].split('-') for data in f.read().strip().split(';')}
108
+ buff = {data.split(':')[0]: data.split(':')[1].split('-')
109
+ for data in f.read().strip().split(';')}
111
110
  for k, v in buff.items():
112
111
  Sun.TIME[k] = tuple([int(e) for e in v])
113
112
  except:
@@ -79,7 +79,6 @@ def __recovery_mode():
79
79
  reset()
80
80
 
81
81
 
82
-
83
82
  def __auto_restart_event():
84
83
  """
85
84
  Poll .if_mode value main loop in case of webrepl (background) mode:
@@ -116,7 +116,7 @@ def _parse_response(response):
116
116
  # micropython HTTP request #
117
117
  #############################################
118
118
 
119
- def request(method, url, data=None, json=None, headers=None, sock_size=256, jsonify=False):
119
+ def request(method:str, url:str, data:str=None, json=None, headers:dict=None, sock_size=256, jsonify=False):
120
120
  """
121
121
  Micropython syncronous HTTP request function for REST API handling
122
122
  :param method: GET/POST
@@ -181,7 +181,7 @@ def request(method, url, data=None, json=None, headers=None, sock_size=256, json
181
181
  # async micropython HTTP request #
182
182
  #############################################
183
183
 
184
- async def arequest(method, url, data=None, json=None, headers=None, sock_size=256, jsonify=False):
184
+ async def arequest(method:str, url:str, data:str=None, json=None, headers:dict=None, sock_size=256, jsonify=False):
185
185
  """
186
186
  Micropython asynchronous HTTP request function for REST API handling
187
187
  :param method: GET/POST
@@ -239,14 +239,16 @@ async def arequest(method, url, data=None, json=None, headers=None, sock_size=25
239
239
  # Implement http get/post functions #
240
240
  #############################################
241
241
 
242
- def get(url, headers={}, sock_size=256, jsonify=False):
242
+ def get(url:str, headers:dict=None, sock_size=256, jsonify=False):
243
243
  """
244
244
  GENERIC HTTP GET FUNCTION
245
245
  """
246
+ if headers is None:
247
+ headers = {}
246
248
  return request('GET', url, headers=headers, sock_size=sock_size, jsonify=jsonify)
247
249
 
248
250
 
249
- def post(url, data=None, json=None, headers={}, sock_size=256, jsonify=False):
251
+ def post(url:str, data=None, json=None, headers:dict=None, sock_size=256, jsonify=False):
250
252
  """
251
253
  GENERIC HTTP POST FUNCTION
252
254
  :param data: string body (handle bare string as data for POST method)
@@ -255,14 +257,14 @@ def post(url, data=None, json=None, headers={}, sock_size=256, jsonify=False):
255
257
  return request('POST', url, data=data, json=json, headers=headers, sock_size=sock_size, jsonify=jsonify)
256
258
 
257
259
 
258
- async def aget(url, headers={}, sock_size=256, jsonify=False):
260
+ async def aget(url:str, headers:dict=None, sock_size=256, jsonify=False):
259
261
  """
260
262
  GENERIC ASYNC HTTP GET FUNCTION
261
263
  """
262
264
  return await arequest('GET', url, headers=headers, sock_size=sock_size, jsonify=jsonify)
263
265
 
264
266
 
265
- async def apost(url, data=None, json=None, headers={}, sock_size=256, jsonify=False):
267
+ async def apost(url, data=None, json=None, headers:dict=None, sock_size=256, jsonify=False):
266
268
  """
267
269
  GENERIC ASYNC HTTP POST FUNCTION
268
270
  :param data: string body (handle bare string as data for POST method)
@@ -35,6 +35,11 @@ try:
35
35
  except Exception as e:
36
36
  print(f"Optional dependency missing in macroScript: {e}")
37
37
  macroScript = None
38
+ try:
39
+ from toolkit.WebRepl import open_webrepl
40
+ except Exception as e:
41
+ print(f"Optional dependency missing in WebRepl: {e}")
42
+ open_webrepl = None
38
43
 
39
44
 
40
45
  def arg_parse():
@@ -70,6 +75,7 @@ def arg_parse():
70
75
  dev_group.add_argument("-gw", "--gateway", action="store_true", help="Start micrOS Gateway rest-api server, Env. vars: API_AUTH='username:password' (optional), GATEWAYIP needed for container deployment only.")
71
76
  dev_group.add_argument("-v", "--version", action="store_true", help="Get micrOS version - repo + connected device.")
72
77
  dev_group.add_argument("-lint", "--linter", action="store_true", help="Run micrOS system linter (pylint+)")
78
+ dev_group.add_argument("-webrepl", "--open_webrepl", action="store_true", help="(beta) Open webrepl in default browser, micropython repl + file transfers (built-in)")
73
79
  dev_group.add_argument("--light", action="store_true", help="Skip optional dependency deployments (low level param: add this as first argument always)")
74
80
 
75
81
  toolkit_group = parser.add_argument_group("Toolkit development")
@@ -293,6 +299,10 @@ if __name__ == "__main__":
293
299
  if micrOSlint is not None:
294
300
  sys.exit(micrOSlint.main(verbose=False))
295
301
 
302
+ if cmd_args.open_webrepl:
303
+ if open_webrepl is not None:
304
+ open_webrepl()
305
+
296
306
  if cmd_args.macro:
297
307
  if macroScript is None:
298
308
  print("macroScript not available :(")
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: micrOSDevToolKit
3
- Version: 2.9.9
3
+ Version: 2.9.10
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,12 +19,21 @@ 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: project-url
35
+ Dynamic: requires-dist
36
+ Dynamic: summary
28
37
 
29
38
  # ![LOGO](./media/logo_mini.png?raw=true) micrOS
30
39
 
@@ -78,6 +87,7 @@ Access rest api over browser: `http://<nodename>.local`
78
87
  2. micrOS Installer [link](https://github.com/BxNxM/micrOS/#installing-micros-with-devtoolkit-esp32-and-more)
79
88
  3. micrOS Tutorials [link](https://github.com/BxNxM/micrOS/#micros-video-tutorials)
80
89
  4. micrOS System and features [link](https://github.com/BxNxM/micrOS/#micros-framework-features)
90
+ 5. Built-in app modules: [link](https://htmlpreview.github.io/?https://github.com/BxNxM/micrOS/blob/master/micrOS/client/sfuncman/sfuncman.html)
81
91
  5. Pin mapping - GPIO [link](https://github.com/BxNxM/micrOS/#device-pinouts-for-wiring)
82
92
  6. micrOS Node configuration [link](https://github.com/BxNxM/micrOS/#micros-node-configuration-parameters-with-description)
83
93
  7. micrOS create custom Load Modules: [link](./APPLICATION_GUIDE.md)
@@ -370,7 +380,7 @@ LogicalPin lookup tables:
370
380
  - [raspberryPicoW](./micrOS/source/IO_rp2.py) - reset needed after ota update (webrepl limitation)
371
381
  - `IO_*.py` [etc.](./micrOS/source)
372
382
 
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`
383
+ > 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
384
 
375
385
  ![MicrOStinyPicopinout](./media/NodeMCUPinOutTinyPico.png?raw=true)
376
386
 
@@ -32,7 +32,7 @@ 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=-e7MC8wjBw9eDIDJbMSFLfQO6Xw_jZGIattaJZ25a1A,5759
35
+ micrOS/release_info/micrOS_ReleaseInfo/system_analysis_sum.json,sha256=8-NZSImslog5jRt31IYIPyCUzYyomKWmp2NI_sEILsE,5759
36
36
  micrOS/source/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
37
37
  micrOS/source/Common.py,sha256=PAdtseGY6QxUM-5elOAcApUv8AwGQ_smsYex0FeV5w8,7937
38
38
  micrOS/source/Config.py,sha256=E3OTMRI1_T94GMADcvG7MKiuGsKsnbLn17KXHcjhqXM,8795
@@ -81,7 +81,7 @@ micrOS/source/LM_neoeffects.py,sha256=kfReEz9pTB0GRSat6--86PZtjfiT_S9ilfb-igt-bb
81
81
  micrOS/source/LM_neopixel.py,sha256=4TWwlmW6bnnmS76fVZVri6bI2zPXbiPJ9spEtA7NTjE,13260
82
82
  micrOS/source/LM_oled.py,sha256=ZwLndxWuY1Ii5d06YEf9Z_jxmTyoOYRL-BO3VhJ0b14,9903
83
83
  micrOS/source/LM_oled_sh1106.py,sha256=av2_ftFHvfAIxcPYHbrOMQNZgM1Go6MQzBu5cIeVK4w,11723
84
- micrOS/source/LM_oled_ui.py,sha256=Mj6ZARI8sPKLAgXodeOPNMZkAkjdB9wtEspUWPJKqok,21610
84
+ micrOS/source/LM_oled_ui.py,sha256=rs-YmYdJQy3AVokxF_oBrkjFFGGhRdnxKoHjmO-x158,21611
85
85
  micrOS/source/LM_oledui.py,sha256=hYt_3hWPdrZBOreVdupJxHhk9-xHkmuiqmEIA08mB2M,35407
86
86
  micrOS/source/LM_pacman.py,sha256=k_R0X0YGkRc6-NoF5fvqng7lD5RNmV-rsVa-uBcrleE,8227
87
87
  micrOS/source/LM_pet_feeder.py,sha256=ILrozpnq2_ckkVDUROysMWRksKjflsKpIHvgHdvn-JA,2572
@@ -99,70 +99,74 @@ micrOS/source/LM_servo.py,sha256=83YPK5qlHuEOo3jTn5wXRsvPzzJPp0ZtCW-BhHHMBK0,348
99
99
  micrOS/source/LM_sound_event.py,sha256=9BZnrT8Jc2HL-28yVZE5sdeTa8Biq1qkQiTJsTw8y08,27500
100
100
  micrOS/source/LM_stepper.py,sha256=CkI4QBe2KJ7E5DKL7Z23oAMPDUFlUt7btAvqrn4H6Kg,4278
101
101
  micrOS/source/LM_switch.py,sha256=uxw2opz41OpBiBfb5ioojsUzPsETnkinkDXI4NRHMZs,7819
102
- micrOS/source/LM_system.py,sha256=4roohSqd9VefNRx_BWBJOVkVuv4J5nK1fsqIZmwhkYw,6529
102
+ micrOS/source/LM_system.py,sha256=A3k2ToZmk1kSSnrcq15R5HSDjupTL0LSChO4go9r3BE,6541
103
103
  micrOS/source/LM_telegram.py,sha256=n5mZeompavjfFXyCUiHYmmeusY-rJRuVbWOb9tNOZ4E,14848
104
104
  micrOS/source/LM_tinyrgb.py,sha256=kChL607HPTl3Z2hYN2XnzXXfZ6omdP78PQutHdbdfCo,3031
105
105
  micrOS/source/LM_trackball.py,sha256=N2hhy3wuk55-ja4dmENpfthBolIEj28d2pzcjel5OKg,9716
106
106
  micrOS/source/LM_veml7700.py,sha256=3eb6-HuMA_tYBA0cJHUsZzOBriHacIpVSrK-1iB3_pY,5762
107
107
  micrOS/source/Logger.py,sha256=CtmjmQc9hzCystEzY0AtopjRnSy5T6AdWwpj2KTmGWg,3942
108
108
  micrOS/source/Network.py,sha256=wLhAPiRyi376TKJA7tzCQidDBHq-AbZGGp7JabHIyl8,9417
109
- micrOS/source/Notify.py,sha256=OhjdDK3Gq9lPlbuM7sV36ZDUKnRg2-gTlAH8KbInLfs,2493
109
+ micrOS/source/Notify.py,sha256=jVf7wg7b7ehuh12A8tlYz5ZU00NQEgpVuTK0lN6cNcY,2645
110
110
  micrOS/source/Scheduler.py,sha256=K6fw807UJnOmbfzgeJQGzGbTL4s2sTIB120ZcS5qrLs,9648
111
- micrOS/source/Server.py,sha256=P8cGFbh0cJU-raUrFMSLUgMzKs9OddKiIrcBWQyOQt8,16234
112
- micrOS/source/Shell.py,sha256=Q3EMngNIm4997kP5stygzxfJ2-v_Zka2Hxf82c12WvA,12389
113
- micrOS/source/Tasks.py,sha256=YMYt86TWnUBWa8j1DQjbOavYpktCizzfZXaKXrb6Fmo,22498
114
- micrOS/source/Time.py,sha256=96XMJjHCPwQ2qNuBD2Un7FXxzXZNbV1xCQn-RujsggU,6351
111
+ micrOS/source/Server.py,sha256=HMkHWofMmtpTQtKiGy_Gh6R2xHy4Vpud_aT2zhC4l58,16245
112
+ micrOS/source/Shell.py,sha256=a8nIVnmoGgkq-7i3jCOrQFPQagxJWiUHgXd1I9pmaG8,12453
113
+ micrOS/source/Tasks.py,sha256=qAcniMejAHwpRK1cq-jcN4vQ1AotU0YqmH7Y5_pQy70,22510
114
+ micrOS/source/Time.py,sha256=vTl8-sL-iO4l9eZMVCHTJ6oUwfhPiB1VHXTrrg-l59Y,6344
115
115
  micrOS/source/Types.py,sha256=3O_Vb1jN92RPtvgbV8ui6_iFzDOD-BUzVXlPB7PgmM4,3507
116
116
  micrOS/source/Web.py,sha256=BAp7mFYzJwmzUGFc6O7DZDDKKPGjgW5EY5lRcfx-SU0,8893
117
117
  micrOS/source/dashboard.html,sha256=xBZOZ8AMO55QheuZ41Sl0Arvb44qnnai9D67A8YxlVE,2641
118
118
  micrOS/source/index.html,sha256=cv0hap5bhBoRR_z1KALC3fbjH2rQZY9JJPfF-dxVclw,1656
119
119
  micrOS/source/main.py,sha256=cVlhoWwU9dSKEol0HWPihFAPzrUUvzSGwZNNMrpyfSY,440
120
120
  micrOS/source/micrOS.py,sha256=3PQR7_xNLsI7KJtPJQUudIgpL2JIe7pctCjXH-bwFtA,2556
121
- micrOS/source/micrOSloader.py,sha256=mJjaysDm-60afaICr-TfPLqMT-3r_azGxE1ShYrDKeQ,4795
121
+ micrOS/source/micrOSloader.py,sha256=IgiQgUm97raQB0yHxUjQtvXSjsCdA_1OwSkRwwNLDzU,4794
122
122
  micrOS/source/microIO.py,sha256=pFRvRlEK9OulVmdXOTbcnHHhSKt-JuEpjUr9GzY-rUQ,7087
123
123
  micrOS/source/reset.py,sha256=i7wsPkOXE7Mm0xOiw1CjqCvCdNjBvYswn9CRDvE2VbE,248
124
124
  micrOS/source/uapi.js,sha256=fZ0E9-ZndCoUNQq1yJ7yUCiLYxe3p8hzSFnlN2R9roc,2959
125
125
  micrOS/source/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN6uGqw9LpScDrGGF58c,4581
126
- micrOS/source/urequests.py,sha256=ZoDhQ76AzqfLCULkG-1nHTwmOjDn37UzguztzuYbJpU,8970
126
+ micrOS/source/urequests.py,sha256=p7_8X9SrWk4wXhAZKpVPd-PZBHHToX8b1gwhFEi96FM,9089
127
127
  micrOS/source/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
128
128
  micrOS/source/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
129
129
  micrOS/source/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
130
- micrOSDevToolKit-2.9.9.data/scripts/devToolKit.py,sha256=WuPc3esCEtw9lN20nEsNUh4EaZEnb62GAtxDOFbVugA,10771
130
+ micrOS/source/__pycache__/Common.cpython-312.pyc,sha256=qugnjE4Q1mMrR3VJaMhq71hsOoWLuft2lwv4O8Bo6ts,10366
131
+ micrOS/source/__pycache__/Logger.cpython-312.pyc,sha256=CCdkMRG0lBy7nVsc4DHwdRK0Ap0Mu9yB5fa_Hxx-RHY,5075
132
+ micrOS/source/__pycache__/Server.cpython-312.pyc,sha256=xy1ImeXPtGhtYlAWpuWaxLmJO2nLVGdefOuqltABR9k,20615
133
+ micrOSDevToolKit-2.9.10.data/scripts/devToolKit.py,sha256=4GutIOErF1ny0HSNWQZzEneZdUWhSdqKPBjpRFTr5do,11192
131
134
  toolkit/DevEnvCompile.py,sha256=H19-60ZpHzP30C-wqR5QTzMDHHpWrTk0Uzh--TZHxvw,12148
132
135
  toolkit/DevEnvOTA.py,sha256=OkEtO5cpym-kEgGpE3TQbyZ-nQOzZpGzbFdbgCibe7I,25356
133
136
  toolkit/DevEnvUSB.py,sha256=G-Ram-OR27flvVhul8J_ObiMY07Wjvom6Prc4dTfkmo,34108
134
137
  toolkit/Gateway.py,sha256=OSsJYeAmFhNnb1uu2bjLvZzE3A32O7lza8-NxlGr1DQ,25335
135
138
  toolkit/LM_to_compile.dat,sha256=TmcSZcPNVtJKWdyMxY1YtHPnqbD6zcI7B7FISbr6as4,579
136
- toolkit/MicrOSDevEnv.py,sha256=XqR7ZTPp-M6s36mH7-slwt_gk2ybqd0daX9qOrBqJMw,12922
139
+ toolkit/MicrOSDevEnv.py,sha256=xMsfbImyPAkiRh8wz1EYyWSWX8FvJIrGjwjjRC3q7d8,13562
140
+ toolkit/WebRepl.py,sha256=805SJGoflJztyFR4DFxP80KVvNEeJfqZxlYeA3uD680,2696
137
141
  toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
142
  toolkit/img_stream.html,sha256=ZGyrUgpi-JhMl4euS-TTjwwGrg66a2pGUQCopWiveds,5135
139
143
  toolkit/index.html,sha256=agTgT1d4FH8l2h47Hfb4Lv061BW9shsCAgq1abO5hlI,10998
140
144
  toolkit/micrOSdashboard.py,sha256=SOBzGU1b-NIn40GMd2gE01Fuo8HZP5d1XyVG24RkPeA,54433
141
- toolkit/micrOSlint.py,sha256=8Oi6y9_3E0R6NZRTI5EpX_Z_9Y3AW_PuCYume-7UsDc,25105
142
- toolkit/socketClient.py,sha256=fUx5Wuy76sboIwYxKsY52Si6F2G7q06iVwb3pTwnXvI,18624
143
- toolkit/dashboard_apps/AirQualityBME280.py,sha256=ufYAn_eFpCIcNSQUW6AGQN6Uh_5A3xVqSyoWegUNBuY,747
144
- toolkit/dashboard_apps/AirQualityDHT22_CO2.py,sha256=TG8Wkx7WOaGM1rpqD6t2rKFES0aqdCJvK-f5I5IK3a4,749
145
- toolkit/dashboard_apps/BackupRestore.py,sha256=ZS8Dj3FZayioyDFkeVrT7G1jFmqw32uGBN_l9bnnWy0,6151
146
- toolkit/dashboard_apps/CCTDemo.py,sha256=jQa6BOJnLMXquN_8zz2G5r-zKSGlqi1FTH3ig59X4tA,1278
147
- toolkit/dashboard_apps/CCTTest.py,sha256=IOJXLEgP_qw6YYmWVayohrzY8h5ZXOgn4W334ZCyGH4,3798
148
- toolkit/dashboard_apps/CamStream.py,sha256=GNQJvKrdAPem0Qu9QMffofxgRcBviraV-RlAT8qihaU,402
149
- toolkit/dashboard_apps/CatGame.py,sha256=nP1zGIHTyQGHemQ5O5fZL2xfGINxfp_ZiFdP5KORHPk,1487
150
- toolkit/dashboard_apps/Dimmer.py,sha256=jZnuCB1TI2TghiGwyEQRY3GkYWpEdaHbOhglLFtIeeM,937
151
- toolkit/dashboard_apps/GetVersion.py,sha256=q02pZ0Yr49LI7E8xieGZ0kghTQAIDFvPingrCX1rTWU,698
152
- toolkit/dashboard_apps/MicrophoneTest.py,sha256=FyYzRkD2PormqVP29xxnmDvp6lHgxFiXIiYgqTur6ek,417
153
- toolkit/dashboard_apps/NeoEffectsDemo.py,sha256=Eh5IK8iB1Gi-SOXqGHkT5jgDchCqhE3mB6Evm1gVcz4,2409
154
- toolkit/dashboard_apps/NeopixelTest.py,sha256=ZwIh6UTMNHmt7FvVa0-p6ywxWAlbVzoRToNESAdqPqI,3938
155
- toolkit/dashboard_apps/PresenceTest.py,sha256=MnWjqh3W3qAR9pKdjrOfx74numQw6-acrRzD1c-sDyQ,412
156
- toolkit/dashboard_apps/RGBTest.py,sha256=x9ehV6EGH2B4syKGEQrZQbMy1pBsB1M6in8idJ73Jrw,3920
157
- toolkit/dashboard_apps/RoboArm.py,sha256=STFIYYy0Li6gLdJx7eu3FZOucF_f5jupHVNFzU-Ta-Q,2084
158
- toolkit/dashboard_apps/SED_test.py,sha256=ASVRcoVQiS80tvjQHBnXd69aAioJ4lt_UnL1KAy01sM,2782
159
- toolkit/dashboard_apps/SystemTest.py,sha256=vnA24QbmW6hO34xHKECKjEiX1b1yGAenHEWXCdilRFw,21910
160
- toolkit/dashboard_apps/Template_app.py,sha256=fKF43E-XqibavvjUrCQzG-kMSTCe-sb3ckbLwDgGuTc,1002
145
+ toolkit/micrOSlint.py,sha256=HEv6q32Iy5FHx3tn_yA-iMJEeElOVNJIVN51sshv1go,25142
146
+ toolkit/socketClient.py,sha256=aDKQl_I422KFoy0RcjPBIcHXgrBPwLRn9MpxuXEtUF8,18610
147
+ toolkit/dashboard_apps/BackupRestore.py,sha256=udhuFpCawO0mwyiN4vFMfV8wONqHnUjYvL0udJzkq44,5897
148
+ toolkit/dashboard_apps/CCTDemo.py,sha256=oV7k6sxepOxEa7tBNcuK5IHgKnv01sIQRPvUljic8NI,1125
149
+ toolkit/dashboard_apps/CCTTest.py,sha256=saU4L8gOst31bno44vlwaeSzqrIBppW2DrZf2KV7_4o,3641
150
+ toolkit/dashboard_apps/CamStream.py,sha256=U4wvP0p-5V9mUrC-w_Heg41g5f1I4s6zXvgETRhMras,325
151
+ toolkit/dashboard_apps/CatGame.py,sha256=SC6wihVYHvoN6Q6-HCc7vqCNFPP0_rjWbAgVeQib3Po,1414
152
+ toolkit/dashboard_apps/Dimmer.py,sha256=tyOC-m7GTWm3Jl7vyxHUOBrO4Dt6arDLr34uryH2UvI,765
153
+ toolkit/dashboard_apps/GetVersion.py,sha256=Tv0IihJPGVBb83Y8NH0VNs6QrKFf1BvLjgxalqvdlWw,506
154
+ toolkit/dashboard_apps/MicrophoneTest.py,sha256=eERgltLZekNewYEcCGI7TjvbDYJC8tuzV_NoEHNz-kI,329
155
+ toolkit/dashboard_apps/NeoEffectsDemo.py,sha256=SA3uPRpUX2KF7OEh_9E5cLay9d5NG1JWR9W6byIt5uo,1923
156
+ toolkit/dashboard_apps/NeopixelTest.py,sha256=ht1rZrI4GIE6pUYz7uoncGktMKsaPBGG9Ic_bj3Bo0o,3780
157
+ toolkit/dashboard_apps/PresenceTest.py,sha256=W1hAJmDP5vkXL_Bqq1HSf4RBSRJKHea9KOkHcZQ5rGU,333
158
+ toolkit/dashboard_apps/RGBTest.py,sha256=QIky1Ts87h52VS9vHs3rYoEYvwFX02BlJxzK-uEuKHc,3763
159
+ toolkit/dashboard_apps/RoboArm.py,sha256=fqsBFTLEKXLyuZtZhbsNMNLCVtJw3gHWE-37EzjRttw,1814
160
+ toolkit/dashboard_apps/SED_test.py,sha256=hQG8F2isZvCEsb0EvUdvcowLtJ86vrhLMOvpe9EPcJM,2703
161
+ toolkit/dashboard_apps/SensorsTest.py,sha256=h6Sqz9HzjUawKuvxBPMltgWAycIXUUqlLANZqlF030M,1472
162
+ toolkit/dashboard_apps/SystemTest.py,sha256=NaqTUWA5ub_8dHZQBrcO1n7nU95aPKVIjEn8nbaa2mI,25335
163
+ toolkit/dashboard_apps/Template_app.py,sha256=1OLO-xA6qNKyDCj-J7nHkA3Eis4ZKnHfhMcaSqHNX4A,758
161
164
  toolkit/dashboard_apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
+ toolkit/dashboard_apps/_app_base.py,sha256=wNurhv7AT2imsiVO3rkwPlRkss-2UQU9KsRoXjeb7rk,1007
162
166
  toolkit/dashboard_apps/_capture.py,sha256=75aS8ajhEYWNqoG2DwQgqJyArMouGHZNN-0mo1RH9bU,3076
163
167
  toolkit/dashboard_apps/_micPlotting.py,sha256=zYXhyYKyyA_13ZQybccO4a6t8uyaFJNxlhZfUD6nE90,6394
164
168
  toolkit/dashboard_apps/_presencePlotting.py,sha256=cHWR_4YqbNLB6d4mmHjGCYb3Dg5rqWIyu2lpnz0l-Hs,3737
165
- toolkit/dashboard_apps/uLightDemo.py,sha256=HDi4GyN1VN4Lo9TYG_SFBm4TEd921H6SaDE8_pjR_7s,3380
169
+ toolkit/dashboard_apps/uLightDemo.py,sha256=Q8PL56coysM71qV9SCU05yTyCsAMhtzDSjVeg_CkBtc,3163
166
170
  toolkit/lib/LocalMachine.py,sha256=m5xaWRx1PumKFLQ5_O8vVxC4NTclF1h9J3__pK8N-C4,18734
167
171
  toolkit/lib/SafeInput.py,sha256=gMXsMalPcFCwlN6niJlG2twOHfoGsEgHL9-Uh2YQJHE,855
168
172
  toolkit/lib/SearchDevices.py,sha256=1nnJDwo_U5cCN2xsdNUT6EQqdt2fW-qAWXWzyzXzyyc,5813
@@ -171,7 +175,7 @@ toolkit/lib/TerminalColors.py,sha256=Ly_8o9-eBmka1dqA2M3DBlcd1zvCCO2K_BnQ1XbqxcE
171
175
  toolkit/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
176
  toolkit/lib/file_extensions.py,sha256=0DpayBGjKQg7y2ZGJXf5wVPnre_4C5j-7YIViNGvYz4,372
173
177
  toolkit/lib/macroScript.py,sha256=DQR8cFoks7fa0dgRUfGhTpEdUJWNQ1vikRoqukRKx14,14014
174
- toolkit/lib/micrOSClient.py,sha256=n_XpD11aZ534CaI8J1mWUjalgV5JDdDj_1SfaP2qKyo,18509
178
+ toolkit/lib/micrOSClient.py,sha256=fLRkyOjbYQkFzcqeC3yDLa4IymarSOitbxJERa_jeHI,18752
175
179
  toolkit/lib/micrOSClientHistory.py,sha256=EyCqbFeMy940bfXq4Yfu8dcvb7GnBvuHHxOAIgmW1FQ,4736
176
180
  toolkit/lib/pip_package_installer.py,sha256=jpC-y1KR72_PJlqyUR6-U5b6l1szVqnIZ4nrSgUsOTM,4262
177
181
  toolkit/simulator_lib/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
@@ -313,7 +317,7 @@ toolkit/workspace/precompiled/LM_neoeffects.mpy,sha256=lO0sxfiAgyASgYNjX3c_usY3T
313
317
  toolkit/workspace/precompiled/LM_neopixel.mpy,sha256=3o4Jvmc3Knr30VJ4b7JebpUsU7dBdcYBZzRD_9a4zBI,3663
314
318
  toolkit/workspace/precompiled/LM_oled.mpy,sha256=KQj4jfLwlmx2dT_GWbFzZE6FlMRPUgJvri5XbnSIod0,3154
315
319
  toolkit/workspace/precompiled/LM_oled_sh1106.mpy,sha256=0cQpu1MPkrPxvd1Fvln9c9lq9qPV6oi8iGNTZM4YbIY,3761
316
- toolkit/workspace/precompiled/LM_oled_ui.mpy,sha256=oqaq0PF7WRa2nBF4Tstr_Wl1aAxlMiWI-DjoMYS6J1s,6820
320
+ toolkit/workspace/precompiled/LM_oled_ui.mpy,sha256=toUOIvcp8zIjsckWLMVNZK8i2KIvpLH2Xy8ORj0aPsI,6821
317
321
  toolkit/workspace/precompiled/LM_oledui.mpy,sha256=bSNnW6rlts7KM3YY-dTV34gG5r5zJMYvsqQorPb191E,11555
318
322
  toolkit/workspace/precompiled/LM_pacman.mpy,sha256=njOwVrPKOtC4J5kRCtwV8E8hHTTTt7HzqV121HmCsxE,3507
319
323
  toolkit/workspace/precompiled/LM_pet_feeder.py,sha256=ILrozpnq2_ckkVDUROysMWRksKjflsKpIHvgHdvn-JA,2572
@@ -331,19 +335,19 @@ toolkit/workspace/precompiled/LM_servo.mpy,sha256=S1mH7tS6WK-vclAPQrWK46_IB2GlBZ
331
335
  toolkit/workspace/precompiled/LM_sound_event.mpy,sha256=QJ5xmKtK2sfA9lyROJRRpSAjypl10MkwLdW-QsXhRf8,7384
332
336
  toolkit/workspace/precompiled/LM_stepper.mpy,sha256=20Jpee74AjyjjMaHmgKbZvU5phcOvh8nQNSUDCAk_KE,1466
333
337
  toolkit/workspace/precompiled/LM_switch.mpy,sha256=58sjZQokfBYBZlplFQB5-t-3O-2mlsE3NXjvJ5FgD_U,2237
334
- toolkit/workspace/precompiled/LM_system.mpy,sha256=bSq9C615p3fL5f-RkHZaiipNFDiNnqnM5uV4ewMRKgs,2796
338
+ toolkit/workspace/precompiled/LM_system.mpy,sha256=Desld_4SY-bsOHdrNTx-jjqIx809cwuVnnx68HwZSZk,2802
335
339
  toolkit/workspace/precompiled/LM_telegram.mpy,sha256=5Y-YrdYjBLN7gmIqlE6WhbWhA3Dak4IVd7j_FQYOQho,4877
336
340
  toolkit/workspace/precompiled/LM_tinyrgb.mpy,sha256=qWR-e8DXuzmstxQlyic0YjwFaGiBBBWpf57Wyn1jjFc,1016
337
341
  toolkit/workspace/precompiled/LM_trackball.mpy,sha256=eDVf55dNJXd0Mzg1MZH0talUloPEGFNccE08vwbgn0g,3471
338
342
  toolkit/workspace/precompiled/LM_veml7700.mpy,sha256=NxOvdbrqyyhhwjm2d2dfrJK0dTK3NiP5kQ5GDXjXgq0,1953
339
343
  toolkit/workspace/precompiled/Logger.mpy,sha256=Nz33LQBUliSguxuy4EV3GWXLd9PFyqzivuNivWdLJ_w,1388
340
344
  toolkit/workspace/precompiled/Network.mpy,sha256=WtpvhGB2bvEe94dAHV40fpEyk-Fi0D6vL1q_m6k4qBg,3274
341
- toolkit/workspace/precompiled/Notify.mpy,sha256=O80dkyGl8iiiEj47Q6iDJuS5mrT8_e6IXfRMN80pMRU,894
345
+ toolkit/workspace/precompiled/Notify.mpy,sha256=ioeDVMh9qBtACWQMASrrhGkSfp1KKUN6d2rt0NpbClo,974
342
346
  toolkit/workspace/precompiled/Scheduler.mpy,sha256=ctCj7FfXj5TchPPxe_9dmnTXWN88egtbAnmJ0N9u_1w,2202
343
347
  toolkit/workspace/precompiled/Server.mpy,sha256=dtSXLYpBcdz0DveB_S6nos46h-m6hwlQ-38G-iVQwKQ,4762
344
- toolkit/workspace/precompiled/Shell.mpy,sha256=cp1JXbp7QVB0tPfRnhPtc6mDiRBB2_R1fi89_xtm3NM,4335
348
+ toolkit/workspace/precompiled/Shell.mpy,sha256=-HCVQVnKCyKf1k-DsR_-MxN4PladJl3cMA6JwtRRxsA,4385
345
349
  toolkit/workspace/precompiled/Tasks.mpy,sha256=vL3tDV7Us3Wg7qtZA8ovqEsvLndOmu14GHcZF2_DtrY,6253
346
- toolkit/workspace/precompiled/Time.mpy,sha256=D6jvLP5tUKQdJGcn6Q4-ru-p0at6hnxfLC5bqC78gv0,2756
350
+ toolkit/workspace/precompiled/Time.mpy,sha256=AZAtFj-l2ERKUpWgQS4gyq_XUx1ddy4ZTTgpRxbWK9M,2773
347
351
  toolkit/workspace/precompiled/Types.mpy,sha256=LssRbPgvsWuR4d2m3R7VMIvsnkVp9nN0ltwaY2wGop8,1401
348
352
  toolkit/workspace/precompiled/Web.mpy,sha256=RuZNz2Yfe3MGoMV09nRLUS0MQ2CoJHHBVh7FnC9dYY4,3116
349
353
  toolkit/workspace/precompiled/_mpy.version,sha256=Kik-fvRGfWAmpEjKdJLq7nPOqYR_jVgB0aiXZ8LMvMA,6
@@ -351,17 +355,17 @@ toolkit/workspace/precompiled/dashboard.html,sha256=xBZOZ8AMO55QheuZ41Sl0Arvb44q
351
355
  toolkit/workspace/precompiled/index.html,sha256=cv0hap5bhBoRR_z1KALC3fbjH2rQZY9JJPfF-dxVclw,1656
352
356
  toolkit/workspace/precompiled/main.py,sha256=cVlhoWwU9dSKEol0HWPihFAPzrUUvzSGwZNNMrpyfSY,440
353
357
  toolkit/workspace/precompiled/micrOS.mpy,sha256=x20-mxGB7mkvdcyulttyXhjdLvXeyXlpl57yctS3eTA,1129
354
- toolkit/workspace/precompiled/micrOSloader.mpy,sha256=0bFFYYHrsnAVZko9Q7XpPoo0gkt2v_lY4V9R-4K_T_0,1747
358
+ toolkit/workspace/precompiled/micrOSloader.mpy,sha256=Gcznp2z2Zv4N4dHv7PE7d6bNSQPTdvHLeStCCHGNuEg,1747
355
359
  toolkit/workspace/precompiled/microIO.mpy,sha256=SWYlvjIHgcMsSVCuxWataoqI03T8Aq6u4TzeGU3I3fs,1638
356
360
  toolkit/workspace/precompiled/reset.mpy,sha256=D-ZwUk-oR8OAg5ERWJXErdPAGbx_3M13hK4IBawhIg0,217
357
361
  toolkit/workspace/precompiled/uapi.js,sha256=fZ0E9-ZndCoUNQq1yJ7yUCiLYxe3p8hzSFnlN2R9roc,2959
358
362
  toolkit/workspace/precompiled/udashboard.js,sha256=42mPR_NU3jOqUgLi7yZv2L7bN6uGqw9LpScDrGGF58c,4581
359
- toolkit/workspace/precompiled/urequests.mpy,sha256=X_HXOit71sP2U_aUXM-0wC4vG2j2nGFmkqENnvcmu5o,2381
363
+ toolkit/workspace/precompiled/urequests.mpy,sha256=-JDY-DOtJrGdwQo0-P809zZu-cJBRqKH3X4ZHuo38k4,2387
360
364
  toolkit/workspace/precompiled/ustyle.css,sha256=P-s8ENwAcWoZi5bocrK3_kVzEjaRFKtFvEF6JRh4MBY,1429
361
365
  toolkit/workspace/precompiled/uwidgets.js,sha256=BGeUSbNHn6PClgIgIE6QszwQVJ6j7lzgCBwvIX8cYgo,6631
362
366
  toolkit/workspace/precompiled/uwidgets_pro.js,sha256=gbkk3SVttEVvDCwde-pJhAh4k7GuCFPdcWNq32pcKPE,3639
363
- micrOSDevToolKit-2.9.9.dist-info/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
364
- micrOSDevToolKit-2.9.9.dist-info/METADATA,sha256=ghWVLQCUz5R9OXjQ5ZhRGkUHA4L3V6R7gMyrueF-HwQ,53468
365
- micrOSDevToolKit-2.9.9.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
366
- micrOSDevToolKit-2.9.9.dist-info/top_level.txt,sha256=rOGOIXqLBdGZAoDTiLdZ9B_leFB7bMv7YabLwuIc2bc,25
367
- micrOSDevToolKit-2.9.9.dist-info/RECORD,,
367
+ micrOSDevToolKit-2.9.10.dist-info/LICENSE,sha256=hIahDEOTzuHCU5J2nd07LWwkLW7Hko4UFO__ffsvB-8,34523
368
+ micrOSDevToolKit-2.9.10.dist-info/METADATA,sha256=YVrj02zAhSoulyDir7LmXfcWVUWoAIUhzxc1nN6aBsQ,53805
369
+ micrOSDevToolKit-2.9.10.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
370
+ micrOSDevToolKit-2.9.10.dist-info/top_level.txt,sha256=rOGOIXqLBdGZAoDTiLdZ9B_leFB7bMv7YabLwuIc2bc,25
371
+ micrOSDevToolKit-2.9.10.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.0.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5