pymammotion 0.3.8__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. pymammotion/__init__.py +2 -2
  2. pymammotion/aliyun/cloud_gateway.py +12 -9
  3. pymammotion/aliyun/model/aep_response.py +1 -2
  4. pymammotion/aliyun/model/dev_by_account_response.py +7 -8
  5. pymammotion/aliyun/model/login_by_oauth_response.py +2 -3
  6. pymammotion/aliyun/model/regions_response.py +3 -3
  7. pymammotion/aliyun/model/session_by_authcode_response.py +1 -2
  8. pymammotion/aliyun/model/stream_subscription_response.py +1 -2
  9. pymammotion/bluetooth/ble.py +5 -5
  10. pymammotion/bluetooth/ble_message.py +9 -13
  11. pymammotion/data/model/device.py +31 -228
  12. pymammotion/data/model/device_config.py +0 -10
  13. pymammotion/data/model/device_info.py +13 -0
  14. pymammotion/data/model/device_limits.py +49 -0
  15. pymammotion/data/model/generate_route_information.py +1 -1
  16. pymammotion/data/model/hash_list.py +6 -2
  17. pymammotion/data/model/plan.py +0 -3
  18. pymammotion/data/model/raw_data.py +215 -0
  19. pymammotion/data/model/region_data.py +10 -11
  20. pymammotion/data/model/report_info.py +1 -1
  21. pymammotion/data/mqtt/event.py +18 -14
  22. pymammotion/data/mqtt/properties.py +1 -1
  23. pymammotion/data/mqtt/status.py +1 -1
  24. pymammotion/data/state_manager.py +83 -23
  25. pymammotion/http/encryption.py +220 -0
  26. pymammotion/http/http.py +92 -39
  27. pymammotion/http/model/http.py +2 -2
  28. pymammotion/mammotion/commands/abstract_message.py +2 -2
  29. pymammotion/mammotion/commands/messages/driver.py +28 -21
  30. pymammotion/mammotion/commands/messages/media.py +10 -14
  31. pymammotion/mammotion/commands/messages/navigation.py +14 -11
  32. pymammotion/mammotion/commands/messages/network.py +15 -12
  33. pymammotion/mammotion/commands/messages/ota.py +9 -14
  34. pymammotion/mammotion/commands/messages/system.py +27 -24
  35. pymammotion/mammotion/commands/messages/video.py +9 -14
  36. pymammotion/mammotion/devices/base.py +7 -14
  37. pymammotion/mammotion/devices/mammotion.py +22 -13
  38. pymammotion/mammotion/devices/mammotion_bluetooth.py +15 -4
  39. pymammotion/mammotion/devices/mammotion_cloud.py +30 -12
  40. pymammotion/mqtt/linkkit/__init__.py +5 -0
  41. pymammotion/mqtt/linkkit/h2client.py +585 -0
  42. pymammotion/mqtt/linkkit/linkkit.py +3020 -0
  43. pymammotion/mqtt/mammotion_mqtt.py +13 -9
  44. pymammotion/proto/__init__.py +2176 -1
  45. pymammotion/proto/luba_mul.proto +1 -0
  46. pymammotion/proto/luba_mul_pb2.py +8 -8
  47. pymammotion/proto/luba_mul_pb2.pyi +1 -0
  48. pymammotion/proto/mctrl_nav_pb2.py +69 -67
  49. pymammotion/proto/mctrl_nav_pb2.pyi +13 -5
  50. pymammotion/proto/mctrl_sys_pb2.py +41 -37
  51. pymammotion/proto/mctrl_sys_pb2.pyi +34 -11
  52. pymammotion/utility/constant/device_constant.py +14 -5
  53. pymammotion/utility/device_config.py +754 -0
  54. pymammotion/utility/device_type.py +64 -16
  55. {pymammotion-0.3.8.dist-info → pymammotion-0.4.0.dist-info}/METADATA +9 -9
  56. {pymammotion-0.3.8.dist-info → pymammotion-0.4.0.dist-info}/RECORD +58 -62
  57. {pymammotion-0.3.8.dist-info → pymammotion-0.4.0.dist-info}/WHEEL +1 -1
  58. pymammotion/aliyun/cloud_service.py +0 -65
  59. pymammotion/proto/basestation.py +0 -59
  60. pymammotion/proto/common.py +0 -12
  61. pymammotion/proto/dev_net.py +0 -381
  62. pymammotion/proto/luba_msg.py +0 -81
  63. pymammotion/proto/luba_mul.py +0 -76
  64. pymammotion/proto/mctrl_driver.py +0 -100
  65. pymammotion/proto/mctrl_nav.py +0 -664
  66. pymammotion/proto/mctrl_ota.py +0 -48
  67. pymammotion/proto/mctrl_pept.py +0 -41
  68. pymammotion/proto/mctrl_sys.py +0 -574
  69. {pymammotion-0.3.8.dist-info → pymammotion-0.4.0.dist-info}/LICENSE +0 -0
@@ -1,5 +1,33 @@
1
1
  from enum import Enum
2
2
 
3
+ LubaProductKey = [
4
+ "a1UBFdq6nNz",
5
+ "a1x0zHD3Xop",
6
+ "a1pvCnb3PPu",
7
+ "a1kweSOPylG",
8
+ "a1JFpmAV5Ur",
9
+ "a1BmXWlsdbA",
10
+ "a1jOhAYOIG8",
11
+ "a1K4Ki2L5rK",
12
+ "a1ae1QnXZGf",
13
+ "a1nf9kRBWoH",
14
+ "a1ZU6bdGjaM",
15
+ ]
16
+
17
+ LubaVProductKey = ["a1iMygIwxFC", "a1LLmy1zc0j", "a1LLmy1zc0j"]
18
+
19
+ LubaVProProductKey = ["a1mb8v6tnAa", "a1pHsTqyoPR"]
20
+
21
+ Luba2MiniProductKey = ["a1L5ZfJIxGl", "a1dCWYFLROK"]
22
+
23
+ YukaProductKey = ["a1kT0TlYEza", "a1IQV0BrnXb"]
24
+
25
+ YukaPlusProductKey = ["a1lNESu9VST"]
26
+
27
+ YukaMiniProductKey = ["a1BqmEWMRbX", "a1biqVGvxrE"]
28
+
29
+ RTKProductKey = ["a1qXkZ5P39W", "a1Nc68bGZzX"]
30
+
3
31
 
