pymammotion 0.1.1__py3-none-any.whl → 0.1.3__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.

@@ -11,6 +11,7 @@ from google.protobuf import symbol_database as _symbol_database
11
11
  _sym_db = _symbol_database.Default()
12
12
 
13
13
 
14
+ from pymammotion.proto import basestation_pb2 as pymammotion_dot_proto_dot_basestation__pb2
14
15
  from pymammotion.proto import mctrl_driver_pb2 as pymammotion_dot_proto_dot_mctrl__driver__pb2
15
16
  from pymammotion.proto import mctrl_nav_pb2 as pymammotion_dot_proto_dot_mctrl__nav__pb2
16
17
  from pymammotion.proto import mctrl_sys_pb2 as pymammotion_dot_proto_dot_mctrl__sys__pb2
@@ -20,21 +21,21 @@ from pymammotion.proto import luba_mul_pb2 as pymammotion_dot_proto_dot_luba__mu
20
21
  from pymammotion.proto import mctrl_pept_pb2 as pymammotion_dot_proto_dot_mctrl__pept__pb2
21
22
 
22
23
 
23
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n pymammotion/proto/luba_msg.proto\x1a$pymammotion/proto/mctrl_driver.proto\x1a!pymammotion/proto/mctrl_nav.proto\x1a!pymammotion/proto/mctrl_sys.proto\x1a\x1fpymammotion/proto/dev_net.proto\x1a!pymammotion/proto/mctrl_ota.proto\x1a pymammotion/proto/luba_mul.proto\x1a\"pymammotion/proto/mctrl_pept.proto\"\t\n\x07MsgNull\"\x99\x03\n\x07LubaMsg\x12\x1c\n\x07msgtype\x18\x01 \x01(\x0e\x32\x0b.MsgCmdType\x12\x1a\n\x06sender\x18\x02 \x01(\x0e\x32\n.MsgDevice\x12\x19\n\x05rcver\x18\x03 \x01(\x0e\x32\n.MsgDevice\x12\x19\n\x07msgattr\x18\x04 \x01(\x0e\x32\x08.MsgAttr\x12\x0c\n\x04seqs\x18\x05 \x01(\x05\x12\x0f\n\x07version\x18\x06 \x01(\x05\x12\x0f\n\x07subtype\x18\x07 \x01(\x05\x12\x16\n\x03net\x18\x08 \x01(\x0b\x32\x07.DevNetH\x00\x12\x17\n\x03sys\x18\n \x01(\x0b\x32\x08.MctlSysH\x00\x12\x17\n\x03nav\x18\x0b \x01(\x0b\x32\x08.MctlNavH\x00\x12\x1d\n\x06\x64river\x18\x0c \x01(\x0b\x32\x0b.MctlDriverH\x00\x12\x17\n\x03ota\x18\r \x01(\x0b\x32\x08.MctlOtaH\x00\x12\x16\n\x03mul\x18\x0e \x01(\x0b\x32\x07.SocMulH\x00\x12\x18\n\x04null\x18\x10 \x01(\x0b\x32\x08.MsgNullH\x00\x12\x19\n\x04pept\x18\x11 \x01(\x0b\x32\t.MctlPeptH\x00\x12\x11\n\ttimestamp\x18\x0f \x01(\x04\x42\x0c\n\nLubaSubMsg*\xd7\x02\n\nMsgCmdType\x12\x16\n\x12MSG_CMD_TYPE_START\x10\x00\x12\x15\n\x10MSG_CMD_TYPE_NAV\x10\xf0\x01\x12\x1e\n\x19MSG_CMD_TYPE_LOCALIZATION\x10\xf1\x01\x12\x1a\n\x15MSG_CMD_TYPE_PLANNING\x10\xf2\x01\x12\x1e\n\x19MSG_CMD_TYPE_EMBED_DRIVER\x10\xf3\x01\x12\x1b\n\x16MSG_CMD_TYPE_EMBED_SYS\x10\xf4\x01\x12\x1f\n\x1aMSG_CMD_TYPE_EMBED_MIDWARE\x10\xf5\x01\x12\x1b\n\x16MSG_CMD_TYPE_EMBED_OTA\x10\xf6\x01\x12\x1d\n\x18MSG_CMD_TYPE_APPLICATION\x10\xf7\x01\x12\x15\n\x10MSG_CMD_TYPE_ESP\x10\xf8\x01\x12\x15\n\x10MSG_CMD_TYPE_MUL\x10\xf9\x01\x12\x16\n\x11MSG_CMD_TYPE_PEPT\x10\xfa\x01*V\n\x07MsgAttr\x12\x11\n\rMSG_ATTR_NONE\x10\x00\x12\x10\n\x0cMSG_ATTR_REQ\x10\x01\x12\x11\n\rMSG_ATTR_RESP\x10\x02\x12\x13\n\x0fMSG_ATTR_REPORT\x10\x03*\xa8\x02\n\tMsgDevice\x12\x10\n\x0c\x44\x45V_COMM_ESP\x10\x00\x12\x0f\n\x0b\x44\x45V_MAINCTL\x10\x01\x12\x11\n\rDEV_LEFTMOTOR\x10\x02\x12\x12\n\x0e\x44\x45V_RIGHTMOTOR\x10\x03\x12\x13\n\x0f\x44\x45V_BASESTATION\x10\x04\x12\x0e\n\nDEV_RTKCLI\x10\x05\x12\x0f\n\x0b\x44\x45V_USBHOST\x10\x06\x12\x11\n\rDEV_MOBILEAPP\x10\x07\x12\x11\n\rDEV_IOTSERVER\x10\x08\x12\x0b\n\x07\x44\x45V_BMS\x10\t\x12\x12\n\x0e\x44\x45V_NAVIGATION\x10\x11\x12\x14\n\x10\x44\x45V_LOCALIZATION\x10\x12\x12\x12\n\x0e\x44\x45V_PERCEPTION\x10\x13\x12\x19\n\x15SOC_MODULE_MULTIMEDIA\x10\x15\x12\x0f\n\x0b\x44\x45V_IOTCTRL\x10\x19\x62\x06proto3')
24
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n pymammotion/proto/luba_msg.proto\x1a#pymammotion/proto/basestation.proto\x1a$pymammotion/proto/mctrl_driver.proto\x1a!pymammotion/proto/mctrl_nav.proto\x1a!pymammotion/proto/mctrl_sys.proto\x1a\x1fpymammotion/proto/dev_net.proto\x1a!pymammotion/proto/mctrl_ota.proto\x1a pymammotion/proto/luba_mul.proto\x1a\"pymammotion/proto/mctrl_pept.proto\"\t\n\x07MsgNull\"\xb7\x03\n\x07LubaMsg\x12\x1c\n\x07msgtype\x18\x01 \x01(\x0e\x32\x0b.MsgCmdType\x12\x1a\n\x06sender\x18\x02 \x01(\x0e\x32\n.MsgDevice\x12\x19\n\x05rcver\x18\x03 \x01(\x0e\x32\n.MsgDevice\x12\x19\n\x07msgattr\x18\x04 \x01(\x0e\x32\x08.MsgAttr\x12\x0c\n\x04seqs\x18\x05 \x01(\x05\x12\x0f\n\x07version\x18\x06 \x01(\x05\x12\x0f\n\x07subtype\x18\x07 \x01(\x05\x12\x16\n\x03net\x18\x08 \x01(\x0b\x32\x07.DevNetH\x00\x12\x17\n\x03sys\x18\n \x01(\x0b\x32\x08.MctlSysH\x00\x12\x17\n\x03nav\x18\x0b \x01(\x0b\x32\x08.MctlNavH\x00\x12\x1d\n\x06\x64river\x18\x0c \x01(\x0b\x32\x0b.MctlDriverH\x00\x12\x17\n\x03ota\x18\r \x01(\x0b\x32\x08.MctlOtaH\x00\x12\x16\n\x03mul\x18\x0e \x01(\x0b\x32\x07.SocMulH\x00\x12\x18\n\x04null\x18\x10 \x01(\x0b\x32\x08.MsgNullH\x00\x12\x19\n\x04pept\x18\x11 \x01(\x0b\x32\t.MctlPeptH\x00\x12\x1c\n\x04\x62\x61se\x18\x12 \x01(\x0b\x32\x0c.BaseStationH\x00\x12\x11\n\ttimestamp\x18\x0f \x01(\x04\x42\x0c\n\nLubaSubMsg*\xd7\x02\n\nMsgCmdType\x12\x16\n\x12MSG_CMD_TYPE_START\x10\x00\x12\x15\n\x10MSG_CMD_TYPE_NAV\x10\xf0\x01\x12\x1e\n\x19MSG_CMD_TYPE_LOCALIZATION\x10\xf1\x01\x12\x1a\n\x15MSG_CMD_TYPE_PLANNING\x10\xf2\x01\x12\x1e\n\x19MSG_CMD_TYPE_EMBED_DRIVER\x10\xf3\x01\x12\x1b\n\x16MSG_CMD_TYPE_EMBED_SYS\x10\xf4\x01\x12\x1f\n\x1aMSG_CMD_TYPE_EMBED_MIDWARE\x10\xf5\x01\x12\x1b\n\x16MSG_CMD_TYPE_EMBED_OTA\x10\xf6\x01\x12\x1d\n\x18MSG_CMD_TYPE_APPLICATION\x10\xf7\x01\x12\x15\n\x10MSG_CMD_TYPE_ESP\x10\xf8\x01\x12\x15\n\x10MSG_CMD_TYPE_MUL\x10\xf9\x01\x12\x16\n\x11MSG_CMD_TYPE_PEPT\x10\xfa\x01*V\n\x07MsgAttr\x12\x11\n\rMSG_ATTR_NONE\x10\x00\x12\x10\n\x0cMSG_ATTR_REQ\x10\x01\x12\x11\n\rMSG_ATTR_RESP\x10\x02\x12\x13\n\x0fMSG_ATTR_REPORT\x10\x03*\xa8\x02\n\tMsgDevice\x12\x10\n\x0c\x44\x45V_COMM_ESP\x10\x00\x12\x0f\n\x0b\x44\x45V_MAINCTL\x10\x01\x12\x11\n\rDEV_LEFTMOTOR\x10\x02\x12\x12\n\x0e\x44\x45V_RIGHTMOTOR\x10\x03\x12\x13\n\x0f\x44\x45V_BASESTATION\x10\x04\x12\x0e\n\nDEV_RTKCLI\x10\x05\x12\x0f\n\x0b\x44\x45V_USBHOST\x10\x06\x12\x11\n\rDEV_MOBILEAPP\x10\x07\x12\x11\n\rDEV_IOTSERVER\x10\x08\x12\x0b\n\x07\x44\x45V_BMS\x10\t\x12\x12\n\x0e\x44\x45V_NAVIGATION\x10\x11\x12\x14\n\x10\x44\x45V_LOCALIZATION\x10\x12\x12\x12\n\x0e\x44\x45V_PERCEPTION\x10\x13\x12\x19\n\x15SOC_MODULE_MULTIMEDIA\x10\x15\x12\x0f\n\x0b\x44\x45V_IOTCTRL\x10\x19\x62\x06proto3')
24
25
 
25
26
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
26
27
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'pymammotion.proto.luba_msg_pb2', globals())
27
28
  if _descriptor._USE_C_DESCRIPTORS == False:
28
29
 
29
30
  DESCRIPTOR._options = None
30
- _MSGCMDTYPE._serialized_start=706
31
- _MSGCMDTYPE._serialized_end=1049
32
- _MSGATTR._serialized_start=1051
33
- _MSGATTR._serialized_end=1137
34
- _MSGDEVICE._serialized_start=1140
35
- _MSGDEVICE._serialized_end=1436
36
- _MSGNULL._serialized_start=282
37
- _MSGNULL._serialized_end=291
38
- _LUBAMSG._serialized_start=294
39
- _LUBAMSG._serialized_end=703
31
+ _MSGCMDTYPE._serialized_start=773
32
+ _MSGCMDTYPE._serialized_end=1116
33
+ _MSGATTR._serialized_start=1118
34
+ _MSGATTR._serialized_end=1204
35
+ _MSGDEVICE._serialized_start=1207
36
+ _MSGDEVICE._serialized_end=1503
37
+ _MSGNULL._serialized_start=319
38
+ _MSGNULL._serialized_end=328
39
+ _LUBAMSG._serialized_start=331
40
+ _LUBAMSG._serialized_end=770
40
41
  # @@protoc_insertion_point(module_scope)
