pymammotion 0.0.54__py3-none-any.whl → 0.0.56__py3-none-any.whl

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

Potentially problematic release.


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

@@ -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."""
@@ -0,0 +1,9 @@
1
+ from dataclasses import dataclass
2
+
3
+
4
+ @dataclass
5
+ class DeviceLimits:
6
+ cutter_height_min: int
7
+ cutter_height_max: int
8
+ working_speed_min: float
9
+ working_speed_max: float
@@ -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
@@ -5,3 +5,6 @@ class AbstractMessage:
5
5
  @abstractmethod
6
6
  def get_device_name(self) -> str:
7
7
  """Get device name."""
8
+
9
+ def get_device_product_key(self) -> str:
10
+ """Get device name."""
@@ -4,18 +4,29 @@ from pymammotion.mammotion.commands.messages.ota import MessageOta
4
4
  from pymammotion.mammotion.commands.messages.system import MessageSystem
5
5
  from pymammotion.mammotion.commands.messages.video import MessageVideo
6
6
  from pymammotion.proto import dev_net_pb2, luba_msg_pb2
7
+ from pymammotion.utility.device_type import DeviceType
7
8
 
8
9
 
9
10
  class MammotionCommand(MessageSystem, MessageNavigation, MessageNetwork, MessageOta, MessageVideo):
10
11
  """MQTT commands for Luba."""
11
12
 
13
+
14
+
12
15
  def __init__(self, device_name: str) -> None:
13
16
  self._device_name = device_name
17
+ self._product_key = ""
14
18
 
15
19
  def get_device_name(self) -> str:
16
20
  """Get device name."""
17
21
  return self._device_name
18
22
 
23
+ def get_device_product_key(self) -> str:
24
+ return self._product_key
25
+
26
+ def set_device_product_key(self, product_key: str) -> None:
27
+ self._product_key = product_key
28
+
29
+
19
30
  """BLE commands for Luba."""
20
31
 
21
32
  def send_todev_ble_sync(self, sync_type: int) -> bytes:
@@ -14,6 +14,7 @@ from pymammotion.proto.mctrl_nav import (
14
14
  MctlNav,
15
15
  NavGetCommData,
16
16
  NavGetHashList,
17
+ NavMapNameMsg,
17
18
  NavPlanJobSet,
18
19
  NavPlanTaskExecute,
19
20
  NavReqCoverPath,
@@ -25,17 +26,23 @@ from pymammotion.proto.mctrl_nav import (
25
26
  WorkReportCmdData,
26
27
  WorkReportUpdateCmd,
27
28
  )
29
+ from pymammotion.utility.device_type import DeviceType
28
30
 
29
31
  logger = logging.getLogger(__name__)
30
32
 
31
33
 
32
34
  class MessageNavigation(AbstractMessage, ABC):
33
- @staticmethod
34
- def send_order_msg_nav(build) -> bytes:
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 not DeviceType.is_luba1(self.get_device_name(), self.get_device_product_key()) 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,31 @@ 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(hash=hash_id, name=name, result=0, device_id=device_id, rw=1)
283
+ )
284
+
285
+ # Send the message with the specified ID and acknowledge flag
286
+ logger.debug("Send command--Get area name list")
287
+ return self.send_order_msg_nav(mctl_nav)
288
+
257
289
  def get_all_boundary_hash_list(self, sub_cmd: int):
258
290
  build = MctlNav(todev_gethash=NavGetHashList(pver=1, sub_cmd=sub_cmd))
259
291
  logger.debug(f"Area loading=====================:Get area hash list++Bluetooth:{sub_cmd}")
@@ -353,8 +385,8 @@ class MessageNavigation(AbstractMessage, ABC):
353
385
  channel_width=generate_route_information.channel_width,
354
386
  channel_mode=generate_route_information.channel_mode,
355
387
  toward=generate_route_information.toward,
356
- toward_included_angle=generate_route_information.toward_included_angle,
357
- toward_mode=generate_route_information.toward_mode,
388
+ toward_included_angle=generate_route_information.toward_included_angle, # luba 2 yuka only
389
+ toward_mode=generate_route_information.toward_mode, # luba 2 yuka only
358
390
  reserved=generate_route_information.path_order,
359
391
  )
360
392
  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 : err.end]
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
- self,
124
- ble_device: BLEDevice,
125
- preference: ConnectionPreference = ConnectionPreference.EITHER,
123
+ self,
124
+ ble_device: BLEDevice,
125
+ preference: ConnectionPreference = ConnectionPreference.EITHER,
126
126
  ) -> None:
127
127
  """Initialize MammotionDevice."""
128
128
  if ble_device:
@@ -318,6 +318,8 @@ class MammotionBaseDevice:
318
318
 
319
319
  await self._send_command_with_args("get_hash_response", total_frame=1, current_frame=1)
320
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)
321
323
  # sub_cmd 3 is job hashes??
322
324
  # sub_cmd 4 is dump location (yuka)
323
325
  # jobs list
@@ -543,6 +545,10 @@ class MammotionBaseBLEDevice(MammotionBaseDevice):
543
545
  new_msg = LubaMsg().parse(data)
544
546
  if betterproto.serialized_on_wire(new_msg.net):
545
547
  if new_msg.net.todev_ble_sync != 0 or has_field(new_msg.net.toapp_wifi_iot_status):
548
+
549
+ if has_field(new_msg.net.toapp_wifi_iot_status) and self._commands.get_device_product_key() == "":
550
+ self._commands.set_device_product_key(new_msg.net.toapp_wifi_iot_status.productkey)
551
+
546
552
  return
547
553
 
548
554
  # may or may not be correct, some work could be done here to correctly match responses
@@ -707,12 +713,12 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
707
713
  """Base class for Mammotion Cloud devices."""
708
714
 
709
715
  def __init__(
710
- self,
711
- mqtt_client: MammotionMQTT,
712
- iot_id: str,
713
- device_name: str,
714
- nick_name: str,
715
- **kwargs: Any,
716
+ self,
717
+ mqtt_client: MammotionMQTT,
718
+ iot_id: str,
719
+ device_name: str,
720
+ nick_name: str,
721
+ **kwargs: Any,
716
722
  ) -> None:
717
723
  """Initialize MammotionBaseCloudDevice."""
718
724
  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
- _MCTLNAV._serialized_start=6335
115
- _MCTLNAV._serialized_end=8762
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
  Metadata-Version: 2.1
2
2
  Name: pymammotion
3
- Version: 0.0.54
3
+ Version: 0.0.56
4
4
  Summary:
5
5
  License: GNU-3.0
6
6
  Author: Michael Arthur
@@ -20,14 +20,15 @@ pymammotion/bluetooth/data/notifydata.py,sha256=N1bphpueWUWbsWUcpZmMGt2CyCgLcKAF
20
20
  pymammotion/const.py,sha256=3plR6t5sFVhx3LoUbW5PE2gqIANoD-fSm-T0q8uIwIU,336
21
21
  pymammotion/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  pymammotion/data/model/__init__.py,sha256=d8FlIgCcWqoH3jJSpnm-IY-25RM-l2nbRwLtWjSHo74,222
23
- pymammotion/data/model/device.py,sha256=lwcXCrcVCzRiUl2IYwyViColdjao9FvVFgsRIlEEeZg,9119
23
+ pymammotion/data/model/device.py,sha256=XPAtknw8t5a38OO4acr25gyfbnUpTs_BaD80--YP7LY,9318
24
+ pymammotion/data/model/device_config.py,sha256=6BcyVbMyw6vA1jANof8_mnG-jizGsF96pbKeHP4t8G4,179
24
25
  pymammotion/data/model/enums.py,sha256=tD_vYsxstOV_lUkYF9uWkrjVOgAJPNnGevy_xmiu3WE,1558
25
26
  pymammotion/data/model/excute_boarder_params.py,sha256=kadSth4y-VXlXIZ6R-Ng-kDvBbM-3YRr8bmR86qR0U0,1355
26
27
  pymammotion/data/model/execute_boarder.py,sha256=oDb2h5tFtOQIa8OCNYaDugqCgCZBLjQRzQTNVcJVAGQ,1072
27
28
  pymammotion/data/model/generate_route_information.py,sha256=5w1MM1-gXGXb_AoEap_I5xTxAFbNSzXuqQFEkw4NmDs,4301
28
29
  pymammotion/data/model/hash_list.py,sha256=z4y0mzbW8LQ5nsaHbMlt1y6uS4suB4D_VljAyIEjFR0,1171
29
30
  pymammotion/data/model/location.py,sha256=ST0SrKnutQ1VsesOiKAmEqpc3LomW5waKZbFdzUg9OQ,670
30
- pymammotion/data/model/mowing_modes.py,sha256=rURsywZPDdE3fc3ch_XEgEL6bUOaoS3oIGoHMhh6PFM,473
31
+ pymammotion/data/model/mowing_modes.py,sha256=121zhvouPKRbF7mynJIc7tJ0zO9bS-Nq4CFhFI7Nt0s,663
31
32
  pymammotion/data/model/plan.py,sha256=7JvqAo0a9Yg1Vtifd4J3Dx3StEppxrMOfmq2-877kYg,2891
32
33
  pymammotion/data/model/rapid_state.py,sha256=_e9M-65AbkvIqXyMYzLKBxbNvpso42qD8R-JSt66THY,986
33
34
  pymammotion/data/model/region_data.py,sha256=75xOTM1qeRbSROp53eIczw3yCmYM9DgMjMh8qE9xkKo,2880
@@ -35,19 +36,19 @@ pymammotion/data/mqtt/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdr
35
36
  pymammotion/data/mqtt/event.py,sha256=kEilMLmwZG2nbokLw7X28KF3b-te8G-MfNARYm4LG6I,2170
36
37
  pymammotion/data/mqtt/properties.py,sha256=HkBPghr26L9_b4QaOi1DtPgb0UoPIOGSe9wb3kgnM6Y,2815
37
38
  pymammotion/data/mqtt/status.py,sha256=zqnlo-MzejEQZszl0i0Wucoc3E76x6UtI9JLxoBnu54,1067
38
- pymammotion/data/state_manager.py,sha256=OKcJlunb24TwQsO9KRiz4Qp-Y1Q_P5sIoQW4HilVV4s,2679
39
+ pymammotion/data/state_manager.py,sha256=yjNbGYprOO7jfVfDO6EBK3MDt2Y8pmAijNOBEGfp6Xs,2766
39
40
  pymammotion/event/__init__.py,sha256=mgATR6vPHACNQ-0zH5fi7NdzeTCDV1CZyaWPmtUusi8,115
40
41
  pymammotion/event/event.py,sha256=Fy5-I1p92AO_D67VW4eHQqA4pOt7MZsrP--tVfIVUz8,1820
41
42
  pymammotion/http/_init_.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
43
  pymammotion/http/http.py,sha256=t9jO1U3Kjy30TzHkzQViv5BtmCKnNfyxrurAvXSghok,2284
43
44
  pymammotion/mammotion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
45
  pymammotion/mammotion/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- pymammotion/mammotion/commands/abstract_message.py,sha256=8m_z6iK67svgmaTG6a_BEj4pVV00JWiIoXLg4njfPZQ,145
46
- pymammotion/mammotion/commands/mammotion_command.py,sha256=kAk6ZVTfb6c7MmLAOCxG8wP2UlPooL04FBT1P0JaTfU,1275
46
+ pymammotion/mammotion/commands/abstract_message.py,sha256=nw6r7694yzl7iJKqRqhLmAPRjd_TL_Xo_-JXq2_a_ug,222
47
+ pymammotion/mammotion/commands/mammotion_command.py,sha256=5WwD-V0XBkaYIRhxe-kVTTNpeA0XMYZLvmU_pj9rgdc,1548
47
48
  pymammotion/mammotion/commands/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
49
  pymammotion/mammotion/commands/messages/driver.py,sha256=IFtmp9gJ3p3U2xtTgWVpKBMbnVnUht6Ioih17po6Hr4,3783
49
50
  pymammotion/mammotion/commands/messages/media.py,sha256=ps0l06CXy5Ej--gTNCsyKttwo7yHLVrJUpn-wNJYecs,1150
50
- pymammotion/mammotion/commands/messages/navigation.py,sha256=krd7fY1uqeOzkvZTtbnUC4dNi938KgdBbCN6pad13Sw,21692
51
+ pymammotion/mammotion/commands/messages/navigation.py,sha256=c7C6Dru-Xwtq-epzS9vKsy_6QlQ7ozKq9QDhFn2IRHU,23181
51
52
  pymammotion/mammotion/commands/messages/network.py,sha256=1a0BIhaBhBuhqYaK5EUqLbDgfzjzsIGrXS32wMKtxOU,8316
52
53
  pymammotion/mammotion/commands/messages/ota.py,sha256=XkeuWBZtpYMMBze6r8UN7dJXbe2FxUNGNnjwBpXJKM0,1240
53
54
  pymammotion/mammotion/commands/messages/system.py,sha256=qP6DwYPKTaRgqLZG4Ot8BLD2uzKxhLpCKYFIwek131k,10963
@@ -55,7 +56,7 @@ pymammotion/mammotion/commands/messages/video.py,sha256=_8lJsU4sLm2CGnc7RDkueA0A
55
56
  pymammotion/mammotion/control/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
57
  pymammotion/mammotion/control/joystick.py,sha256=EWV20MMzQuhbLlNlXbsyZKSEpeM7x1CQL7saU4Pn0-g,6165
57
58
  pymammotion/mammotion/devices/__init__.py,sha256=T72jt0ejtMjo1rPmn_FeMF3pmp0LLeRRpc9WcDKEYYY,126
58
- pymammotion/mammotion/devices/mammotion.py,sha256=EmL9DsqLQGK-6WaZrH28H6UqmAV67dnQ-ZoqBmnkv1E,30698
59
+ pymammotion/mammotion/devices/mammotion.py,sha256=s-ubE2PSWV58LxMerXFrVO6ek3EL6kZkWn04Dacbzb4,31131
59
60
  pymammotion/mqtt/__init__.py,sha256=Ocs5e-HLJvTuDpVXyECEsWIvwsUaxzj7lZ9mSYutNDY,105
60
61
  pymammotion/mqtt/mammotion_mqtt.py,sha256=EBnUwqah-mZNcAn5Hq2sV3NKXueIYWNhYPiaXwaXdHg,9084
61
62
  pymammotion/proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -79,10 +80,10 @@ pymammotion/proto/mctrl_driver.proto,sha256=I0BncdAa3laeqT17Sn95r_1HuBD3dSc9IVu9
79
80
  pymammotion/proto/mctrl_driver.py,sha256=sseY2MxUtaQZvg7fvbA_gNvtqx9MVDW_rvUcfA2CWVs,2971
80
81
  pymammotion/proto/mctrl_driver_pb2.py,sha256=bfLwZb5Hehb6OIkgFrZMkQ0oTBXoOBxpruszKz-UM1U,3785
81
82
  pymammotion/proto/mctrl_driver_pb2.pyi,sha256=9_rcQELsSeOfeIQMTEFIpeXICpDe3arQeA4kAYWNSWw,5860
82
- pymammotion/proto/mctrl_nav.proto,sha256=gqUQIS8tg0RXTKz-4mLXLcJSVcXtj6Wn2Zl017vTmzs,10535
83
- pymammotion/proto/mctrl_nav.py,sha256=6qgOxdofwPNErVGg4IYENNeyZcjZtl6MvDXGC5Jwq58,22292
84
- pymammotion/proto/mctrl_nav_pb2.py,sha256=1oQUb9Xp2piNbJ2QRVlhXwsDTWbL7lcoD7vTIl3HzaI,21753
85
- pymammotion/proto/mctrl_nav_pb2.pyi,sha256=eWevslsUGBX974w8XbqQqnHMmZoruw1sWwonOugETm8,45956
83
+ pymammotion/proto/mctrl_nav.proto,sha256=3OQ8DDP5yaZpKBcqeflGLQ5v5YE5AdBOftkKLRne2Tg,12530
84
+ pymammotion/proto/mctrl_nav.py,sha256=slxOoMybsBGr0w2_QU4IzArcPU3tgzVNyio-lYmLfi0,24993
85
+ pymammotion/proto/mctrl_nav_pb2.py,sha256=LAHfEmGfNVZCN6vuLSZF6s2wd1Qk-siaWe4mdPWPdxc,24213
86
+ pymammotion/proto/mctrl_nav_pb2.pyi,sha256=qmGYfKh2o63e5ppl9QIWnwDbmGVUVOf7EqhC9ApE5fg,51336
86
87
  pymammotion/proto/mctrl_ota.proto,sha256=4iHr-v1R0QiNndCnv3b6mhXiERLukB67ZzhTgt1iMc0,629
87
88
  pymammotion/proto/mctrl_ota.py,sha256=nIJgTWXemRuE622XqCym6TFHugV3PzAzX5IOTlE3muM,1427
88
89
  pymammotion/proto/mctrl_ota_pb2.py,sha256=-atzWg8USf4DMhlEL39q83paIyAO-CzsZhQjHvV4H68,2271
@@ -97,12 +98,12 @@ pymammotion/proto/mctrl_sys_pb2.py,sha256=fvVXdJtDCcmCGHjib53zkRV6WGqlD3bBs-YR_d
97
98
  pymammotion/proto/mctrl_sys_pb2.pyi,sha256=2aojT3Q9kqP4YT9aOW0lt4RxRXfOdcsztbArHBG6RzQ,38902
98
99
  pymammotion/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
100
  pymammotion/utility/constant/__init__.py,sha256=tZz7szqIhrzNjfcLU3ysfINfg5VEBUAisd9AhP4mvT0,38
100
- pymammotion/utility/constant/device_constant.py,sha256=a_nEQ2_Sk5auVIR_KQ-pshC6p6XKLz36XzMzFYb5rwo,6780
101
+ pymammotion/utility/constant/device_constant.py,sha256=Ebmf1S9Of4s_SNp8yC7Vsbh35IniAeY-DYV4lRY5Kmw,7109
101
102
  pymammotion/utility/datatype_converter.py,sha256=v6zym2Zu0upxQjR-xDqXwi3516zpntSlg7LP8tQF5K8,4216
102
- pymammotion/utility/device_type.py,sha256=B_Y1WCRPlFMDOqC13H0ltInyPkbPMIxCoZccCC13fmc,8154
103
+ pymammotion/utility/device_type.py,sha256=KYawu2glZMVlPmxRbA4kVFujXz3miHp3rJiOWRVj-GI,8285
103
104
  pymammotion/utility/periodic.py,sha256=9wJMfwXPlx6Mbp3Fws7LLTI34ZDKphH1bva_Ggyk32g,3281
104
105
  pymammotion/utility/rocker_util.py,sha256=syPL0QN4zMzHiTIkUKS7RXBBptjdbkfNlPddwUD5V3A,7171
105
- pymammotion-0.0.54.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
106
- pymammotion-0.0.54.dist-info/METADATA,sha256=q5VX7kLNJcao53UKtFiMucKYlwCw4OVf6bP63FlUncM,3884
107
- pymammotion-0.0.54.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
108
- pymammotion-0.0.54.dist-info/RECORD,,
106
+ pymammotion-0.0.56.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
107
+ pymammotion-0.0.56.dist-info/METADATA,sha256=inWoWoU_uZ8bG46gGD7m7s2zVGXSc0NM_b2wNuL3lEE,3884
108
+ pymammotion-0.0.56.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
109
+ pymammotion-0.0.56.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.8.1
2
+ Generator: poetry-core 1.9.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any