4
32
  class DeviceType(Enum):
5
33
  UNKNOWN = (-1, "UNKNOWN", "Unknown")
@@ -226,7 +254,7 @@ class DeviceType(Enum):
226
254
 
227
255
  if not product_key:
228
256
  return False
229
- return product_key in ["a1qXkZ5P39W", "a1Nc68bGZzX"]
257
+ return product_key in RTKProductKey
230
258
 
231
259
  @staticmethod
232
260
  def contain_luba_product_key(product_key) -> bool:
@@ -242,19 +270,7 @@ class DeviceType(Enum):
242
270
 
243
271
  if not product_key:
244
272
  return False
245
- return product_key in [
246
- "a1UBFdq6nNz",
247
- "a1x0zHD3Xop",
248
- "a1pvCnb3PPu",
249
- "a1kweSOPylG",
250
- "a1JFpmAV5Ur",
251
- "a1BmXWlsdbA",
252
- "a1jOhAYOIG8",
253
- "a1K4Ki2L5rK",
254
- "a1ae1QnXZGf",
255
- "a1nf9kRBWoH",
256
- "a1ZU6bdGjaM",
257
- ]
273
+ return product_key in LubaProductKey
258
274
 
259
275
  @staticmethod
260
276
  def contain_luba_2_product_key(product_key) -> bool:
@@ -270,7 +286,7 @@ class DeviceType(Enum):
270
286
 
271
287
  if not product_key:
272
288
  return False
273
- return product_key in ["a1iMygIwxFC", "a1LLmy1zc0j", "a1LLmy1zc0j"]
289
+ return product_key in LubaVProductKey
274
290
 
275
291
  @staticmethod
276
292
  def contain_yuka_product_key(product_key) -> bool:
@@ -286,7 +302,39 @@ class DeviceType(Enum):
286
302
 
287
303
  if not product_key:
288
304
  return False
289
- return product_key in ["a1IQV0BrnXb"]
305
+ return product_key in YukaProductKey
306
+
307
+ @staticmethod
308
+ def contain_yuka_mini_product_key(product_key) -> bool:
309
+ """Check if the given product key is present in a predefined list.
310
+
311
+ Args:
312
+ product_key (str): The product key to be checked.
313
+
314
+ Returns:
315
+ bool: True if the product key is in the predefined list, False otherwise.
316
+
317
+ """
318
+
319
+ if not product_key:
320
+ return False
321
+ return product_key in YukaMiniProductKey
322
+
323
+ @staticmethod
324
+ def contain_yuka_plus_product_key(product_key) -> bool:
325
+ """Check if the given product key is present in a predefined list.
326
+
327
+ Args:
328
+ product_key (str): The product key to be checked.
329
+
330
+ Returns:
331
+ bool: True if the product key is in the predefined list, False otherwise.
332
+
333
+ """
334
+
335
+ if not product_key:
336
+ return False
337
+ return product_key in YukaPlusProductKey
290
338
 
291
339
  def is_support_video(self):
292
340
  return self != DeviceType.LUBA
@@ -1,12 +1,12 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: pymammotion
3
- Version: 0.3.8
3
+ Version: 0.4.0
4
4
  Summary:
5
- License: GNU-3.0
5
+ License: GPL-3.0
6
6
  Author: Michael Arthur
7
7
  Author-email: michael@jumblesoft.co.nz
8
- Requires-Python: >=3.10,<3.13
9
- Classifier: License :: Other/Proprietary License
8
+ Requires-Python: >=3.10
9
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.10
12
12
  Classifier: Programming Language :: Python :: 3.11
@@ -15,17 +15,17 @@ Requires-Dist: aiohttp (>=3.9.1,<4.0.0)
15
15
  Requires-Dist: alibabacloud-apigateway-util (>=0.0.2,<0.0.3)
16
16
  Requires-Dist: alibabacloud-iot-api-gateway (>=0.0.4,<0.0.5)
17
17
  Requires-Dist: alicloud-gateway-iot (>=1.0.0,<2.0.0)
18
- Requires-Dist: aliyun-iot-linkkit (>=1.2.12,<2.0.0)
19
- Requires-Dist: aliyun-python-sdk-iot (>=8.57.0,<9.0.0)
20
18
  Requires-Dist: async-timeout (>=4.0.3,<5.0.0)
21
- Requires-Dist: betterproto (>=1.2.5,<2.0.0)
19
+ Requires-Dist: betterproto (>=2.0.0b7,<3.0.0)
22
20
  Requires-Dist: bleak (>=0.21.0)
23
21
  Requires-Dist: bleak-retry-connector (>=3.5.0,<4.0.0)
22
+ Requires-Dist: crcmod (>=1.7,<2.0)
23
+ Requires-Dist: cryptography (>=43.0.1)
24
24
  Requires-Dist: jsonic (>=1.0.0,<2.0.0)
25
25
  Requires-Dist: mashumaro (>=3.13,<4.0)
26
26
  Requires-Dist: numpy (>=1.26.0)
27
27
  Requires-Dist: orjson (>=3.9.15,<4.0.0)
28
- Requires-Dist: paho-mqtt (>=1.6.1,<2.0.0)
28
+ Requires-Dist: paho-mqtt (>=2.1.0,<3.0.0)
29
29
  Requires-Dist: protobuf (>=4.23.1)
30
30
  Requires-Dist: py-jsonic (>=0.0.2,<0.0.3)
31
31
  Description-Content-Type: text/markdown