@@ -1,3 +1,4 @@
1
+ from pymammotion.proto import basestation_pb2 as _basestation_pb2
1
2
  from pymammotion.proto import mctrl_driver_pb2 as _mctrl_driver_pb2
2
3
  from pymammotion.proto import mctrl_nav_pb2 as _mctrl_nav_pb2
3
4
  from pymammotion.proto import mctrl_sys_pb2 as _mctrl_sys_pb2
@@ -44,7 +45,8 @@ MSG_CMD_TYPE_START: MsgCmdType
44
45
  SOC_MODULE_MULTIMEDIA: MsgDevice
45
46
 
46
47
  class LubaMsg(_message.Message):
47
- __slots__ = ["driver", "msgattr", "msgtype", "mul", "nav", "net", "null", "ota", "pept", "rcver", "sender", "seqs", "subtype", "sys", "timestamp", "version"]
48
+ __slots__ = ["base", "driver", "msgattr", "msgtype", "mul", "nav", "net", "null", "ota", "pept", "rcver", "sender", "seqs", "subtype", "sys", "timestamp", "version"]
49
+ BASE_FIELD_NUMBER: _ClassVar[int]
48
50
  DRIVER_FIELD_NUMBER: _ClassVar[int]
49
51
  MSGATTR_FIELD_NUMBER: _ClassVar[int]
50
52
  MSGTYPE_FIELD_NUMBER: _ClassVar[int]
@@ -61,6 +63,7 @@ class LubaMsg(_message.Message):
61
63
  SYS_FIELD_NUMBER: _ClassVar[int]
62
64
  TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
63
65
  VERSION_FIELD_NUMBER: _ClassVar[int]
66
+ base: _basestation_pb2.BaseStation
64
67
  driver: _mctrl_driver_pb2.MctlDriver
65
68
  msgattr: MsgAttr
66
69
  msgtype: MsgCmdType
@@ -77,7 +80,7 @@ class LubaMsg(_message.Message):
77
80
  sys: _mctrl_sys_pb2.MctlSys
78
81
  timestamp: int
79
82
  version: int
80
- def __init__(self, msgtype: _Optional[_Union[MsgCmdType, str]] = ..., sender: _Optional[_Union[MsgDevice, str]] = ..., rcver: _Optional[_Union[MsgDevice, str]] = ..., msgattr: _Optional[_Union[MsgAttr, str]] = ..., seqs: _Optional[int] = ..., version: _Optional[int] = ..., subtype: _Optional[int] = ..., net: _Optional[_Union[_dev_net_pb2.DevNet, _Mapping]] = ..., sys: _Optional[_Union[_mctrl_sys_pb2.MctlSys, _Mapping]] = ..., nav: _Optional[_Union[_mctrl_nav_pb2.MctlNav, _Mapping]] = ..., driver: _Optional[_Union[_mctrl_driver_pb2.MctlDriver, _Mapping]] = ..., ota: _Optional[_Union[_mctrl_ota_pb2.MctlOta, _Mapping]] = ..., mul: _Optional[_Union[_luba_mul_pb2.SocMul, _Mapping]] = ..., null: _Optional[_Union[MsgNull, _Mapping]] = ..., pept: _Optional[_Union[_mctrl_pept_pb2.MctlPept, _Mapping]] = ..., timestamp: _Optional[int] = ...) -> None: ...
83
+ def __init__(self, msgtype: _Optional[_Union[MsgCmdType, str]] = ..., sender: _Optional[_Union[MsgDevice, str]] = ..., rcver: _Optional[_Union[MsgDevice, str]] = ..., msgattr: _Optional[_Union[MsgAttr, str]] = ..., seqs: _Optional[int] = ..., version: _Optional[int] = ..., subtype: _Optional[int] = ..., net: _Optional[_Union[_dev_net_pb2.DevNet, _Mapping]] = ..., sys: _Optional[_Union[_mctrl_sys_pb2.MctlSys, _Mapping]] = ..., nav: _Optional[_Union[_mctrl_nav_pb2.MctlNav, _Mapping]] = ..., driver: _Optional[_Union[_mctrl_driver_pb2.MctlDriver, _Mapping]] = ..., ota: _Optional[_Union[_mctrl_ota_pb2.MctlOta, _Mapping]] = ..., mul: _Optional[_Union[_luba_mul_pb2.SocMul, _Mapping]] = ..., null: _Optional[_Union[MsgNull, _Mapping]] = ..., pept: _Optional[_Union[_mctrl_pept_pb2.MctlPept, _Mapping]] = ..., base: _Optional[_Union[_basestation_pb2.BaseStation, _Mapping]] = ..., timestamp: _Optional[int] = ...) -> None: ...
81
84
 
82
85
  class MsgNull(_message.Message):
83
86
  __slots__ = []
@@ -2,10 +2,10 @@
2
2
  # sources: pymammotion/proto/mctrl_nav.proto
3
3
  # plugin: python-betterproto
4
4
  from dataclasses import dataclass
5
- import betterproto
6
-
7
5
  from .common import *
8
6
 
7
+ import betterproto
8
+
9
9
 
10
10
  @dataclass
11
11
  class NavLatLonUp(betterproto.Message):
@@ -72,8 +72,8 @@ message SysMowInfo {
72
72
  int32 deviceState = 1;
73
73
  int32 batVal = 2;
74
74
  int32 knifeHeight = 3;
75
- int32 RTKstatus = 4;
76
- int32 RTKstars = 5;
75
+ int32 rtk_status = 4;
76
+ int32 rtk_stars = 5;
77
77
  }
78
78
 
79
79
  message SysOptiLineAck {
@@ -3,11 +3,10 @@
3
3
  # plugin: python-betterproto
4
4
  from dataclasses import dataclass
5
5
 
6
+ from .dev_net import *
6
7
 
7
8
  import betterproto
8
9
 
9
- from .dev_net import *
10
-
11
10
 
12
11
  class Operation(betterproto.Enum):
13
12
  WRITE = 0
@@ -287,8 +286,8 @@ class SystemUpdateBufMsg(betterproto.Message):
287
286
 
288
287
  @dataclass
289
288
  class SysOffChipFlash(betterproto.Message):
290
- op: Operation = betterproto.enum_field(1)
291
- id: OffPartId = betterproto.enum_field(2)
289
+ op: "Operation" = betterproto.enum_field(1)
290
+ id: "OffPartId" = betterproto.enum_field(2)
292
291
  start_addr: int = betterproto.uint32_field(3)
293
292
  offset: int = betterproto.uint32_field(4)
294
293
  length: int = betterproto.int32_field(5)
@@ -434,10 +433,10 @@ class RptDevStatus(betterproto.Message):
434
433
  last_status: int = betterproto.int32_field(5)
435
434
  sys_time_stamp: int = betterproto.int64_field(6)
436
435
  vslam_status: int = betterproto.int32_field(7)
437
- mnet_info: MnetInfo = betterproto.message_field(8)
438
- vio_survival_info: VioSurvivalInfoT = betterproto.message_field(9)
439
- collector_status: CollectorStatusT = betterproto.message_field(10)
440
- lock_state: LockStateT = betterproto.message_field(11)
436
+ mnet_info: "MnetInfo" = betterproto.message_field(8)
437
+ vio_survival_info: "VioSurvivalInfoT" = betterproto.message_field(9)
438
+ collector_status: "CollectorStatusT" = betterproto.message_field(10)
439
+ lock_state: "LockStateT" = betterproto.message_field(11)
441
440
 
442
441
 
443
442
  @dataclass
@@ -494,16 +493,16 @@ class ReportInfoCfg(betterproto.Message):
494
493
 
495
494
  @dataclass
496
495
  class ReportInfoData(betterproto.Message):
497
- connect: RptConnectStatus = betterproto.message_field(1)
498
- dev: RptDevStatus = betterproto.message_field(2)
499
- rtk: RptRtk = betterproto.message_field(3)
500
- locations: list[RptDevLocation] = betterproto.message_field(4)
501
- work: RptWork = betterproto.message_field(5)
502
- fw_info: DeviceFwInfo = betterproto.message_field(6)
503
- maintain: RptMaintain = betterproto.message_field(7)
504
- vision_point_info: list[VisionPointInfoMsg] = betterproto.message_field(8)
505
- vio_to_app_info: VioToAppInfoMsg = betterproto.message_field(9)
506
- vision_statistic_info: VisionStatisticInfoMsg = betterproto.message_field(10)
496
+ connect: "RptConnectStatus" = betterproto.message_field(1)
497
+ dev: "RptDevStatus" = betterproto.message_field(2)
498
+ rtk: "RptRtk" = betterproto.message_field(3)
499
+ locations: list["RptDevLocation"] = betterproto.message_field(4)
500
+ work: "RptWork" = betterproto.message_field(5)
501
+ fw_info: "DeviceFwInfo" = betterproto.message_field(6)
502
+ maintain: "RptMaintain" = betterproto.message_field(7)
503
+ vision_point_info: list["VisionPointInfoMsg"] = betterproto.message_field(8)
504
+ vio_to_app_info: "VioToAppInfoMsg" = betterproto.message_field(9)
505
+ vision_statistic_info: "VisionStatisticInfoMsg" = betterproto.message_field(10)
507
506
 
508
507
 
509
508
  @dataclass
@@ -566,7 +565,7 @@ class MctlSys(betterproto.Message):
566
565
  37, group="SubSysMsg"
567
566
  )
568
567
  todev_report_cfg: "ReportInfoCfg" = betterproto.message_field(38, group="SubSysMsg")
