pymammotion 0.5.30__tar.gz → 0.5.32__tar.gz
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 pymammotion might be problematic. Click here for more details.
- {pymammotion-0.5.30 → pymammotion-0.5.32}/PKG-INFO +1 -1
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/client.py +3 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/http/http.py +11 -10
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/devices/base.py +3 -4
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/devices/mammotion.py +3 -2
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/devices/mammotion_bluetooth.py +1 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/devices/mammotion_cloud.py +6 -1
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/__init__.py +1 -1
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_nav.proto +1 -1
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_nav_pb2.py +1 -1
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pyproject.toml +2 -2
- {pymammotion-0.5.30 → pymammotion-0.5.32}/LICENSE +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/README.md +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/cloud_gateway.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/model/aep_response.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/model/connect_response.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/model/regions_response.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/model/thing_response.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/regions.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/tea/core.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/tmp_constant.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/bluetooth/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/bluetooth/ble.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/bluetooth/ble_message.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/bluetooth/const.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/bluetooth/data/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/bluetooth/data/convert.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/bluetooth/data/framectrldata.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/bluetooth/data/notifydata.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/bluetooth/model/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/bluetooth/model/atomic_integer.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/const.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/account.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/device.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/device_config.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/device_info.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/device_limits.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/enums.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/errors.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/excute_boarder_params.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/execute_boarder.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/generate_route_information.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/hash_list.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/location.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/mowing_modes.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/rapid_state.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/raw_data.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/region_data.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/report_info.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/work.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/mqtt/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/mqtt/event.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/mqtt/properties.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/mqtt/status.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/state_manager.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/event/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/event/event.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/http/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/http/_init_.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/http/encryption.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/http/model/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/http/model/camera_stream.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/http/model/http.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/http/model/response_factory.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/http/model/rtk.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/abstract_message.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/basestation.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/driver.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/media.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/network.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/ota.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/system.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/video.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/control/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/control/joystick.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/devices/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mqtt/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mqtt/linkkit/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mqtt/linkkit/h2client.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mqtt/linkkit/linkkit.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mqtt/mammotion_future.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/basestation.proto +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/basestation_pb2.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/basestation_pb2.pyi +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/common.proto +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/common_pb2.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/common_pb2.pyi +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/dev_net.proto +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/dev_net_pb2.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/dev_net_pb2.pyi +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/luba_msg.proto +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/luba_msg_pb2.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/luba_mul.proto +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/luba_mul_pb2.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_driver.proto +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_ota.proto +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_pept.proto +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_sys.proto +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/message_pool.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/proto/py.typed +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/py.typed +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/utility/constant/__init__.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/utility/constant/device_constant.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/utility/conversions.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/utility/datatype_converter.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/utility/device_config.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/utility/device_type.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/utility/map.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/utility/movement.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/utility/mur_mur_hash.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/utility/periodic.py +0 -0
- {pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/utility/rocker_util.py +0 -0
|
@@ -124,6 +124,9 @@ class Client:
|
|
|
124
124
|
_request.headers["x-ca-signature"] = APIGatewayUtilClient.get_signature(_request, self._app_secret)
|
|
125
125
|
_last_request = _request
|
|
126
126
|
_response = TeaCore.do_action(_request, _runtime)
|
|
127
|
+
if _response.body.get("code") == 20056:
|
|
128
|
+
raise Exception("Gateway timeout.")
|
|
129
|
+
|
|
127
130
|
return _response
|
|
128
131
|
except Exception as e:
|
|
129
132
|
if TeaCore.is_retryable(e):
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import csv
|
|
2
|
+
import time
|
|
2
3
|
from typing import cast
|
|
3
4
|
|
|
4
5
|
from aiohttp import ClientSession
|
|
@@ -13,7 +14,8 @@ from pymammotion.http.model.rtk import RTK
|
|
|
13
14
|
|
|
14
15
|
class MammotionHTTP:
|
|
15
16
|
def __init__(self) -> None:
|
|
16
|
-
self.
|
|
17
|
+
self.expires_in = 0
|
|
18
|
+
self.code = 0
|
|
17
19
|
self.msg = None
|
|
18
20
|
self.account = None
|
|
19
21
|
self._password = None
|
|
@@ -184,6 +186,7 @@ class MammotionHTTP:
|
|
|
184
186
|
# TODO catch errors from mismatch like token expire etc
|
|
185
187
|
# Assuming the data format matches the expected structure
|
|
186
188
|
response = Response[StreamSubscriptionResponse].from_dict(data)
|
|
189
|
+
await self.handle_expiry(response)
|
|
187
190
|
if response.code != 0:
|
|
188
191
|
return response
|
|
189
192
|
response.data = StreamSubscriptionResponse.from_dict(data.get("data", {}))
|
|
@@ -261,15 +264,12 @@ class MammotionHTTP:
|
|
|
261
264
|
|
|
262
265
|
return response_factory(Response[list[RTK]], data)
|
|
263
266
|
|
|
264
|
-
async def refresh_login(self
|
|
265
|
-
if self.
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
if res.code == 0:
|
|
271
|
-
return res
|
|
272
|
-
return await self.login(account, self._password)
|
|
267
|
+
async def refresh_login(self) -> Response[LoginResponseData]:
|
|
268
|
+
if self.expires_in > time.time():
|
|
269
|
+
res = await self.refresh_token()
|
|
270
|
+
if res.code == 0:
|
|
271
|
+
return res
|
|
272
|
+
return await self.login(self.account, self._password)
|
|
273
273
|
|
|
274
274
|
async def login(self, account: str, password: str) -> Response[LoginResponseData]:
|
|
275
275
|
"""Logs in to the service using provided account and password."""
|
|
@@ -301,6 +301,7 @@ class MammotionHTTP:
|
|
|
301
301
|
print(login_response)
|
|
302
302
|
return Response.from_dict({"code": resp.status, "msg": "Login failed"})
|
|
303
303
|
self.login_info = login_response.data
|
|
304
|
+
self.expires_in = login_response.data.expires_in + time.time()
|
|
304
305
|
self._headers["Authorization"] = (
|
|
305
306
|
f"Bearer {self.login_info.access_token}" if login_response.data else None
|
|
306
307
|
)
|
|
@@ -43,7 +43,6 @@ class MammotionBaseDevice:
|
|
|
43
43
|
self._raw_mower_data: RawMowerData = RawMowerData()
|
|
44
44
|
self._notify_future: asyncio.Future[bytes] | None = None
|
|
45
45
|
self._cloud_device = cloud_device
|
|
46
|
-
self.command_sent_time: float = time.time()
|
|
47
46
|
|
|
48
47
|
async def datahash_response(self, hash_ack: NavGetHashListAck) -> None:
|
|
49
48
|
"""Handle datahash responses for root level hashs."""
|
|
@@ -51,8 +50,8 @@ class MammotionBaseDevice:
|
|
|
51
50
|
|
|
52
51
|
missing_frames = self.mower.map.missing_root_hash_frame(hash_ack)
|
|
53
52
|
if len(missing_frames) == 0:
|
|
54
|
-
if len(self.mower.map.missing_hashlist(
|
|
55
|
-
data_hash = self.mower.map.missing_hashlist(hash_ack.sub_cmd).pop()
|
|
53
|
+
if len(self.mower.map.missing_hashlist(hash_ack.sub_cmd)) > 0:
|
|
54
|
+
data_hash = self.mower.map.missing_hashlist(hash_ack.sub_cmd).pop(0)
|
|
56
55
|
await self.queue_command("synchronize_hash_data", hash_num=data_hash)
|
|
57
56
|
return
|
|
58
57
|
|
|
@@ -70,7 +69,7 @@ class MammotionBaseDevice:
|
|
|
70
69
|
# get next in hash ack list
|
|
71
70
|
|
|
72
71
|
data_hash = (
|
|
73
|
-
self.mower.map.missing_hashlist(common_data.sub_cmd).pop()
|
|
72
|
+
self.mower.map.missing_hashlist(common_data.sub_cmd).pop(0)
|
|
74
73
|
if len(self.mower.map.missing_hashlist(common_data.sub_cmd)) > 0
|
|
75
74
|
else None
|
|
76
75
|
)
|
|
@@ -199,7 +199,7 @@ class Mammotion:
|
|
|
199
199
|
if not exists:
|
|
200
200
|
return
|
|
201
201
|
mammotion_http = exists.cloud_client.mammotion_http
|
|
202
|
-
await mammotion_http.refresh_login(
|
|
202
|
+
await mammotion_http.refresh_login()
|
|
203
203
|
await self.connect_iot(exists.cloud_client)
|
|
204
204
|
|
|
205
205
|
if not exists.is_connected():
|
|
@@ -273,7 +273,8 @@ class Mammotion:
|
|
|
273
273
|
async def connect_iot(cloud_client: CloudIOTGateway) -> None:
|
|
274
274
|
mammotion_http = cloud_client.mammotion_http
|
|
275
275
|
country_code = mammotion_http.login_info.userInformation.domainAbbreviation
|
|
276
|
-
|
|
276
|
+
if cloud_client.region_response is None:
|
|
277
|
+
await cloud_client.get_region(country_code)
|
|
277
278
|
await cloud_client.connect()
|
|
278
279
|
await cloud_client.login_by_oauth(country_code)
|
|
279
280
|
await cloud_client.aep_handle()
|
{pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/devices/mammotion_bluetooth.py
RENAMED
|
@@ -76,6 +76,7 @@ class MammotionBaseBLEDevice(MammotionBaseDevice):
|
|
|
76
76
|
) -> None:
|
|
77
77
|
"""Initialize MammotionBaseBLEDevice."""
|
|
78
78
|
super().__init__(state_manager, cloud_device)
|
|
79
|
+
self.command_sent_time = 0
|
|
79
80
|
self._disconnect_strategy = True
|
|
80
81
|
self._ble_sync_task = None
|
|
81
82
|
self._prev_notification = None
|
|
@@ -33,6 +33,7 @@ class MammotionCloud:
|
|
|
33
33
|
def __init__(self, mqtt_client: MammotionMQTT, cloud_client: CloudIOTGateway) -> None:
|
|
34
34
|
"""Initialize MammotionCloud."""
|
|
35
35
|
self.cloud_client = cloud_client
|
|
36
|
+
self.command_sent_time = 0
|
|
36
37
|
self.loop = asyncio.get_event_loop()
|
|
37
38
|
self.is_ready = False
|
|
38
39
|
self.command_queue = asyncio.Queue()
|
|
@@ -104,8 +105,8 @@ class MammotionCloud:
|
|
|
104
105
|
assert self._mqtt_client is not None
|
|
105
106
|
self._key = key
|
|
106
107
|
_LOGGER.debug("Sending command: %s", key)
|
|
107
|
-
await self._mqtt_client.get_cloud_client().send_cloud_command(iot_id, command)
|
|
108
108
|
self.command_sent_time = time.time()
|
|
109
|
+
await self._mqtt_client.get_cloud_client().send_cloud_command(iot_id, command)
|
|
109
110
|
|
|
110
111
|
async def _on_mqtt_message(self, topic: str, payload: str, iot_id: str) -> None:
|
|
111
112
|
"""Handle incoming MQTT messages."""
|
|
@@ -212,6 +213,10 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
|
|
|
212
213
|
"""Cleanup."""
|
|
213
214
|
self._state_manager.cloud_queue_command_callback.remove_subscribers(self.queue_command)
|
|
214
215
|
|
|
216
|
+
@property
|
|
217
|
+
def command_sent_time(self) -> float:
|
|
218
|
+
return self._mqtt.command_sent_time
|
|
219
|
+
|
|
215
220
|
def set_notification_callback(self, func: Callable[[tuple[str, Any | None]], Awaitable[None]]) -> None:
|
|
216
221
|
self._state_manager.cloud_on_notification_callback.add_subscribers(func)
|
|
217
222
|
|
|
@@ -3020,7 +3020,7 @@ class NavGetCommData(betterproto2.Message):
|
|
|
3020
3020
|
|
|
3021
3021
|
type: "int" = betterproto2.field(4, betterproto2.TYPE_INT32)
|
|
3022
3022
|
|
|
3023
|
-
hash: "int" = betterproto2.field(5, betterproto2.
|
|
3023
|
+
hash: "int" = betterproto2.field(5, betterproto2.TYPE_INT64)
|
|
3024
3024
|
|
|
3025
3025
|
paternal_hash_a: "int" = betterproto2.field(6, betterproto2.TYPE_INT64)
|
|
3026
3026
|
|
|
@@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
|
|
|
14
14
|
from pymammotion.proto import common_pb2 as pymammotion_dot_proto_dot_common__pb2
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!pymammotion/proto/mctrl_nav.proto\x1a\x1epymammotion/proto/common.proto\"\'\n\x0bNavLatLonUp\x12\x0b\n\x03lat\x18\x01 \x01(\x01\x12\x0b\n\x03lon\x18\x02 \x01(\x01\"!\n\x0eNavBorderState\x12\x0f\n\x07\x62\x64state\x18\x01 \x01(\x05\"\xc9\x01\n\x08NavPosUp\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\x0e\n\x06status\x18\x03 \x01(\x05\x12\x0e\n\x06toward\x18\x04 \x01(\x05\x12\r\n\x05stars\x18\x05 \x01(\x05\x12\x0b\n\x03\x61ge\x18\x06 \x01(\x02\x12\x11\n\tlatStddev\x18\x07 \x01(\x02\x12\x11\n\tlonStddev\x18\x08 \x01(\x02\x12\x11\n\tl2dfStars\x18\t \x01(\x05\x12\x0f\n\x07posType\x18\n \x01(\x05\x12\x0f\n\x07\x63HashId\x18\x0b \x01(\x03\x12\x10\n\x08posLevel\x18\x0c \x01(\x05\":\n\x13NavBorderDataGetAck\x12\r\n\x05jobId\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x02 \x01(\x05\"Z\n\x15NavObstiBorderDataGet\x12\x15\n\robstacleIndex\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x02 \x01(\x05\x12\x14\n\x0cobstaclesLen\x18\x03 \x01(\x05\"G\n\x18NavObstiBorderDataGetAck\x12\x15\n\robstacleIndex\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x02 \x01(\x05\"d\n\x0eNavCHlLineData\x12\x12\n\nstartJobRI\x18\x01 \x01(\x05\x12\x10\n\x08\x65ndJobRI\x18\x02 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x03 \x01(\x05\x12\x16\n\x0e\x63hannelLineLen\x18\x04 \x01(\x05\"O\n\x11NavCHlLineDataAck\x12\x12\n\nstartJobRI\x18\x01 \x01(\x05\x12\x10\n\x08\x65ndJobRI\x18\x02 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x03 \x01(\x05\"\x7f\n\x0bNavTaskInfo\x12\x0c\n\x04\x61rea\x18\x01 \x01(\x05\x12\x0c\n\x04time\x18\x02 \x01(\x05\x12\x10\n\x08\x61llFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x0f\n\x07pathlen\x18\x05 \x01(\x05\x12\x1b\n\x02\x64\x63\x18\x06 \x03(\x0b\x32\x0f.CommDataCouple\"J\n\x10NavBorderDataGet\x12\r\n\x05jobId\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x02 \x01(\x05\x12\x11\n\tborderLen\x18\x03 \x01(\x05\"\x91\x01\n\x0cNavOptLineUp\x12\x12\n\nstartJobRI\x18\x01 \x01(\x05\x12\x10\n\x08\x65ndJobRI\x18\x02 \x01(\x05\x12\x10\n\x08\x61llFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x16\n\x0e\x63hannelDataLen\x18\x05 \x01(\x05\x12\x1b\n\x02\x64\x63\x18\x06 \x03(\x0b\x32\x0f.CommDataCouple\"~\n\x11NavOptiBorderInfo\x12\r\n\x05jobId\x18\x01 \x01(\x05\x12\x10\n\x08\x61llFrame\x18\x02 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x03 \x01(\x05\x12\x15\n\rborderDataLen\x18\x04 \x01(\x05\x12\x1b\n\x02\x64\x63\x18\x05 \x03(\x0b\x32\x0f.CommDataCouple\"\x81\x01\n\rNavOptObsInfo\x12\x12\n\nobstacleId\x18\x01 \x01(\x05\x12\x10\n\x08\x61llFrame\x18\x02 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x03 \x01(\x05\x12\x17\n\x0fobstacleDataLen\x18\x04 \x01(\x05\x12\x1b\n\x02\x64\x63\x18\x05 \x03(\x0b\x32\x0f.CommDataCouple\"\xb4\x01\n\x0bNavStartJob\x12\r\n\x05jobId\x18\x01 \x01(\x03\x12\x0e\n\x06jobVer\x18\x02 \x01(\x05\x12\x0f\n\x07jobMode\x18\x03 \x01(\x05\x12\x13\n\x0brainTactics\x18\x04 \x01(\x05\x12\x13\n\x0bknifeHeight\x18\x05 \x01(\x05\x12\r\n\x05speed\x18\x06 \x01(\x02\x12\x14\n\x0c\x63hannelWidth\x18\x07 \x01(\x05\x12\x11\n\tUltraWave\x18\x08 \x01(\x05\x12\x13\n\x0b\x63hannelMode\x18\t \x01(\x05\"\'\n\x0fNavTaskProgress\x12\x14\n\x0ctaskProgress\x18\x01 \x01(\x05\"\x1e\n\x0bNavResFrame\x12\x0f\n\x07\x66rameid\x18\x01 \x01(\x05\"|\n\x0eNavGetHashList\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x12\n\ntotalFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x05 \x01(\x06\x12\x10\n\x08reserved\x18\x06 \x01(\t\"\xb4\x01\n\x11NavGetHashListAck\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x12\n\ntotalFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x05 \x01(\x06\x12\x0f\n\x07hashLen\x18\x06 \x01(\x05\x12\x10\n\x08reserved\x18\x07 \x01(\t\x12\x0e\n\x06result\x18\x08 \x01(\x05\x12\x12\n\ndataCouple\x18\r \x03(\x03\"\xd6\x01\n\x0eNavGetCommData\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x03 \x01(\x05\x12\x0c\n\x04type\x18\x04 \x01(\x05\x12\x0c\n\x04hash\x18\x05 \x01(\x06\x12\x15\n\rpaternalHashA\x18\x06 \x01(\x03\x12\x15\n\rpaternalHashB\x18\x07 \x01(\x03\x12\x12\n\ntotalFrame\x18\x08 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\t \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\n \x01(\x06\x12\x10\n\x08reserved\x18\x0b \x01(\t\"H\n\x0eNavGetNameTime\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x63reate_time\x18\x02 \x01(\x06\x12\x13\n\x0bmodify_time\x18\x03 \x01(\x06\"\xc2\x02\n\x11NavGetCommDataAck\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x0e\n\x06result\x18\x03 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x04 \x01(\x05\x12\x0c\n\x04type\x18\x05 \x01(\x05\x12\x0c\n\x04Hash\x18\x06 \x01(\x06\x12\x15\n\rpaternalHashA\x18\x07 \x01(\x06\x12\x15\n\rpaternalHashB\x18\x08 \x01(\x06\x12\x12\n\ntotalFrame\x18\t \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\n \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x0b \x01(\x06\x12\x0f\n\x07\x64\x61taLen\x18\x0c \x01(\x05\x12#\n\ndataCouple\x18\r \x03(\x0b\x32\x0f.CommDataCouple\x12\x10\n\x08reserved\x18\x0e \x01(\t\x12!\n\x08nameTime\x18\x0f \x01(\x0b\x32\x0f.NavGetNameTime\"\xde\x02\n\x0fNavReqCoverPath\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\r\n\x05jobId\x18\x02 \x01(\x06\x12\x0e\n\x06jobVer\x18\x03 \x01(\x05\x12\x0f\n\x07jobMode\x18\x04 \x01(\x05\x12\x0e\n\x06subCmd\x18\x05 \x01(\x05\x12\x10\n\x08\x65\x64geMode\x18\x06 \x01(\x05\x12\x13\n\x0bknifeHeight\x18\x07 \x01(\x05\x12\x14\n\x0c\x63hannelWidth\x18\x08 \x01(\x05\x12\x11\n\tUltraWave\x18\t \x01(\x05\x12\x13\n\x0b\x63hannelMode\x18\n \x01(\x05\x12\x0e\n\x06toward\x18\x0b \x01(\x05\x12\r\n\x05speed\x18\x0c \x01(\x02\x12\x11\n\tzoneHashs\x18\r \x03(\x06\x12\x10\n\x08pathHash\x18\x0e \x01(\x06\x12\x10\n\x08reserved\x18\x0f \x01(\t\x12\x0e\n\x06result\x18\x10 \x01(\x05\x12\x13\n\x0btoward_mode\x18\x11 \x01(\x05\x12\x1d\n\x15toward_included_angle\x18\x12 \x01(\x05\"\xa7\x03\n\x15NavUploadZigZagResult\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\r\n\x05jobId\x18\x02 \x01(\x06\x12\x0e\n\x06jobVer\x18\x03 \x01(\x05\x12\x0e\n\x06result\x18\x04 \x01(\x05\x12\x0c\n\x04\x61rea\x18\x05 \x01(\x05\x12\x0c\n\x04time\x18\x06 \x01(\x05\x12\x14\n\x0ctotalZoneNum\x18\x07 \x01(\x05\x12\x1a\n\x12\x63urrentZonePathNum\x18\x08 \x01(\x05\x12\x19\n\x11\x63urrentZonePathId\x18\t \x01(\x05\x12\x13\n\x0b\x63urrentZone\x18\n \x01(\x05\x12\x13\n\x0b\x63urrentHash\x18\x0b \x01(\x06\x12\x12\n\ntotalFrame\x18\x0c \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\r \x01(\x05\x12\x13\n\x0b\x63hannelMode\x18\x0e \x01(\x05\x12\x15\n\rchannelModeId\x18\x0f \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x10 \x01(\x06\x12\x0f\n\x07\x64\x61taLen\x18\x11 \x01(\x05\x12\x10\n\x08reserved\x18\x12 \x01(\t\x12#\n\ndataCouple\x18\x13 \x03(\x0b\x32\x0f.CommDataCouple\x12\x0e\n\x06subCmd\x18\x14 \x01(\x05\"\xb0\x01\n\x18NavUploadZigZagResultAck\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x13\n\x0b\x63urrentZone\x18\x02 \x01(\x05\x12\x13\n\x0b\x63urrentHash\x18\x03 \x01(\x06\x12\x12\n\ntotalFrame\x18\x04 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x05 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x06 \x01(\x06\x12\x10\n\x08reserved\x18\x07 \x01(\t\x12\x0e\n\x06subCmd\x18\x08 \x01(\x05\"M\n\x0bNavTaskCtrl\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\x05\x12\x0e\n\x06result\x18\x03 \x01(\x05\x12\x10\n\x08reserved\x18\x04 \x01(\t\"o\n\x0bNavTaskIdRw\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x10\n\x08taskName\x18\x03 \x01(\t\x12\x0e\n\x06taskId\x18\x04 \x01(\t\x12\x0e\n\x06result\x18\x05 \x01(\x05\x12\x10\n\x08reserved\x18\x06 \x01(\t\"J\n\x12NavSysHashOverview\x12\x1a\n\x12\x63ommonhashOverview\x18\x01 \x01(\x06\x12\x18\n\x10pathHashOverview\x18\x02 \x01(\x06\"i\n\x11NavTaskBreakPoint\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\x0e\n\x06toward\x18\x03 \x01(\x05\x12\x0c\n\x04\x66lag\x18\x04 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x05 \x01(\x05\x12\x10\n\x08zoneHash\x18\x06 \x01(\x06\"\xc2\x05\n\rNavPlanJobSet\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x0c\n\x04\x61rea\x18\x03 \x01(\x05\x12\x10\n\x08workTime\x18\x04 \x01(\x05\x12\x0f\n\x07version\x18\x05 \x01(\t\x12\n\n\x02id\x18\x06 \x01(\t\x12\x0e\n\x06userId\x18\x07 \x01(\t\x12\x10\n\x08\x64\x65viceId\x18\x08 \x01(\t\x12\x0e\n\x06planId\x18\t \x01(\t\x12\x0e\n\x06taskId\x18\n \x01(\t\x12\r\n\x05jobId\x18\x0b \x01(\t\x12\x11\n\tstartTime\x18\x0c \x01(\t\x12\x0f\n\x07\x65ndTime\x18\r \x01(\t\x12\x0c\n\x04week\x18\x0e \x01(\x05\x12\x13\n\x0bknifeHeight\x18\x0f \x01(\x05\x12\r\n\x05model\x18\x10 \x01(\x05\x12\x10\n\x08\x65\x64geMode\x18\x11 \x01(\x05\x12\x14\n\x0crequiredTime\x18\x12 \x01(\x05\x12\x12\n\nrouteAngle\x18\x13 \x01(\x05\x12\x12\n\nrouteModel\x18\x14 \x01(\x05\x12\x14\n\x0crouteSpacing\x18\x15 \x01(\x05\x12\x19\n\x11ultrasonicBarrier\x18\x16 \x01(\x05\x12\x14\n\x0ctotalPlanNum\x18\x17 \x01(\x05\x12\x11\n\tPlanIndex\x18\x18 \x01(\x05\x12\x0e\n\x06result\x18\x19 \x01(\x05\x12\r\n\x05speed\x18\x1a \x01(\x02\x12\x10\n\x08taskName\x18\x1b \x01(\t\x12\x0f\n\x07jobName\x18\x1c \x01(\t\x12\x11\n\tzoneHashs\x18\x1d \x03(\x06\x12\x10\n\x08reserved\x18\x1e \x01(\t\x12\x11\n\tstartDate\x18\x1f \x01(\t\x12\x0f\n\x07\x65ndDate\x18 \x01(\t\x12\x13\n\x0btriggerType\x18! \x01(\x05\x12\x0b\n\x03\x64\x61y\x18\" \x01(\x05\x12\r\n\x05weeks\x18# \x03(\x07\x12\x18\n\x10remained_seconds\x18$ \x01(\x03\x12\x12\n\ntowardMode\x18% \x01(\x05\x12\x1b\n\x13towardIncludedAngle\x18& \x01(\x05\"\x97\x01\n\x10NavUnableTimeSet\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\x12\x10\n\x08\x64\x65viceId\x18\x02 \x01(\t\x12\x17\n\x0funableStartTime\x18\x03 \x01(\t\x12\x15\n\runableEndTime\x18\x04 \x01(\t\x12\x0e\n\x06result\x18\x05 \x01(\x05\x12\x10\n\x08reserved\x18\x06 \x01(\t\x12\x0f\n\x07trigger\x18\x07 \x01(\x05\"6\n\x0e\x63hargePileType\x12\x0e\n\x06toward\x18\x01 \x01(\x05\x12\t\n\x01x\x18\x02 \x01(\x02\x12\t\n\x01y\x18\x03 \x01(\x02\"J\n\x11SimulationCmdData\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\x12\x10\n\x08param_id\x18\x02 \x01(\x05\x12\x13\n\x0bparam_value\x18\x03 \x03(\x05\"%\n\x13WorkReportUpdateCmd\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\"<\n\x13WorkReportUpdateAck\x12\x13\n\x0bupdate_flag\x18\x01 \x01(\x08\x12\x10\n\x08info_num\x18\x02 \x01(\x05\"7\n\x11WorkReportCmdData\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\x12\x12\n\ngetInfoNum\x18\x02 \x01(\x05\"\xa3\x02\n\x11WorkReportInfoAck\x12\x16\n\x0einterrupt_flag\x18\x01 \x01(\x08\x12\x17\n\x0fstart_work_time\x18\x02 \x01(\x03\x12\x15\n\rend_work_time\x18\x03 \x01(\x03\x12\x16\n\x0ework_time_used\x18\x04 \x01(\x05\x12\x11\n\twork_ares\x18\x05 \x01(\x01\x12\x15\n\rwork_progress\x18\x06 \x01(\x05\x12\x17\n\x0fheight_of_knife\x18\x07 \x01(\x05\x12\x11\n\twork_type\x18\x08 \x01(\x05\x12\x13\n\x0bwork_result\x18\t \x01(\x05\x12\x15\n\rtotal_ack_num\x18\n \x01(\x05\x12\x17\n\x0f\x63urrent_ack_num\x18\x0b \x01(\x05\x12\x13\n\x0bjob_content\x18\x0c \x01(\x05\"\xb2\x01\n\x19\x61pp_request_cover_paths_t\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x12\n\ntotalFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x05 \x01(\x06\x12\x16\n\x0etransaction_id\x18\x06 \x01(\x03\x12\x10\n\x08reserved\x18\x07 \x03(\x03\x12\x11\n\thash_list\x18\x08 \x03(\x06\"\x99\x01\n\x13\x63over_path_packet_t\x12\x11\n\tpath_hash\x18\x01 \x01(\x06\x12\x11\n\tpath_type\x18\x02 \x01(\x05\x12\x12\n\npath_total\x18\x03 \x01(\x05\x12\x10\n\x08path_cur\x18\x04 \x01(\x05\x12\x11\n\tzone_hash\x18\x05 \x01(\x06\x12#\n\ndataCouple\x18\x06 \x03(\x0b\x32\x0f.CommDataCouple\"\xb2\x02\n\x13\x63over_path_upload_t\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06result\x18\x02 \x01(\x05\x12\x0e\n\x06subCmd\x18\x03 \x01(\x05\x12\x0c\n\x04\x61rea\x18\x04 \x01(\x05\x12\x0c\n\x04time\x18\x05 \x01(\x05\x12\x12\n\ntotalFrame\x18\x06 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x07 \x01(\x05\x12\x16\n\x0etotal_path_num\x18\x08 \x01(\x05\x12\x16\n\x0evaild_path_num\x18\t \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\n \x01(\x06\x12\x16\n\x0etransaction_id\x18\x0b \x01(\x03\x12\x10\n\x08reserved\x18\x0c \x03(\x03\x12\x0f\n\x07\x64\x61taLen\x18\r \x01(\x05\x12*\n\x0cpath_packets\x18\x0e \x03(\x0b\x32\x14.cover_path_packet_t\"M\n\x14zone_start_precent_t\x12\x10\n\x08\x64\x61taHash\x18\x01 \x01(\x06\x12\t\n\x01x\x18\x02 \x01(\x02\x12\t\n\x01y\x18\x03 \x01(\x02\x12\r\n\x05index\x18\x04 \x01(\x05\",\n\x0fvision_ctrl_msg\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x0b\n\x03\x63md\x18\x02 \x01(\x05\"<\n\x11nav_sys_param_msg\x12\n\n\x02rw\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\x05\x12\x0f\n\x07\x63ontext\x18\x03 \x01(\x05\"Q\n\x15nav_plan_task_execute\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06result\x18\x04 \x01(\x05\"y\n\tcostmap_t\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\x10\n\x08\x63\x65nter_x\x18\x03 \x01(\x02\x12\x10\n\x08\x63\x65nter_y\x18\x04 \x01(\x02\x12\x0b\n\x03yaw\x18\x05 \x01(\x02\x12\x0b\n\x03res\x18\x06 \x01(\x02\x12\x0f\n\x07\x63ostmap\x18\x07 \x03(\x05\"\x94\x02\n\rsvg_message_t\x12\x0e\n\x06x_move\x18\x01 \x01(\x01\x12\x0e\n\x06y_move\x18\x02 \x01(\x01\x12\r\n\x05scale\x18\x03 \x01(\x01\x12\x0e\n\x06rotate\x18\x04 \x01(\x01\x12\x14\n\x0c\x62\x61se_width_m\x18\x05 \x01(\x01\x12\x15\n\rbase_height_m\x18\x06 \x01(\x01\x12\x16\n\x0e\x62\x61se_width_pix\x18\x07 \x01(\x05\x12\x17\n\x0f\x62\x61se_height_pix\x18\x08 \x01(\x05\x12\x15\n\rsvg_file_name\x18\t \x01(\t\x12\x15\n\rsvg_file_data\x18\n \x01(\t\x12\x12\n\nname_count\x18\x0b \x01(\x05\x12\x12\n\ndata_count\x18\x0c \x01(\x05\x12\x10\n\x08hide_svg\x18\r \x01(\x08\"\xc7\x01\n\x11svg_message_ack_t\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x12\n\ntotalFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x05 \x01(\x06\x12\x15\n\rpaternalHashA\x18\x06 \x01(\x06\x12\x0c\n\x04type\x18\x07 \x01(\x05\x12\x0e\n\x06result\x18\x08 \x01(\x05\x12#\n\x0bsvg_message\x18\t \x01(\x0b\x32\x0e.svg_message_t\"/\n\x13plan_task_name_id_t\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"<\n\x15nav_get_all_plan_task\x12#\n\x05tasks\x18\x01 \x03(\x0b\x32\x14.plan_task_name_id_t\",\n\x0e\x61rea_hash_name\x12\x0c\n\x04hash\x18\x01 \x01(\x06\x12\x0c\n\x04name\x18\x02 \x01(\t\"M\n\x15\x41ppGetAllAreaHashName\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\t\x12\"\n\thashnames\x18\x02 \x03(\x0b\x32\x0f.area_hash_name\"c\n\x0eNavTaskCtrlAck\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\x05\x12\x0e\n\x06result\x18\x03 \x01(\x05\x12\x11\n\tnav_state\x18\x04 \x01(\x05\x12\x10\n\x08reserved\x18\x05 \x01(\t\"Y\n\rNavMapNameMsg\x12\n\n\x02rw\x18\x01 \x01(\x05\x12\x0c\n\x04hash\x18\x02 \x01(\x06\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06result\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x65viceId\x18\x05 \x01(\t\"\x9a\x01\n\rNavEdgePoints\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\x0c\n\x04Hash\x18\x04 \x01(\x06\x12\x12\n\ntotalFrame\x18\x05 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x06 \x01(\x05\x12#\n\ndataCouple\x18\x07 \x03(\x0b\x32\x0f.CommDataCouple\"x\n\x10NavEdgePointsAck\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\x0c\n\x04Hash\x18\x04 \x01(\x06\x12\x12\n\ntotalFrame\x18\x05 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x06 \x01(\x05\"\x8f\x02\n\x14ManualElementMessage\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0c\n\x04type\x18\x02 \x01(\x05\x12\r\n\x05shape\x18\x03 \x01(\x05\x12\x0e\n\x06result\x18\x04 \x01(\x05\x12\x0e\n\x06subCmd\x18\x05 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x06 \x01(\x06\x12\x0e\n\x06ifHide\x18\x07 \x01(\x08\x12\x10\n\x08reserved\x18\x08 \x01(\t\x12\x17\n\x0fpoint1_center_x\x18\t \x01(\x01\x12\x17\n\x0fpoint1_center_y\x18\n \x01(\x01\x12\x16\n\x0epoint2_width_x\x18\x0b \x01(\x01\x12\x17\n\x0fpoint2_height_y\x18\x0c \x01(\x01\x12\x15\n\rrotate_radius\x18\r \x01(\x01\"\x81\x16\n\x07MctlNav\x12$\n\x0ctoapp_lat_up\x18\x01 \x01(\x0b\x32\x0c.NavLatLonUpH\x00\x12!\n\x0ctoapp_pos_up\x18\x02 \x01(\x0b\x32\t.NavPosUpH\x00\x12.\n\x13todev_chl_line_data\x18\x03 \x01(\x0b\x32\x0f.NavCHlLineDataH\x00\x12\'\n\x0ftoapp_task_info\x18\x04 \x01(\x0b\x32\x0c.NavTaskInfoH\x00\x12*\n\x11toapp_opt_line_up\x18\x05 \x01(\x0b\x32\r.NavOptLineUpH\x00\x12\x33\n\x15toapp_opt_border_info\x18\x06 \x01(\x0b\x32\x12.NavOptiBorderInfoH\x00\x12,\n\x12toapp_opt_obs_info\x18\x07 \x01(\x0b\x32\x0e.NavOptObsInfoH\x00\x12+\n\x13todev_task_info_ack\x18\x08 \x01(\x0b\x32\x0c.NavResFrameH\x00\x12\x31\n\x19todev_opt_border_info_ack\x18\t \x01(\x0b\x32\x0c.NavResFrameH\x00\x12.\n\x16todev_opt_obs_info_ack\x18\n \x01(\x0b\x32\x0c.NavResFrameH\x00\x12-\n\x15todev_opt_line_up_ack\x18\x0b \x01(\x0b\x32\x0c.NavResFrameH\x00\x12*\n\x0ftoapp_chgpileto\x18\x0c \x01(\x0b\x32\x0f.chargePileTypeH\x00\x12\x17\n\rtodev_sustask\x18\r \x01(\x05H\x00\x12\x18\n\x0etodev_rechgcmd\x18\x0e \x01(\x05H\x00\x12\x17\n\rtodev_edgecmd\x18\x0f \x01(\x05H\x00\x12\x1b\n\x11todev_draw_border\x18\x10 \x01(\x05H\x00\x12\x1f\n\x15todev_draw_border_end\x18\x11 \x01(\x05H\x00\x12\x18\n\x0etodev_draw_obs\x18\x12 \x01(\x05H\x00\x12\x1c\n\x12todev_draw_obs_end\x18\x13 \x01(\x05H\x00\x12\x18\n\x0etodev_chl_line\x18\x14 \x01(\x05H\x00\x12\x1c\n\x12todev_chl_line_end\x18\x15 \x01(\x05H\x00\x12\x19\n\x0ftodev_save_task\x18\x16 \x01(\x05H\x00\x12\x1d\n\x13todev_cancel_suscmd\x18\x17 \x01(\x05H\x00\x12\x1e\n\x14todev_reset_chg_pile\x18\x18 \x01(\x05H\x00\x12\x1f\n\x15todev_cancel_draw_cmd\x18\x19 \x01(\x05H\x00\x12$\n\x1atodev_one_touch_leave_pile\x18\x1a \x01(\x05H\x00\x12&\n\x0etodev_mow_task\x18\x1b \x01(\x0b\x32\x0c.NavStartJobH\x00\x12\'\n\x0ctoapp_bstate\x18\x1c \x01(\x0b\x32\x0f.NavBorderStateH\x00\x12\x1a\n\x10todev_lat_up_ack\x18\x1d \x01(\x05H\x00\x12(\n\rtodev_gethash\x18\x1e \x01(\x0b\x32\x0f.NavGetHashListH\x00\x12/\n\x11toapp_gethash_ack\x18\x1f \x01(\x0b\x32\x12.NavGetHashListAckH\x00\x12/\n\x14todev_get_commondata\x18 \x01(\x0b\x32\x0f.NavGetCommDataH\x00\x12\x36\n\x18toapp_get_commondata_ack\x18! \x01(\x0b\x32\x12.NavGetCommDataAckH\x00\x12\x31\n\x15\x62idire_reqconver_path\x18\" \x01(\x0b\x32\x10.NavReqCoverPathH\x00\x12.\n\x0ctoapp_zigzag\x18# \x01(\x0b\x32\x16.NavUploadZigZagResultH\x00\x12\x35\n\x10todev_zigzag_ack\x18$ \x01(\x0b\x32\x19.NavUploadZigZagResultAckH\x00\x12&\n\x0etodev_taskctrl\x18% \x01(\x0b\x32\x0c.NavTaskCtrlH\x00\x12%\n\rbidire_taskid\x18& \x01(\x0b\x32\x0c.NavTaskIdRwH\x00\x12&\n\x08toapp_bp\x18\' \x01(\x0b\x32\x12.NavTaskBreakPointH\x00\x12+\n\x11todev_planjob_set\x18( \x01(\x0b\x32\x0e.NavPlanJobSetH\x00\x12\x32\n\x15todev_unable_time_set\x18) \x01(\x0b\x32\x11.NavUnableTimeSetH\x00\x12,\n\x0esimulation_cmd\x18* \x01(\x0b\x32\x12.SimulationCmdDataH\x00\x12<\n\x1ctodev_work_report_update_cmd\x18+ \x01(\x0b\x32\x14.WorkReportUpdateCmdH\x00\x12<\n\x1ctoapp_work_report_update_ack\x18, \x01(\x0b\x32\x14.WorkReportUpdateAckH\x00\x12\x33\n\x15todev_work_report_cmd\x18- \x01(\x0b\x32\x12.WorkReportCmdDataH\x00\x12\x33\n\x15toapp_work_report_ack\x18. \x01(\x0b\x32\x12.WorkReportInfoAckH\x00\x12\x36\n\x18toapp_work_report_upload\x18/ \x01(\x0b\x32\x12.WorkReportInfoAckH\x00\x12=\n\x17\x61pp_request_cover_paths\x18\x30 \x01(\x0b\x32\x1a.app_request_cover_paths_tH\x00\x12\x31\n\x11\x63over_path_upload\x18\x31 \x01(\x0b\x32\x14.cover_path_upload_tH\x00\x12\x33\n\x12zone_start_precent\x18\x32 \x01(\x0b\x32\x15.zone_start_precent_tH\x00\x12\'\n\x0bvision_ctrl\x18\x33 \x01(\x0b\x32\x10.vision_ctrl_msgH\x00\x12/\n\x11nav_sys_param_cmd\x18\x34 \x01(\x0b\x32\x12.nav_sys_param_msgH\x00\x12\x33\n\x11plan_task_execute\x18\x35 \x01(\x0b\x32\x16.nav_plan_task_executeH\x00\x12#\n\rtoapp_costmap\x18\x36 \x01(\x0b\x32\n.costmap_tH\x00\x12\x31\n\x11plan_task_name_id\x18\x37 \x01(\x0b\x32\x14.plan_task_name_id_tH\x00\x12/\n\rall_plan_task\x18\x38 \x01(\x0b\x32\x16.nav_get_all_plan_taskH\x00\x12-\n\x12todev_taskctrl_ack\x18\x39 \x01(\x0b\x32\x0f.NavTaskCtrlAckH\x00\x12,\n\x12toapp_map_name_msg\x18: \x01(\x0b\x32\x0e.NavMapNameMsgH\x00\x12+\n\rtodev_svg_msg\x18; \x01(\x0b\x32\x12.svg_message_ack_tH\x00\x12+\n\rtoapp_svg_msg\x18< \x01(\x0b\x32\x12.svg_message_ack_tH\x00\x12\x35\n\x13toapp_all_hash_name\x18= \x01(\x0b\x32\x16.AppGetAllAreaHashNameH\x00\x12+\n\x11toapp_edge_points\x18> \x01(\x0b\x32\x0e.NavEdgePointsH\x00\x12\x32\n\x15toapp_edge_points_ack\x18? \x01(\x0b\x32\x11.NavEdgePointsAckH\x00\x12\x35\n\x14toapp_manual_element\x18@ \x01(\x0b\x32\x15.ManualElementMessageH\x00\x42\x0b\n\tSubNavMsgb\x06proto3')
|
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!pymammotion/proto/mctrl_nav.proto\x1a\x1epymammotion/proto/common.proto\"\'\n\x0bNavLatLonUp\x12\x0b\n\x03lat\x18\x01 \x01(\x01\x12\x0b\n\x03lon\x18\x02 \x01(\x01\"!\n\x0eNavBorderState\x12\x0f\n\x07\x62\x64state\x18\x01 \x01(\x05\"\xc9\x01\n\x08NavPosUp\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\x0e\n\x06status\x18\x03 \x01(\x05\x12\x0e\n\x06toward\x18\x04 \x01(\x05\x12\r\n\x05stars\x18\x05 \x01(\x05\x12\x0b\n\x03\x61ge\x18\x06 \x01(\x02\x12\x11\n\tlatStddev\x18\x07 \x01(\x02\x12\x11\n\tlonStddev\x18\x08 \x01(\x02\x12\x11\n\tl2dfStars\x18\t \x01(\x05\x12\x0f\n\x07posType\x18\n \x01(\x05\x12\x0f\n\x07\x63HashId\x18\x0b \x01(\x03\x12\x10\n\x08posLevel\x18\x0c \x01(\x05\":\n\x13NavBorderDataGetAck\x12\r\n\x05jobId\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x02 \x01(\x05\"Z\n\x15NavObstiBorderDataGet\x12\x15\n\robstacleIndex\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x02 \x01(\x05\x12\x14\n\x0cobstaclesLen\x18\x03 \x01(\x05\"G\n\x18NavObstiBorderDataGetAck\x12\x15\n\robstacleIndex\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x02 \x01(\x05\"d\n\x0eNavCHlLineData\x12\x12\n\nstartJobRI\x18\x01 \x01(\x05\x12\x10\n\x08\x65ndJobRI\x18\x02 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x03 \x01(\x05\x12\x16\n\x0e\x63hannelLineLen\x18\x04 \x01(\x05\"O\n\x11NavCHlLineDataAck\x12\x12\n\nstartJobRI\x18\x01 \x01(\x05\x12\x10\n\x08\x65ndJobRI\x18\x02 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x03 \x01(\x05\"\x7f\n\x0bNavTaskInfo\x12\x0c\n\x04\x61rea\x18\x01 \x01(\x05\x12\x0c\n\x04time\x18\x02 \x01(\x05\x12\x10\n\x08\x61llFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x0f\n\x07pathlen\x18\x05 \x01(\x05\x12\x1b\n\x02\x64\x63\x18\x06 \x03(\x0b\x32\x0f.CommDataCouple\"J\n\x10NavBorderDataGet\x12\r\n\x05jobId\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x02 \x01(\x05\x12\x11\n\tborderLen\x18\x03 \x01(\x05\"\x91\x01\n\x0cNavOptLineUp\x12\x12\n\nstartJobRI\x18\x01 \x01(\x05\x12\x10\n\x08\x65ndJobRI\x18\x02 \x01(\x05\x12\x10\n\x08\x61llFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x16\n\x0e\x63hannelDataLen\x18\x05 \x01(\x05\x12\x1b\n\x02\x64\x63\x18\x06 \x03(\x0b\x32\x0f.CommDataCouple\"~\n\x11NavOptiBorderInfo\x12\r\n\x05jobId\x18\x01 \x01(\x05\x12\x10\n\x08\x61llFrame\x18\x02 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x03 \x01(\x05\x12\x15\n\rborderDataLen\x18\x04 \x01(\x05\x12\x1b\n\x02\x64\x63\x18\x05 \x03(\x0b\x32\x0f.CommDataCouple\"\x81\x01\n\rNavOptObsInfo\x12\x12\n\nobstacleId\x18\x01 \x01(\x05\x12\x10\n\x08\x61llFrame\x18\x02 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x03 \x01(\x05\x12\x17\n\x0fobstacleDataLen\x18\x04 \x01(\x05\x12\x1b\n\x02\x64\x63\x18\x05 \x03(\x0b\x32\x0f.CommDataCouple\"\xb4\x01\n\x0bNavStartJob\x12\r\n\x05jobId\x18\x01 \x01(\x03\x12\x0e\n\x06jobVer\x18\x02 \x01(\x05\x12\x0f\n\x07jobMode\x18\x03 \x01(\x05\x12\x13\n\x0brainTactics\x18\x04 \x01(\x05\x12\x13\n\x0bknifeHeight\x18\x05 \x01(\x05\x12\r\n\x05speed\x18\x06 \x01(\x02\x12\x14\n\x0c\x63hannelWidth\x18\x07 \x01(\x05\x12\x11\n\tUltraWave\x18\x08 \x01(\x05\x12\x13\n\x0b\x63hannelMode\x18\t \x01(\x05\"\'\n\x0fNavTaskProgress\x12\x14\n\x0ctaskProgress\x18\x01 \x01(\x05\"\x1e\n\x0bNavResFrame\x12\x0f\n\x07\x66rameid\x18\x01 \x01(\x05\"|\n\x0eNavGetHashList\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x12\n\ntotalFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x05 \x01(\x06\x12\x10\n\x08reserved\x18\x06 \x01(\t\"\xb4\x01\n\x11NavGetHashListAck\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x12\n\ntotalFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x05 \x01(\x06\x12\x0f\n\x07hashLen\x18\x06 \x01(\x05\x12\x10\n\x08reserved\x18\x07 \x01(\t\x12\x0e\n\x06result\x18\x08 \x01(\x05\x12\x12\n\ndataCouple\x18\r \x03(\x03\"\xd6\x01\n\x0eNavGetCommData\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x03 \x01(\x05\x12\x0c\n\x04type\x18\x04 \x01(\x05\x12\x0c\n\x04hash\x18\x05 \x01(\x03\x12\x15\n\rpaternalHashA\x18\x06 \x01(\x03\x12\x15\n\rpaternalHashB\x18\x07 \x01(\x03\x12\x12\n\ntotalFrame\x18\x08 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\t \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\n \x01(\x06\x12\x10\n\x08reserved\x18\x0b \x01(\t\"H\n\x0eNavGetNameTime\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x63reate_time\x18\x02 \x01(\x06\x12\x13\n\x0bmodify_time\x18\x03 \x01(\x06\"\xc2\x02\n\x11NavGetCommDataAck\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x0e\n\x06result\x18\x03 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x04 \x01(\x05\x12\x0c\n\x04type\x18\x05 \x01(\x05\x12\x0c\n\x04Hash\x18\x06 \x01(\x06\x12\x15\n\rpaternalHashA\x18\x07 \x01(\x06\x12\x15\n\rpaternalHashB\x18\x08 \x01(\x06\x12\x12\n\ntotalFrame\x18\t \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\n \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x0b \x01(\x06\x12\x0f\n\x07\x64\x61taLen\x18\x0c \x01(\x05\x12#\n\ndataCouple\x18\r \x03(\x0b\x32\x0f.CommDataCouple\x12\x10\n\x08reserved\x18\x0e \x01(\t\x12!\n\x08nameTime\x18\x0f \x01(\x0b\x32\x0f.NavGetNameTime\"\xde\x02\n\x0fNavReqCoverPath\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\r\n\x05jobId\x18\x02 \x01(\x06\x12\x0e\n\x06jobVer\x18\x03 \x01(\x05\x12\x0f\n\x07jobMode\x18\x04 \x01(\x05\x12\x0e\n\x06subCmd\x18\x05 \x01(\x05\x12\x10\n\x08\x65\x64geMode\x18\x06 \x01(\x05\x12\x13\n\x0bknifeHeight\x18\x07 \x01(\x05\x12\x14\n\x0c\x63hannelWidth\x18\x08 \x01(\x05\x12\x11\n\tUltraWave\x18\t \x01(\x05\x12\x13\n\x0b\x63hannelMode\x18\n \x01(\x05\x12\x0e\n\x06toward\x18\x0b \x01(\x05\x12\r\n\x05speed\x18\x0c \x01(\x02\x12\x11\n\tzoneHashs\x18\r \x03(\x06\x12\x10\n\x08pathHash\x18\x0e \x01(\x06\x12\x10\n\x08reserved\x18\x0f \x01(\t\x12\x0e\n\x06result\x18\x10 \x01(\x05\x12\x13\n\x0btoward_mode\x18\x11 \x01(\x05\x12\x1d\n\x15toward_included_angle\x18\x12 \x01(\x05\"\xa7\x03\n\x15NavUploadZigZagResult\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\r\n\x05jobId\x18\x02 \x01(\x06\x12\x0e\n\x06jobVer\x18\x03 \x01(\x05\x12\x0e\n\x06result\x18\x04 \x01(\x05\x12\x0c\n\x04\x61rea\x18\x05 \x01(\x05\x12\x0c\n\x04time\x18\x06 \x01(\x05\x12\x14\n\x0ctotalZoneNum\x18\x07 \x01(\x05\x12\x1a\n\x12\x63urrentZonePathNum\x18\x08 \x01(\x05\x12\x19\n\x11\x63urrentZonePathId\x18\t \x01(\x05\x12\x13\n\x0b\x63urrentZone\x18\n \x01(\x05\x12\x13\n\x0b\x63urrentHash\x18\x0b \x01(\x06\x12\x12\n\ntotalFrame\x18\x0c \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\r \x01(\x05\x12\x13\n\x0b\x63hannelMode\x18\x0e \x01(\x05\x12\x15\n\rchannelModeId\x18\x0f \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x10 \x01(\x06\x12\x0f\n\x07\x64\x61taLen\x18\x11 \x01(\x05\x12\x10\n\x08reserved\x18\x12 \x01(\t\x12#\n\ndataCouple\x18\x13 \x03(\x0b\x32\x0f.CommDataCouple\x12\x0e\n\x06subCmd\x18\x14 \x01(\x05\"\xb0\x01\n\x18NavUploadZigZagResultAck\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x13\n\x0b\x63urrentZone\x18\x02 \x01(\x05\x12\x13\n\x0b\x63urrentHash\x18\x03 \x01(\x06\x12\x12\n\ntotalFrame\x18\x04 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x05 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x06 \x01(\x06\x12\x10\n\x08reserved\x18\x07 \x01(\t\x12\x0e\n\x06subCmd\x18\x08 \x01(\x05\"M\n\x0bNavTaskCtrl\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\x05\x12\x0e\n\x06result\x18\x03 \x01(\x05\x12\x10\n\x08reserved\x18\x04 \x01(\t\"o\n\x0bNavTaskIdRw\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x10\n\x08taskName\x18\x03 \x01(\t\x12\x0e\n\x06taskId\x18\x04 \x01(\t\x12\x0e\n\x06result\x18\x05 \x01(\x05\x12\x10\n\x08reserved\x18\x06 \x01(\t\"J\n\x12NavSysHashOverview\x12\x1a\n\x12\x63ommonhashOverview\x18\x01 \x01(\x06\x12\x18\n\x10pathHashOverview\x18\x02 \x01(\x06\"i\n\x11NavTaskBreakPoint\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\x0e\n\x06toward\x18\x03 \x01(\x05\x12\x0c\n\x04\x66lag\x18\x04 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x05 \x01(\x05\x12\x10\n\x08zoneHash\x18\x06 \x01(\x06\"\xc2\x05\n\rNavPlanJobSet\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x0c\n\x04\x61rea\x18\x03 \x01(\x05\x12\x10\n\x08workTime\x18\x04 \x01(\x05\x12\x0f\n\x07version\x18\x05 \x01(\t\x12\n\n\x02id\x18\x06 \x01(\t\x12\x0e\n\x06userId\x18\x07 \x01(\t\x12\x10\n\x08\x64\x65viceId\x18\x08 \x01(\t\x12\x0e\n\x06planId\x18\t \x01(\t\x12\x0e\n\x06taskId\x18\n \x01(\t\x12\r\n\x05jobId\x18\x0b \x01(\t\x12\x11\n\tstartTime\x18\x0c \x01(\t\x12\x0f\n\x07\x65ndTime\x18\r \x01(\t\x12\x0c\n\x04week\x18\x0e \x01(\x05\x12\x13\n\x0bknifeHeight\x18\x0f \x01(\x05\x12\r\n\x05model\x18\x10 \x01(\x05\x12\x10\n\x08\x65\x64geMode\x18\x11 \x01(\x05\x12\x14\n\x0crequiredTime\x18\x12 \x01(\x05\x12\x12\n\nrouteAngle\x18\x13 \x01(\x05\x12\x12\n\nrouteModel\x18\x14 \x01(\x05\x12\x14\n\x0crouteSpacing\x18\x15 \x01(\x05\x12\x19\n\x11ultrasonicBarrier\x18\x16 \x01(\x05\x12\x14\n\x0ctotalPlanNum\x18\x17 \x01(\x05\x12\x11\n\tPlanIndex\x18\x18 \x01(\x05\x12\x0e\n\x06result\x18\x19 \x01(\x05\x12\r\n\x05speed\x18\x1a \x01(\x02\x12\x10\n\x08taskName\x18\x1b \x01(\t\x12\x0f\n\x07jobName\x18\x1c \x01(\t\x12\x11\n\tzoneHashs\x18\x1d \x03(\x06\x12\x10\n\x08reserved\x18\x1e \x01(\t\x12\x11\n\tstartDate\x18\x1f \x01(\t\x12\x0f\n\x07\x65ndDate\x18 \x01(\t\x12\x13\n\x0btriggerType\x18! \x01(\x05\x12\x0b\n\x03\x64\x61y\x18\" \x01(\x05\x12\r\n\x05weeks\x18# \x03(\x07\x12\x18\n\x10remained_seconds\x18$ \x01(\x03\x12\x12\n\ntowardMode\x18% \x01(\x05\x12\x1b\n\x13towardIncludedAngle\x18& \x01(\x05\"\x97\x01\n\x10NavUnableTimeSet\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\x12\x10\n\x08\x64\x65viceId\x18\x02 \x01(\t\x12\x17\n\x0funableStartTime\x18\x03 \x01(\t\x12\x15\n\runableEndTime\x18\x04 \x01(\t\x12\x0e\n\x06result\x18\x05 \x01(\x05\x12\x10\n\x08reserved\x18\x06 \x01(\t\x12\x0f\n\x07trigger\x18\x07 \x01(\x05\"6\n\x0e\x63hargePileType\x12\x0e\n\x06toward\x18\x01 \x01(\x05\x12\t\n\x01x\x18\x02 \x01(\x02\x12\t\n\x01y\x18\x03 \x01(\x02\"J\n\x11SimulationCmdData\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\x12\x10\n\x08param_id\x18\x02 \x01(\x05\x12\x13\n\x0bparam_value\x18\x03 \x03(\x05\"%\n\x13WorkReportUpdateCmd\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\"<\n\x13WorkReportUpdateAck\x12\x13\n\x0bupdate_flag\x18\x01 \x01(\x08\x12\x10\n\x08info_num\x18\x02 \x01(\x05\"7\n\x11WorkReportCmdData\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\x12\x12\n\ngetInfoNum\x18\x02 \x01(\x05\"\xa3\x02\n\x11WorkReportInfoAck\x12\x16\n\x0einterrupt_flag\x18\x01 \x01(\x08\x12\x17\n\x0fstart_work_time\x18\x02 \x01(\x03\x12\x15\n\rend_work_time\x18\x03 \x01(\x03\x12\x16\n\x0ework_time_used\x18\x04 \x01(\x05\x12\x11\n\twork_ares\x18\x05 \x01(\x01\x12\x15\n\rwork_progress\x18\x06 \x01(\x05\x12\x17\n\x0fheight_of_knife\x18\x07 \x01(\x05\x12\x11\n\twork_type\x18\x08 \x01(\x05\x12\x13\n\x0bwork_result\x18\t \x01(\x05\x12\x15\n\rtotal_ack_num\x18\n \x01(\x05\x12\x17\n\x0f\x63urrent_ack_num\x18\x0b \x01(\x05\x12\x13\n\x0bjob_content\x18\x0c \x01(\x05\"\xb2\x01\n\x19\x61pp_request_cover_paths_t\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x12\n\ntotalFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x05 \x01(\x06\x12\x16\n\x0etransaction_id\x18\x06 \x01(\x03\x12\x10\n\x08reserved\x18\x07 \x03(\x03\x12\x11\n\thash_list\x18\x08 \x03(\x06\"\x99\x01\n\x13\x63over_path_packet_t\x12\x11\n\tpath_hash\x18\x01 \x01(\x06\x12\x11\n\tpath_type\x18\x02 \x01(\x05\x12\x12\n\npath_total\x18\x03 \x01(\x05\x12\x10\n\x08path_cur\x18\x04 \x01(\x05\x12\x11\n\tzone_hash\x18\x05 \x01(\x06\x12#\n\ndataCouple\x18\x06 \x03(\x0b\x32\x0f.CommDataCouple\"\xb2\x02\n\x13\x63over_path_upload_t\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06result\x18\x02 \x01(\x05\x12\x0e\n\x06subCmd\x18\x03 \x01(\x05\x12\x0c\n\x04\x61rea\x18\x04 \x01(\x05\x12\x0c\n\x04time\x18\x05 \x01(\x05\x12\x12\n\ntotalFrame\x18\x06 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x07 \x01(\x05\x12\x16\n\x0etotal_path_num\x18\x08 \x01(\x05\x12\x16\n\x0evaild_path_num\x18\t \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\n \x01(\x06\x12\x16\n\x0etransaction_id\x18\x0b \x01(\x03\x12\x10\n\x08reserved\x18\x0c \x03(\x03\x12\x0f\n\x07\x64\x61taLen\x18\r \x01(\x05\x12*\n\x0cpath_packets\x18\x0e \x03(\x0b\x32\x14.cover_path_packet_t\"M\n\x14zone_start_precent_t\x12\x10\n\x08\x64\x61taHash\x18\x01 \x01(\x06\x12\t\n\x01x\x18\x02 \x01(\x02\x12\t\n\x01y\x18\x03 \x01(\x02\x12\r\n\x05index\x18\x04 \x01(\x05\",\n\x0fvision_ctrl_msg\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x0b\n\x03\x63md\x18\x02 \x01(\x05\"<\n\x11nav_sys_param_msg\x12\n\n\x02rw\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\x05\x12\x0f\n\x07\x63ontext\x18\x03 \x01(\x05\"Q\n\x15nav_plan_task_execute\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\x12\n\n\x02id\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06result\x18\x04 \x01(\x05\"y\n\tcostmap_t\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\x10\n\x08\x63\x65nter_x\x18\x03 \x01(\x02\x12\x10\n\x08\x63\x65nter_y\x18\x04 \x01(\x02\x12\x0b\n\x03yaw\x18\x05 \x01(\x02\x12\x0b\n\x03res\x18\x06 \x01(\x02\x12\x0f\n\x07\x63ostmap\x18\x07 \x03(\x05\"\x94\x02\n\rsvg_message_t\x12\x0e\n\x06x_move\x18\x01 \x01(\x01\x12\x0e\n\x06y_move\x18\x02 \x01(\x01\x12\r\n\x05scale\x18\x03 \x01(\x01\x12\x0e\n\x06rotate\x18\x04 \x01(\x01\x12\x14\n\x0c\x62\x61se_width_m\x18\x05 \x01(\x01\x12\x15\n\rbase_height_m\x18\x06 \x01(\x01\x12\x16\n\x0e\x62\x61se_width_pix\x18\x07 \x01(\x05\x12\x17\n\x0f\x62\x61se_height_pix\x18\x08 \x01(\x05\x12\x15\n\rsvg_file_name\x18\t \x01(\t\x12\x15\n\rsvg_file_data\x18\n \x01(\t\x12\x12\n\nname_count\x18\x0b \x01(\x05\x12\x12\n\ndata_count\x18\x0c \x01(\x05\x12\x10\n\x08hide_svg\x18\r \x01(\x08\"\xc7\x01\n\x11svg_message_ack_t\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0e\n\x06subCmd\x18\x02 \x01(\x05\x12\x12\n\ntotalFrame\x18\x03 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x05 \x01(\x06\x12\x15\n\rpaternalHashA\x18\x06 \x01(\x06\x12\x0c\n\x04type\x18\x07 \x01(\x05\x12\x0e\n\x06result\x18\x08 \x01(\x05\x12#\n\x0bsvg_message\x18\t \x01(\x0b\x32\x0e.svg_message_t\"/\n\x13plan_task_name_id_t\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"<\n\x15nav_get_all_plan_task\x12#\n\x05tasks\x18\x01 \x03(\x0b\x32\x14.plan_task_name_id_t\",\n\x0e\x61rea_hash_name\x12\x0c\n\x04hash\x18\x01 \x01(\x06\x12\x0c\n\x04name\x18\x02 \x01(\t\"M\n\x15\x41ppGetAllAreaHashName\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\t\x12\"\n\thashnames\x18\x02 \x03(\x0b\x32\x0f.area_hash_name\"c\n\x0eNavTaskCtrlAck\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\x05\x12\x0e\n\x06result\x18\x03 \x01(\x05\x12\x11\n\tnav_state\x18\x04 \x01(\x05\x12\x10\n\x08reserved\x18\x05 \x01(\t\"Y\n\rNavMapNameMsg\x12\n\n\x02rw\x18\x01 \x01(\x05\x12\x0c\n\x04hash\x18\x02 \x01(\x06\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06result\x18\x04 \x01(\x05\x12\x10\n\x08\x64\x65viceId\x18\x05 \x01(\t\"\x9a\x01\n\rNavEdgePoints\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\x0c\n\x04Hash\x18\x04 \x01(\x06\x12\x12\n\ntotalFrame\x18\x05 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x06 \x01(\x05\x12#\n\ndataCouple\x18\x07 \x03(\x0b\x32\x0f.CommDataCouple\"x\n\x10NavEdgePointsAck\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\x05\x12\x0c\n\x04Hash\x18\x04 \x01(\x06\x12\x12\n\ntotalFrame\x18\x05 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x06 \x01(\x05\"\x8f\x02\n\x14ManualElementMessage\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0c\n\x04type\x18\x02 \x01(\x05\x12\r\n\x05shape\x18\x03 \x01(\x05\x12\x0e\n\x06result\x18\x04 \x01(\x05\x12\x0e\n\x06subCmd\x18\x05 \x01(\x05\x12\x10\n\x08\x64\x61taHash\x18\x06 \x01(\x06\x12\x0e\n\x06ifHide\x18\x07 \x01(\x08\x12\x10\n\x08reserved\x18\x08 \x01(\t\x12\x17\n\x0fpoint1_center_x\x18\t \x01(\x01\x12\x17\n\x0fpoint1_center_y\x18\n \x01(\x01\x12\x16\n\x0epoint2_width_x\x18\x0b \x01(\x01\x12\x17\n\x0fpoint2_height_y\x18\x0c \x01(\x01\x12\x15\n\rrotate_radius\x18\r \x01(\x01\"\x81\x16\n\x07MctlNav\x12$\n\x0ctoapp_lat_up\x18\x01 \x01(\x0b\x32\x0c.NavLatLonUpH\x00\x12!\n\x0ctoapp_pos_up\x18\x02 \x01(\x0b\x32\t.NavPosUpH\x00\x12.\n\x13todev_chl_line_data\x18\x03 \x01(\x0b\x32\x0f.NavCHlLineDataH\x00\x12\'\n\x0ftoapp_task_info\x18\x04 \x01(\x0b\x32\x0c.NavTaskInfoH\x00\x12*\n\x11toapp_opt_line_up\x18\x05 \x01(\x0b\x32\r.NavOptLineUpH\x00\x12\x33\n\x15toapp_opt_border_info\x18\x06 \x01(\x0b\x32\x12.NavOptiBorderInfoH\x00\x12,\n\x12toapp_opt_obs_info\x18\x07 \x01(\x0b\x32\x0e.NavOptObsInfoH\x00\x12+\n\x13todev_task_info_ack\x18\x08 \x01(\x0b\x32\x0c.NavResFrameH\x00\x12\x31\n\x19todev_opt_border_info_ack\x18\t \x01(\x0b\x32\x0c.NavResFrameH\x00\x12.\n\x16todev_opt_obs_info_ack\x18\n \x01(\x0b\x32\x0c.NavResFrameH\x00\x12-\n\x15todev_opt_line_up_ack\x18\x0b \x01(\x0b\x32\x0c.NavResFrameH\x00\x12*\n\x0ftoapp_chgpileto\x18\x0c \x01(\x0b\x32\x0f.chargePileTypeH\x00\x12\x17\n\rtodev_sustask\x18\r \x01(\x05H\x00\x12\x18\n\x0etodev_rechgcmd\x18\x0e \x01(\x05H\x00\x12\x17\n\rtodev_edgecmd\x18\x0f \x01(\x05H\x00\x12\x1b\n\x11todev_draw_border\x18\x10 \x01(\x05H\x00\x12\x1f\n\x15todev_draw_border_end\x18\x11 \x01(\x05H\x00\x12\x18\n\x0etodev_draw_obs\x18\x12 \x01(\x05H\x00\x12\x1c\n\x12todev_draw_obs_end\x18\x13 \x01(\x05H\x00\x12\x18\n\x0etodev_chl_line\x18\x14 \x01(\x05H\x00\x12\x1c\n\x12todev_chl_line_end\x18\x15 \x01(\x05H\x00\x12\x19\n\x0ftodev_save_task\x18\x16 \x01(\x05H\x00\x12\x1d\n\x13todev_cancel_suscmd\x18\x17 \x01(\x05H\x00\x12\x1e\n\x14todev_reset_chg_pile\x18\x18 \x01(\x05H\x00\x12\x1f\n\x15todev_cancel_draw_cmd\x18\x19 \x01(\x05H\x00\x12$\n\x1atodev_one_touch_leave_pile\x18\x1a \x01(\x05H\x00\x12&\n\x0etodev_mow_task\x18\x1b \x01(\x0b\x32\x0c.NavStartJobH\x00\x12\'\n\x0ctoapp_bstate\x18\x1c \x01(\x0b\x32\x0f.NavBorderStateH\x00\x12\x1a\n\x10todev_lat_up_ack\x18\x1d \x01(\x05H\x00\x12(\n\rtodev_gethash\x18\x1e \x01(\x0b\x32\x0f.NavGetHashListH\x00\x12/\n\x11toapp_gethash_ack\x18\x1f \x01(\x0b\x32\x12.NavGetHashListAckH\x00\x12/\n\x14todev_get_commondata\x18 \x01(\x0b\x32\x0f.NavGetCommDataH\x00\x12\x36\n\x18toapp_get_commondata_ack\x18! \x01(\x0b\x32\x12.NavGetCommDataAckH\x00\x12\x31\n\x15\x62idire_reqconver_path\x18\" \x01(\x0b\x32\x10.NavReqCoverPathH\x00\x12.\n\x0ctoapp_zigzag\x18# \x01(\x0b\x32\x16.NavUploadZigZagResultH\x00\x12\x35\n\x10todev_zigzag_ack\x18$ \x01(\x0b\x32\x19.NavUploadZigZagResultAckH\x00\x12&\n\x0etodev_taskctrl\x18% \x01(\x0b\x32\x0c.NavTaskCtrlH\x00\x12%\n\rbidire_taskid\x18& \x01(\x0b\x32\x0c.NavTaskIdRwH\x00\x12&\n\x08toapp_bp\x18\' \x01(\x0b\x32\x12.NavTaskBreakPointH\x00\x12+\n\x11todev_planjob_set\x18( \x01(\x0b\x32\x0e.NavPlanJobSetH\x00\x12\x32\n\x15todev_unable_time_set\x18) \x01(\x0b\x32\x11.NavUnableTimeSetH\x00\x12,\n\x0esimulation_cmd\x18* \x01(\x0b\x32\x12.SimulationCmdDataH\x00\x12<\n\x1ctodev_work_report_update_cmd\x18+ \x01(\x0b\x32\x14.WorkReportUpdateCmdH\x00\x12<\n\x1ctoapp_work_report_update_ack\x18, \x01(\x0b\x32\x14.WorkReportUpdateAckH\x00\x12\x33\n\x15todev_work_report_cmd\x18- \x01(\x0b\x32\x12.WorkReportCmdDataH\x00\x12\x33\n\x15toapp_work_report_ack\x18. \x01(\x0b\x32\x12.WorkReportInfoAckH\x00\x12\x36\n\x18toapp_work_report_upload\x18/ \x01(\x0b\x32\x12.WorkReportInfoAckH\x00\x12=\n\x17\x61pp_request_cover_paths\x18\x30 \x01(\x0b\x32\x1a.app_request_cover_paths_tH\x00\x12\x31\n\x11\x63over_path_upload\x18\x31 \x01(\x0b\x32\x14.cover_path_upload_tH\x00\x12\x33\n\x12zone_start_precent\x18\x32 \x01(\x0b\x32\x15.zone_start_precent_tH\x00\x12\'\n\x0bvision_ctrl\x18\x33 \x01(\x0b\x32\x10.vision_ctrl_msgH\x00\x12/\n\x11nav_sys_param_cmd\x18\x34 \x01(\x0b\x32\x12.nav_sys_param_msgH\x00\x12\x33\n\x11plan_task_execute\x18\x35 \x01(\x0b\x32\x16.nav_plan_task_executeH\x00\x12#\n\rtoapp_costmap\x18\x36 \x01(\x0b\x32\n.costmap_tH\x00\x12\x31\n\x11plan_task_name_id\x18\x37 \x01(\x0b\x32\x14.plan_task_name_id_tH\x00\x12/\n\rall_plan_task\x18\x38 \x01(\x0b\x32\x16.nav_get_all_plan_taskH\x00\x12-\n\x12todev_taskctrl_ack\x18\x39 \x01(\x0b\x32\x0f.NavTaskCtrlAckH\x00\x12,\n\x12toapp_map_name_msg\x18: \x01(\x0b\x32\x0e.NavMapNameMsgH\x00\x12+\n\rtodev_svg_msg\x18; \x01(\x0b\x32\x12.svg_message_ack_tH\x00\x12+\n\rtoapp_svg_msg\x18< \x01(\x0b\x32\x12.svg_message_ack_tH\x00\x12\x35\n\x13toapp_all_hash_name\x18= \x01(\x0b\x32\x16.AppGetAllAreaHashNameH\x00\x12+\n\x11toapp_edge_points\x18> \x01(\x0b\x32\x0e.NavEdgePointsH\x00\x12\x32\n\x15toapp_edge_points_ack\x18? \x01(\x0b\x32\x11.NavEdgePointsAckH\x00\x12\x35\n\x14toapp_manual_element\x18@ \x01(\x0b\x32\x15.ManualElementMessageH\x00\x42\x0b\n\tSubNavMsgb\x06proto3')
|
|
18
18
|
|
|
19
19
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
|
20
20
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'pymammotion.proto.mctrl_nav_pb2', globals())
|
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pymammotion"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.32"
|
|
8
8
|
license = "GPL-3.0"
|
|
9
9
|
description = ""
|
|
10
10
|
readme = "README.md"
|
|
@@ -67,7 +67,7 @@ autotyping = "^24.3.0"
|
|
|
67
67
|
ipython = "^9.0.2"
|
|
68
68
|
|
|
69
69
|
[tool.bumpver]
|
|
70
|
-
current_version = "0.5.
|
|
70
|
+
current_version = "0.5.32"
|
|
71
71
|
version_pattern = "MAJOR.MINOR.PATCH"
|
|
72
72
|
commit_message = "Bump version {old_version} -> {new_version}"
|
|
73
73
|
commit = true
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/model/dev_by_account_response.py
RENAMED
|
File without changes
|
{pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/model/login_by_oauth_response.py
RENAMED
|
File without changes
|
|
File without changes
|
{pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/aliyun/model/session_by_authcode_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/data/model/generate_route_information.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/abstract_message.py
RENAMED
|
File without changes
|
{pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/mammotion_command.py
RENAMED
|
File without changes
|
{pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/__init__.py
RENAMED
|
File without changes
|
{pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/basestation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/navigation.py
RENAMED
|
File without changes
|
{pymammotion-0.5.30 → pymammotion-0.5.32}/pymammotion/mammotion/commands/messages/network.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|