@@ -1,18 +1,17 @@
1
- pymammotion/__init__.py,sha256=BcwrItywpSECTxrTPwEuBExi_ekOrG2M2tbphuotIlE,1617
1
+ pymammotion/__init__.py,sha256=u1OHuD8Uj0qCOH4I7Lt5d7T-TPt1R0pY-bv8S6UfVxM,1587
2
2
  pymammotion/aliyun/__init__.py,sha256=T1lkX7TRYiL4nqYanG4l4MImV-SlavSbuooC-W-uUGw,29
3
- pymammotion/aliyun/cloud_gateway.py,sha256=bFlVEmKBocxbD8ZxTXFXQZi4GwTDhzxChITJadzX2W0,25877
4
- pymammotion/aliyun/cloud_service.py,sha256=px7dUKow5Z7VyebjYzuKkzkm77XbUXYiFiYO_2e-UQ0,2207
5
- pymammotion/aliyun/model/aep_response.py,sha256=8f6GIP58ve8gd6AL3HBoXxsy0n2q4ygWvjELGnoOnVc,452
3
+ pymammotion/aliyun/cloud_gateway.py,sha256=bLTFivD7qpNXjzpM85Tao2y2urHXah5PZOdLc3iQ1nw,26099
4
+ pymammotion/aliyun/model/aep_response.py,sha256=EY4uMTJ4F9rvbcXnAOc5YKi7q__9kIVgfDwfyr65Gk0,421
6
5
  pymammotion/aliyun/model/connect_response.py,sha256=Yz-fEbDzgGPTo5Of2oAjmFkSv08T7ze80pQU4k-gKIU,824
7
- pymammotion/aliyun/model/dev_by_account_response.py,sha256=QZeopszFlGI7wltla-XDyGMbg5QSnb4Q1wTINkkaJyA,1026
8
- pymammotion/aliyun/model/login_by_oauth_response.py,sha256=IXSLZ6XnOliOnyXo5Bh0ErqFjA11puACh_9NH0sSJGQ,1262
9
- pymammotion/aliyun/model/regions_response.py,sha256=TBBWKF9j5iWjX4YbvMBHNDOnr0cEhbdfgApgCyJZhVg,651
10
- pymammotion/aliyun/model/session_by_authcode_response.py,sha256=qW0pnnRXfyEuMbb9ORc013sYqZwO8z4i_h_SfSaA_bw,419
11
- pymammotion/aliyun/model/stream_subscription_response.py,sha256=po765WASQDboVCosbPEfDHNlanBf-3WMrA6iV3ezooY,357
6
+ pymammotion/aliyun/model/dev_by_account_response.py,sha256=P9yYy4Z2tLkJSqXA_5XGaCUliSSVa5ILl7VoMtL_tCA,977
7
+ pymammotion/aliyun/model/login_by_oauth_response.py,sha256=g7JnvEjoa3SplHd-UqCuK6x0qtODpHlDyJCHRz7tfDI,1228
8
+ pymammotion/aliyun/model/regions_response.py,sha256=HSnpPcgpjr6VNXBQHw__gn-xWCkQ-MZ-Tmus9_va9mI,635
9
+ pymammotion/aliyun/model/session_by_authcode_response.py,sha256=naMDigtvmpf-Ikf5VdNrToaM8LR3PbO4rJFX8R_E0qM,388
10
+ pymammotion/aliyun/model/stream_subscription_response.py,sha256=7d0i8cNMAMX7aQjd2yebMDdqQkugcCzk-SD6oVtf18M,333
12
11
  pymammotion/aliyun/tmp_constant.py,sha256=M4Hq_lrGB3LZdX6R2XohRPFoK1NDnNV-pTJwJcJ9838,6650
13
12
  pymammotion/bluetooth/__init__.py,sha256=LAl8jqZ1fPh-3mLmViNQsP3s814C1vsocYUa6oSaXt0,36
14
- pymammotion/bluetooth/ble.py,sha256=Z2cO1EV2ndORKoJMzc2RdUdYbUe_PIzxCZICJg0_V24,2404
15
- pymammotion/bluetooth/ble_message.py,sha256=toiUjfrH9VXPgYSUdufoCT2ZKGO0QoXoFZLea1t-Vdg,18911
13
+ pymammotion/bluetooth/ble.py,sha256=k5o2BVXSF2vLZ75U3PsUE8NomWFirJkYDVWfQQs_P1I,2484
14
+ pymammotion/bluetooth/ble_message.py,sha256=47xoj22Kw5XF9VT965J_BxpvTdOgSXy4opqkbsojvDo,18795
16
15
  pymammotion/bluetooth/const.py,sha256=CCqyHsYbB0BAYjwdhXt_n6eWWxmhlUrAFjvVv57mbvE,1749
17
16
  pymammotion/bluetooth/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
17
  pymammotion/bluetooth/data/convert.py,sha256=6DMwvzVr9FWCoQFIKSI2poFXjISc_m6X59g8FlVO0-o,800
@@ -24,104 +23,101 @@ pymammotion/const.py,sha256=lWRxvTVdXnNHuxqvRkjO5ziK0Ic-fZMM6J2dbe5M6Nc,385
24
23
  pymammotion/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
24
  pymammotion/data/model/__init__.py,sha256=aSyroxYQQS-WMRi6WmWm2js4wLa9nmsi160gx9tts4o,323
26
25
  pymammotion/data/model/account.py,sha256=vJM-KTf2q6eBfVC-UlNHBSmJvqHiCawZ40vnuhXhaz8,140