569
- toapp_report_data: ReportInfoData = betterproto.message_field(
568
+ toapp_report_data: "ReportInfoData" = betterproto.message_field(
570
569
  39, group="SubSysMsg"
571
570
  )
572
571
  simulation_cmd: "MCtrlSimulationCmdData" = betterproto.message_field(
@@ -14,25 +14,25 @@ _sym_db = _symbol_database.Default()
14
14
  from pymammotion.proto import dev_net_pb2 as pymammotion_dot_proto_dot_dev__net__pb2
15
15
 
16
16
 
17
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!pymammotion/proto/mctrl_sys.proto\x1a\x1fpymammotion/proto/dev_net.proto\"\x1a\n\x08SysBatUp\x12\x0e\n\x06\x62\x61tVal\x18\x01 \x01(\x05\"Z\n\x0cSysWorkState\x12\x13\n\x0b\x64\x65viceState\x18\x01 \x01(\x05\x12\x13\n\x0b\x63hargeState\x18\x02 \x01(\x05\x12\x0e\n\x06\x63mHash\x18\x03 \x01(\x03\x12\x10\n\x08pathHash\x18\x04 \x01(\x03\"5\n\x0eSysSetTimeZone\x12\x11\n\ttimeStamp\x18\x01 \x01(\x05\x12\x10\n\x08timeArea\x18\x02 \x01(\x05\"\x9e\x01\n\x0eSysSetDateTime\x12\x0c\n\x04Year\x18\x01 \x01(\x05\x12\r\n\x05Month\x18\x02 \x01(\x05\x12\x0c\n\x04\x44\x61te\x18\x03 \x01(\x05\x12\x0c\n\x04Week\x18\x04 \x01(\x05\x12\r\n\x05Hours\x18\x05 \x01(\x05\x12\x0f\n\x07Minutes\x18\x06 \x01(\x05\x12\x0f\n\x07Seconds\x18\x07 \x01(\x05\x12\x10\n\x08timeZone\x18\x08 \x01(\x05\x12\x10\n\x08\x64\x61ylight\x18\t \x01(\x05\"V\n\nSysJobPlan\x12\r\n\x05jobId\x18\x01 \x01(\x03\x12\x0f\n\x07jobMode\x18\x02 \x01(\x05\x12\x13\n\x0brainTactics\x18\x03 \x01(\x05\x12\x13\n\x0bknifeHeight\x18\x04 \x01(\x05\"\"\n\rSysDevErrCode\x12\x11\n\terrorCode\x18\x01 \x01(\x05\"!\n\x0cSysBoardType\x12\x11\n\tboardType\x18\x01 \x01(\x05\"5\n\x0cSysSwVersion\x12\x11\n\tboardType\x18\x01 \x01(\x05\x12\x12\n\nversionLen\x18\x02 \x01(\x05\"1\n\rSysDelJobPlan\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\t\x12\x0e\n\x06planId\x18\x02 \x01(\t\"\xec\x01\n\x0eSysJobPlanTime\x12\x0e\n\x06planId\x18\x01 \x01(\x03\x12\x16\n\x0estart_job_time\x18\x02 \x01(\x05\x12\x14\n\x0c\x65nd_job_time\x18\x03 \x01(\x05\x12\x13\n\x0btime_in_day\x18\x04 \x01(\x05\x12\x15\n\rjob_plan_mode\x18\x05 \x01(\x05\x12\x17\n\x0fjob_plan_enable\x18\x06 \x01(\x05\x12\x0f\n\x07weekDay\x18\x07 \x03(\x05\x12\x15\n\rtimeInWeekDay\x18\x08 \x03(\x05\x12\x10\n\x08\x65veryDay\x18\t \x01(\x05\x12\x1d\n\x08job_plan\x18\n \x01(\x0b\x32\x0b.SysJobPlan\"k\n\nSysMowInfo\x12\x13\n\x0b\x64\x65viceState\x18\x01 \x01(\x05\x12\x0e\n\x06\x62\x61tVal\x18\x02 \x01(\x05\x12\x13\n\x0bknifeHeight\x18\x03 \x01(\x05\x12\x11\n\tRTKstatus\x18\x04 \x01(\x05\x12\x10\n\x08RTKstars\x18\x05 \x01(\x05\";\n\x0eSysOptiLineAck\x12\x13\n\x0bresponesCmd\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x02 \x01(\x05\"5\n\nSysCommCmd\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\"H\n\x15SysUploadFileProgress\x12\r\n\x05\x62izId\x18\x01 \x01(\t\x12\x0e\n\x06result\x18\x02 \x01(\x05\x12\x10\n\x08progress\x18\x03 \x01(\x05\"\x1f\n\x0cSysErrorCode\x12\x0f\n\x07\x63ode_no\x18\x01 \x01(\x05\"\x1e\n\tSysBorder\x12\x11\n\tborderval\x18\x01 \x01(\x05\"*\n\x10SysPlanJobStatus\x12\x16\n\x0eplanjob_status\x18\x01 \x01(\x05\"=\n\x0fSysKnifeControl\x12\x14\n\x0cknife_status\x18\x01 \x01(\x05\x12\x14\n\x0cknife_height\x18\x02 \x01(\x05\"+\n\x14SysResetSystemStatus\x12\x13\n\x0breset_staus\x18\x01 \x01(\x05\"\x8a\x01\n\rTimeCtrlLight\x12\x0f\n\x07operate\x18\x01 \x01(\x05\x12\x0e\n\x06\x65nable\x18\x02 \x01(\x05\x12\x12\n\nstart_hour\x18\x03 \x01(\x05\x12\x11\n\tstart_min\x18\x04 \x01(\x05\x12\x10\n\x08\x65nd_hour\x18\x05 \x01(\x05\x12\x0f\n\x07\x65nd_min\x18\x06 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x07 \x01(\x05\"3\n\x10vision_point_msg\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02\"\\\n\x15vision_point_info_msg\x12\r\n\x05lable\x18\x01 \x01(\x05\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12\'\n\x0cvision_point\x18\x03 \x03(\x0b\x32\x11.vision_point_msg\"\x9a\x01\n\x13vio_to_app_info_msg\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x12\x0f\n\x07heading\x18\x03 \x01(\x01\x12\x11\n\tvio_state\x18\x04 \x01(\x05\x12\x12\n\nbrightness\x18\x05 \x01(\x05\x12\x1a\n\x12\x64\x65tect_feature_num\x18\x06 \x01(\x05\x12\x19\n\x11track_feature_num\x18\x07 \x01(\x05\"1\n\x14vision_statistic_msg\x12\x0c\n\x04mean\x18\x01 \x01(\x02\x12\x0b\n\x03var\x18\x02 \x01(\x02\"m\n\x19vision_statistic_info_msg\x12\x11\n\ttimestamp\x18\x01 \x01(\x01\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12\x30\n\x11vision_statistics\x18\x03 \x03(\x0b\x32\x15.vision_statistic_msg\"\xd3\x01\n\x1asystemRapidStateTunnel_msg\x12\x18\n\x10rapid_state_data\x18\x01 \x03(\x03\x12\x31\n\x11vision_point_info\x18\x02 \x03(\x0b\x32\x16.vision_point_info_msg\x12-\n\x0fvio_to_app_info\x18\x03 \x01(\x0b\x32\x14.vio_to_app_info_msg\x12\x39\n\x15vision_statistic_info\x18\x04 \x01(\x0b\x32\x1a.vision_statistic_info_msg\"4\n\x19systemTardStateTunnel_msg\x12\x17\n\x0ftard_state_data\x18\x01 \x03(\x03\".\n\x13systemUpdateBuf_msg\x12\x17\n\x0fupdate_buf_data\x18\x01 \x03(\x03\"\x9e\x01\n\x0fSysOffChipFlash\x12\x16\n\x02op\x18\x01 \x01(\x0e\x32\n.Operation\x12\x16\n\x02id\x18\x02 \x01(\x0e\x32\n.OffPartId\x12\x12\n\nstart_addr\x18\x03 \x01(\r\x12\x0e\n\x06offset\x18\x04 \x01(\r\x12\x0e\n\x06length\x18\x05 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x12\x0c\n\x04\x63ode\x18\x07 \x01(\x05\x12\x0b\n\x03msg\x18\x08 \x01(\t\"-\n\x14systemTmpCycleTx_msg\x12\x15\n\rcycle_tx_data\x18\x01 \x03(\x03\"%\n\nLoraCfgReq\x12\n\n\x02op\x18\x01 \x01(\x05\x12\x0b\n\x03\x63\x66g\x18\x02 \x01(\t\"F\n\nLoraCfgRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\n\n\x02op\x18\x02 \x01(\x05\x12\x0b\n\x03\x63\x66g\x18\x03 \x01(\t\x12\x0f\n\x07\x66\x61\x63_cfg\x18\x04 \x01(\t\">\n\x0bmod_fw_info\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x10\n\x08identify\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\"L\n\x0e\x64\x65vice_fw_info\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x19\n\x03mod\x18\x03 \x03(\x0b\x32\x0c.mod_fw_info\"@\n\x11mow_to_app_info_t\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x0b\n\x03\x63md\x18\x02 \x01(\x05\x12\x10\n\x08mow_data\x18\x03 \x03(\x05\"a\n\x1a\x64\x65vice_product_type_info_t\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x19\n\x11main_product_type\x18\x02 \x01(\t\x12\x18\n\x10sub_product_type\x18\x03 \x01(\t\"P\n\x0fQCAppTestExcept\x12\x13\n\x0b\x65xcept_type\x18\x01 \x01(\t\x12(\n\nconditions\x18\x02 \x03(\x0b\x32\x14.QCAppTestConditions\"t\n\x13QCAppTestConditions\x12\x11\n\tcond_type\x18\x01 \x01(\t\x12\x0f\n\x07int_val\x18\x02 \x01(\x05\x12\x11\n\tfloat_val\x18\x03 \x01(\x02\x12\x12\n\ndouble_val\x18\x04 \x01(\x01\x12\x12\n\nstring_val\x18\x05 \x01(\t\"\x99\x01\n\x19mow_to_app_qctools_info_t\x12\x1a\n\x04type\x18\x01 \x01(\x0e\x32\x0c.QCAppTestId\x12\x16\n\x0etimeOfDuration\x18\x02 \x01(\x05\x12\x0e\n\x06result\x18\x03 \x01(\x05\x12\x16\n\x0eresult_details\x18\x04 \x01(\t\x12 \n\x06\x65xcept\x18\x05 \x03(\x0b\x32\x10.QCAppTestExcept\"O\n\x16mCtrlSimulationCmdData\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\"\x8f\x01\n\x08rpt_lora\x12\x16\n\x0epair_code_scan\x18\x01 \x01(\x05\x12\x19\n\x11pair_code_channel\x18\x02 \x01(\x05\x12\x17\n\x0fpair_code_locid\x18\x03 \x01(\x05\x12\x17\n\x0fpair_code_netid\x18\x04 \x01(\x05\x12\x1e\n\x16lora_connection_status\x18\x05 \x01(\x05\"\xf1\x01\n\x07rpt_rtk\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tpos_level\x18\x02 \x01(\x05\x12\x11\n\tgps_stars\x18\x03 \x01(\x05\x12\x0b\n\x03\x61ge\x18\x04 \x01(\x05\x12\x0f\n\x07lat_std\x18\x05 \x01(\x05\x12\x0f\n\x07lon_std\x18\x06 \x01(\x05\x12\x10\n\x08l2_stars\x18\x07 \x01(\x05\x12\x12\n\ndis_status\x18\x08 \x01(\x03\x12\x17\n\x0ftop4_total_mean\x18\t \x01(\x03\x12\x15\n\rco_view_stars\x18\n \x01(\x05\x12\r\n\x05reset\x18\x0b \x01(\x05\x12\x1c\n\tlora_info\x18\x0c \x01(\x0b\x32\t.rpt_lora\"\x86\x01\n\x10rpt_dev_location\x12\x12\n\nreal_pos_x\x18\x01 \x01(\x05\x12\x12\n\nreal_pos_y\x18\x02 \x01(\x05\x12\x13\n\x0breal_toward\x18\x03 \x01(\x05\x12\x10\n\x08pos_type\x18\x04 \x01(\x05\x12\x11\n\tzone_hash\x18\x05 \x01(\x03\x12\x10\n\x08\x62ol_hash\x18\x06 \x01(\x03\"4\n\x13vio_survival_info_t\x12\x1d\n\x15vio_survival_distance\x18\x01 \x01(\x02\";\n\x12\x63ollector_status_t\x12%\n\x1d\x63ollector_installation_status\x18\x01 \x01(\x05\"\"\n\x0clock_state_t\x12\x12\n\nlock_state\x18\x01 \x01(\r\"\xca\x02\n\x0erpt_dev_status\x12\x12\n\nsys_status\x18\x01 \x01(\x05\x12\x14\n\x0c\x63harge_state\x18\x02 \x01(\x05\x12\x13\n\x0b\x62\x61ttery_val\x18\x03 \x01(\x05\x12\x15\n\rsensor_status\x18\x04 \x01(\x05\x12\x13\n\x0blast_status\x18\x05 \x01(\x05\x12\x16\n\x0esys_time_stamp\x18\x06 \x01(\x03\x12\x14\n\x0cvslam_status\x18\x07 \x01(\x05\x12\x1c\n\tmnet_info\x18\x08 \x01(\x0b\x32\t.MnetInfo\x12/\n\x11vio_survival_info\x18\t \x01(\x0b\x32\x14.vio_survival_info_t\x12-\n\x10\x63ollector_status\x18\n \x01(\x0b\x32\x13.collector_status_t\x12!\n\nlock_state\x18\x0b \x01(\x0b\x32\r.lock_state_t\"\xaa\x01\n\x12rpt_connect_status\x12\x14\n\x0c\x63onnect_type\x18\x01 \x01(\x05\x12\x10\n\x08\x62le_rssi\x18\x02 \x01(\x05\x12\x11\n\twifi_rssi\x18\x03 \x01(\x05\x12\x11\n\tlink_type\x18\x04 \x01(\x05\x12\x11\n\tmnet_rssi\x18\x05 \x01(\x05\x12\x11\n\tmnet_inet\x18\x06 \x01(\x05\x12 \n\x08used_net\x18\x07 \x01(\x0e\x32\x0e.net_used_type\"\xa0\x03\n\x08rpt_work\x12\x0c\n\x04plan\x18\x01 \x01(\x05\x12\x11\n\tpath_hash\x18\x02 \x01(\x03\x12\x10\n\x08progress\x18\x03 \x01(\x05\x12\x0c\n\x04\x61rea\x18\x04 \x01(\x05\x12\x0f\n\x07\x62p_info\x18\x05 \x01(\x05\x12\x0f\n\x07\x62p_hash\x18\x06 \x01(\x03\x12\x10\n\x08\x62p_pos_x\x18\x07 \x01(\x05\x12\x10\n\x08\x62p_pos_y\x18\x08 \x01(\x05\x12\x15\n\rreal_path_num\x18\t \x01(\x03\x12\x12\n\npath_pos_x\x18\n \x01(\x05\x12\x12\n\npath_pos_y\x18\x0b \x01(\x05\x12\x14\n\x0cub_zone_hash\x18\x0c \x01(\x03\x12\x14\n\x0cub_path_hash\x18\r \x01(\x03\x12\x15\n\rinit_cfg_hash\x18\x0e \x01(\x03\x12\x15\n\rub_ecode_hash\x18\x0f \x01(\x03\x12\x14\n\x0cnav_run_mode\x18\x10 \x01(\x05\x12\x18\n\x10test_mode_status\x18\x11 \x01(\x03\x12\x15\n\rman_run_speed\x18\x12 \x01(\x05\x12\x17\n\x0fnav_edit_status\x18\x13 \x01(\x05\x12\x14\n\x0cknife_height\x18\x14 \x01(\x05\"F\n\x0crpt_maintain\x12\x0f\n\x07mileage\x18\x01 \x01(\x03\x12\x11\n\twork_time\x18\x02 \x01(\x05\x12\x12\n\nbat_cycles\x18\x03 \x01(\x05\"\x8f\x01\n\x0freport_info_cfg\x12\x15\n\x03\x61\x63t\x18\x01 \x01(\x0e\x32\x08.rpt_act\x12\x0f\n\x07timeout\x18\x02 \x01(\x05\x12\x0e\n\x06period\x18\x03 \x01(\x05\x12\x18\n\x10no_change_period\x18\x04 \x01(\x05\x12\r\n\x05\x63ount\x18\x05 \x01(\x05\x12\x1b\n\x03sub\x18\x06 \x03(\x0e\x32\x0e.rpt_info_type\"\x8c\x03\n\x10report_info_data\x12$\n\x07\x63onnect\x18\x01 \x01(\x0b\x32\x13.rpt_connect_status\x12\x1c\n\x03\x64\x65v\x18\x02 \x01(\x0b\x32\x0f.rpt_dev_status\x12\x15\n\x03rtk\x18\x03 \x01(\x0b\x32\x08.rpt_rtk\x12$\n\tlocations\x18\x04 \x03(\x0b\x32\x11.rpt_dev_location\x12\x17\n\x04work\x18\x05 \x01(\x0b\x32\t.rpt_work\x12 \n\x07\x66w_info\x18\x06 \x01(\x0b\x32\x0f.device_fw_info\x12\x1f\n\x08maintain\x18\x07 \x01(\x0b\x32\r.rpt_maintain\x12\x31\n\x11vision_point_info\x18\x08 \x03(\x0b\x32\x16.vision_point_info_msg\x12-\n\x0fvio_to_app_info\x18\t \x01(\x0b\x32\x14.vio_to_app_info_msg\x12\x39\n\x15vision_statistic_info\x18\n \x01(\x0b\x32\x1a.vision_statistic_info_msg\"\x9c\x0c\n\x07MctlSys\x12\"\n\rtoapp_batinfo\x18\x01 \x01(\x0b\x32\t.SysBatUpH\x00\x12)\n\x10toapp_work_state\x18\x02 \x01(\x0b\x32\r.SysWorkStateH\x00\x12*\n\x0ftodev_time_zone\x18\x03 \x01(\x0b\x32\x0f.SysSetTimeZoneH\x00\x12*\n\x0ftodev_data_time\x18\x04 \x01(\x0b\x32\x0f.SysSetDateTimeH\x00\x12\x1f\n\x08job_plan\x18\x06 \x01(\x0b\x32\x0b.SysJobPlanH\x00\x12(\n\x0etoapp_err_code\x18\x07 \x01(\x0b\x32\x0e.SysDevErrCodeH\x00\x12.\n\x13todev_job_plan_time\x18\n \x01(\x0b\x32\x0f.SysJobPlanTimeH\x00\x12%\n\x0etoapp_mow_info\x18\x0b \x01(\x0b\x32\x0b.SysMowInfoH\x00\x12&\n\x0f\x62idire_comm_cmd\x18\x0c \x01(\x0b\x32\x0b.SysCommCmdH\x00\x12\x16\n\x0cplan_job_del\x18\x0e \x01(\x03H\x00\x12\x1c\n\x06\x62order\x18\x0f \x01(\x0b\x32\n.SysBorderH\x00\x12.\n\x11toapp_plan_status\x18\x12 \x01(\x0b\x32\x11.SysPlanJobStatusH\x00\x12\x34\n\x12toapp_ul_fprogress\x18\x13 \x01(\x0b\x32\x16.SysUploadFileProgressH\x00\x12*\n\x10todev_deljobplan\x18\x14 \x01(\x0b\x32\x0e.SysDelJobPlanH\x00\x12\x1b\n\x11todev_mow_info_up\x18\x15 \x01(\x05H\x00\x12,\n\x10todev_knife_ctrl\x18\x16 \x01(\x0b\x32\x10.SysKnifeControlH\x00\x12\x1c\n\x12todev_reset_system\x18\x17 \x01(\x05H\x00\x12:\n\x19todev_reset_system_status\x18\x18 \x01(\x0b\x32\x15.SysResetSystemStatusH\x00\x12=\n\x16systemRapidStateTunnel\x18\x19 \x01(\x0b\x32\x1b.systemRapidStateTunnel_msgH\x00\x12;\n\x15systemTardStateTunnel\x18\x1a \x01(\x0b\x32\x1a.systemTardStateTunnel_msgH\x00\x12/\n\x0fsystemUpdateBuf\x18\x1b \x01(\x0b\x32\x14.systemUpdateBuf_msgH\x00\x12/\n\x15todev_time_ctrl_light\x18\x1c \x01(\x0b\x32\x0e.TimeCtrlLightH\x00\x12\x31\n\x10systemTmpCycleTx\x18\x1d \x01(\x0b\x32\x15.systemTmpCycleTx_msgH\x00\x12\x30\n\x14todev_off_chip_flash\x18\x1e \x01(\x0b\x32\x10.SysOffChipFlashH\x00\x12\x1f\n\x15todev_get_dev_fw_info\x18\x1f \x01(\x05H\x00\x12,\n\x11toapp_dev_fw_info\x18 \x01(\x0b\x32\x0f.device_fw_infoH\x00\x12)\n\x12todev_lora_cfg_req\x18! \x01(\x0b\x32\x0b.LoraCfgReqH\x00\x12)\n\x12toapp_lora_cfg_rsp\x18\" \x01(\x0b\x32\x0b.LoraCfgRspH\x00\x12-\n\x0fmow_to_app_info\x18# \x01(\x0b\x32\x12.mow_to_app_info_tH\x00\x12?\n\x18\x64\x65vice_product_type_info\x18$ \x01(\x0b\x32\x1b.device_product_type_info_tH\x00\x12=\n\x17mow_to_app_qctools_info\x18% \x01(\x0b\x32\x1a.mow_to_app_qctools_info_tH\x00\x12,\n\x10todev_report_cfg\x18& \x01(\x0b\x32\x10.report_info_cfgH\x00\x12.\n\x11toapp_report_data\x18\' \x01(\x0b\x32\x11.report_info_dataH\x00\x12\x31\n\x0esimulation_cmd\x18* \x01(\x0b\x32\x17.mCtrlSimulationCmdDataH\x00\x42\x0b\n\tSubSysMsg*+\n\tOperation\x12\t\n\x05WRITE\x10\x00\x12\x08\n\x04READ\x10\x01\x12\t\n\x05\x45RASE\x10\x02*\x8d\x02\n\tOffPartId\x12\x13\n\x0fOFF_PART_DL_IMG\x10\x00\x12\x19\n\x15OFF_PART_UPDINFO_BACK\x10\x01\x12\x14\n\x10OFF_PART_UPDINFO\x10\x02\x12\x13\n\x0fOFF_PART_NAKEDB\x10\x03\x12\x14\n\x10OFF_PART_FLASHDB\x10\x04\x12\x18\n\x14OFF_PART_UPD_APP_IMG\x10\x05\x12\x18\n\x14OFF_PART_UPD_BMS_IMG\x10\x06\x12\x18\n\x14OFF_PART_UPD_TMP_IMG\x10\x07\x12\x15\n\x11OFF_PART_DEV_INFO\x10\x08\x12\x18\n\x14OFF_PART_NAKEDB_BACK\x10\t\x12\x10\n\x0cOFF_PART_MAX\x10\n*\x95\x07\n\x0bQCAppTestId\x12!\n\x1dQC_APP_ITEM_ON_CHARGESATSTION\x10\x00\x12\x1a\n\x16QC_APP_TEST_X3_SPEAKER\x10\x01\x12)\n%QC_APP_TEST_STATIC_OBSTACLE_DETECTION\x10\x02\x12\"\n\x1eQC_APP_TEST_CHARGESTATION_TEMP\x10\x03\x12\x13\n\x0fQC_APP_ITEM_KEY\x10\x04\x12 \n\x1cQC_APP_TEST_BUMPER_FRONTLEFT\x10\x05\x12!\n\x1dQC_APP_TEST_BUMPER_FRONTRIGHT\x10\x06\x12\x14\n\x10QC_APP_TEST_STOP\x10\x07\x12\x16\n\x12QC_APP_TEST_UNLOCK\x10\x08\x12\x14\n\x10QC_APP_TEST_BUZZ\x10\t\x12\x14\n\x10QC_APP_TEST_LIFT\x10\n\x12\x16\n\x12QC_APP_ITEM_SENEOR\x10\x0b\x12\x19\n\x15QC_APP_TEST_ROLL_LEFT\x10\x0c\x12\x1a\n\x16QC_APP_TEST_ROLL_RIGHT\x10\r\x12\x1d\n\x19QC_APP_TEST_ULTRA_UNCOVER\x10\x0e\x12\x1c\n\x18QC_APP_TEST_ULTRA0_COVER\x10\x0f\x12\x1c\n\x18QC_APP_TEST_ULTRA1_COVER\x10\x10\x12\x1c\n\x18QC_APP_TEST_ULTRA2_COVER\x10\x11\x12\x14\n\x10QC_APP_TEST_RAIN\x10\x12\x12\x12\n\x0eQC_APP_ITEM_SQ\x10\x13\x12\x18\n\x14QC_APP_TEST_BLE_RSSI\x10\x14\x12 \n\x1cQC_APP_TEST_SATELLITES_ROVER\x10\x15\x12)\n%QC_APP_TEST_SATELLITES_REF_STATION_L1\x10\x16\x12)\n%QC_APP_TEST_SATELLITES_REF_STATION_L2\x10\x17\x12&\n\"QC_APP_TEST_SATELLITES_COMMON_VIEW\x10\x18\x12\x19\n\x15QC_APP_TEST_CNO_ROVER\x10\x19\x12\x1f\n\x1bQC_APP_TEST_CNO_REF_STATION\x10\x1a\x12\'\n#QC_APP_TEST_REF_STATION_LINK_STATUS\x10\x1b\x12\x1e\n\x1aQC_APP_TEST_LOCATION_STATE\x10\x1c\x12\x13\n\x0fQC_APP_TEST_MAX\x10\x1d*W\n\rnet_used_type\x12\x16\n\x12NET_USED_TYPE_NONE\x10\x00\x12\x16\n\x12NET_USED_TYPE_WIFI\x10\x01\x12\x16\n\x12NET_USED_TYPE_MNET\x10\x02*\xbf\x01\n\rrpt_info_type\x12\x0f\n\x0bRIT_CONNECT\x10\x00\x12\x0f\n\x0bRIT_DEV_STA\x10\x01\x12\x0b\n\x07RIT_RTK\x10\x02\x12\x11\n\rRIT_DEV_LOCAL\x10\x03\x12\x0c\n\x08RIT_WORK\x10\x04\x12\x0f\n\x0bRIT_FW_INFO\x10\x05\x12\x10\n\x0cRIT_MAINTAIN\x10\x06\x12\x14\n\x10RIT_VISION_POINT\x10\x07\x12\x0b\n\x07RIT_VIO\x10\x08\x12\x18\n\x14RIT_VISION_STATISTIC\x10\t*4\n\x07rpt_act\x12\r\n\tRPT_START\x10\x00\x12\x0c\n\x08RPT_STOP\x10\x01\x12\x0c\n\x08RPT_KEEP\x10\x02\x62\x06proto3')
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!pymammotion/proto/mctrl_sys.proto\x1a\x1fpymammotion/proto/dev_net.proto\"\x1a\n\x08SysBatUp\x12\x0e\n\x06\x62\x61tVal\x18\x01 \x01(\x05\"Z\n\x0cSysWorkState\x12\x13\n\x0b\x64\x65viceState\x18\x01 \x01(\x05\x12\x13\n\x0b\x63hargeState\x18\x02 \x01(\x05\x12\x0e\n\x06\x63mHash\x18\x03 \x01(\x03\x12\x10\n\x08pathHash\x18\x04 \x01(\x03\"5\n\x0eSysSetTimeZone\x12\x11\n\ttimeStamp\x18\x01 \x01(\x05\x12\x10\n\x08timeArea\x18\x02 \x01(\x05\"\x9e\x01\n\x0eSysSetDateTime\x12\x0c\n\x04Year\x18\x01 \x01(\x05\x12\r\n\x05Month\x18\x02 \x01(\x05\x12\x0c\n\x04\x44\x61te\x18\x03 \x01(\x05\x12\x0c\n\x04Week\x18\x04 \x01(\x05\x12\r\n\x05Hours\x18\x05 \x01(\x05\x12\x0f\n\x07Minutes\x18\x06 \x01(\x05\x12\x0f\n\x07Seconds\x18\x07 \x01(\x05\x12\x10\n\x08timeZone\x18\x08 \x01(\x05\x12\x10\n\x08\x64\x61ylight\x18\t \x01(\x05\"V\n\nSysJobPlan\x12\r\n\x05jobId\x18\x01 \x01(\x03\x12\x0f\n\x07jobMode\x18\x02 \x01(\x05\x12\x13\n\x0brainTactics\x18\x03 \x01(\x05\x12\x13\n\x0bknifeHeight\x18\x04 \x01(\x05\"\"\n\rSysDevErrCode\x12\x11\n\terrorCode\x18\x01 \x01(\x05\"!\n\x0cSysBoardType\x12\x11\n\tboardType\x18\x01 \x01(\x05\"5\n\x0cSysSwVersion\x12\x11\n\tboardType\x18\x01 \x01(\x05\x12\x12\n\nversionLen\x18\x02 \x01(\x05\"1\n\rSysDelJobPlan\x12\x10\n\x08\x64\x65viceId\x18\x01 \x01(\t\x12\x0e\n\x06planId\x18\x02 \x01(\t\"\xec\x01\n\x0eSysJobPlanTime\x12\x0e\n\x06planId\x18\x01 \x01(\x03\x12\x16\n\x0estart_job_time\x18\x02 \x01(\x05\x12\x14\n\x0c\x65nd_job_time\x18\x03 \x01(\x05\x12\x13\n\x0btime_in_day\x18\x04 \x01(\x05\x12\x15\n\rjob_plan_mode\x18\x05 \x01(\x05\x12\x17\n\x0fjob_plan_enable\x18\x06 \x01(\x05\x12\x0f\n\x07weekDay\x18\x07 \x03(\x05\x12\x15\n\rtimeInWeekDay\x18\x08 \x03(\x05\x12\x10\n\x08\x65veryDay\x18\t \x01(\x05\x12\x1d\n\x08job_plan\x18\n \x01(\x0b\x32\x0b.SysJobPlan\"m\n\nSysMowInfo\x12\x13\n\x0b\x64\x65viceState\x18\x01 \x01(\x05\x12\x0e\n\x06\x62\x61tVal\x18\x02 \x01(\x05\x12\x13\n\x0bknifeHeight\x18\x03 \x01(\x05\x12\x12\n\nrtk_status\x18\x04 \x01(\x05\x12\x11\n\trtk_stars\x18\x05 \x01(\x05\";\n\x0eSysOptiLineAck\x12\x13\n\x0bresponesCmd\x18\x01 \x01(\x05\x12\x14\n\x0c\x63urrentFrame\x18\x02 \x01(\x05\"5\n\nSysCommCmd\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\"H\n\x15SysUploadFileProgress\x12\r\n\x05\x62izId\x18\x01 \x01(\t\x12\x0e\n\x06result\x18\x02 \x01(\x05\x12\x10\n\x08progress\x18\x03 \x01(\x05\"\x1f\n\x0cSysErrorCode\x12\x0f\n\x07\x63ode_no\x18\x01 \x01(\x05\"\x1e\n\tSysBorder\x12\x11\n\tborderval\x18\x01 \x01(\x05\"*\n\x10SysPlanJobStatus\x12\x16\n\x0eplanjob_status\x18\x01 \x01(\x05\"=\n\x0fSysKnifeControl\x12\x14\n\x0cknife_status\x18\x01 \x01(\x05\x12\x14\n\x0cknife_height\x18\x02 \x01(\x05\"+\n\x14SysResetSystemStatus\x12\x13\n\x0breset_staus\x18\x01 \x01(\x05\"\x8a\x01\n\rTimeCtrlLight\x12\x0f\n\x07operate\x18\x01 \x01(\x05\x12\x0e\n\x06\x65nable\x18\x02 \x01(\x05\x12\x12\n\nstart_hour\x18\x03 \x01(\x05\x12\x11\n\tstart_min\x18\x04 \x01(\x05\x12\x10\n\x08\x65nd_hour\x18\x05 \x01(\x05\x12\x0f\n\x07\x65nd_min\x18\x06 \x01(\x05\x12\x0e\n\x06\x61\x63tion\x18\x07 \x01(\x05\"3\n\x10vision_point_msg\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02\"\\\n\x15vision_point_info_msg\x12\r\n\x05lable\x18\x01 \x01(\x05\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12\'\n\x0cvision_point\x18\x03 \x03(\x0b\x32\x11.vision_point_msg\"\x9a\x01\n\x13vio_to_app_info_msg\x12\t\n\x01x\x18\x01 \x01(\x01\x12\t\n\x01y\x18\x02 \x01(\x01\x12\x0f\n\x07heading\x18\x03 \x01(\x01\x12\x11\n\tvio_state\x18\x04 \x01(\x05\x12\x12\n\nbrightness\x18\x05 \x01(\x05\x12\x1a\n\x12\x64\x65tect_feature_num\x18\x06 \x01(\x05\x12\x19\n\x11track_feature_num\x18\x07 \x01(\x05\"1\n\x14vision_statistic_msg\x12\x0c\n\x04mean\x18\x01 \x01(\x02\x12\x0b\n\x03var\x18\x02 \x01(\x02\"m\n\x19vision_statistic_info_msg\x12\x11\n\ttimestamp\x18\x01 \x01(\x01\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12\x30\n\x11vision_statistics\x18\x03 \x03(\x0b\x32\x15.vision_statistic_msg\"\xd3\x01\n\x1asystemRapidStateTunnel_msg\x12\x18\n\x10rapid_state_data\x18\x01 \x03(\x03\x12\x31\n\x11vision_point_info\x18\x02 \x03(\x0b\x32\x16.vision_point_info_msg\x12-\n\x0fvio_to_app_info\x18\x03 \x01(\x0b\x32\x14.vio_to_app_info_msg\x12\x39\n\x15vision_statistic_info\x18\x04 \x01(\x0b\x32\x1a.vision_statistic_info_msg\"4\n\x19systemTardStateTunnel_msg\x12\x17\n\x0ftard_state_data\x18\x01 \x03(\x03\".\n\x13systemUpdateBuf_msg\x12\x17\n\x0fupdate_buf_data\x18\x01 \x03(\x03\"\x9e\x01\n\x0fSysOffChipFlash\x12\x16\n\x02op\x18\x01 \x01(\x0e\x32\n.Operation\x12\x16\n\x02id\x18\x02 \x01(\x0e\x32\n.OffPartId\x12\x12\n\nstart_addr\x18\x03 \x01(\r\x12\x0e\n\x06offset\x18\x04 \x01(\r\x12\x0e\n\x06length\x18\x05 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\x0c\x12\x0c\n\x04\x63ode\x18\x07 \x01(\x05\x12\x0b\n\x03msg\x18\x08 \x01(\t\"-\n\x14systemTmpCycleTx_msg\x12\x15\n\rcycle_tx_data\x18\x01 \x03(\x03\"%\n\nLoraCfgReq\x12\n\n\x02op\x18\x01 \x01(\x05\x12\x0b\n\x03\x63\x66g\x18\x02 \x01(\t\"F\n\nLoraCfgRsp\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\n\n\x02op\x18\x02 \x01(\x05\x12\x0b\n\x03\x63\x66g\x18\x03 \x01(\t\x12\x0f\n\x07\x66\x61\x63_cfg\x18\x04 \x01(\t\">\n\x0bmod_fw_info\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x10\n\x08identify\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\"L\n\x0e\x64\x65vice_fw_info\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x19\n\x03mod\x18\x03 \x03(\x0b\x32\x0c.mod_fw_info\"@\n\x11mow_to_app_info_t\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x0b\n\x03\x63md\x18\x02 \x01(\x05\x12\x10\n\x08mow_data\x18\x03 \x03(\x05\"a\n\x1a\x64\x65vice_product_type_info_t\x12\x0e\n\x06result\x18\x01 \x01(\x05\x12\x19\n\x11main_product_type\x18\x02 \x01(\t\x12\x18\n\x10sub_product_type\x18\x03 \x01(\t\"P\n\x0fQCAppTestExcept\x12\x13\n\x0b\x65xcept_type\x18\x01 \x01(\t\x12(\n\nconditions\x18\x02 \x03(\x0b\x32\x14.QCAppTestConditions\"t\n\x13QCAppTestConditions\x12\x11\n\tcond_type\x18\x01 \x01(\t\x12\x0f\n\x07int_val\x18\x02 \x01(\x05\x12\x11\n\tfloat_val\x18\x03 \x01(\x02\x12\x12\n\ndouble_val\x18\x04 \x01(\x01\x12\x12\n\nstring_val\x18\x05 \x01(\t\"\x99\x01\n\x19mow_to_app_qctools_info_t\x12\x1a\n\x04type\x18\x01 \x01(\x0e\x32\x0c.QCAppTestId\x12\x16\n\x0etimeOfDuration\x18\x02 \x01(\x05\x12\x0e\n\x06result\x18\x03 \x01(\x05\x12\x16\n\x0eresult_details\x18\x04 \x01(\t\x12 \n\x06\x65xcept\x18\x05 \x03(\x0b\x32\x10.QCAppTestExcept\"O\n\x16mCtrlSimulationCmdData\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\"\x8f\x01\n\x08rpt_lora\x12\x16\n\x0epair_code_scan\x18\x01 \x01(\x05\x12\x19\n\x11pair_code_channel\x18\x02 \x01(\x05\x12\x17\n\x0fpair_code_locid\x18\x03 \x01(\x05\x12\x17\n\x0fpair_code_netid\x18\x04 \x01(\x05\x12\x1e\n\x16lora_connection_status\x18\x05 \x01(\x05\"\xf1\x01\n\x07rpt_rtk\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x11\n\tpos_level\x18\x02 \x01(\x05\x12\x11\n\tgps_stars\x18\x03 \x01(\x05\x12\x0b\n\x03\x61ge\x18\x04 \x01(\x05\x12\x0f\n\x07lat_std\x18\x05 \x01(\x05\x12\x0f\n\x07lon_std\x18\x06 \x01(\x05\x12\x10\n\x08l2_stars\x18\x07 \x01(\x05\x12\x12\n\ndis_status\x18\x08 \x01(\x03\x12\x17\n\x0ftop4_total_mean\x18\t \x01(\x03\x12\x15\n\rco_view_stars\x18\n \x01(\x05\x12\r\n\x05reset\x18\x0b \x01(\x05\x12\x1c\n\tlora_info\x18\x0c \x01(\x0b\x32\t.rpt_lora\"\x86\x01\n\x10rpt_dev_location\x12\x12\n\nreal_pos_x\x18\x01 \x01(\x05\x12\x12\n\nreal_pos_y\x18\x02 \x01(\x05\x12\x13\n\x0breal_toward\x18\x03 \x01(\x05\x12\x10\n\x08pos_type\x18\x04 \x01(\x05\x12\x11\n\tzone_hash\x18\x05 \x01(\x03\x12\x10\n\x08\x62ol_hash\x18\x06 \x01(\x03\"4\n\x13vio_survival_info_t\x12\x1d\n\x15vio_survival_distance\x18\x01 \x01(\x02\";\n\x12\x63ollector_status_t\x12%\n\x1d\x63ollector_installation_status\x18\x01 \x01(\x05\"\"\n\x0clock_state_t\x12\x12\n\nlock_state\x18\x01 \x01(\r\"\xca\x02\n\x0erpt_dev_status\x12\x12\n\nsys_status\x18\x01 \x01(\x05\x12\x14\n\x0c\x63harge_state\x18\x02 \x01(\x05\x12\x13\n\x0b\x62\x61ttery_val\x18\x03 \x01(\x05\x12\x15\n\rsensor_status\x18\x04 \x01(\x05\x12\x13\n\x0blast_status\x18\x05 \x01(\x05\x12\x16\n\x0esys_time_stamp\x18\x06 \x01(\x03\x12\x14\n\x0cvslam_status\x18\x07 \x01(\x05\x12\x1c\n\tmnet_info\x18\x08 \x01(\x0b\x32\t.MnetInfo\x12/\n\x11vio_survival_info\x18\t \x01(\x0b\x32\x14.vio_survival_info_t\x12-\n\x10\x63ollector_status\x18\n \x01(\x0b\x32\x13.collector_status_t\x12!\n\nlock_state\x18\x0b \x01(\x0b\x32\r.lock_state_t\"\xaa\x01\n\x12rpt_connect_status\x12\x14\n\x0c\x63onnect_type\x18\x01 \x01(\x05\x12\x10\n\x08\x62le_rssi\x18\x02 \x01(\x05\x12\x11\n\twifi_rssi\x18\x03 \x01(\x05\x12\x11\n\tlink_type\x18\x04 \x01(\x05\x12\x11\n\tmnet_rssi\x18\x05 \x01(\x05\x12\x11\n\tmnet_inet\x18\x06 \x01(\x05\x12 \n\x08used_net\x18\x07 \x01(\x0e\x32\x0e.net_used_type\"\xa0\x03\n\x08rpt_work\x12\x0c\n\x04plan\x18\x01 \x01(\x05\x12\x11\n\tpath_hash\x18\x02 \x01(\x03\x12\x10\n\x08progress\x18\x03 \x01(\x05\x12\x0c\n\x04\x61rea\x18\x04 \x01(\x05\x12\x0f\n\x07\x62p_info\x18\x05 \x01(\x05\x12\x0f\n\x07\x62p_hash\x18\x06 \x01(\x03\x12\x10\n\x08\x62p_pos_x\x18\x07 \x01(\x05\x12\x10\n\x08\x62p_pos_y\x18\x08 \x01(\x05\x12\x15\n\rreal_path_num\x18\t \x01(\x03\x12\x12\n\npath_pos_x\x18\n \x01(\x05\x12\x12\n\npath_pos_y\x18\x0b \x01(\x05\x12\x14\n\x0cub_zone_hash\x18\x0c \x01(\x03\x12\x14\n\x0cub_path_hash\x18\r \x01(\x03\x12\x15\n\rinit_cfg_hash\x18\x0e \x01(\x03\x12\x15\n\rub_ecode_hash\x18\x0f \x01(\x03\x12\x14\n\x0cnav_run_mode\x18\x10 \x01(\x05\x12\x18\n\x10test_mode_status\x18\x11 \x01(\x03\x12\x15\n\rman_run_speed\x18\x12 \x01(\x05\x12\x17\n\x0fnav_edit_status\x18\x13 \x01(\x05\x12\x14\n\x0cknife_height\x18\x14 \x01(\x05\"F\n\x0crpt_maintain\x12\x0f\n\x07mileage\x18\x01 \x01(\x03\x12\x11\n\twork_time\x18\x02 \x01(\x05\x12\x12\n\nbat_cycles\x18\x03 \x01(\x05\"\x8f\x01\n\x0freport_info_cfg\x12\x15\n\x03\x61\x63t\x18\x01 \x01(\x0e\x32\x08.rpt_act\x12\x0f\n\x07timeout\x18\x02 \x01(\x05\x12\x0e\n\x06period\x18\x03 \x01(\x05\x12\x18\n\x10no_change_period\x18\x04 \x01(\x05\x12\r\n\x05\x63ount\x18\x05 \x01(\x05\x12\x1b\n\x03sub\x18\x06 \x03(\x0e\x32\x0e.rpt_info_type\"\x8c\x03\n\x10report_info_data\x12$\n\x07\x63onnect\x18\x01 \x01(\x0b\x32\x13.rpt_connect_status\x12\x1c\n\x03\x64\x65v\x18\x02 \x01(\x0b\x32\x0f.rpt_dev_status\x12\x15\n\x03rtk\x18\x03 \x01(\x0b\x32\x08.rpt_rtk\x12$\n\tlocations\x18\x04 \x03(\x0b\x32\x11.rpt_dev_location\x12\x17\n\x04work\x18\x05 \x01(\x0b\x32\t.rpt_work\x12 \n\x07\x66w_info\x18\x06 \x01(\x0b\x32\x0f.device_fw_info\x12\x1f\n\x08maintain\x18\x07 \x01(\x0b\x32\r.rpt_maintain\x12\x31\n\x11vision_point_info\x18\x08 \x03(\x0b\x32\x16.vision_point_info_msg\x12-\n\x0fvio_to_app_info\x18\t \x01(\x0b\x32\x14.vio_to_app_info_msg\x12\x39\n\x15vision_statistic_info\x18\n \x01(\x0b\x32\x1a.vision_statistic_info_msg\"\x9c\x0c\n\x07MctlSys\x12\"\n\rtoapp_batinfo\x18\x01 \x01(\x0b\x32\t.SysBatUpH\x00\x12)\n\x10toapp_work_state\x18\x02 \x01(\x0b\x32\r.SysWorkStateH\x00\x12*\n\x0ftodev_time_zone\x18\x03 \x01(\x0b\x32\x0f.SysSetTimeZoneH\x00\x12*\n\x0ftodev_data_time\x18\x04 \x01(\x0b\x32\x0f.SysSetDateTimeH\x00\x12\x1f\n\x08job_plan\x18\x06 \x01(\x0b\x32\x0b.SysJobPlanH\x00\x12(\n\x0etoapp_err_code\x18\x07 \x01(\x0b\x32\x0e.SysDevErrCodeH\x00\x12.\n\x13todev_job_plan_time\x18\n \x01(\x0b\x32\x0f.SysJobPlanTimeH\x00\x12%\n\x0etoapp_mow_info\x18\x0b \x01(\x0b\x32\x0b.SysMowInfoH\x00\x12&\n\x0f\x62idire_comm_cmd\x18\x0c \x01(\x0b\x32\x0b.SysCommCmdH\x00\x12\x16\n\x0cplan_job_del\x18\x0e \x01(\x03H\x00\x12\x1c\n\x06\x62order\x18\x0f \x01(\x0b\x32\n.SysBorderH\x00\x12.\n\x11toapp_plan_status\x18\x12 \x01(\x0b\x32\x11.SysPlanJobStatusH\x00\x12\x34\n\x12toapp_ul_fprogress\x18\x13 \x01(\x0b\x32\x16.SysUploadFileProgressH\x00\x12*\n\x10todev_deljobplan\x18\x14 \x01(\x0b\x32\x0e.SysDelJobPlanH\x00\x12\x1b\n\x11todev_mow_info_up\x18\x15 \x01(\x05H\x00\x12,\n\x10todev_knife_ctrl\x18\x16 \x01(\x0b\x32\x10.SysKnifeControlH\x00\x12\x1c\n\x12todev_reset_system\x18\x17 \x01(\x05H\x00\x12:\n\x19todev_reset_system_status\x18\x18 \x01(\x0b\x32\x15.SysResetSystemStatusH\x00\x12=\n\x16systemRapidStateTunnel\x18\x19 \x01(\x0b\x32\x1b.systemRapidStateTunnel_msgH\x00\x12;\n\x15systemTardStateTunnel\x18\x1a \x01(\x0b\x32\x1a.systemTardStateTunnel_msgH\x00\x12/\n\x0fsystemUpdateBuf\x18\x1b \x01(\x0b\x32\x14.systemUpdateBuf_msgH\x00\x12/\n\x15todev_time_ctrl_light\x18\x1c \x01(\x0b\x32\x0e.TimeCtrlLightH\x00\x12\x31\n\x10systemTmpCycleTx\x18\x1d \x01(\x0b\x32\x15.systemTmpCycleTx_msgH\x00\x12\x30\n\x14todev_off_chip_flash\x18\x1e \x01(\x0b\x32\x10.SysOffChipFlashH\x00\x12\x1f\n\x15todev_get_dev_fw_info\x18\x1f \x01(\x05H\x00\x12,\n\x11toapp_dev_fw_info\x18 \x01(\x0b\x32\x0f.device_fw_infoH\x00\x12)\n\x12todev_lora_cfg_req\x18! \x01(\x0b\x32\x0b.LoraCfgReqH\x00\x12)\n\x12toapp_lora_cfg_rsp\x18\" \x01(\x0b\x32\x0b.LoraCfgRspH\x00\x12-\n\x0fmow_to_app_info\x18# \x01(\x0b\x32\x12.mow_to_app_info_tH\x00\x12?\n\x18\x64\x65vice_product_type_info\x18$ \x01(\x0b\x32\x1b.device_product_type_info_tH\x00\x12=\n\x17mow_to_app_qctools_info\x18% \x01(\x0b\x32\x1a.mow_to_app_qctools_info_tH\x00\x12,\n\x10todev_report_cfg\x18& \x01(\x0b\x32\x10.report_info_cfgH\x00\x12.\n\x11toapp_report_data\x18\' \x01(\x0b\x32\x11.report_info_dataH\x00\x12\x31\n\x0esimulation_cmd\x18* \x01(\x0b\x32\x17.mCtrlSimulationCmdDataH\x00\x42\x0b\n\tSubSysMsg*+\n\tOperation\x12\t\n\x05WRITE\x10\x00\x12\x08\n\x04READ\x10\x01\x12\t\n\x05\x45RASE\x10\x02*\x8d\x02\n\tOffPartId\x12\x13\n\x0fOFF_PART_DL_IMG\x10\x00\x12\x19\n\x15OFF_PART_UPDINFO_BACK\x10\x01\x12\x14\n\x10OFF_PART_UPDINFO\x10\x02\x12\x13\n\x0fOFF_PART_NAKEDB\x10\x03\x12\x14\n\x10OFF_PART_FLASHDB\x10\x04\x12\x18\n\x14OFF_PART_UPD_APP_IMG\x10\x05\x12\x18\n\x14OFF_PART_UPD_BMS_IMG\x10\x06\x12\x18\n\x14OFF_PART_UPD_TMP_IMG\x10\x07\x12\x15\n\x11OFF_PART_DEV_INFO\x10\x08\x12\x18\n\x14OFF_PART_NAKEDB_BACK\x10\t\x12\x10\n\x0cOFF_PART_MAX\x10\n*\x95\x07\n\x0bQCAppTestId\x12!\n\x1dQC_APP_ITEM_ON_CHARGESATSTION\x10\x00\x12\x1a\n\x16QC_APP_TEST_X3_SPEAKER\x10\x01\x12)\n%QC_APP_TEST_STATIC_OBSTACLE_DETECTION\x10\x02\x12\"\n\x1eQC_APP_TEST_CHARGESTATION_TEMP\x10\x03\x12\x13\n\x0fQC_APP_ITEM_KEY\x10\x04\x12 \n\x1cQC_APP_TEST_BUMPER_FRONTLEFT\x10\x05\x12!\n\x1dQC_APP_TEST_BUMPER_FRONTRIGHT\x10\x06\x12\x14\n\x10QC_APP_TEST_STOP\x10\x07\x12\x16\n\x12QC_APP_TEST_UNLOCK\x10\x08\x12\x14\n\x10QC_APP_TEST_BUZZ\x10\t\x12\x14\n\x10QC_APP_TEST_LIFT\x10\n\x12\x16\n\x12QC_APP_ITEM_SENEOR\x10\x0b\x12\x19\n\x15QC_APP_TEST_ROLL_LEFT\x10\x0c\x12\x1a\n\x16QC_APP_TEST_ROLL_RIGHT\x10\r\x12\x1d\n\x19QC_APP_TEST_ULTRA_UNCOVER\x10\x0e\x12\x1c\n\x18QC_APP_TEST_ULTRA0_COVER\x10\x0f\x12\x1c\n\x18QC_APP_TEST_ULTRA1_COVER\x10\x10\x12\x1c\n\x18QC_APP_TEST_ULTRA2_COVER\x10\x11\x12\x14\n\x10QC_APP_TEST_RAIN\x10\x12\x12\x12\n\x0eQC_APP_ITEM_SQ\x10\x13\x12\x18\n\x14QC_APP_TEST_BLE_RSSI\x10\x14\x12 \n\x1cQC_APP_TEST_SATELLITES_ROVER\x10\x15\x12)\n%QC_APP_TEST_SATELLITES_REF_STATION_L1\x10\x16\x12)\n%QC_APP_TEST_SATELLITES_REF_STATION_L2\x10\x17\x12&\n\"QC_APP_TEST_SATELLITES_COMMON_VIEW\x10\x18\x12\x19\n\x15QC_APP_TEST_CNO_ROVER\x10\x19\x12\x1f\n\x1bQC_APP_TEST_CNO_REF_STATION\x10\x1a\x12\'\n#QC_APP_TEST_REF_STATION_LINK_STATUS\x10\x1b\x12\x1e\n\x1aQC_APP_TEST_LOCATION_STATE\x10\x1c\x12\x13\n\x0fQC_APP_TEST_MAX\x10\x1d*W\n\rnet_used_type\x12\x16\n\x12NET_USED_TYPE_NONE\x10\x00\x12\x16\n\x12NET_USED_TYPE_WIFI\x10\x01\x12\x16\n\x12NET_USED_TYPE_MNET\x10\x02*\xbf\x01\n\rrpt_info_type\x12\x0f\n\x0bRIT_CONNECT\x10\x00\x12\x0f\n\x0bRIT_DEV_STA\x10\x01\x12\x0b\n\x07RIT_RTK\x10\x02\x12\x11\n\rRIT_DEV_LOCAL\x10\x03\x12\x0c\n\x08RIT_WORK\x10\x04\x12\x0f\n\x0bRIT_FW_INFO\x10\x05\x12\x10\n\x0cRIT_MAINTAIN\x10\x06\x12\x14\n\x10RIT_VISION_POINT\x10\x07\x12\x0b\n\x07RIT_VIO\x10\x08\x12\x18\n\x14RIT_VISION_STATISTIC\x10\t*4\n\x07rpt_act\x12\r\n\tRPT_START\x10\x00\x12\x0c\n\x08RPT_STOP\x10\x01\x12\x0c\n\x08RPT_KEEP\x10\x02\x62\x06proto3')
18
18
 
19
19
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
20
20
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'pymammotion.proto.mctrl_sys_pb2', globals())
21
21
  if _descriptor._USE_C_DESCRIPTORS == False:
22
22
 
23
23
  DESCRIPTOR._options = None
24
- _OPERATION._serialized_start=7199
25
- _OPERATION._serialized_end=7242
26
- _OFFPARTID._serialized_start=7245
27
- _OFFPARTID._serialized_end=7514
28
- _QCAPPTESTID._serialized_start=7517
29
- _QCAPPTESTID._serialized_end=8434
30
- _NET_USED_TYPE._serialized_start=8436
31
- _NET_USED_TYPE._serialized_end=8523
32
- _RPT_INFO_TYPE._serialized_start=8526
33
- _RPT_INFO_TYPE._serialized_end=8717
34
- _RPT_ACT._serialized_start=8719
35
- _RPT_ACT._serialized_end=8771
24
+ _OPERATION._serialized_start=7201
25
+ _OPERATION._serialized_end=7244
26
+ _OFFPARTID._serialized_start=7247
27
+ _OFFPARTID._serialized_end=7516
28
+ _QCAPPTESTID._serialized_start=7519
29
+ _QCAPPTESTID._serialized_end=8436
30
+ _NET_USED_TYPE._serialized_start=8438
31
+ _NET_USED_TYPE._serialized_end=8525
32
+ _RPT_INFO_TYPE._serialized_start=8528
33
+ _RPT_INFO_TYPE._serialized_end=8719
34
+ _RPT_ACT._serialized_start=8721
35
+ _RPT_ACT._serialized_end=8773
36
36
  _SYSBATUP._serialized_start=70
37
37
  _SYSBATUP._serialized_end=96
38
38
  _SYSWORKSTATE._serialized_start=98
@@ -54,89 +54,89 @@ if _descriptor._USE_C_DESCRIPTORS == False:
54
54
  _SYSJOBPLANTIME._serialized_start=672
55
55
  _SYSJOBPLANTIME._serialized_end=908
56
56
  _SYSMOWINFO._serialized_start=910
57
- _SYSMOWINFO._serialized_end=1017
58
- _SYSOPTILINEACK._serialized_start=1019
59
- _SYSOPTILINEACK._serialized_end=1078
60
- _SYSCOMMCMD._serialized_start=1080
61
- _SYSCOMMCMD._serialized_end=1133
62
- _SYSUPLOADFILEPROGRESS._serialized_start=1135
63
- _SYSUPLOADFILEPROGRESS._serialized_end=1207
64
- _SYSERRORCODE._serialized_start=1209
65
- _SYSERRORCODE._serialized_end=1240
66
- _SYSBORDER._serialized_start=1242
67
- _SYSBORDER._serialized_end=1272
68
- _SYSPLANJOBSTATUS._serialized_start=1274
69
- _SYSPLANJOBSTATUS._serialized_end=1316
70
- _SYSKNIFECONTROL._serialized_start=1318
71
- _SYSKNIFECONTROL._serialized_end=1379
72
- _SYSRESETSYSTEMSTATUS._serialized_start=1381
73
- _SYSRESETSYSTEMSTATUS._serialized_end=1424
74
- _TIMECTRLLIGHT._serialized_start=1427
75
- _TIMECTRLLIGHT._serialized_end=1565
76
- _VISION_POINT_MSG._serialized_start=1567
77
- _VISION_POINT_MSG._serialized_end=1618
78
- _VISION_POINT_INFO_MSG._serialized_start=1620
79
- _VISION_POINT_INFO_MSG._serialized_end=1712
80
- _VIO_TO_APP_INFO_MSG._serialized_start=1715
81
- _VIO_TO_APP_INFO_MSG._serialized_end=1869
82
- _VISION_STATISTIC_MSG._serialized_start=1871
83
- _VISION_STATISTIC_MSG._serialized_end=1920
84
- _VISION_STATISTIC_INFO_MSG._serialized_start=1922
85
- _VISION_STATISTIC_INFO_MSG._serialized_end=2031
86
- _SYSTEMRAPIDSTATETUNNEL_MSG._serialized_start=2034
87
- _SYSTEMRAPIDSTATETUNNEL_MSG._serialized_end=2245
88
- _SYSTEMTARDSTATETUNNEL_MSG._serialized_start=2247
89
- _SYSTEMTARDSTATETUNNEL_MSG._serialized_end=2299
90
- _SYSTEMUPDATEBUF_MSG._serialized_start=2301
91
- _SYSTEMUPDATEBUF_MSG._serialized_end=2347
92
- _SYSOFFCHIPFLASH._serialized_start=2350
93
- _SYSOFFCHIPFLASH._serialized_end=2508
94
- _SYSTEMTMPCYCLETX_MSG._serialized_start=2510
95
- _SYSTEMTMPCYCLETX_MSG._serialized_end=2555
96
- _LORACFGREQ._serialized_start=2557
97
- _LORACFGREQ._serialized_end=2594
98
- _LORACFGRSP._serialized_start=2596
99
- _LORACFGRSP._serialized_end=2666
100
- _MOD_FW_INFO._serialized_start=2668
101
- _MOD_FW_INFO._serialized_end=2730
102
- _DEVICE_FW_INFO._serialized_start=2732
103
- _DEVICE_FW_INFO._serialized_end=2808
104
- _MOW_TO_APP_INFO_T._serialized_start=2810
105
- _MOW_TO_APP_INFO_T._serialized_end=2874
106
- _DEVICE_PRODUCT_TYPE_INFO_T._serialized_start=2876
107
- _DEVICE_PRODUCT_TYPE_INFO_T._serialized_end=2973
108
- _QCAPPTESTEXCEPT._serialized_start=2975
109
- _QCAPPTESTEXCEPT._serialized_end=3055
110
- _QCAPPTESTCONDITIONS._serialized_start=3057
111
- _QCAPPTESTCONDITIONS._serialized_end=3173
112
- _MOW_TO_APP_QCTOOLS_INFO_T._serialized_start=3176
113
- _MOW_TO_APP_QCTOOLS_INFO_T._serialized_end=3329
114
- _MCTRLSIMULATIONCMDDATA._serialized_start=3331
115
- _MCTRLSIMULATIONCMDDATA._serialized_end=3410
116
- _RPT_LORA._serialized_start=3413
117
- _RPT_LORA._serialized_end=3556
118
- _RPT_RTK._serialized_start=3559
119
- _RPT_RTK._serialized_end=3800
120
- _RPT_DEV_LOCATION._serialized_start=3803
121
- _RPT_DEV_LOCATION._serialized_end=3937
122
- _VIO_SURVIVAL_INFO_T._serialized_start=3939
123
- _VIO_SURVIVAL_INFO_T._serialized_end=3991
124
- _COLLECTOR_STATUS_T._serialized_start=3993
125
- _COLLECTOR_STATUS_T._serialized_end=4052
126
- _LOCK_STATE_T._serialized_start=4054
127
- _LOCK_STATE_T._serialized_end=4088
128
- _RPT_DEV_STATUS._serialized_start=4091
129
- _RPT_DEV_STATUS._serialized_end=4421
130
- _RPT_CONNECT_STATUS._serialized_start=4424
131
- _RPT_CONNECT_STATUS._serialized_end=4594
132
- _RPT_WORK._serialized_start=4597
133
- _RPT_WORK._serialized_end=5013
134
- _RPT_MAINTAIN._serialized_start=5015
135
- _RPT_MAINTAIN._serialized_end=5085
136
- _REPORT_INFO_CFG._serialized_start=5088
137
- _REPORT_INFO_CFG._serialized_end=5231
138
- _REPORT_INFO_DATA._serialized_start=5234
139
- _REPORT_INFO_DATA._serialized_end=5630
140
- _MCTLSYS._serialized_start=5633
141
- _MCTLSYS._serialized_end=7197
57
+ _SYSMOWINFO._serialized_end=1019
58
+ _SYSOPTILINEACK._serialized_start=1021
59
+ _SYSOPTILINEACK._serialized_end=1080
60
+ _SYSCOMMCMD._serialized_start=1082
61
+ _SYSCOMMCMD._serialized_end=1135
62
+ _SYSUPLOADFILEPROGRESS._serialized_start=1137
63
+ _SYSUPLOADFILEPROGRESS._serialized_end=1209
64
+ _SYSERRORCODE._serialized_start=1211
65
+ _SYSERRORCODE._serialized_end=1242
66
+ _SYSBORDER._serialized_start=1244
67
+ _SYSBORDER._serialized_end=1274
68
+ _SYSPLANJOBSTATUS._serialized_start=1276
69
+ _SYSPLANJOBSTATUS._serialized_end=1318
70
+ _SYSKNIFECONTROL._serialized_start=1320
71
+ _SYSKNIFECONTROL._serialized_end=1381
72
+ _SYSRESETSYSTEMSTATUS._serialized_start=1383
73
+ _SYSRESETSYSTEMSTATUS._serialized_end=1426
74
+ _TIMECTRLLIGHT._serialized_start=1429
75
+ _TIMECTRLLIGHT._serialized_end=1567
76
+ _VISION_POINT_MSG._serialized_start=1569
77
+ _VISION_POINT_MSG._serialized_end=1620
78
+ _VISION_POINT_INFO_MSG._serialized_start=1622
79
+ _VISION_POINT_INFO_MSG._serialized_end=1714
80
+ _VIO_TO_APP_INFO_MSG._serialized_start=1717
81
+ _VIO_TO_APP_INFO_MSG._serialized_end=1871
82
+ _VISION_STATISTIC_MSG._serialized_start=1873
83
+ _VISION_STATISTIC_MSG._serialized_end=1922
84
+ _VISION_STATISTIC_INFO_MSG._serialized_start=1924
85
+ _VISION_STATISTIC_INFO_MSG._serialized_end=2033
86
+ _SYSTEMRAPIDSTATETUNNEL_MSG._serialized_start=2036
87
+ _SYSTEMRAPIDSTATETUNNEL_MSG._serialized_end=2247
88
+ _SYSTEMTARDSTATETUNNEL_MSG._serialized_start=2249
89
+ _SYSTEMTARDSTATETUNNEL_MSG._serialized_end=2301
90
+ _SYSTEMUPDATEBUF_MSG._serialized_start=2303
91
+ _SYSTEMUPDATEBUF_MSG._serialized_end=2349
92
+ _SYSOFFCHIPFLASH._serialized_start=2352
93
+ _SYSOFFCHIPFLASH._serialized_end=2510
94
+ _SYSTEMTMPCYCLETX_MSG._serialized_start=2512
95
+ _SYSTEMTMPCYCLETX_MSG._serialized_end=2557
96
+ _LORACFGREQ._serialized_start=2559
97
+ _LORACFGREQ._serialized_end=2596
98
+ _LORACFGRSP._serialized_start=2598
99
+ _LORACFGRSP._serialized_end=2668
100
+ _MOD_FW_INFO._serialized_start=2670
101
+ _MOD_FW_INFO._serialized_end=2732
102
+ _DEVICE_FW_INFO._serialized_start=2734
103
+ _DEVICE_FW_INFO._serialized_end=2810
104
+ _MOW_TO_APP_INFO_T._serialized_start=2812
105
+ _MOW_TO_APP_INFO_T._serialized_end=2876
106
+ _DEVICE_PRODUCT_TYPE_INFO_T._serialized_start=2878
107
+ _DEVICE_PRODUCT_TYPE_INFO_T._serialized_end=2975
108
+ _QCAPPTESTEXCEPT._serialized_start=2977
109
+ _QCAPPTESTEXCEPT._serialized_end=3057
110
+ _QCAPPTESTCONDITIONS._serialized_start=3059
111
+ _QCAPPTESTCONDITIONS._serialized_end=3175
112
+ _MOW_TO_APP_QCTOOLS_INFO_T._serialized_start=3178
113
+ _MOW_TO_APP_QCTOOLS_INFO_T._serialized_end=3331
114
+ _MCTRLSIMULATIONCMDDATA._serialized_start=3333
115
+ _MCTRLSIMULATIONCMDDATA._serialized_end=3412
116
+ _RPT_LORA._serialized_start=3415
117
+ _RPT_LORA._serialized_end=3558
118
+ _RPT_RTK._serialized_start=3561
119
+ _RPT_RTK._serialized_end=3802
120
+ _RPT_DEV_LOCATION._serialized_start=3805
121
+ _RPT_DEV_LOCATION._serialized_end=3939
122
+ _VIO_SURVIVAL_INFO_T._serialized_start=3941
123
+ _VIO_SURVIVAL_INFO_T._serialized_end=3993
124
+ _COLLECTOR_STATUS_T._serialized_start=3995
125
+ _COLLECTOR_STATUS_T._serialized_end=4054
126
+ _LOCK_STATE_T._serialized_start=4056
127
+ _LOCK_STATE_T._serialized_end=4090
128
+ _RPT_DEV_STATUS._serialized_start=4093
129
+ _RPT_DEV_STATUS._serialized_end=4423
130
+ _RPT_CONNECT_STATUS._serialized_start=4426
131
+ _RPT_CONNECT_STATUS._serialized_end=4596
132
+ _RPT_WORK._serialized_start=4599
133
+ _RPT_WORK._serialized_end=5015
134
+ _RPT_MAINTAIN._serialized_start=5017
135
+ _RPT_MAINTAIN._serialized_end=5087
136
+ _REPORT_INFO_CFG._serialized_start=5090
137
+ _REPORT_INFO_CFG._serialized_end=5233
138
+ _REPORT_INFO_DATA._serialized_start=5236
139
+ _REPORT_INFO_DATA._serialized_end=5632
140
+ _MCTLSYS._serialized_start=5635
141
+ _MCTLSYS._serialized_end=7199
142
142
  # @@protoc_insertion_point(module_scope)
@@ -274,18 +274,18 @@ class SysKnifeControl(_message.Message):
274
274
  def __init__(self, knife_status: _Optional[int] = ..., knife_height: _Optional[int] = ...) -> None: ...
275
275
 
276
276
  class SysMowInfo(_message.Message):
277
- __slots__ = ["RTKstars", "RTKstatus", "batVal", "deviceState", "knifeHeight"]
277
+ __slots__ = ["batVal", "deviceState", "knifeHeight", "rtk_stars", "rtk_status"]
278
278
  BATVAL_FIELD_NUMBER: _ClassVar[int]
279
279
  DEVICESTATE_FIELD_NUMBER: _ClassVar[int]
280
280
  KNIFEHEIGHT_FIELD_NUMBER: _ClassVar[int]
281
- RTKSTARS_FIELD_NUMBER: _ClassVar[int]
282
- RTKSTATUS_FIELD_NUMBER: _ClassVar[int]
283
- RTKstars: int
284
- RTKstatus: int
281
+ RTK_STARS_FIELD_NUMBER: _ClassVar[int]
282
+ RTK_STATUS_FIELD_NUMBER: _ClassVar[int]
285
283
  batVal: int
286
284
  deviceState: int
287
285
  knifeHeight: int
288
- def __init__(self, deviceState: _Optional[int] = ..., batVal: _Optional[int] = ..., knifeHeight: _Optional[int] = ..., RTKstatus: _Optional[int] = ..., RTKstars: _Optional[int] = ...) -> None: ...
286
+ rtk_stars: int
287
+ rtk_status: int
288
+ def __init__(self, deviceState: _Optional[int] = ..., batVal: _Optional[int] = ..., knifeHeight: _Optional[int] = ..., rtk_status: _Optional[int] = ..., rtk_stars: _Optional[int] = ...) -> None: ...
289
289
 
290
290
  class SysOffChipFlash(_message.Message):
291
291
  __slots__ = ["code", "data", "id", "length", "msg", "offset", "op", "start_addr"]
@@ -0,0 +1,70 @@
1
+ import math
2
+ import numpy as np
3
+
4
+ from pymammotion.data.model.location import Point
5
+
6
+
7
+ class CoordinateConverter:
8
+ def __init__(self, lat_degrees: float, lon_degrees: float):
9
+ # Initialize constants
10
+ self.WGS84A = 6378137.0
11
+ self.f_ = 3.3528106647474805E-21
12
+ self.b_ = (1.0 - self.f_) * self.WGS84A
13
+ self.e2_ = (2.0 - self.f_) * self.f_
14
+ self.e2m_ = (1.0 - self.f_) * (1.0 - self.f_)
15
+ self.ep2_ = ((self.WGS84A ** 2) - (self.b_ ** 2)) / (self.b_ ** 2)
16
+
17
+ # Initialize rotation matrix
18
+ self.R_ = np.zeros((3, 3))
19
+
20
+ # Variables to store initial LLA
21
+ self.x0_ = 0.0
22
+ self.y0_ = 0.0
23
+ self.z0_ = 0.0
24
+
25
+ # Call set_init_lla with provided lat/lon
26
+ latitude_rad = math.radians(lat_degrees)
27
+ longitude_rad = math.radians(lon_degrees)
28
+ self.set_init_lla(latitude_rad, longitude_rad)
29
+
30
+ def set_init_lla(self, lat_rad, lon_rad):
31
+ sin_lat = math.sin(lat_rad)
32
+ cos_lat = math.cos(lat_rad)
33
+ sin_lon = math.sin(lon_rad)
34
+ cos_lon = math.cos(lon_rad)
35
+
36
+ sqrt = self.WGS84A / math.sqrt(1.0 - (self.e2_ * (sin_lat ** 2)))
37
+ d3 = sqrt * cos_lat
38
+
39
+ self.x0_ = d3 * cos_lon
40
+ self.y0_ = d3 * sin_lon
41
+ self.z0_ = self.e2m_ * sqrt * sin_lat
42
+
43
+ self.R_[0][0] = -sin_lon
44
+ self.R_[0][1] = cos_lon
45
+ self.R_[0][2] = 0.0
46
+
47
+ self.R_[1][0] = -cos_lon * sin_lat
48
+ self.R_[1][1] = -sin_lon * sin_lat
49
+ self.R_[1][2] = cos_lat
50
+
51
+ self.R_[2][0] = cos_lon * cos_lat
52
+ self.R_[2][1] = sin_lon * cos_lat
53
+ self.R_[2][2] = sin_lat
54
+
55
+ def enu_to_lla(self, e, n) -> Point:
56
+ d3 = self.R_[0][0] * n + self.R_[1][0] * e + self.x0_
57
+ d4 = self.R_[0][1] * n + self.R_[1][1] * e + self.y0_
58
+ d5 = self.R_[0][2] * n + self.R_[1][2] * e + self.z0_
59
+
60
+ hypot = math.hypot(d3, d4)
61
+ atan2_lat = math.atan2(self.WGS84A * d5, self.b_ * hypot)
62
+
63
+ sin_lat = math.sin(atan2_lat)
64
+ cos_lat = math.cos(atan2_lat)
65
+
66
+ lon = math.atan2(d4, d3) * 180.0 / math.pi
67
+ lat = math.atan2(d5 + self.ep2_ * self.b_ * (sin_lat ** 3), hypot - self.e2_ * self.WGS84A * (cos_lat ** 3)) * 180.0 / math.pi
68
+
69
+ return Point(latitude=lat, longitude=lon)
70
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pymammotion
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary:
5
5
  License: GNU-3.0
6
6
  Author: Michael Arthur
@@ -23,6 +23,7 @@ Requires-Dist: bleak-retry-connector (>=3.5.0,<4.0.0)
23
23
  Requires-Dist: jsonic (>=1.0.0,<2.0.0)
24
24
  Requires-Dist: mashumaro (>=3.13,<4.0)
25
25
  Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0)
26
+ Requires-Dist: numpy (>=2.0.1,<3.0.0)
26
27
  Requires-Dist: orjson (>=3.9.15,<4.0.0)
27
28
  Requires-Dist: paho-mqtt (>=1.6.1,<2.0.0)
28
29
  Requires-Dist: protobuf (>=4.23.1)