pymammotion 0.0.53__tar.gz → 0.0.55__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.0.53 → pymammotion-0.0.55}/PKG-INFO +1 -1
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/device.py +6 -1
- pymammotion-0.0.55/pymammotion/data/model/device_config.py +9 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/mowing_modes.py +8 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/state_manager.py +3 -1
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/messages/navigation.py +44 -6
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/devices/mammotion.py +30 -10
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_nav.proto +62 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_nav.py +74 -2
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_nav_pb2.py +15 -3
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_nav_pb2.pyi +108 -2
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/utility/constant/device_constant.py +19 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/utility/device_type.py +3 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pyproject.toml +2 -2
- {pymammotion-0.0.53 → pymammotion-0.0.55}/LICENSE +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/README.md +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/cloud_gateway.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/cloud_service.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/dataclass/aep_response.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/dataclass/connect_response.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/dataclass/dev_by_account_response.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/dataclass/login_by_oauth_response.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/dataclass/regions_response.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/dataclass/session_by_authcode_response.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/tmp_constant.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/bluetooth/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/bluetooth/ble.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/bluetooth/ble_message.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/bluetooth/const.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/bluetooth/data/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/bluetooth/data/convert.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/bluetooth/data/framectrldata.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/bluetooth/data/notifydata.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/const.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/enums.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/excute_boarder_params.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/execute_boarder.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/generate_route_information.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/hash_list.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/location.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/plan.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/rapid_state.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/model/region_data.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/mqtt/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/mqtt/event.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/mqtt/properties.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/data/mqtt/status.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/event/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/event/event.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/http/_init_.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/http/http.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/abstract_message.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/messages/driver.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/messages/media.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/messages/network.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/messages/ota.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/messages/system.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/messages/video.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/control/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/control/joystick.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/devices/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mqtt/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/common.proto +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/common.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/common_pb2.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/common_pb2.pyi +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/dev_net.proto +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/dev_net.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/dev_net_pb2.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/dev_net_pb2.pyi +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/luba_msg.proto +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/luba_msg.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/luba_msg_pb2.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/luba_mul.proto +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/luba_mul.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/luba_mul_pb2.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_driver.proto +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_driver.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_ota.proto +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_ota.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_pept.proto +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_pept.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_sys.proto +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_sys.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/py.typed +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/utility/constant/__init__.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/utility/datatype_converter.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/utility/periodic.py +0 -0
- {pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/utility/rocker_util.py +0 -0
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
|
|
5
5
|
from pymammotion.data.model import HashList
|
|
6
|
+
from pymammotion.data.model.device_config import DeviceLimits
|
|
6
7
|
from pymammotion.data.model.location import Location
|
|
7
8
|
from pymammotion.proto.dev_net import DevNet
|
|
8
9
|
from pymammotion.proto.luba_msg import LubaMsg
|
|
@@ -11,7 +12,7 @@ from pymammotion.proto.mctrl_driver import MctlDriver
|
|
|
11
12
|
from pymammotion.proto.mctrl_nav import MctlNav
|
|
12
13
|
from pymammotion.proto.mctrl_ota import MctlOta
|
|
13
14
|
from pymammotion.proto.mctrl_pept import MctlPept
|
|
14
|
-
from pymammotion.proto.mctrl_sys import MctlSys, SystemUpdateBufMsg
|
|
15
|
+
from pymammotion.proto.mctrl_sys import MctlSys, MowToAppInfoT, SystemUpdateBufMsg
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
@dataclass
|
|
@@ -28,6 +29,7 @@ class MowingDevice:
|
|
|
28
29
|
self.location = Location()
|
|
29
30
|
self.err_code_list = []
|
|
30
31
|
self.err_code_list_time = []
|
|
32
|
+
self.limits = DeviceLimits(30, 70, 0.2, 0.6)
|
|
31
33
|
|
|
32
34
|
@classmethod
|
|
33
35
|
def from_raw(cls, raw: dict) -> "MowingDevice":
|
|
@@ -82,6 +84,9 @@ class MowingDevice:
|
|
|
82
84
|
]
|
|
83
85
|
)
|
|
84
86
|
|
|
87
|
+
def mow_info(self, toapp_mow_info: MowToAppInfoT):
|
|
88
|
+
pass
|
|
89
|
+
|
|
85
90
|
@property
|
|
86
91
|
def net(self):
|
|
87
92
|
"""Will return a wrapped betterproto of net."""
|
|
@@ -35,3 +35,11 @@ class MowOrder(IntEnum):
|
|
|
35
35
|
|
|
36
36
|
border_first = 0
|
|
37
37
|
grid_first = 1
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class BypassStrategy(IntEnum):
|
|
41
|
+
"""Matches up with ultra_wave."""
|
|
42
|
+
direct_touch = 0
|
|
43
|
+
slow_touch = 1
|
|
44
|
+
less_touch = 2
|
|
45
|
+
no_touch = 3 # luba 2 yuka only or possibly value of 10
|
|
@@ -69,6 +69,8 @@ class StateManager:
|
|
|
69
69
|
self._device.buffer(sys_msg[1])
|
|
70
70
|
case "toapp_report_data":
|
|
71
71
|
pass
|
|
72
|
+
case "mow_to_app_info":
|
|
73
|
+
self._device.mow_info(sys_msg[1])
|
|
72
74
|
|
|
73
75
|
def _update_driver_data(self, message):
|
|
74
76
|
pass
|
|
@@ -80,4 +82,4 @@ class StateManager:
|
|
|
80
82
|
pass
|
|
81
83
|
|
|
82
84
|
def _update_ota_data(self, message):
|
|
83
|
-
pass
|
|
85
|
+
pass
|
{pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/messages/navigation.py
RENAMED
|
@@ -23,19 +23,26 @@ from pymammotion.proto.mctrl_nav import (
|
|
|
23
23
|
NavUploadZigZagResultAck,
|
|
24
24
|
SimulationCmdData,
|
|
25
25
|
WorkReportCmdData,
|
|
26
|
-
WorkReportUpdateCmd,
|
|
26
|
+
WorkReportUpdateCmd, NavMapNameMsg,
|
|
27
27
|
)
|
|
28
|
+
from pymammotion.utility.device_type import DeviceType
|
|
28
29
|
|
|
29
30
|
logger = logging.getLogger(__name__)
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
class MessageNavigation(AbstractMessage, ABC):
|
|
33
|
-
|
|
34
|
-
def
|
|
34
|
+
|
|
35
|
+
def get_msg_device(self, msg_type: MsgCmdType, msg_device: MsgDevice) -> MsgDevice:
|
|
36
|
+
"""Changes the rcver name if it's not a luba1."""
|
|
37
|
+
if DeviceType.is_luba1(self.get_device_name()) and msg_type == MsgCmdType.MSG_CMD_TYPE_NAV:
|
|
38
|
+
return MsgDevice.DEV_NAVIGATION
|
|
39
|
+
return msg_device
|
|
40
|
+
|
|
41
|
+
def send_order_msg_nav(self, build) -> bytes:
|
|
35
42
|
luba_msg = LubaMsg(
|
|
36
43
|
msgtype=MsgCmdType.MSG_CMD_TYPE_NAV,
|
|
37
44
|
sender=MsgDevice.DEV_MOBILEAPP,
|
|
38
|
-
rcver=MsgDevice.DEV_MAINCTL,
|
|
45
|
+
rcver=self.get_msg_device(MsgCmdType.MSG_CMD_TYPE_NAV, MsgDevice.DEV_MAINCTL),
|
|
39
46
|
msgattr=MsgAttr.MSG_ATTR_REQ,
|
|
40
47
|
seqs=1,
|
|
41
48
|
version=1,
|
|
@@ -254,6 +261,37 @@ class MessageNavigation(AbstractMessage, ABC):
|
|
|
254
261
|
logger.debug("Send command--One-click automatic undocking")
|
|
255
262
|
return self.send_order_msg_nav(build)
|
|
256
263
|
|
|
264
|
+
def get_area_name_list(self, device_id: str) -> bytes:
|
|
265
|
+
# Build the NavMapNameMsg with the specified parameters
|
|
266
|
+
mctl_nav = MctlNav(
|
|
267
|
+
toapp_map_name_msg=NavMapNameMsg(
|
|
268
|
+
hash=0,
|
|
269
|
+
result=0,
|
|
270
|
+
device_id=device_id, # iotId or ???
|
|
271
|
+
rw=0
|
|
272
|
+
)
|
|
273
|
+
)
|
|
274
|
+
|
|
275
|
+
# Send the message with the specified ID and acknowledge flag
|
|
276
|
+
logger.debug("Send command--Get area name list")
|
|
277
|
+
return self.send_order_msg_nav(mctl_nav)
|
|
278
|
+
|
|
279
|
+
def set_area_name(self, device_id, hash_id: int, name: str) -> bytes:
|
|
280
|
+
# Build the NavMapNameMsg with the specified parameters
|
|
281
|
+
mctl_nav = MctlNav(
|
|
282
|
+
toapp_map_name_msg=NavMapNameMsg(
|
|
283
|
+
hash=hash_id,
|
|
284
|
+
name=name,
|
|
285
|
+
result=0,
|
|
286
|
+
device_id=device_id,
|
|
287
|
+
rw=1
|
|
288
|
+
)
|
|
289
|
+
)
|
|
290
|
+
|
|
291
|
+
# Send the message with the specified ID and acknowledge flag
|
|
292
|
+
logger.debug("Send command--Get area name list")
|
|
293
|
+
return self.send_order_msg_nav(mctl_nav)
|
|
294
|
+
|
|
257
295
|
def get_all_boundary_hash_list(self, sub_cmd: int):
|
|
258
296
|
build = MctlNav(todev_gethash=NavGetHashList(pver=1, sub_cmd=sub_cmd))
|
|
259
297
|
logger.debug(f"Area loading=====================:Get area hash list++Bluetooth:{sub_cmd}")
|
|
@@ -353,8 +391,8 @@ class MessageNavigation(AbstractMessage, ABC):
|
|
|
353
391
|
channel_width=generate_route_information.channel_width,
|
|
354
392
|
channel_mode=generate_route_information.channel_mode,
|
|
355
393
|
toward=generate_route_information.toward,
|
|
356
|
-
toward_included_angle=generate_route_information.toward_included_angle,
|
|
357
|
-
toward_mode=generate_route_information.toward_mode,
|
|
394
|
+
toward_included_angle=generate_route_information.toward_included_angle, # luba 2 yuka only
|
|
395
|
+
toward_mode=generate_route_information.toward_mode, # luba 2 yuka only
|
|
358
396
|
reserved=generate_route_information.path_order,
|
|
359
397
|
)
|
|
360
398
|
logger.debug(f"{self.get_device_name()}Generate route====={build}")
|
|
@@ -71,7 +71,7 @@ _LOGGER = logging.getLogger(__name__)
|
|
|
71
71
|
def slashescape(err):
|
|
72
72
|
"""Escape a slash character."""
|
|
73
73
|
# print err, dir(err), err.start, err.end, err.object[:err.start]
|
|
74
|
-
thebyte = err.object[err.start
|
|
74
|
+
thebyte = err.object[err.start: err.end]
|
|
75
75
|
repl = "\\x" + hex(ord(thebyte))[2:]
|
|
76
76
|
return (repl, err.end)
|
|
77
77
|
|
|
@@ -120,9 +120,9 @@ class MammotionDevice:
|
|
|
120
120
|
_ble_device: MammotionBaseBLEDevice | None = None
|
|
121
121
|
|
|
122
122
|
def __init__(
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
123
|
+
self,
|
|
124
|
+
ble_device: BLEDevice,
|
|
125
|
+
preference: ConnectionPreference = ConnectionPreference.EITHER,
|
|
126
126
|
) -> None:
|
|
127
127
|
"""Initialize MammotionDevice."""
|
|
128
128
|
if ble_device:
|
|
@@ -215,6 +215,9 @@ class MammotionBaseDevice:
|
|
|
215
215
|
def _update_nav_data(self, tmp_msg):
|
|
216
216
|
"""Update navigation data."""
|
|
217
217
|
nav_sub_msg = betterproto.which_one_of(tmp_msg.nav, "SubNavMsg")
|
|
218
|
+
if nav_sub_msg[1] is None:
|
|
219
|
+
_LOGGER.debug("Sub message was NoneType %s", nav_sub_msg[0])
|
|
220
|
+
return
|
|
218
221
|
nav = self._raw_data.get("nav", {})
|
|
219
222
|
if isinstance(nav_sub_msg[1], int):
|
|
220
223
|
nav[nav_sub_msg[0]] = nav_sub_msg[1]
|
|
@@ -225,6 +228,9 @@ class MammotionBaseDevice:
|
|
|
225
228
|
def _update_sys_data(self, tmp_msg):
|
|
226
229
|
"""Update system data."""
|
|
227
230
|
sys_sub_msg = betterproto.which_one_of(tmp_msg.sys, "SubSysMsg")
|
|
231
|
+
if sys_sub_msg[1] is None:
|
|
232
|
+
_LOGGER.debug("Sub message was NoneType %s", sys_sub_msg[0])
|
|
233
|
+
return
|
|
228
234
|
sys = self._raw_data.get("sys", {})
|
|
229
235
|
sys[sys_sub_msg[0]] = sys_sub_msg[1].to_dict(casing=betterproto.Casing.SNAKE)
|
|
230
236
|
self._raw_data["sys"] = sys
|
|
@@ -232,6 +238,9 @@ class MammotionBaseDevice:
|
|
|
232
238
|
def _update_driver_data(self, tmp_msg):
|
|
233
239
|
"""Update driver data."""
|
|
234
240
|
drv_sub_msg = betterproto.which_one_of(tmp_msg.driver, "SubDrvMsg")
|
|
241
|
+
if drv_sub_msg[1] is None:
|
|
242
|
+
_LOGGER.debug("Sub message was NoneType %s", drv_sub_msg[0])
|
|
243
|
+
return
|
|
235
244
|
drv = self._raw_data.get("driver", {})
|
|
236
245
|
drv[drv_sub_msg[0]] = drv_sub_msg[1].to_dict(casing=betterproto.Casing.SNAKE)
|
|
237
246
|
self._raw_data["driver"] = drv
|
|
@@ -239,6 +248,9 @@ class MammotionBaseDevice:
|
|
|
239
248
|
def _update_net_data(self, tmp_msg):
|
|
240
249
|
"""Update network data."""
|
|
241
250
|
net_sub_msg = betterproto.which_one_of(tmp_msg.net, "NetSubType")
|
|
251
|
+
if net_sub_msg[1] is None:
|
|
252
|
+
_LOGGER.debug("Sub message was NoneType %s", net_sub_msg[0])
|
|
253
|
+
return
|
|
242
254
|
net = self._raw_data.get("net", {})
|
|
243
255
|
if isinstance(net_sub_msg[1], int):
|
|
244
256
|
net[net_sub_msg[0]] = net_sub_msg[1]
|
|
@@ -249,6 +261,9 @@ class MammotionBaseDevice:
|
|
|
249
261
|
def _update_mul_data(self, tmp_msg):
|
|
250
262
|
"""Update mul data."""
|
|
251
263
|
mul_sub_msg = betterproto.which_one_of(tmp_msg.mul, "SubMul")
|
|
264
|
+
if mul_sub_msg[1] is None:
|
|
265
|
+
_LOGGER.debug("Sub message was NoneType %s", mul_sub_msg[0])
|
|
266
|
+
return
|
|
252
267
|
mul = self._raw_data.get("mul", {})
|
|
253
268
|
mul[mul_sub_msg[0]] = mul_sub_msg[1].to_dict(casing=betterproto.Casing.SNAKE)
|
|
254
269
|
self._raw_data["mul"] = mul
|
|
@@ -256,6 +271,9 @@ class MammotionBaseDevice:
|
|
|
256
271
|
def _update_ota_data(self, tmp_msg):
|
|
257
272
|
"""Update OTA data."""
|
|
258
273
|
ota_sub_msg = betterproto.which_one_of(tmp_msg.ota, "SubOtaMsg")
|
|
274
|
+
if ota_sub_msg[1] is None:
|
|
275
|
+
_LOGGER.debug("Sub message was NoneType %s", ota_sub_msg[0])
|
|
276
|
+
return
|
|
259
277
|
ota = self._raw_data.get("ota", {})
|
|
260
278
|
ota[ota_sub_msg[0]] = ota_sub_msg[1].to_dict(casing=betterproto.Casing.SNAKE)
|
|
261
279
|
self._raw_data["ota"] = ota
|
|
@@ -300,6 +318,8 @@ class MammotionBaseDevice:
|
|
|
300
318
|
|
|
301
319
|
await self._send_command_with_args("get_hash_response", total_frame=1, current_frame=1)
|
|
302
320
|
|
|
321
|
+
await self._send_command_with_args("get_area_name_list",
|
|
322
|
+
device_id=self.luba_msg.device.net.toapp_wifi_iot_status.devicename)
|
|
303
323
|
# sub_cmd 3 is job hashes??
|
|
304
324
|
# sub_cmd 4 is dump location (yuka)
|
|
305
325
|
# jobs list
|
|
@@ -689,12 +709,12 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
|
|
|
689
709
|
"""Base class for Mammotion Cloud devices."""
|
|
690
710
|
|
|
691
711
|
def __init__(
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
712
|
+
self,
|
|
713
|
+
mqtt_client: MammotionMQTT,
|
|
714
|
+
iot_id: str,
|
|
715
|
+
device_name: str,
|
|
716
|
+
nick_name: str,
|
|
717
|
+
**kwargs: Any,
|
|
698
718
|
) -> None:
|
|
699
719
|
"""Initialize MammotionBaseCloudDevice."""
|
|
700
720
|
super().__init__()
|
|
@@ -423,6 +423,63 @@ message nav_get_all_plan_task {
|
|
|
423
423
|
repeated plan_task_name_id_t tasks = 1;
|
|
424
424
|
}
|
|
425
425
|
|
|
426
|
+
// Define the NavTaskCtrlAck message
|
|
427
|
+
message NavTaskCtrlAck {
|
|
428
|
+
int32 type = 1;
|
|
429
|
+
int32 action = 2;
|
|
430
|
+
int32 result = 3;
|
|
431
|
+
int32 nav_state = 4;
|
|
432
|
+
string reserved = 5;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
message NavMapNameMsg {
|
|
436
|
+
int32 rw = 1; // Represents RW field
|
|
437
|
+
int64 hash = 2; // Represents HASH field
|
|
438
|
+
string name = 3; // Represents NAME field
|
|
439
|
+
int32 result = 4; // Represents RESULT field
|
|
440
|
+
string device_id = 5; // Represents DEVICEID field
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
message svg_message_t {
|
|
444
|
+
double x_move = 1;
|
|
445
|
+
double y_move = 2;
|
|
446
|
+
double scale = 3;
|
|
447
|
+
double rotate = 4;
|
|
448
|
+
double base_width_m = 5;
|
|
449
|
+
int32 base_width_pix = 7;
|
|
450
|
+
double base_height_m = 6;
|
|
451
|
+
int32 base_height_pix = 8;
|
|
452
|
+
int32 data_count = 12;
|
|
453
|
+
bool hide_svg = 13;
|
|
454
|
+
int32 name_count = 11;
|
|
455
|
+
string svg_file_name = 9;
|
|
456
|
+
string svg_file_data = 10;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
message SvgMessageAckT {
|
|
460
|
+
int32 pver = 1; // Represents PVER field
|
|
461
|
+
int32 sub_cmd = 2; // Represents SUBCMD field
|
|
462
|
+
int32 total_frame = 3; // Represents TOTALFRAME field
|
|
463
|
+
int32 current_frame = 4; // Represents CURRENTFRAME field
|
|
464
|
+
int64 data_hash = 5; // Represents DATAHASH field
|
|
465
|
+
int64 paternal_hash_a = 6; // Represents PATERNALHASHA field
|
|
466
|
+
int32 type = 7; // Represents TYPE field
|
|
467
|
+
int32 result = 8; // Represents RESULT field
|
|
468
|
+
svg_message_t svg_message = 9; // Represents SVG_MESSAGE field
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
message AreaHashName {
|
|
472
|
+
// Define fields for AreaHashName message here
|
|
473
|
+
// For example:
|
|
474
|
+
string name = 1; // Replace with actual field definitions
|
|
475
|
+
int64 hash = 2; // Replace with actual field definitions
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
message AppGetAllAreaHashName {
|
|
479
|
+
string device_id = 1; // Represents DEVICEID field
|
|
480
|
+
repeated AreaHashName hashnames = 2; // Represents HASHNAMES field
|
|
481
|
+
}
|
|
482
|
+
|
|
426
483
|
message MctlNav {
|
|
427
484
|
oneof SubNavMsg {
|
|
428
485
|
NavLatLonUp toapp_lat_up = 1;
|
|
@@ -481,5 +538,10 @@ message MctlNav {
|
|
|
481
538
|
costmap_t toapp_costmap = 54;
|
|
482
539
|
plan_task_name_id_t plan_task_name_id = 55;
|
|
483
540
|
nav_get_all_plan_task all_plan_task = 56;
|
|
541
|
+
NavTaskCtrlAck todev_taskctrl_ack = 57;
|
|
542
|
+
NavMapNameMsg toapp_map_name_msg = 58;
|
|
543
|
+
SvgMessageAckT todev_svg_msg = 59;
|
|
544
|
+
SvgMessageAckT toapp_svg_msg = 60;
|
|
545
|
+
AppGetAllAreaHashName toapp_all_hash_name = 61;
|
|
484
546
|
}
|
|
485
547
|
}
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
# sources: pymammotion/proto/mctrl_nav.proto
|
|
3
3
|
# plugin: python-betterproto
|
|
4
4
|
from dataclasses import dataclass
|
|
5
|
-
|
|
6
|
-
|
|
7
5
|
import betterproto
|
|
8
6
|
|
|
9
7
|
from .common import *
|
|
@@ -475,6 +473,69 @@ class NavGetAllPlanTask(betterproto.Message):
|
|
|
475
473
|
tasks: list["PlanTaskNameIdT"] = betterproto.message_field(1)
|
|
476
474
|
|
|
477
475
|
|
|
476
|
+
@dataclass
|
|
477
|
+
class NavTaskCtrlAck(betterproto.Message):
|
|
478
|
+
"""Define the NavTaskCtrlAck message"""
|
|
479
|
+
|
|
480
|
+
type: int = betterproto.int32_field(1)
|
|
481
|
+
action: int = betterproto.int32_field(2)
|
|
482
|
+
result: int = betterproto.int32_field(3)
|
|
483
|
+
nav_state: int = betterproto.int32_field(4)
|
|
484
|
+
reserved: str = betterproto.string_field(5)
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
@dataclass
|
|
488
|
+
class NavMapNameMsg(betterproto.Message):
|
|
489
|
+
rw: int = betterproto.int32_field(1)
|
|
490
|
+
hash: int = betterproto.int64_field(2)
|
|
491
|
+
name: str = betterproto.string_field(3)
|
|
492
|
+
result: int = betterproto.int32_field(4)
|
|
493
|
+
device_id: str = betterproto.string_field(5)
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
@dataclass
|
|
497
|
+
class SvgMessageT(betterproto.Message):
|
|
498
|
+
x_move: float = betterproto.double_field(1)
|
|
499
|
+
y_move: float = betterproto.double_field(2)
|
|
500
|
+
scale: float = betterproto.double_field(3)
|
|
501
|
+
rotate: float = betterproto.double_field(4)
|
|
502
|
+
base_width_m: float = betterproto.double_field(5)
|
|
503
|
+
base_width_pix: int = betterproto.int32_field(7)
|
|
504
|
+
base_height_m: float = betterproto.double_field(6)
|
|
505
|
+
base_height_pix: int = betterproto.int32_field(8)
|
|
506
|
+
data_count: int = betterproto.int32_field(12)
|
|
507
|
+
hide_svg: bool = betterproto.bool_field(13)
|
|
508
|
+
name_count: int = betterproto.int32_field(11)
|
|
509
|
+
svg_file_name: str = betterproto.string_field(9)
|
|
510
|
+
svg_file_data: str = betterproto.string_field(10)
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
@dataclass
|
|
514
|
+
class SvgMessageAckT(betterproto.Message):
|
|
515
|
+
pver: int = betterproto.int32_field(1)
|
|
516
|
+
sub_cmd: int = betterproto.int32_field(2)
|
|
517
|
+
total_frame: int = betterproto.int32_field(3)
|
|
518
|
+
current_frame: int = betterproto.int32_field(4)
|
|
519
|
+
data_hash: int = betterproto.int64_field(5)
|
|
520
|
+
paternal_hash_a: int = betterproto.int64_field(6)
|
|
521
|
+
type: int = betterproto.int32_field(7)
|
|
522
|
+
result: int = betterproto.int32_field(8)
|
|
523
|
+
svg_message: "SvgMessageT" = betterproto.message_field(9)
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
@dataclass
|
|
527
|
+
class AreaHashName(betterproto.Message):
|
|
528
|
+
# Define fields for AreaHashName message here For example:
|
|
529
|
+
name: str = betterproto.string_field(1)
|
|
530
|
+
hash: int = betterproto.int64_field(2)
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
@dataclass
|
|
534
|
+
class AppGetAllAreaHashName(betterproto.Message):
|
|
535
|
+
device_id: str = betterproto.string_field(1)
|
|
536
|
+
hashnames: list["AreaHashName"] = betterproto.message_field(2)
|
|
537
|
+
|
|
538
|
+
|
|
478
539
|
@dataclass
|
|
479
540
|
class MctlNav(betterproto.Message):
|
|
480
541
|
toapp_lat_up: "NavLatLonUp" = betterproto.message_field(1, group="SubNavMsg")
|
|
@@ -587,3 +648,14 @@ class MctlNav(betterproto.Message):
|
|
|
587
648
|
all_plan_task: "NavGetAllPlanTask" = betterproto.message_field(
|
|
588
649
|
56, group="SubNavMsg"
|
|
589
650
|
)
|
|
651
|
+
todev_taskctrl_ack: "NavTaskCtrlAck" = betterproto.message_field(
|
|
652
|
+
57, group="SubNavMsg"
|
|
653
|
+
)
|
|
654
|
+
toapp_map_name_msg: "NavMapNameMsg" = betterproto.message_field(
|
|
655
|
+
58, group="SubNavMsg"
|
|
656
|
+
)
|
|
657
|
+
todev_svg_msg: "SvgMessageAckT" = betterproto.message_field(59, group="SubNavMsg")
|
|
658
|
+
toapp_svg_msg: "SvgMessageAckT" = betterproto.message_field(60, group="SubNavMsg")
|
|
659
|
+
toapp_all_hash_name: "AppGetAllAreaHashName" = betterproto.message_field(
|
|
660
|
+
61, group="SubNavMsg"
|
|
661
|
+
)
|
|
@@ -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(\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\"\x9f\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\"\xde\x02\n\x0fNavReqCoverPath\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\r\n\x05jobId\x18\x02 \x01(\x03\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(\x03\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\"\x86\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\"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\"\x8e\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\"\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\"/\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\"\xfb\x12\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\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\"\x9f\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\"\xde\x02\n\x0fNavReqCoverPath\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\r\n\x05jobId\x18\x02 \x01(\x03\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(\x03\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\"\x86\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\"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\"\x8e\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\"\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\"/\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\"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\"Z\n\rNavMapNameMsg\x12\n\n\x02rw\x18\x01 \x01(\x05\x12\x0c\n\x04hash\x18\x02 \x01(\x03\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0e\n\x06result\x18\x04 \x01(\x05\x12\x11\n\tdevice_id\x18\x05 \x01(\t\"\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\x16\n\x0e\x62\x61se_width_pix\x18\x07 \x01(\x05\x12\x15\n\rbase_height_m\x18\x06 \x01(\x01\x12\x17\n\x0f\x62\x61se_height_pix\x18\x08 \x01(\x05\x12\x12\n\ndata_count\x18\x0c \x01(\x05\x12\x10\n\x08hide_svg\x18\r \x01(\x08\x12\x12\n\nname_count\x18\x0b \x01(\x05\x12\x15\n\rsvg_file_name\x18\t \x01(\t\x12\x15\n\rsvg_file_data\x18\n \x01(\t\"\xca\x01\n\x0eSvgMessageAckT\x12\x0c\n\x04pver\x18\x01 \x01(\x05\x12\x0f\n\x07sub_cmd\x18\x02 \x01(\x05\x12\x13\n\x0btotal_frame\x18\x03 \x01(\x05\x12\x15\n\rcurrent_frame\x18\x04 \x01(\x05\x12\x11\n\tdata_hash\x18\x05 \x01(\x03\x12\x17\n\x0fpaternal_hash_a\x18\x06 \x01(\x03\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\x0c\x41reaHashName\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04hash\x18\x02 \x01(\x03\"L\n\x15\x41ppGetAllAreaHashName\x12\x11\n\tdevice_id\x18\x01 \x01(\t\x12 \n\thashnames\x18\x02 \x03(\x0b\x32\r.AreaHashName\"\xe3\x14\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\x0f.SvgMessageAckTH\x00\x12(\n\rtoapp_svg_msg\x18< \x01(\x0b\x32\x0f.SvgMessageAckTH\x00\x12\x35\n\x13toapp_all_hash_name\x18= \x01(\x0b\x32\x16.AppGetAllAreaHashNameH\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())
|
|
@@ -111,6 +111,18 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
111
111
|
_PLAN_TASK_NAME_ID_T._serialized_end=6270
|
|
112
112
|
_NAV_GET_ALL_PLAN_TASK._serialized_start=6272
|
|
113
113
|
_NAV_GET_ALL_PLAN_TASK._serialized_end=6332
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
_NAVTASKCTRLACK._serialized_start=6334
|
|
115
|
+
_NAVTASKCTRLACK._serialized_end=6433
|
|
116
|
+
_NAVMAPNAMEMSG._serialized_start=6435
|
|
117
|
+
_NAVMAPNAMEMSG._serialized_end=6525
|
|
118
|
+
_SVG_MESSAGE_T._serialized_start=6528
|
|
119
|
+
_SVG_MESSAGE_T._serialized_end=6804
|
|
120
|
+
_SVGMESSAGEACKT._serialized_start=6807
|
|
121
|
+
_SVGMESSAGEACKT._serialized_end=7009
|
|
122
|
+
_AREAHASHNAME._serialized_start=7011
|
|
123
|
+
_AREAHASHNAME._serialized_end=7053
|
|
124
|
+
_APPGETALLAREAHASHNAME._serialized_start=7055
|
|
125
|
+
_APPGETALLAREAHASHNAME._serialized_end=7131
|
|
126
|
+
_MCTLNAV._serialized_start=7134
|
|
127
|
+
_MCTLNAV._serialized_end=9793
|
|
116
128
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -6,8 +6,24 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
|
|
|
6
6
|
|
|
7
7
|
DESCRIPTOR: _descriptor.FileDescriptor
|
|
8
8
|
|
|
9
|
+
class AppGetAllAreaHashName(_message.Message):
|
|
10
|
+
__slots__ = ["device_id", "hashnames"]
|
|
11
|
+
DEVICE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
12
|
+
HASHNAMES_FIELD_NUMBER: _ClassVar[int]
|
|
13
|
+
device_id: str
|
|
14
|
+
hashnames: _containers.RepeatedCompositeFieldContainer[AreaHashName]
|
|
15
|
+
def __init__(self, device_id: _Optional[str] = ..., hashnames: _Optional[_Iterable[_Union[AreaHashName, _Mapping]]] = ...) -> None: ...
|
|
16
|
+
|
|
17
|
+
class AreaHashName(_message.Message):
|
|
18
|
+
__slots__ = ["hash", "name"]
|
|
19
|
+
HASH_FIELD_NUMBER: _ClassVar[int]
|
|
20
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
21
|
+
hash: int
|
|
22
|
+
name: str
|
|
23
|
+
def __init__(self, name: _Optional[str] = ..., hash: _Optional[int] = ...) -> None: ...
|
|
24
|
+
|
|
9
25
|
class MctlNav(_message.Message):
|
|
10
|
-
__slots__ = ["all_plan_task", "app_request_cover_paths", "bidire_reqconver_path", "bidire_taskid", "cover_path_upload", "nav_sys_param_cmd", "plan_task_execute", "plan_task_name_id", "simulation_cmd", "toapp_bp", "toapp_bstate", "toapp_chgpileto", "toapp_costmap", "toapp_get_commondata_ack", "toapp_gethash_ack", "toapp_lat_up", "toapp_opt_border_info", "toapp_opt_line_up", "toapp_opt_obs_info", "toapp_pos_up", "toapp_task_info", "toapp_work_report_ack", "toapp_work_report_update_ack", "toapp_work_report_upload", "toapp_zigzag", "todev_cancel_draw_cmd", "todev_cancel_suscmd", "todev_chl_line", "todev_chl_line_data", "todev_chl_line_end", "todev_draw_border", "todev_draw_border_end", "todev_draw_obs", "todev_draw_obs_end", "todev_edgecmd", "todev_get_commondata", "todev_gethash", "todev_lat_up_ack", "todev_mow_task", "todev_one_touch_leave_pile", "todev_opt_border_info_ack", "todev_opt_line_up_ack", "todev_opt_obs_info_ack", "todev_planjob_set", "todev_rechgcmd", "todev_reset_chg_pile", "todev_save_task", "todev_sustask", "todev_task_info_ack", "todev_taskctrl", "todev_unable_time_set", "todev_work_report_cmd", "todev_work_report_update_cmd", "todev_zigzag_ack", "vision_ctrl", "zone_start_precent"]
|
|
26
|
+
__slots__ = ["all_plan_task", "app_request_cover_paths", "bidire_reqconver_path", "bidire_taskid", "cover_path_upload", "nav_sys_param_cmd", "plan_task_execute", "plan_task_name_id", "simulation_cmd", "toapp_all_hash_name", "toapp_bp", "toapp_bstate", "toapp_chgpileto", "toapp_costmap", "toapp_get_commondata_ack", "toapp_gethash_ack", "toapp_lat_up", "toapp_map_name_msg", "toapp_opt_border_info", "toapp_opt_line_up", "toapp_opt_obs_info", "toapp_pos_up", "toapp_svg_msg", "toapp_task_info", "toapp_work_report_ack", "toapp_work_report_update_ack", "toapp_work_report_upload", "toapp_zigzag", "todev_cancel_draw_cmd", "todev_cancel_suscmd", "todev_chl_line", "todev_chl_line_data", "todev_chl_line_end", "todev_draw_border", "todev_draw_border_end", "todev_draw_obs", "todev_draw_obs_end", "todev_edgecmd", "todev_get_commondata", "todev_gethash", "todev_lat_up_ack", "todev_mow_task", "todev_one_touch_leave_pile", "todev_opt_border_info_ack", "todev_opt_line_up_ack", "todev_opt_obs_info_ack", "todev_planjob_set", "todev_rechgcmd", "todev_reset_chg_pile", "todev_save_task", "todev_sustask", "todev_svg_msg", "todev_task_info_ack", "todev_taskctrl", "todev_taskctrl_ack", "todev_unable_time_set", "todev_work_report_cmd", "todev_work_report_update_cmd", "todev_zigzag_ack", "vision_ctrl", "zone_start_precent"]
|
|
11
27
|
ALL_PLAN_TASK_FIELD_NUMBER: _ClassVar[int]
|
|
12
28
|
APP_REQUEST_COVER_PATHS_FIELD_NUMBER: _ClassVar[int]
|
|
13
29
|
BIDIRE_REQCONVER_PATH_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -17,6 +33,7 @@ class MctlNav(_message.Message):
|
|
|
17
33
|
PLAN_TASK_EXECUTE_FIELD_NUMBER: _ClassVar[int]
|
|
18
34
|
PLAN_TASK_NAME_ID_FIELD_NUMBER: _ClassVar[int]
|
|
19
35
|
SIMULATION_CMD_FIELD_NUMBER: _ClassVar[int]
|
|
36
|
+
TOAPP_ALL_HASH_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
20
37
|
TOAPP_BP_FIELD_NUMBER: _ClassVar[int]
|
|
21
38
|
TOAPP_BSTATE_FIELD_NUMBER: _ClassVar[int]
|
|
22
39
|
TOAPP_CHGPILETO_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -24,10 +41,12 @@ class MctlNav(_message.Message):
|
|
|
24
41
|
TOAPP_GETHASH_ACK_FIELD_NUMBER: _ClassVar[int]
|
|
25
42
|
TOAPP_GET_COMMONDATA_ACK_FIELD_NUMBER: _ClassVar[int]
|
|
26
43
|
TOAPP_LAT_UP_FIELD_NUMBER: _ClassVar[int]
|
|
44
|
+
TOAPP_MAP_NAME_MSG_FIELD_NUMBER: _ClassVar[int]
|
|
27
45
|
TOAPP_OPT_BORDER_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
28
46
|
TOAPP_OPT_LINE_UP_FIELD_NUMBER: _ClassVar[int]
|
|
29
47
|
TOAPP_OPT_OBS_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
30
48
|
TOAPP_POS_UP_FIELD_NUMBER: _ClassVar[int]
|
|
49
|
+
TOAPP_SVG_MSG_FIELD_NUMBER: _ClassVar[int]
|
|
31
50
|
TOAPP_TASK_INFO_FIELD_NUMBER: _ClassVar[int]
|
|
32
51
|
TOAPP_WORK_REPORT_ACK_FIELD_NUMBER: _ClassVar[int]
|
|
33
52
|
TOAPP_WORK_REPORT_UPDATE_ACK_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -56,6 +75,8 @@ class MctlNav(_message.Message):
|
|
|
56
75
|
TODEV_RESET_CHG_PILE_FIELD_NUMBER: _ClassVar[int]
|
|
57
76
|
TODEV_SAVE_TASK_FIELD_NUMBER: _ClassVar[int]
|
|
58
77
|
TODEV_SUSTASK_FIELD_NUMBER: _ClassVar[int]
|
|
78
|
+
TODEV_SVG_MSG_FIELD_NUMBER: _ClassVar[int]
|
|
79
|
+
TODEV_TASKCTRL_ACK_FIELD_NUMBER: _ClassVar[int]
|
|
59
80
|
TODEV_TASKCTRL_FIELD_NUMBER: _ClassVar[int]
|
|
60
81
|
TODEV_TASK_INFO_ACK_FIELD_NUMBER: _ClassVar[int]
|
|
61
82
|
TODEV_UNABLE_TIME_SET_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -73,6 +94,7 @@ class MctlNav(_message.Message):
|
|
|
73
94
|
plan_task_execute: nav_plan_task_execute
|
|
74
95
|
plan_task_name_id: plan_task_name_id_t
|
|
75
96
|
simulation_cmd: SimulationCmdData
|
|
97
|
+
toapp_all_hash_name: AppGetAllAreaHashName
|
|
76
98
|
toapp_bp: NavTaskBreakPoint
|
|
77
99
|
toapp_bstate: NavBorderState
|
|
78
100
|
toapp_chgpileto: chargePileType
|
|
@@ -80,10 +102,12 @@ class MctlNav(_message.Message):
|
|
|
80
102
|
toapp_get_commondata_ack: NavGetCommDataAck
|
|
81
103
|
toapp_gethash_ack: NavGetHashListAck
|
|
82
104
|
toapp_lat_up: NavLatLonUp
|
|
105
|
+
toapp_map_name_msg: NavMapNameMsg
|
|
83
106
|
toapp_opt_border_info: NavOptiBorderInfo
|
|
84
107
|
toapp_opt_line_up: NavOptLineUp
|
|
85
108
|
toapp_opt_obs_info: NavOptObsInfo
|
|
86
109
|
toapp_pos_up: NavPosUp
|
|
110
|
+
toapp_svg_msg: SvgMessageAckT
|
|
87
111
|
toapp_task_info: NavTaskInfo
|
|
88
112
|
toapp_work_report_ack: WorkReportInfoAck
|
|
89
113
|
toapp_work_report_update_ack: WorkReportUpdateAck
|
|
@@ -112,15 +136,17 @@ class MctlNav(_message.Message):
|
|
|
112
136
|
todev_reset_chg_pile: int
|
|
113
137
|
todev_save_task: int
|
|
114
138
|
todev_sustask: int
|
|
139
|
+
todev_svg_msg: SvgMessageAckT
|
|
115
140
|
todev_task_info_ack: NavResFrame
|
|
116
141
|
todev_taskctrl: NavTaskCtrl
|
|
142
|
+
todev_taskctrl_ack: NavTaskCtrlAck
|
|
117
143
|
todev_unable_time_set: NavUnableTimeSet
|
|
118
144
|
todev_work_report_cmd: WorkReportCmdData
|
|
119
145
|
todev_work_report_update_cmd: WorkReportUpdateCmd
|
|
120
146
|
todev_zigzag_ack: NavUploadZigZagResultAck
|
|
121
147
|
vision_ctrl: vision_ctrl_msg
|
|
122
148
|
zone_start_precent: zone_start_precent_t
|
|
123
|
-
def __init__(self, toapp_lat_up: _Optional[_Union[NavLatLonUp, _Mapping]] = ..., toapp_pos_up: _Optional[_Union[NavPosUp, _Mapping]] = ..., todev_chl_line_data: _Optional[_Union[NavCHlLineData, _Mapping]] = ..., toapp_task_info: _Optional[_Union[NavTaskInfo, _Mapping]] = ..., toapp_opt_line_up: _Optional[_Union[NavOptLineUp, _Mapping]] = ..., toapp_opt_border_info: _Optional[_Union[NavOptiBorderInfo, _Mapping]] = ..., toapp_opt_obs_info: _Optional[_Union[NavOptObsInfo, _Mapping]] = ..., todev_task_info_ack: _Optional[_Union[NavResFrame, _Mapping]] = ..., todev_opt_border_info_ack: _Optional[_Union[NavResFrame, _Mapping]] = ..., todev_opt_obs_info_ack: _Optional[_Union[NavResFrame, _Mapping]] = ..., todev_opt_line_up_ack: _Optional[_Union[NavResFrame, _Mapping]] = ..., toapp_chgpileto: _Optional[_Union[chargePileType, _Mapping]] = ..., todev_sustask: _Optional[int] = ..., todev_rechgcmd: _Optional[int] = ..., todev_edgecmd: _Optional[int] = ..., todev_draw_border: _Optional[int] = ..., todev_draw_border_end: _Optional[int] = ..., todev_draw_obs: _Optional[int] = ..., todev_draw_obs_end: _Optional[int] = ..., todev_chl_line: _Optional[int] = ..., todev_chl_line_end: _Optional[int] = ..., todev_save_task: _Optional[int] = ..., todev_cancel_suscmd: _Optional[int] = ..., todev_reset_chg_pile: _Optional[int] = ..., todev_cancel_draw_cmd: _Optional[int] = ..., todev_one_touch_leave_pile: _Optional[int] = ..., todev_mow_task: _Optional[_Union[NavStartJob, _Mapping]] = ..., toapp_bstate: _Optional[_Union[NavBorderState, _Mapping]] = ..., todev_lat_up_ack: _Optional[int] = ..., todev_gethash: _Optional[_Union[NavGetHashList, _Mapping]] = ..., toapp_gethash_ack: _Optional[_Union[NavGetHashListAck, _Mapping]] = ..., todev_get_commondata: _Optional[_Union[NavGetCommData, _Mapping]] = ..., toapp_get_commondata_ack: _Optional[_Union[NavGetCommDataAck, _Mapping]] = ..., bidire_reqconver_path: _Optional[_Union[NavReqCoverPath, _Mapping]] = ..., toapp_zigzag: _Optional[_Union[NavUploadZigZagResult, _Mapping]] = ..., todev_zigzag_ack: _Optional[_Union[NavUploadZigZagResultAck, _Mapping]] = ..., todev_taskctrl: _Optional[_Union[NavTaskCtrl, _Mapping]] = ..., bidire_taskid: _Optional[_Union[NavTaskIdRw, _Mapping]] = ..., toapp_bp: _Optional[_Union[NavTaskBreakPoint, _Mapping]] = ..., todev_planjob_set: _Optional[_Union[NavPlanJobSet, _Mapping]] = ..., todev_unable_time_set: _Optional[_Union[NavUnableTimeSet, _Mapping]] = ..., simulation_cmd: _Optional[_Union[SimulationCmdData, _Mapping]] = ..., todev_work_report_update_cmd: _Optional[_Union[WorkReportUpdateCmd, _Mapping]] = ..., toapp_work_report_update_ack: _Optional[_Union[WorkReportUpdateAck, _Mapping]] = ..., todev_work_report_cmd: _Optional[_Union[WorkReportCmdData, _Mapping]] = ..., toapp_work_report_ack: _Optional[_Union[WorkReportInfoAck, _Mapping]] = ..., toapp_work_report_upload: _Optional[_Union[WorkReportInfoAck, _Mapping]] = ..., app_request_cover_paths: _Optional[_Union[app_request_cover_paths_t, _Mapping]] = ..., cover_path_upload: _Optional[_Union[cover_path_upload_t, _Mapping]] = ..., zone_start_precent: _Optional[_Union[zone_start_precent_t, _Mapping]] = ..., vision_ctrl: _Optional[_Union[vision_ctrl_msg, _Mapping]] = ..., nav_sys_param_cmd: _Optional[_Union[nav_sys_param_msg, _Mapping]] = ..., plan_task_execute: _Optional[_Union[nav_plan_task_execute, _Mapping]] = ..., toapp_costmap: _Optional[_Union[costmap_t, _Mapping]] = ..., plan_task_name_id: _Optional[_Union[plan_task_name_id_t, _Mapping]] = ..., all_plan_task: _Optional[_Union[nav_get_all_plan_task, _Mapping]] = ...) -> None: ...
|
|
149
|
+
def __init__(self, toapp_lat_up: _Optional[_Union[NavLatLonUp, _Mapping]] = ..., toapp_pos_up: _Optional[_Union[NavPosUp, _Mapping]] = ..., todev_chl_line_data: _Optional[_Union[NavCHlLineData, _Mapping]] = ..., toapp_task_info: _Optional[_Union[NavTaskInfo, _Mapping]] = ..., toapp_opt_line_up: _Optional[_Union[NavOptLineUp, _Mapping]] = ..., toapp_opt_border_info: _Optional[_Union[NavOptiBorderInfo, _Mapping]] = ..., toapp_opt_obs_info: _Optional[_Union[NavOptObsInfo, _Mapping]] = ..., todev_task_info_ack: _Optional[_Union[NavResFrame, _Mapping]] = ..., todev_opt_border_info_ack: _Optional[_Union[NavResFrame, _Mapping]] = ..., todev_opt_obs_info_ack: _Optional[_Union[NavResFrame, _Mapping]] = ..., todev_opt_line_up_ack: _Optional[_Union[NavResFrame, _Mapping]] = ..., toapp_chgpileto: _Optional[_Union[chargePileType, _Mapping]] = ..., todev_sustask: _Optional[int] = ..., todev_rechgcmd: _Optional[int] = ..., todev_edgecmd: _Optional[int] = ..., todev_draw_border: _Optional[int] = ..., todev_draw_border_end: _Optional[int] = ..., todev_draw_obs: _Optional[int] = ..., todev_draw_obs_end: _Optional[int] = ..., todev_chl_line: _Optional[int] = ..., todev_chl_line_end: _Optional[int] = ..., todev_save_task: _Optional[int] = ..., todev_cancel_suscmd: _Optional[int] = ..., todev_reset_chg_pile: _Optional[int] = ..., todev_cancel_draw_cmd: _Optional[int] = ..., todev_one_touch_leave_pile: _Optional[int] = ..., todev_mow_task: _Optional[_Union[NavStartJob, _Mapping]] = ..., toapp_bstate: _Optional[_Union[NavBorderState, _Mapping]] = ..., todev_lat_up_ack: _Optional[int] = ..., todev_gethash: _Optional[_Union[NavGetHashList, _Mapping]] = ..., toapp_gethash_ack: _Optional[_Union[NavGetHashListAck, _Mapping]] = ..., todev_get_commondata: _Optional[_Union[NavGetCommData, _Mapping]] = ..., toapp_get_commondata_ack: _Optional[_Union[NavGetCommDataAck, _Mapping]] = ..., bidire_reqconver_path: _Optional[_Union[NavReqCoverPath, _Mapping]] = ..., toapp_zigzag: _Optional[_Union[NavUploadZigZagResult, _Mapping]] = ..., todev_zigzag_ack: _Optional[_Union[NavUploadZigZagResultAck, _Mapping]] = ..., todev_taskctrl: _Optional[_Union[NavTaskCtrl, _Mapping]] = ..., bidire_taskid: _Optional[_Union[NavTaskIdRw, _Mapping]] = ..., toapp_bp: _Optional[_Union[NavTaskBreakPoint, _Mapping]] = ..., todev_planjob_set: _Optional[_Union[NavPlanJobSet, _Mapping]] = ..., todev_unable_time_set: _Optional[_Union[NavUnableTimeSet, _Mapping]] = ..., simulation_cmd: _Optional[_Union[SimulationCmdData, _Mapping]] = ..., todev_work_report_update_cmd: _Optional[_Union[WorkReportUpdateCmd, _Mapping]] = ..., toapp_work_report_update_ack: _Optional[_Union[WorkReportUpdateAck, _Mapping]] = ..., todev_work_report_cmd: _Optional[_Union[WorkReportCmdData, _Mapping]] = ..., toapp_work_report_ack: _Optional[_Union[WorkReportInfoAck, _Mapping]] = ..., toapp_work_report_upload: _Optional[_Union[WorkReportInfoAck, _Mapping]] = ..., app_request_cover_paths: _Optional[_Union[app_request_cover_paths_t, _Mapping]] = ..., cover_path_upload: _Optional[_Union[cover_path_upload_t, _Mapping]] = ..., zone_start_precent: _Optional[_Union[zone_start_precent_t, _Mapping]] = ..., vision_ctrl: _Optional[_Union[vision_ctrl_msg, _Mapping]] = ..., nav_sys_param_cmd: _Optional[_Union[nav_sys_param_msg, _Mapping]] = ..., plan_task_execute: _Optional[_Union[nav_plan_task_execute, _Mapping]] = ..., toapp_costmap: _Optional[_Union[costmap_t, _Mapping]] = ..., plan_task_name_id: _Optional[_Union[plan_task_name_id_t, _Mapping]] = ..., all_plan_task: _Optional[_Union[nav_get_all_plan_task, _Mapping]] = ..., todev_taskctrl_ack: _Optional[_Union[NavTaskCtrlAck, _Mapping]] = ..., toapp_map_name_msg: _Optional[_Union[NavMapNameMsg, _Mapping]] = ..., todev_svg_msg: _Optional[_Union[SvgMessageAckT, _Mapping]] = ..., toapp_svg_msg: _Optional[_Union[SvgMessageAckT, _Mapping]] = ..., toapp_all_hash_name: _Optional[_Union[AppGetAllAreaHashName, _Mapping]] = ...) -> None: ...
|
|
124
150
|
|
|
125
151
|
class NavBorderDataGet(_message.Message):
|
|
126
152
|
__slots__ = ["borderLen", "currentFrame", "jobId"]
|
|
@@ -272,6 +298,20 @@ class NavLatLonUp(_message.Message):
|
|
|
272
298
|
lon: float
|
|
273
299
|
def __init__(self, lat: _Optional[float] = ..., lon: _Optional[float] = ...) -> None: ...
|
|
274
300
|
|
|
301
|
+
class NavMapNameMsg(_message.Message):
|
|
302
|
+
__slots__ = ["device_id", "hash", "name", "result", "rw"]
|
|
303
|
+
DEVICE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
304
|
+
HASH_FIELD_NUMBER: _ClassVar[int]
|
|
305
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
306
|
+
RESULT_FIELD_NUMBER: _ClassVar[int]
|
|
307
|
+
RW_FIELD_NUMBER: _ClassVar[int]
|
|
308
|
+
device_id: str
|
|
309
|
+
hash: int
|
|
310
|
+
name: str
|
|
311
|
+
result: int
|
|
312
|
+
rw: int
|
|
313
|
+
def __init__(self, rw: _Optional[int] = ..., hash: _Optional[int] = ..., name: _Optional[str] = ..., result: _Optional[int] = ..., device_id: _Optional[str] = ...) -> None: ...
|
|
314
|
+
|
|
275
315
|
class NavObstiBorderDataGet(_message.Message):
|
|
276
316
|
__slots__ = ["currentFrame", "obstacleIndex", "obstaclesLen"]
|
|
277
317
|
CURRENTFRAME_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -546,6 +586,20 @@ class NavTaskCtrl(_message.Message):
|
|
|
546
586
|
type: int
|
|
547
587
|
def __init__(self, type: _Optional[int] = ..., action: _Optional[int] = ..., result: _Optional[int] = ..., reserved: _Optional[str] = ...) -> None: ...
|
|
548
588
|
|
|
589
|
+
class NavTaskCtrlAck(_message.Message):
|
|
590
|
+
__slots__ = ["action", "nav_state", "reserved", "result", "type"]
|
|
591
|
+
ACTION_FIELD_NUMBER: _ClassVar[int]
|
|
592
|
+
NAV_STATE_FIELD_NUMBER: _ClassVar[int]
|
|
593
|
+
RESERVED_FIELD_NUMBER: _ClassVar[int]
|
|
594
|
+
RESULT_FIELD_NUMBER: _ClassVar[int]
|
|
595
|
+
TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
596
|
+
action: int
|
|
597
|
+
nav_state: int
|
|
598
|
+
reserved: str
|
|
599
|
+
result: int
|
|
600
|
+
type: int
|
|
601
|
+
def __init__(self, type: _Optional[int] = ..., action: _Optional[int] = ..., result: _Optional[int] = ..., nav_state: _Optional[int] = ..., reserved: _Optional[str] = ...) -> None: ...
|
|
602
|
+
|
|
549
603
|
class NavTaskIdRw(_message.Message):
|
|
550
604
|
__slots__ = ["pver", "reserved", "result", "subCmd", "taskId", "taskName"]
|
|
551
605
|
PVER_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -674,6 +728,28 @@ class SimulationCmdData(_message.Message):
|
|
|
674
728
|
subCmd: int
|
|
675
729
|
def __init__(self, subCmd: _Optional[int] = ..., param_id: _Optional[int] = ..., param_value: _Optional[_Iterable[int]] = ...) -> None: ...
|
|
676
730
|
|
|
731
|
+
class SvgMessageAckT(_message.Message):
|
|
732
|
+
__slots__ = ["current_frame", "data_hash", "paternal_hash_a", "pver", "result", "sub_cmd", "svg_message", "total_frame", "type"]
|
|
733
|
+
CURRENT_FRAME_FIELD_NUMBER: _ClassVar[int]
|
|
734
|
+
DATA_HASH_FIELD_NUMBER: _ClassVar[int]
|
|
735
|
+
PATERNAL_HASH_A_FIELD_NUMBER: _ClassVar[int]
|
|
736
|
+
PVER_FIELD_NUMBER: _ClassVar[int]
|
|
737
|
+
RESULT_FIELD_NUMBER: _ClassVar[int]
|
|
738
|
+
SUB_CMD_FIELD_NUMBER: _ClassVar[int]
|
|
739
|
+
SVG_MESSAGE_FIELD_NUMBER: _ClassVar[int]
|
|
740
|
+
TOTAL_FRAME_FIELD_NUMBER: _ClassVar[int]
|
|
741
|
+
TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
742
|
+
current_frame: int
|
|
743
|
+
data_hash: int
|
|
744
|
+
paternal_hash_a: int
|
|
745
|
+
pver: int
|
|
746
|
+
result: int
|
|
747
|
+
sub_cmd: int
|
|
748
|
+
svg_message: svg_message_t
|
|
749
|
+
total_frame: int
|
|
750
|
+
type: int
|
|
751
|
+
def __init__(self, pver: _Optional[int] = ..., sub_cmd: _Optional[int] = ..., total_frame: _Optional[int] = ..., current_frame: _Optional[int] = ..., data_hash: _Optional[int] = ..., paternal_hash_a: _Optional[int] = ..., type: _Optional[int] = ..., result: _Optional[int] = ..., svg_message: _Optional[_Union[svg_message_t, _Mapping]] = ...) -> None: ...
|
|
752
|
+
|
|
677
753
|
class WorkReportCmdData(_message.Message):
|
|
678
754
|
__slots__ = ["getInfoNum", "subCmd"]
|
|
679
755
|
GETINFONUM_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -854,6 +930,36 @@ class plan_task_name_id_t(_message.Message):
|
|
|
854
930
|
name: str
|
|
855
931
|
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ...) -> None: ...
|
|
856
932
|
|
|
933
|
+
class svg_message_t(_message.Message):
|
|
934
|
+
__slots__ = ["base_height_m", "base_height_pix", "base_width_m", "base_width_pix", "data_count", "hide_svg", "name_count", "rotate", "scale", "svg_file_data", "svg_file_name", "x_move", "y_move"]
|
|
935
|
+
BASE_HEIGHT_M_FIELD_NUMBER: _ClassVar[int]
|
|
936
|
+
BASE_HEIGHT_PIX_FIELD_NUMBER: _ClassVar[int]
|
|
937
|
+
BASE_WIDTH_M_FIELD_NUMBER: _ClassVar[int]
|
|
938
|
+
BASE_WIDTH_PIX_FIELD_NUMBER: _ClassVar[int]
|
|
939
|
+
DATA_COUNT_FIELD_NUMBER: _ClassVar[int]
|
|
940
|
+
HIDE_SVG_FIELD_NUMBER: _ClassVar[int]
|
|
941
|
+
NAME_COUNT_FIELD_NUMBER: _ClassVar[int]
|
|
942
|
+
ROTATE_FIELD_NUMBER: _ClassVar[int]
|
|
943
|
+
SCALE_FIELD_NUMBER: _ClassVar[int]
|
|
944
|
+
SVG_FILE_DATA_FIELD_NUMBER: _ClassVar[int]
|
|
945
|
+
SVG_FILE_NAME_FIELD_NUMBER: _ClassVar[int]
|
|
946
|
+
X_MOVE_FIELD_NUMBER: _ClassVar[int]
|
|
947
|
+
Y_MOVE_FIELD_NUMBER: _ClassVar[int]
|
|
948
|
+
base_height_m: float
|
|
949
|
+
base_height_pix: int
|
|
950
|
+
base_width_m: float
|
|
951
|
+
base_width_pix: int
|
|
952
|
+
data_count: int
|
|
953
|
+
hide_svg: bool
|
|
954
|
+
name_count: int
|
|
955
|
+
rotate: float
|
|
956
|
+
scale: float
|
|
957
|
+
svg_file_data: str
|
|
958
|
+
svg_file_name: str
|
|
959
|
+
x_move: float
|
|
960
|
+
y_move: float
|
|
961
|
+
def __init__(self, x_move: _Optional[float] = ..., y_move: _Optional[float] = ..., scale: _Optional[float] = ..., rotate: _Optional[float] = ..., base_width_m: _Optional[float] = ..., base_width_pix: _Optional[int] = ..., base_height_m: _Optional[float] = ..., base_height_pix: _Optional[int] = ..., data_count: _Optional[int] = ..., hide_svg: bool = ..., name_count: _Optional[int] = ..., svg_file_name: _Optional[str] = ..., svg_file_data: _Optional[str] = ...) -> None: ...
|
|
962
|
+
|
|
857
963
|
class vision_ctrl_msg(_message.Message):
|
|
858
964
|
__slots__ = ["cmd", "type"]
|
|
859
965
|
CMD_FIELD_NUMBER: _ClassVar[int]
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
from enum import IntEnum
|
|
2
|
+
|
|
3
|
+
|
|
1
4
|
class bleOrderCmd:
|
|
2
5
|
allpowerfullRW = 67
|
|
3
6
|
alongBorder = 9
|
|
@@ -250,3 +253,19 @@ def device_mode(value) -> str:
|
|
|
250
253
|
38: "MODE_BOUNDARY_JUMP",
|
|
251
254
|
}
|
|
252
255
|
return modes.get(value, "Invalid mode")
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
class PosType(IntEnum):
|
|
259
|
+
"""Position of the robot."""
|
|
260
|
+
AREA_BORDER_ON = 7
|
|
261
|
+
AREA_INSIDE = 1
|
|
262
|
+
AREA_OUT = 0
|
|
263
|
+
CHANNAL_AREA_OVERLAP = 9
|
|
264
|
+
CHANNEL_ON = 3
|
|
265
|
+
CHARGE_ON = 5
|
|
266
|
+
DUMPING_AREA_INSIDE = 8
|
|
267
|
+
DUMPING_OUTSIDE = 10
|
|
268
|
+
OBS_ON = 2
|
|
269
|
+
TURN_AREA_INSIDE = 4
|
|
270
|
+
VIRTUAL_INSIDE = 6
|
|
271
|
+
|
|
@@ -7,6 +7,9 @@ class DeviceType(Enum):
|
|
|
7
7
|
LUBA = (1, "Luba", "Luba 1")
|
|
8
8
|
LUBA_2 = (2, "Luba-VS", "Luba 2")
|
|
9
9
|
LUBA_YUKA = (3, "Yuka-", "Yuka")
|
|
10
|
+
YUKA_MINI = (4, "Yuka-MN", "Yuka Mini")
|
|
11
|
+
YUKA_MINI2 = (5, "Yuka-YM", "Yuka Mini 2")
|
|
12
|
+
LUBA_VP = (6, "Luba-VP", "Luba VP")
|
|
10
13
|
|
|
11
14
|
def __init__(self, value: int, name: str, model: str):
|
|
12
15
|
self._value = value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "pymammotion"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.55"
|
|
4
4
|
license = "GNU-3.0"
|
|
5
5
|
description = ""
|
|
6
6
|
readme = "README.md"
|
|
@@ -47,7 +47,7 @@ mypy = "^1.10.0"
|
|
|
47
47
|
pre-commit = "^3.7.1"
|
|
48
48
|
|
|
49
49
|
[tool.bumpver]
|
|
50
|
-
current_version = "0.0.
|
|
50
|
+
current_version = "0.0.55"
|
|
51
51
|
version_pattern = "MAJOR.MINOR.PATCH"
|
|
52
52
|
commit_message = "Bump version {old_version} -> {new_version}"
|
|
53
53
|
commit = true
|
|
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.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/dataclass/dev_by_account_response.py
RENAMED
|
File without changes
|
{pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/aliyun/dataclass/login_by_oauth_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
|
{pymammotion-0.0.53 → pymammotion-0.0.55}/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
|
{pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/abstract_message.py
RENAMED
|
File without changes
|
{pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/mammotion_command.py
RENAMED
|
File without changes
|
{pymammotion-0.0.53 → pymammotion-0.0.55}/pymammotion/mammotion/commands/messages/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pymammotion-0.0.53 → pymammotion-0.0.55}/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
|