27
- pymammotion/data/model/device.py,sha256=GQH9pNPcqb4zdl55r8dYIHgvXlwdA8k3xHwMVzNalys,12433
28
- pymammotion/data/model/device_config.py,sha256=b3zmArKg10NIheNGSugwWruLM_H4ySBlQxDgXAiB2es,2852
29
- pymammotion/data/model/device_info.py,sha256=ahz2xILdSYdX6SIVuVzz8QCfSQLefbQnpXrsiDpBDbY,585
26
+ pymammotion/data/model/device.py,sha256=FxjOeT6JOeQuyXcm-afODcgPFXTVf0On1HRQ1ogpQmY,6848
27
+ pymammotion/data/model/device_config.py,sha256=wjayKnzoPDmBhqWZKTPDSueNEPCIWCB20tFEDSGIUsM,2602
28
+ pymammotion/data/model/device_info.py,sha256=Q0qJ6BflQycH_VFugwaFFXcvM69q2v9JAe2wWOcCggE,904
29
+ pymammotion/data/model/device_limits.py,sha256=saW3iUvGq8WEn6CASn5hS5tVJpSeak4FDy_gnHtYqTQ,1955
30
30
  pymammotion/data/model/enums.py,sha256=EpKmO8yVUZyEnTY4yH0DMMVKYNQM42zpW1maUu0i3IE,1582
31
31
  pymammotion/data/model/excute_boarder_params.py,sha256=9CpUqrygcle1C_1hDW-riLmm4map4ZbE842NXjcomEI,1394
32
32
  pymammotion/data/model/execute_boarder.py,sha256=9rd_h4fbcsXxgnLOd2rO2hWyD1abnTGc47QTEpp8DD0,1103
33
- pymammotion/data/model/generate_route_information.py,sha256=tCF3-HDm4O30hy8BJrTOaMpP3ArHbI9i9ZG7ARc5eLg,777
34
- pymammotion/data/model/hash_list.py,sha256=ZPg5d1hy4bPMgPw5JkHujT06LIoEmXn7qSdQW79FF3A,6257
33
+ pymammotion/data/model/generate_route_information.py,sha256=pgjqURwmEIzjCMbl4Z5JDDkfxyUAdry1KhPfyir3-mU,777
34
+ pymammotion/data/model/hash_list.py,sha256=H5jAO_Zy2eEV2_MAJoQd5N264IKF1aP6w2MrLW8FcrI,6301
35
35
  pymammotion/data/model/location.py,sha256=PwmITejfI4pm7PI4rzqSuuHetwle6IJr_CV95435s2M,871
36
36
  pymammotion/data/model/mowing_modes.py,sha256=87R4T-hs6tZ0baPvdYII9Fd6ZbJRqkXj7MRFZ7nIPOY,941
37
- pymammotion/data/model/plan.py,sha256=mcadkSL7fQXy0iJ0q786I3GEQY4i6kmQXfW6Ri69lcQ,2906
37
+ pymammotion/data/model/plan.py,sha256=wGlcJT-w0EdbWK9jI838TCOm_MABFg7WoR664VB8RWg,2880
38
38
  pymammotion/data/model/rapid_state.py,sha256=mIdhAG_LZXpVcybxqTLgLXkNOmVmDTn04B9PGIDA8Ls,1251
39
- pymammotion/data/model/region_data.py,sha256=OTV15vRyn9JORXsQPjWMNF1ZujuNhsOKl25KeqwMObA,3007
40
- pymammotion/data/model/report_info.py,sha256=9sPPfhBv8f0K-xuHRkKrbez-7nZ_oCND2vZYLuKvkBA,3436
39
+ pymammotion/data/model/raw_data.py,sha256=x2xuqVC8CQuV3ui3QK4G5EqRET9EsNljHLHR11ByYgo,6471
40
+ pymammotion/data/model/region_data.py,sha256=VokMRqB_o4OFL1TWAM90Fvm-1z4jcYrw3X2o760qpx4,2949
41
+ pymammotion/data/model/report_info.py,sha256=cWr0FC9B0M4ZHS2bY4V5nzjXSMd8qHq2NRhm6TzNXnw,3440
41
42
  pymammotion/data/mqtt/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
42
- pymammotion/data/mqtt/event.py,sha256=pEOQcjnv5XKosSPD8UmVAgCAaI8vLuIhGECZcU4xKjk,5055
43
- pymammotion/data/mqtt/properties.py,sha256=kvphcjrDuJHuX8Az98-wKeFv_rSmu2Fz9YKLGodGSj0,3759
44
- pymammotion/data/mqtt/status.py,sha256=zqnlo-MzejEQZszl0i0Wucoc3E76x6UtI9JLxoBnu54,1067
45
- pymammotion/data/state_manager.py,sha256=W6PjIMXHPObocYay6ZQ7ITju27MA5kK5udFptAydwuE,5382
43
+ pymammotion/data/mqtt/event.py,sha256=r14gzZVxmlGVAwFdZQ1CUsMZFHHwRKnbt2VHnjugP28,5123
44
+ pymammotion/data/mqtt/properties.py,sha256=pX5JRVmmpVO04CSPm5xAGcSWA_OeLd0JnBagLsfiSEc,3755
45
+ pymammotion/data/mqtt/status.py,sha256=DuNC3JdewLPKNqNHx76_FPXRvheYSiM-CdiVTCCYY8s,1079
46
+ pymammotion/data/state_manager.py,sha256=1bJN6qE2U5R7w2dcpNRVGGnmGbxbFtQCtiWwx2U1K3o,8008
46
47
  pymammotion/event/__init__.py,sha256=mgATR6vPHACNQ-0zH5fi7NdzeTCDV1CZyaWPmtUusi8,115
47
48
  pymammotion/event/event.py,sha256=bj2RirSIRyBs0QvkcrOtwZWUX_8F3m1sySuHVyKmZLs,2143
48
49
  pymammotion/http/_init_.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- pymammotion/http/http.py,sha256=h-h7pfLCbkyf1gsezTisvWdAjCRAKwyDTziylW0kq4A,3933
50
- pymammotion/http/model/http.py,sha256=SxpAtwJFlCQl6YfRFwJjpeOsB4QfQdhoOAKQzM6uMVI,2346
50
+ pymammotion/http/encryption.py,sha256=lzXu3WwBdQlzjXxWnlJuRgkCrKdPbxx5drhMitVKIEk,8287
51
+ pymammotion/http/http.py,sha256=gFAvmjGorqUh35U4b9z-Bqy8bKS02lLrp0Lu6Giz4xk,6687
52
+ pymammotion/http/model/http.py,sha256=tM5ikwVkWhRdXc2xi1NOLmWPH2mQEQelpaVgMlAEmlI,2333
51
53
  pymammotion/mammotion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
