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.
- pymammotion/__init__.py +2 -2
- pymammotion/aliyun/cloud_gateway.py +12 -9
- pymammotion/aliyun/model/aep_response.py +1 -2
- pymammotion/aliyun/model/dev_by_account_response.py +7 -8
- pymammotion/aliyun/model/login_by_oauth_response.py +2 -3
- pymammotion/aliyun/model/regions_response.py +3 -3
- pymammotion/aliyun/model/session_by_authcode_response.py +1 -2
- pymammotion/aliyun/model/stream_subscription_response.py +1 -2
- pymammotion/bluetooth/ble.py +5 -5
- pymammotion/bluetooth/ble_message.py +9 -13
- pymammotion/data/model/device.py +31 -228
- pymammotion/data/model/device_config.py +0 -10
- pymammotion/data/model/device_info.py +13 -0
- pymammotion/data/model/device_limits.py +49 -0
- pymammotion/data/model/generate_route_information.py +1 -1
- pymammotion/data/model/hash_list.py +6 -2
- pymammotion/data/model/plan.py +0 -3
- pymammotion/data/model/raw_data.py +215 -0
- pymammotion/data/model/region_data.py +10 -11
- pymammotion/data/model/report_info.py +1 -1
- pymammotion/data/mqtt/event.py +18 -14
- pymammotion/data/mqtt/properties.py +1 -1
- pymammotion/data/mqtt/status.py +1 -1
- pymammotion/data/state_manager.py +83 -23
- pymammotion/http/encryption.py +220 -0
- pymammotion/http/http.py +92 -39
- pymammotion/http/model/http.py +2 -2
- pymammotion/mammotion/commands/abstract_message.py +2 -2
- pymammotion/mammotion/commands/messages/driver.py +28 -21
- pymammotion/mammotion/commands/messages/media.py +10 -14
- pymammotion/mammotion/commands/messages/navigation.py +14 -11
- pymammotion/mammotion/commands/messages/network.py +15 -12
- pymammotion/mammotion/commands/messages/ota.py +9 -14
- pymammotion/mammotion/commands/messages/system.py +27 -24
- pymammotion/mammotion/commands/messages/video.py +9 -14
- pymammotion/mammotion/devices/base.py +7 -14
- pymammotion/mammotion/devices/mammotion.py +22 -13
- pymammotion/mammotion/devices/mammotion_bluetooth.py +15 -4
- pymammotion/mammotion/devices/mammotion_cloud.py +30 -12
- pymammotion/mqtt/linkkit/__init__.py +5 -0
- pymammotion/mqtt/linkkit/h2client.py +585 -0
- pymammotion/mqtt/linkkit/linkkit.py +3020 -0
- pymammotion/mqtt/mammotion_mqtt.py +13 -9
- pymammotion/proto/__init__.py +2176 -1
- pymammotion/proto/luba_mul.proto +1 -0
- pymammotion/proto/luba_mul_pb2.py +8 -8
- pymammotion/proto/luba_mul_pb2.pyi +1 -0
- pymammotion/proto/mctrl_nav_pb2.py +69 -67
- pymammotion/proto/mctrl_nav_pb2.pyi +13 -5
- pymammotion/proto/mctrl_sys_pb2.py +41 -37
- pymammotion/proto/mctrl_sys_pb2.pyi +34 -11
- pymammotion/utility/constant/device_constant.py +14 -5
- pymammotion/utility/device_config.py +754 -0
- pymammotion/utility/device_type.py +64 -16
- {pymammotion-0.3.8.dist-info → pymammotion-0.4.0.dist-info}/METADATA +9 -9
- {pymammotion-0.3.8.dist-info → pymammotion-0.4.0.dist-info}/RECORD +58 -62
- {pymammotion-0.3.8.dist-info → pymammotion-0.4.0.dist-info}/WHEEL +1 -1
- pymammotion/aliyun/cloud_service.py +0 -65
- pymammotion/proto/basestation.py +0 -59
- pymammotion/proto/common.py +0 -12
- pymammotion/proto/dev_net.py +0 -381
- pymammotion/proto/luba_msg.py +0 -81
- pymammotion/proto/luba_mul.py +0 -76
- pymammotion/proto/mctrl_driver.py +0 -100
- pymammotion/proto/mctrl_nav.py +0 -664
- pymammotion/proto/mctrl_ota.py +0 -48
- pymammotion/proto/mctrl_pept.py +0 -41
- pymammotion/proto/mctrl_sys.py +0 -574
- {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
|
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
|
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
|
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
|
+
Metadata-Version: 2.3
|
2
2
|
Name: pymammotion
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.4.0
|
4
4
|
Summary:
|
5
|
-
License:
|
5
|
+
License: GPL-3.0
|
6
6
|
Author: Michael Arthur
|
7
7
|
Author-email: michael@jumblesoft.co.nz
|
8
|
-
Requires-Python: >=3.10
|
9
|
-
Classifier: 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 (>=
|
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.
|
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=
|
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=
|
4
|
-
pymammotion/aliyun/
|
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=
|
8
|
-
pymammotion/aliyun/model/login_by_oauth_response.py,sha256=
|
9
|
-
pymammotion/aliyun/model/regions_response.py,sha256=
|
10
|
-
pymammotion/aliyun/model/session_by_authcode_response.py,sha256=
|
11
|
-
pymammotion/aliyun/model/stream_subscription_response.py,sha256=
|
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=
|
15
|
-
pymammotion/bluetooth/ble_message.py,sha256=
|
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=
|
28
|
-
pymammotion/data/model/device_config.py,sha256=
|
29
|
-
pymammotion/data/model/device_info.py,sha256=
|
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=
|
34
|
-
pymammotion/data/model/hash_list.py,sha256=
|
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=
|
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/
|
40
|
-
pymammotion/data/model/
|
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=
|
43
|
-
pymammotion/data/mqtt/properties.py,sha256=
|
44
|
-
pymammotion/data/mqtt/status.py,sha256=
|
45
|
-
pymammotion/data/state_manager.py,sha256=
|
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/
|
50
|
-
pymammotion/http/
|
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=
|
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=
|
57
|
-
pymammotion/mammotion/commands/messages/media.py,sha256=
|
58
|
-
pymammotion/mammotion/commands/messages/navigation.py,sha256=
|
59
|
-
pymammotion/mammotion/commands/messages/network.py,sha256=
|
60
|
-
pymammotion/mammotion/commands/messages/ota.py,sha256=
|
61
|
-
pymammotion/mammotion/commands/messages/system.py,sha256=
|
62
|
-
pymammotion/mammotion/commands/messages/video.py,sha256=
|
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=
|
67
|
-
pymammotion/mammotion/devices/mammotion.py,sha256=
|
68
|
-
pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=
|
69
|
-
pymammotion/mammotion/devices/mammotion_cloud.py,sha256
|
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=
|
73
|
-
pymammotion/proto/__init__.py,sha256=
|
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=
|
91
|
-
pymammotion/proto/
|
92
|
-
pymammotion/proto/luba_mul_pb2.
|
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/
|
100
|
-
pymammotion/proto/mctrl_nav_pb2.
|
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/
|
112
|
-
pymammotion/proto/mctrl_sys_pb2.
|
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=
|
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/
|
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.
|
125
|
-
pymammotion-0.
|
126
|
-
pymammotion-0.
|
127
|
-
pymammotion-0.
|
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,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)
|
pymammotion/proto/basestation.py
DELETED
@@ -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
|
-
)
|
pymammotion/proto/common.py
DELETED
@@ -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)
|