54
  pymammotion/mammotion/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- pymammotion/mammotion/commands/abstract_message.py,sha256=l2Wcyg7tIEjRGyQAk9T2rQVOLwilxG1hXTNf7811jGA,727
55
+ pymammotion/mammotion/commands/abstract_message.py,sha256=iZans5v1Z41rMgIbcWEbrSDIvBbaJ8N3Z8xHUKQQVAE,705
54
56
  pymammotion/mammotion/commands/mammotion_command.py,sha256=PM9UCuBCKp_TWDfkeVJsBelSbRrKosRa2LvHA-By1k8,2510
55
57
  pymammotion/mammotion/commands/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
- pymammotion/mammotion/commands/messages/driver.py,sha256=DlOAC_yi1ycO5hKr5rfCpLmrqao6Mb6Fv1JWwMISnKE,3766
57
- pymammotion/mammotion/commands/messages/media.py,sha256=l-m4l2Vp1ZOHPHyJTceuLaLvdgHOEfmykkbDncCDUI4,1359
58
- pymammotion/mammotion/commands/messages/navigation.py,sha256=Z6RQK-pMh8o7_K_1yTENx3lkNBFQTU_ojunolSre0oM,23241
59
- pymammotion/mammotion/commands/messages/network.py,sha256=I3ot4rYxtI6saJWUe-6CYCnL35GpsJMi9O18D19KuyU,7623
60
- pymammotion/mammotion/commands/messages/ota.py,sha256=g937HT_-OQXV6A3zUiZ53b45cOX6y-rzs5m-4b0IcTk,1473
61
- pymammotion/mammotion/commands/messages/system.py,sha256=6LWcucdt0nyzVkyd9BJjMLzR6D6wDwSQXinR5ItdDZk,14371
62
- pymammotion/mammotion/commands/messages/video.py,sha256=xili9khz4Op5NwjXfvIkeRYzQlQPIf8o8bnoYx-Ylpw,1319
58
+ pymammotion/mammotion/commands/messages/driver.py,sha256=4DH6Q0Xzu1whS7shjDg2N3gzCH1KEYpojPQ1GsasMIY,3597
59
+ pymammotion/mammotion/commands/messages/media.py,sha256=_2DjL-6ECXG2SPcY_4EhwWxFvFScF6R09p5z7uEUvKs,1169
60
+ pymammotion/mammotion/commands/messages/navigation.py,sha256=yONHUzgpH2E1-5YWuNt070uASq14l6cEx7uO6CqjSRU,23203
61
+ pymammotion/mammotion/commands/messages/network.py,sha256=EDMXjX_j2aPUZvz5izSV913YSLrEVvdW1lVjfojEhYI,7557
62
+ pymammotion/mammotion/commands/messages/ota.py,sha256=gySHuPw52tEmK0MT2ng2U1sn6r7O42z0Gvnb3E5KYgc,1305
63
+ pymammotion/mammotion/commands/messages/system.py,sha256=g_N1_bdOEU8voK9e14mHp7NoKQAloFWANR47D7ZuaEU,14285
64
+ pymammotion/mammotion/commands/messages/video.py,sha256=_q2R-ePcR2IaS5KjLm_H63iF0INj_GelmfAnIwJj09Y,1145
63
65
  pymammotion/mammotion/control/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
66
  pymammotion/mammotion/control/joystick.py,sha256=QfBVxM_gxpWsZAGO90whtgxCI2tIZ3TTad9wHIPsU9s,5640
65
67
  pymammotion/mammotion/devices/__init__.py,sha256=f2qQFPgLGmV85W2hSlMUh5BYuht9o_Ar_JEAAMD4fsE,102
66
- pymammotion/mammotion/devices/base.py,sha256=n1w-RR9NrMLJIlO5cPaxpcq40ioXKIIbjdZkjcH9lhI,10680
67
- pymammotion/mammotion/devices/mammotion.py,sha256=r3G13Wi1szQ1rq6J-Rwl_cddZDyp5DqkZ9BbjF5Kxpg,12538
68
- pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=HUOKnjYUWTGjksyQDCPKF_u3dWo2ddgrWCBXnJ2VkwA,18963
69
- pymammotion/mammotion/devices/mammotion_cloud.py,sha256=a9fB0ZCYElRxrjnwCM81RXCbxo5kJKhGa-BGck9U3-A,12949
68
+ pymammotion/mammotion/devices/base.py,sha256=ktLxLGueLWgB7lCXY3sjOwBu9RfEPlD0fBHZwQYre4A,10212
69
+ pymammotion/mammotion/devices/mammotion.py,sha256=OShQyFtDIqZaoazKeMjFELpOJ8Z7S-F3jIi0Xb9981E,12824
70
+ pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=oNDwtDKsdsG62frehBCg6xmwF3CD3VJ32iUwQcAjzKo,19576
71
+ pymammotion/mammotion/devices/mammotion_cloud.py,sha256=-mUZkLP5vgApG-5r3GIRUNmjCGwas11H5u2JhrI0X3U,13929
70
72
  pymammotion/mqtt/__init__.py,sha256=Ocs5e-HLJvTuDpVXyECEsWIvwsUaxzj7lZ9mSYutNDY,105
73
+ pymammotion/mqtt/linkkit/__init__.py,sha256=ENgc3ynd2kd9gMQR3-kgmCu6Ed9Y6XCIzU0zFReUlkk,80
74
+ pymammotion/mqtt/linkkit/h2client.py,sha256=w9Nvi_nY4CLD_fw-pHtYChwQf7e2TiAGeqkY_sF4cf0,19659
75
+ pymammotion/mqtt/linkkit/linkkit.py,sha256=NzFpdtfxNHQ6xNu-POyp45fTK7AWUAWV7RavFevX4m4,132772
71
76
  pymammotion/mqtt/mammotion_future.py,sha256=_OWqKOlUGl2yT1xOsXFQYpGd-1zQ63OxqXgy7KRQgYc,710
72
- pymammotion/mqtt/mammotion_mqtt.py,sha256=LaySave_hf0gU3crUTLqzpdQtxIwK8vu5DM8F8fbU2Y,8748
73
- pymammotion/proto/__init__.py,sha256=v3_P1LOsYRBN9qCAhaWrWMX7GWHrox9XD3hdZQxcPZM,190
77
+ pymammotion/mqtt/mammotion_mqtt.py,sha256=dQuGz-dQnOYI7vz_v5Kn9nHcizs-S0E2lZzJlZVkG5Y,8867
78
+ pymammotion/proto/__init__.py,sha256=fynNpNKMmwXu4xONSHTnDT_jg1iFMDnSkdAMmZioYvo,76141
74
79
  pymammotion/proto/basestation.proto,sha256=_x5gAz3FkZXS1jtq4GgZgaDCuRU-UV-7HTFdsfQ3zbo,1034
75
- pymammotion/proto/basestation.py,sha256=js64_N2xQYRxWPRdVNEapO0qe7vBlfYnjW5sE8hi7hw,2026
76
80
  pymammotion/proto/basestation_pb2.py,sha256=PTVlHcDLQeRV6qv7ZPjGke9MF68mpqoUeJA0Sw_AoT0,2776
77
81
  pymammotion/proto/basestation_pb2.pyi,sha256=eeYW9l_5OsokGzP9OE_lg6TdJwXGAFvPiojQ3tipcak,3970
78
82
  pymammotion/proto/common.proto,sha256=op8TCU1ppCMeP-izK2tXMoJXQyZXdgj1EgOKcd14A-A,81
79
- pymammotion/proto/common.py,sha256=stFYSHAjVKasFfPacxLcMfpGuUtGYkTb8RUAoJEtaRc,324
80
83
  pymammotion/proto/common_pb2.py,sha256=8OpJ04lLq8sAktY6CkP8TxVGar9x858sCf6FqLy7Rs4,1030
81
84
  pymammotion/proto/common_pb2.pyi,sha256=skF2ydSIQIvoobjiCUjXVD-pTfJiAILbaUl6nkdh2SY,460
82
85
  pymammotion/proto/dev_net.proto,sha256=sh10FFXCkcQHBt3OlvW-4Jvv_EATOLxkcIGWDKzivs8,5502
83
- pymammotion/proto/dev_net.py,sha256=7RPkgEBa6z8jwQ3h15WZZfXSo2t_srxtGQtBoCEOJQM,11260
84
86
  pymammotion/proto/dev_net_pb2.py,sha256=URvPWl3bDTpgcXsPR7GMOTcbrmDgBgm-PxWcd4ZGiCM,12868
85
87
  pymammotion/proto/dev_net_pb2.pyi,sha256=0S1HyPT1WQUNQXsW9xEgKSAoEy-0LBfP9ZBJeQlhChc,21825
86
88
  pymammotion/proto/luba_msg.proto,sha256=KfEKnPy4HyI2msoFyE5tY2tp913PGyWuki9G6tuju_A,1661
87
- pymammotion/proto/luba_msg.py,sha256=Q9I8R7xmhLuenn5r0XOmYzH3UmWrPk6KJF0xzkjfvDM,2473
88
89
  pymammotion/proto/luba_msg_pb2.py,sha256=tM_jjxnRcAL_PFbNSbY2i11YP27boXYxysB0VE1Rjdc,4514
89
90
  pymammotion/proto/luba_msg_pb2.pyi,sha256=u1YgUrGoqfuizHt2ckQUL1Y_u9tLOievwrJ2e_ySOss,4288
90
- pymammotion/proto/luba_mul.proto,sha256=YhzrsoILd14pM_MjuZLQIK08AoKMn_mYyL7CxZLp0-Q,1114
91
- pymammotion/proto/luba_mul.py,sha256=M-26YJDIAQLYNAmXb3CRAjrxeOGezbJQwRcTEM-4TqI,2061
92
- pymammotion/proto/luba_mul_pb2.py,sha256=nJ25xWmuBldTQsAddTR5EImTEN-D2FSUCd_5vBUUTwA,3399
93
- pymammotion/proto/luba_mul_pb2.pyi,sha256=_ndK0hvvHtMOzsJ8rGSXZbp7fVEsiafycbYfWG1WPKo,3913
91
+ pymammotion/proto/luba_mul.proto,sha256=kHe_dfxCNR9Yu0-3xjjxMoDVNVWdLH_SWbVKBWxCHbc,1135
92
+ pymammotion/proto/luba_mul_pb2.py,sha256=b4e-CcIW8m9xMykf0ID7NYt_WxcY2fSW2mQJ17EtZNw,3468
93
+ pymammotion/proto/luba_mul_pb2.pyi,sha256=f_lR1S7kkvwq67t7WO0SPG84dljA7fM3iCEz4xhAaQU,3940
94
94
  pymammotion/proto/mctrl_driver.proto,sha256=I0BncdAa3laeqT17Sn95r_1HuBD3dSc9IVu9U3o0fU4,1385
95
- pymammotion/proto/mctrl_driver.py,sha256=sseY2MxUtaQZvg7fvbA_gNvtqx9MVDW_rvUcfA2CWVs,2971
96
95
  pymammotion/proto/mctrl_driver_pb2.py,sha256=bfLwZb5Hehb6OIkgFrZMkQ0oTBXoOBxpruszKz-UM1U,3785
97
96
  pymammotion/proto/mctrl_driver_pb2.pyi,sha256=9_rcQELsSeOfeIQMTEFIpeXICpDe3arQeA4kAYWNSWw,5860
98
97
  pymammotion/proto/mctrl_nav.proto,sha256=g7Mh9tqhA2bA7LRn9Cmgb9zTngO4ghUDPFTAGo2z_i8,12453
99
- pymammotion/proto/mctrl_nav.py,sha256=okOznE_1dCi1yE5sSdQNKWkgI8CpbGRxMAISL5zqiT4,25040
100
- pymammotion/proto/mctrl_nav_pb2.py,sha256=LAHfEmGfNVZCN6vuLSZF6s2wd1Qk-siaWe4mdPWPdxc,24213
101
- pymammotion/proto/mctrl_nav_pb2.pyi,sha256=qmGYfKh2o63e5ppl9QIWnwDbmGVUVOf7EqhC9ApE5fg,51336
98
+ pymammotion/proto/mctrl_nav_pb2.py,sha256=FmR32_Fh0MEALsuXpjQtzQPNG98-dlsWA5g17F5C7RI,24390
99
+ pymammotion/proto/mctrl_nav_pb2.pyi,sha256=MKc6uXAhEpKE_b28wC7I09DefoDtF2ciKsfCW8uCcgk,51655
102
100
  pymammotion/proto/mctrl_ota.proto,sha256=4iHr-v1R0QiNndCnv3b6mhXiERLukB67ZzhTgt1iMc0,629
103
- pymammotion/proto/mctrl_ota.py,sha256=nIJgTWXemRuE622XqCym6TFHugV3PzAzX5IOTlE3muM,1427
104
101
  pymammotion/proto/mctrl_ota_pb2.py,sha256=-atzWg8USf4DMhlEL39q83paIyAO-CzsZhQjHvV4H68,2271
105
102
  pymammotion/proto/mctrl_ota_pb2.pyi,sha256=hFAQh5FOT8XbtTylYXQk9wCHH4Xn5C6MbW8bRgZPjt8,2821
106
103
  pymammotion/proto/mctrl_pept.proto,sha256=HBTRiP1XJB5w9hT1V38aePPREpePBk5jkjupu_kskuQ,664
107
- pymammotion/proto/mctrl_pept.py,sha256=utMtbXsCwGS14YggTqUdVIbTZsR0w49B6gKU8jHzbJg,1332
108
104
  pymammotion/proto/mctrl_pept_pb2.py,sha256=QqQ1BXo_EBs7cLmQGtRbnNy0rRxvaqtrGfKxXS8R5A8,2134
109
105
  pymammotion/proto/mctrl_pept_pb2.pyi,sha256=gr0lxUPqhyEnDdni9vpIQnAIhqAGtHlv1rFeb5EJnMY,2840
110
106
  pymammotion/proto/mctrl_sys.proto,sha256=FawssbrJkz2ZuwBGCCbFm-EO2qCYsXpeiFNHahCc9ug,10506
111
- pymammotion/proto/mctrl_sys.py,sha256=UJMQVXMjXVksp4O_eD_bUNPFM4ijvdSuma-sOIUsNUw,19138
112
- pymammotion/proto/mctrl_sys_pb2.py,sha256=DYemb514mlC7c27t-k1YqqBif0xxhLmnIWk8rXtSj1c,21497
113
- pymammotion/proto/mctrl_sys_pb2.pyi,sha256=Dj_1UM86kZ5MfcVyNC76Z0gKrfl5YFsVWP2b-bKoZvk,38912
107
+ pymammotion/proto/mctrl_sys_pb2.py,sha256=iV71QFq4kk1qqwS9pVDX671LMUseqQS8TxHjKE9PiDc,22127
108
+ pymammotion/proto/mctrl_sys_pb2.pyi,sha256=DSi0N3gqyn6iMxw1us8SGN71Is5O7Po0rEiCtQiDR0w,40131
114
109
  pymammotion/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
110
  pymammotion/utility/constant/__init__.py,sha256=tcY0LDeD-qDDHx2LKt55KOyv9ZI0UfCNM6fknLCmm8s,110
116
- pymammotion/utility/constant/device_constant.py,sha256=RQ0Yi6hQa9hfx4wVXypPaPozahQ8Y4EiU3RWZYDZeOY,7593
111
+ pymammotion/utility/constant/device_constant.py,sha256=6uTZReQxMJvZxgHuJWAPYR9pQmK-VNz4FwJZJBjtIao,7906
117
112
  pymammotion/utility/conversions.py,sha256=v3YICy0zZwwBBzrUZgabI7GRfiDBnkiAX2qdtk3NxOY,89
118
113
  pymammotion/utility/datatype_converter.py,sha256=SPM_HuaaD_XOawlqEnA8qlRRZXGba3WjA8kGOZgeBlQ,4284
119
- pymammotion/utility/device_type.py,sha256=xOgfIhOkzgcAtoKtlhlB1q8FpiKe1rVVV5BvN7K7zYc,9433
114
+ pymammotion/utility/device_config.py,sha256=hHVyT8uSsHZB4_kuaN6K5wfsC2V5Ixevm1aFi2oYDFk,27956
115
+ pymammotion/utility/device_type.py,sha256=Nkje79xlcRWB8sV2ZWCjduowJ4KNfjlKF9JLbw95Eg4,10584
120
116
  pymammotion/utility/map.py,sha256=GYscVMg2cX3IPlNpCBNHDW0S55yS1WGRf1iHnNZ7TfQ,2227
121
117
  pymammotion/utility/movement.py,sha256=N75oAoAgFydqoaOedYIxGUHmuTCtPzAOtb-d_29tpfI,615
122
118
  pymammotion/utility/periodic.py,sha256=MbeSb9cfhxzYmdT_RiE0dZe3H9IfbQW_zSqhmSX2RUc,3321
123
119
  pymammotion/utility/rocker_util.py,sha256=6tX7sS87qoQC_tsxbx3NLL-HgS08wtzXiZkhDiz7uo0,7179
124
- pymammotion-0.3.8.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
125
- pymammotion-0.3.8.dist-info/METADATA,sha256=glLYK0gcdvYHjIw4xVAclhKSCaGqOjdHYcqR49DwpWE,3895
126
- pymammotion-0.3.8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
127
- pymammotion-0.3.8.dist-info/RECORD,,
120
+ pymammotion-0.4.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
121
+ pymammotion-0.4.0.dist-info/METADATA,sha256=C5Es8MVDXUSzgfxLo2JkHdqlSU4vF_3Q-Uew4fQ06qU,3886
122
+ pymammotion-0.4.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
123
+ pymammotion-0.4.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 2.1.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,65 +0,0 @@
1
- import base64
2
-
3
- from aliyunsdkcore import client
4
- from aliyunsdkiot.request.v20180120.GetDeviceStatusRequest import GetDeviceStatusRequest
5
- from aliyunsdkiot.request.v20180120.InvokeThingServiceRequest import (
6
- InvokeThingServiceRequest,
7
- )
8
-
9
-
10
- class CloudService:
11
- # com.aliyun.iot.aep.sdk
12
- # https://domestic.mammotion.com/privacy/ - lists all aliyun packages
13
- def __init__(self) -> None:
14
- self.selectDeviceIOTID = ""
15
- accessKeyId = "<your accessKey>"
16
- accessKeySecret = "<your accessSecret>"
17
- self.clt = client.AcsClient(accessKeyId, accessKeySecret, "ap-southeast")
18
-
19
- """
20
- String printBase64Binary = DatatypeConverter.printBase64Binary(byteArray);
21
- JSONObject jSONObject = new JSONObject();
22
- JSONObject jSONObject2 = new JSONObject();
23
- try {
24
- jSONObject2.put("content", printBase64Binary);
25
- jSONObject.put("args", jSONObject2);
26
- jSONObject.put("iotId", this.selectDeviceIOTID);
27
- jSONObject.put("identifier", "device_protobuf_sync_service");
28
- } catch (JSONException e) {
29
- e.printStackTrace();
30
- }
31
-
32
- """
33
-
34
- def invoke_thing_service(self, data: bytearray) -> None:
35
- base64_encoded = base64.b64encode(data).decode("utf-8")
36
-
37
- # Create a dictionary structure
38
- data = {
39
- "args": {"content": base64_encoded},
40
- "DEVICE_IOTID": self.selectDeviceIOTID,
41
- "identifier": "device_protobuf_sync_service",
42
- }
43
-
44
- request = InvokeThingServiceRequest()
45
- request.set_accept_format("json")
46
-
47
- request.set_Args("Args")
48
- request.set_Identifier("Identifier")
49
- request.set_IotId("IotId")
50
- request.set_ProductKey("ProductKey")
51
-
52
- response = self.clt.do_action_with_exception(request)
53
- # python2: print(response)
54
- print(response)
55
-
56
- def get_device_status(self) -> None:
57
- request = GetDeviceStatusRequest()
58
- request.set_accept_format("json")
59
-
60
- request.set_IotId("IotId")
61
- request.set_ProductKey("ProductKey")
62
- request.set_DeviceName("DeviceName")
63
-
64
- response = self.clt.do_action_with_exception(request)
65
- print(response)
@@ -1,59 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # sources: pymammotion/proto/basestation.proto
3
- # plugin: python-betterproto
4
- from dataclasses import dataclass
5
-
6
- import betterproto
7
-
8
-
9
- @dataclass
10
- class RequestBasestationInfoT(betterproto.Message):
11
- request_type: int = betterproto.uint32_field(1)
12
-
13
-
14
- @dataclass
15
- class ResponseBasestationInfoT(betterproto.Message):
16
- system_status: int = betterproto.uint64_field(1)
17
- app_connect_type: int = betterproto.uint32_field(2)
18
- ble_rssi: int = betterproto.int32_field(3)
19
- wifi_rssi: int = betterproto.int32_field(4)
20
- sats_num: int = betterproto.uint64_field(5)
21
- lora_scan: int = betterproto.int64_field(6)
22
- lora_channel: int = betterproto.int64_field(7)
23
- lora_locid: int = betterproto.int64_field(8)
24
- lora_netid: int = betterproto.int64_field(9)
25
- rtk_status: int = betterproto.uint64_field(10)
26
- lowpower_status: int = betterproto.int32_field(11)
27
- mqtt_rtk_status: int = betterproto.int32_field(12)
28
- rtk_channel: int = betterproto.int32_field(13)
29
- rtk_switch: int = betterproto.int32_field(14)
30
-
31
-
32
- @dataclass
33
- class AppToBaseMqttRtkT(betterproto.Message):
34
- rtk_switch: int = betterproto.int32_field(1)
35
- rtk_url: str = betterproto.string_field(2)
36
- rtk_port: int = betterproto.int32_field(3)
37
- rtk_username: str = betterproto.string_field(4)
38
- rtk_password: str = betterproto.string_field(5)
39
-
40
-
41
- @dataclass
42
- class BaseToAppMqttRtkT(betterproto.Message):
43
- rtk_switch_status: int = betterproto.int32_field(1)
44
-
45
-
46
- @dataclass
47
- class BaseStation(betterproto.Message):
48
- to_dev: "RequestBasestationInfoT" = betterproto.message_field(
49
- 1, group="BaseStationSubType"
50
- )
51
- to_app: "ResponseBasestationInfoT" = betterproto.message_field(
52
- 2, group="BaseStationSubType"
53
- )
54
- app_to_base_mqtt_rtk_msg: "AppToBaseMqttRtkT" = betterproto.message_field(
55
- 3, group="BaseStationSubType"
56
- )
57
- base_to_app_mqtt_rtk_msg: "BaseToAppMqttRtkT" = betterproto.message_field(
58
- 4, group="BaseStationSubType"
59
- )
@@ -1,12 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # sources: pymammotion/proto/common.proto
3
- # plugin: python-betterproto
4
- from dataclasses import dataclass
5
-
6
- import betterproto
7
-
8
-
9
- @dataclass
10
- class CommDataCouple(betterproto.Message):
11
- x: float = betterproto.float_field(1)
12
- y: float = betterproto.float_field(2)