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

Files changed (135) hide show
  1. pymammotion/__init__.py +9 -6
  2. pymammotion/aliyun/client.py +235 -0
  3. pymammotion/aliyun/cloud_gateway.py +320 -69
  4. pymammotion/aliyun/model/aep_response.py +1 -2
  5. pymammotion/aliyun/model/dev_by_account_response.py +170 -23
  6. pymammotion/aliyun/model/login_by_oauth_response.py +2 -3
  7. pymammotion/aliyun/model/regions_response.py +3 -3
  8. pymammotion/aliyun/model/session_by_authcode_response.py +2 -2
  9. pymammotion/aliyun/model/thing_response.py +12 -0
  10. pymammotion/aliyun/regions.py +62 -0
  11. pymammotion/aliyun/tea/core.py +297 -0
  12. pymammotion/bluetooth/ble.py +11 -15
  13. pymammotion/bluetooth/ble_message.py +389 -106
  14. pymammotion/bluetooth/model/atomic_integer.py +54 -0
  15. pymammotion/const.py +3 -0
  16. pymammotion/data/model/__init__.py +1 -2
  17. pymammotion/data/model/device.py +92 -240
  18. pymammotion/data/model/device_config.py +10 -24
  19. pymammotion/data/model/device_info.py +35 -0
  20. pymammotion/data/model/device_limits.py +49 -0
  21. pymammotion/data/model/enums.py +12 -2
  22. pymammotion/data/model/errors.py +12 -0
  23. pymammotion/data/model/events.py +14 -0
  24. pymammotion/data/model/generate_geojson.py +521 -0
  25. pymammotion/data/model/generate_route_information.py +3 -4
  26. pymammotion/data/model/hash_list.py +384 -48
  27. pymammotion/data/model/location.py +4 -4
  28. pymammotion/data/model/mowing_modes.py +24 -1
  29. pymammotion/data/model/raw_data.py +215 -0
  30. pymammotion/data/model/region_data.py +10 -11
  31. pymammotion/data/model/report_info.py +62 -6
  32. pymammotion/data/model/work.py +27 -0
  33. pymammotion/data/mower_state_manager.py +316 -0
  34. pymammotion/data/mqtt/event.py +73 -28
  35. pymammotion/data/mqtt/mammotion_properties.py +257 -0
  36. pymammotion/data/mqtt/properties.py +93 -78
  37. pymammotion/data/mqtt/status.py +18 -17
  38. pymammotion/event/event.py +32 -8
  39. pymammotion/homeassistant/__init__.py +3 -0
  40. pymammotion/homeassistant/mower_api.py +484 -0
  41. pymammotion/homeassistant/rtk_api.py +54 -0
  42. pymammotion/http/__init__.py +0 -0
  43. pymammotion/http/encryption.py +220 -0
  44. pymammotion/http/http.py +652 -44
  45. pymammotion/http/model/__init__.py +0 -0
  46. pymammotion/{aliyun/model/stream_subscription_response.py → http/model/camera_stream.py} +14 -2
  47. pymammotion/http/model/http.py +160 -9
  48. pymammotion/http/model/response_factory.py +61 -0
  49. pymammotion/http/model/rtk.py +16 -0
  50. pymammotion/mammotion/commands/abstract_message.py +7 -5
  51. pymammotion/mammotion/commands/mammotion_command.py +32 -3
  52. pymammotion/mammotion/commands/messages/basestation.py +43 -0
  53. pymammotion/mammotion/commands/messages/driver.py +61 -29
  54. pymammotion/mammotion/commands/messages/media.py +68 -15
  55. pymammotion/mammotion/commands/messages/navigation.py +61 -25
  56. pymammotion/mammotion/commands/messages/network.py +93 -100
  57. pymammotion/mammotion/commands/messages/ota.py +18 -18
  58. pymammotion/mammotion/commands/messages/system.py +97 -72
  59. pymammotion/mammotion/commands/messages/video.py +17 -12
  60. pymammotion/mammotion/devices/__init__.py +27 -3
  61. pymammotion/mammotion/devices/base.py +50 -127
  62. pymammotion/mammotion/devices/mammotion.py +447 -212
  63. pymammotion/mammotion/devices/mammotion_bluetooth.py +105 -60
  64. pymammotion/mammotion/devices/mammotion_cloud.py +157 -105
  65. pymammotion/mammotion/devices/mammotion_mower_ble.py +49 -0
  66. pymammotion/mammotion/devices/mammotion_mower_cloud.py +39 -0
  67. pymammotion/mammotion/devices/managers/managers.py +81 -0
  68. pymammotion/mammotion/devices/mower_device.py +124 -0
  69. pymammotion/mammotion/devices/mower_manager.py +107 -0
  70. pymammotion/mammotion/devices/rtk_ble.py +89 -0
  71. pymammotion/mammotion/devices/rtk_cloud.py +113 -0
  72. pymammotion/mammotion/devices/rtk_device.py +50 -0
  73. pymammotion/mammotion/devices/rtk_manager.py +122 -0
  74. pymammotion/mqtt/__init__.py +2 -1
  75. pymammotion/mqtt/aliyun_mqtt.py +232 -0
  76. pymammotion/mqtt/linkkit/__init__.py +5 -0
  77. pymammotion/mqtt/linkkit/h2client.py +585 -0
  78. pymammotion/mqtt/linkkit/linkkit.py +3023 -0
  79. pymammotion/mqtt/mammotion_mqtt.py +176 -169
  80. pymammotion/mqtt/mqtt_models.py +66 -0
  81. pymammotion/proto/__init__.py +4839 -4
  82. pymammotion/proto/basestation.proto +8 -0
  83. pymammotion/proto/basestation_pb2.py +11 -9
  84. pymammotion/proto/basestation_pb2.pyi +16 -2
  85. pymammotion/proto/dev_net.proto +79 -55
  86. pymammotion/proto/dev_net_pb2.py +60 -56
  87. pymammotion/proto/dev_net_pb2.pyi +49 -6
  88. pymammotion/proto/luba_msg.proto +2 -1
  89. pymammotion/proto/luba_msg_pb2.py +6 -6
  90. pymammotion/proto/luba_msg_pb2.pyi +1 -0
  91. pymammotion/proto/luba_mul.proto +62 -1
  92. pymammotion/proto/luba_mul_pb2.py +38 -22
  93. pymammotion/proto/luba_mul_pb2.pyi +94 -7
  94. pymammotion/proto/mctrl_driver.proto +44 -4
  95. pymammotion/proto/mctrl_driver_pb2.py +26 -14
  96. pymammotion/proto/mctrl_driver_pb2.pyi +66 -11
  97. pymammotion/proto/mctrl_nav.proto +97 -51
  98. pymammotion/proto/mctrl_nav_pb2.py +75 -67
  99. pymammotion/proto/mctrl_nav_pb2.pyi +142 -56
  100. pymammotion/proto/mctrl_ota.proto +40 -2
  101. pymammotion/proto/mctrl_ota_pb2.py +23 -13
  102. pymammotion/proto/mctrl_ota_pb2.pyi +67 -4
  103. pymammotion/proto/mctrl_pept.proto +8 -3
  104. pymammotion/proto/mctrl_pept_pb2.py +8 -6
  105. pymammotion/proto/mctrl_pept_pb2.pyi +14 -6
  106. pymammotion/proto/mctrl_sys.proto +325 -86
  107. pymammotion/proto/mctrl_sys_pb2.py +162 -98
  108. pymammotion/proto/mctrl_sys_pb2.pyi +451 -25
  109. pymammotion/proto/message_pool.py +3 -0
  110. pymammotion/proto/py.typed +0 -0
  111. pymammotion/utility/constant/device_constant.py +65 -21
  112. pymammotion/utility/datatype_converter.py +13 -12
  113. pymammotion/utility/device_config.py +755 -0
  114. pymammotion/utility/device_type.py +218 -21
  115. pymammotion/utility/map.py +238 -51
  116. pymammotion/utility/mur_mur_hash.py +159 -0
  117. {pymammotion-0.2.62.dist-info → pymammotion-0.5.51.dist-info}/METADATA +27 -31
  118. pymammotion-0.5.51.dist-info/RECORD +152 -0
  119. {pymammotion-0.2.62.dist-info → pymammotion-0.5.51.dist-info}/WHEEL +1 -1
  120. pymammotion/aliyun/cloud_service.py +0 -65
  121. pymammotion/data/model/plan.py +0 -58
  122. pymammotion/data/state_manager.py +0 -130
  123. pymammotion/proto/basestation.py +0 -59
  124. pymammotion/proto/common.py +0 -12
  125. pymammotion/proto/dev_net.py +0 -381
  126. pymammotion/proto/luba_msg.py +0 -81
  127. pymammotion/proto/luba_mul.py +0 -76
  128. pymammotion/proto/mctrl_driver.py +0 -100
  129. pymammotion/proto/mctrl_nav.py +0 -660
  130. pymammotion/proto/mctrl_ota.py +0 -48
  131. pymammotion/proto/mctrl_pept.py +0 -41
  132. pymammotion/proto/mctrl_sys.py +0 -574
  133. pymammotion-0.2.62.dist-info/RECORD +0 -125
  134. /pymammotion/{http/_init_.py → bluetooth/model/__init__.py} +0 -0
  135. {pymammotion-0.2.62.dist-info → pymammotion-0.5.51.dist-info/licenses}/LICENSE +0 -0
@@ -1,19 +1,54 @@
1
+ from google.protobuf.internal import containers as _containers
1
2
  from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
2
3
  from google.protobuf import descriptor as _descriptor
3
4
  from google.protobuf import message as _message
4
- from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
5
+ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
5
6
 
6
7
  DESCRIPTOR: _descriptor.FileDescriptor
7
8
  IT_BASE: infoType
8
9
  IT_OTA: infoType
9
10
 
11
+ class FotaInfo_t(_message.Message):
12
+ __slots__ = ["need_ota_img_size", "need_ota_num", "ota_oid", "ota_otype", "ota_version"]
13
+ NEED_OTA_IMG_SIZE_FIELD_NUMBER: _ClassVar[int]
14
+ NEED_OTA_NUM_FIELD_NUMBER: _ClassVar[int]
15
+ OTA_OID_FIELD_NUMBER: _ClassVar[int]
16
+ OTA_OTYPE_FIELD_NUMBER: _ClassVar[int]
17
+ OTA_VERSION_FIELD_NUMBER: _ClassVar[int]
18
+ need_ota_img_size: int
19
+ need_ota_num: int
20
+ ota_oid: str
21
+ ota_otype: int
22
+ ota_version: str
23
+ def __init__(self, need_ota_num: _Optional[int] = ..., need_ota_img_size: _Optional[int] = ..., ota_otype: _Optional[int] = ..., ota_oid: _Optional[str] = ..., ota_version: _Optional[str] = ...) -> None: ...
24
+
25
+ class FotaSubInfo_t(_message.Message):
26
+ __slots__ = ["sub_img_size", "sub_img_url", "sub_mod_id", "sub_mod_ota_flag", "sub_mod_version"]
27
+ SUB_IMG_SIZE_FIELD_NUMBER: _ClassVar[int]
28
+ SUB_IMG_URL_FIELD_NUMBER: _ClassVar[int]
29
+ SUB_MOD_ID_FIELD_NUMBER: _ClassVar[int]
30
+ SUB_MOD_OTA_FLAG_FIELD_NUMBER: _ClassVar[int]
31
+ SUB_MOD_VERSION_FIELD_NUMBER: _ClassVar[int]
32
+ sub_img_size: int
33
+ sub_img_url: str
34
+ sub_mod_id: int
35
+ sub_mod_ota_flag: int
36
+ sub_mod_version: str
37
+ def __init__(self, sub_mod_ota_flag: _Optional[int] = ..., sub_mod_id: _Optional[int] = ..., sub_img_size: _Optional[int] = ..., sub_mod_version: _Optional[str] = ..., sub_img_url: _Optional[str] = ...) -> None: ...
38
+
10
39
  class MctlOta(_message.Message):
11
- __slots__ = ["toapp_get_info_rsp", "todev_get_info_req"]
40
+ __slots__ = ["fota_info", "fota_sub_info", "fw_download_ctrl", "toapp_get_info_rsp", "todev_get_info_req"]
41
+ FOTA_INFO_FIELD_NUMBER: _ClassVar[int]
42
+ FOTA_SUB_INFO_FIELD_NUMBER: _ClassVar[int]
43
+ FW_DOWNLOAD_CTRL_FIELD_NUMBER: _ClassVar[int]
12
44
  TOAPP_GET_INFO_RSP_FIELD_NUMBER: _ClassVar[int]
13
45
  TODEV_GET_INFO_REQ_FIELD_NUMBER: _ClassVar[int]
46
+ fota_info: FotaInfo_t
47
+ fota_sub_info: FotaSubInfo_t
48
+ fw_download_ctrl: fwDownloadCtrl
14
49
  toapp_get_info_rsp: getInfoRsp
15
50
  todev_get_info_req: getInfoReq
16
- def __init__(self, todev_get_info_req: _Optional[_Union[getInfoReq, _Mapping]] = ..., toapp_get_info_rsp: _Optional[_Union[getInfoRsp, _Mapping]] = ...) -> None: ...
51
+ def __init__(self, todev_get_info_req: _Optional[_Union[getInfoReq, _Mapping]] = ..., toapp_get_info_rsp: _Optional[_Union[getInfoRsp, _Mapping]] = ..., fw_download_ctrl: _Optional[_Union[fwDownloadCtrl, _Mapping]] = ..., fota_info: _Optional[_Union[FotaInfo_t, _Mapping]] = ..., fota_sub_info: _Optional[_Union[FotaSubInfo_t, _Mapping]] = ...) -> None: ...
17
52
 
18
53
  class baseInfo(_message.Message):
19
54
  __slots__ = ["batt_val", "dev_status", "dev_version", "init_status", "is_tilt"]
@@ -29,6 +64,26 @@ class baseInfo(_message.Message):
29
64
  is_tilt: int
30
65
  def __init__(self, dev_version: _Optional[str] = ..., dev_status: _Optional[int] = ..., batt_val: _Optional[int] = ..., init_status: _Optional[int] = ..., is_tilt: _Optional[int] = ...) -> None: ...
31
66
 
67
+ class downlink_t(_message.Message):
68
+ __slots__ = ["data", "fw_id", "pkg_seq"]
69
+ DATA_FIELD_NUMBER: _ClassVar[int]
70
+ FW_ID_FIELD_NUMBER: _ClassVar[int]
71
+ PKG_SEQ_FIELD_NUMBER: _ClassVar[int]
72
+ data: _containers.RepeatedScalarFieldContainer[int]
73
+ fw_id: int
74
+ pkg_seq: int
75
+ def __init__(self, fw_id: _Optional[int] = ..., pkg_seq: _Optional[int] = ..., data: _Optional[_Iterable[int]] = ...) -> None: ...
76
+
77
+ class fwDownloadCtrl(_message.Message):
78
+ __slots__ = ["cmd", "downlink", "uplink"]
79
+ CMD_FIELD_NUMBER: _ClassVar[int]
80
+ DOWNLINK_FIELD_NUMBER: _ClassVar[int]
81
+ UPLINK_FIELD_NUMBER: _ClassVar[int]
82
+ cmd: int
83
+ downlink: downlink_t
84
+ uplink: uplink_t
85
+ def __init__(self, uplink: _Optional[_Union[uplink_t, _Mapping]] = ..., downlink: _Optional[_Union[downlink_t, _Mapping]] = ..., cmd: _Optional[int] = ...) -> None: ...
86
+
32
87
  class getInfoReq(_message.Message):
33
88
  __slots__ = ["type"]
34
89
  TYPE_FIELD_NUMBER: _ClassVar[int]
@@ -45,7 +100,7 @@ class getInfoRsp(_message.Message):
45
100
  ota: otaInfo
46
101
  result: int
47
102
  type: infoType
48
- def __init__(self, result: _Optional[int] = ..., type: _Optional[_Union[infoType, str]] = ..., base: _Optional[_Union[baseInfo, _Mapping]] = ..., ota: _Optional[_Union[otaInfo, _Mapping]] = ...) -> None: ...
103
+ def __init__(self, base: _Optional[_Union[baseInfo, _Mapping]] = ..., ota: _Optional[_Union[otaInfo, _Mapping]] = ..., result: _Optional[int] = ..., type: _Optional[_Union[infoType, str]] = ...) -> None: ...
49
104
 
50
105
  class otaInfo(_message.Message):
51
106
  __slots__ = ["message", "otaid", "progress", "result", "version"]
@@ -61,5 +116,13 @@ class otaInfo(_message.Message):
61
116
  version: str
62
117
  def __init__(self, otaid: _Optional[str] = ..., version: _Optional[str] = ..., progress: _Optional[int] = ..., result: _Optional[int] = ..., message: _Optional[str] = ...) -> None: ...
63
118
 
119
+ class uplink_t(_message.Message):
120
+ __slots__ = ["pkg_seq", "status"]
121
+ PKG_SEQ_FIELD_NUMBER: _ClassVar[int]
122
+ STATUS_FIELD_NUMBER: _ClassVar[int]
123
+ pkg_seq: int
124
+ status: int
125
+ def __init__(self, pkg_seq: _Optional[int] = ..., status: _Optional[int] = ...) -> None: ...
126
+
64
127
  class infoType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
65
128
  __slots__ = []
@@ -3,12 +3,12 @@ syntax = "proto3";
3
3
  message perception_obstacles_t {
4
4
  int32 label = 1;
5
5
  int32 num = 2;
6
- repeated int32 points_x = 3;
7
- repeated int32 points_y = 4;
6
+ repeated sint32 points_x = 3;
7
+ repeated sint32 points_y = 4;
8
8
  }
9
9
 
10
10
  message perception_obstacles_visualization_t {
11
- int32 is_heart_beat = 1;
11
+ int32 status = 1;
12
12
  int32 num = 2;
13
13
  repeated perception_obstacles_t obstacles = 3;
14
14
  double timestamp = 4;
@@ -21,9 +21,14 @@ message perception_universal_buff_t {
21
21
  repeated int64 universal_buff = 3;
22
22
  }
23
23
 
24
+ message perception_local_map_visualization_t {
25
+ bytes map = 1;
26
+ }
27
+
24
28
  message MctlPept {
25
29
  oneof SubPeptMsg {
26
30
  perception_obstacles_visualization_t perception_obstacles_visualization = 1;
27
31
  perception_universal_buff_t perception_universal_buff = 2;
32
+ perception_local_map_visualization_t perception_local_map_visualization = 3;
28
33
  }
29
34
  }
@@ -13,7 +13,7 @@ _sym_db = _symbol_database.Default()
13
13
 
14
14
 
15
15
 
16
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"pymammotion/proto/mctrl_pept.proto\"X\n\x16perception_obstacles_t\x12\r\n\x05label\x18\x01 \x01(\x05\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12\x10\n\x08points_x\x18\x03 \x03(\x05\x12\x10\n\x08points_y\x18\x04 \x03(\x05\"\x98\x01\n$perception_obstacles_visualization_t\x12\x15\n\ris_heart_beat\x18\x01 \x01(\x05\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12*\n\tobstacles\x18\x03 \x03(\x0b\x32\x17.perception_obstacles_t\x12\x11\n\ttimestamp\x18\x04 \x01(\x01\x12\r\n\x05scale\x18\x05 \x01(\x02\"f\n\x1bperception_universal_buff_t\x12\x17\n\x0fperception_type\x18\x01 \x01(\x05\x12\x16\n\x0eperception_len\x18\x02 \x01(\x05\x12\x16\n\x0euniversal_buff\x18\x03 \x03(\x03\"\xb0\x01\n\x08MctlPept\x12S\n\"perception_obstacles_visualization\x18\x01 \x01(\x0b\x32%.perception_obstacles_visualization_tH\x00\x12\x41\n\x19perception_universal_buff\x18\x02 \x01(\x0b\x32\x1c.perception_universal_buff_tH\x00\x42\x0c\n\nSubPeptMsgb\x06proto3')
16
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"pymammotion/proto/mctrl_pept.proto\"X\n\x16perception_obstacles_t\x12\r\n\x05label\x18\x01 \x01(\x05\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12\x10\n\x08points_x\x18\x03 \x03(\x11\x12\x10\n\x08points_y\x18\x04 \x03(\x11\"\x91\x01\n$perception_obstacles_visualization_t\x12\x0e\n\x06status\x18\x01 \x01(\x05\x12\x0b\n\x03num\x18\x02 \x01(\x05\x12*\n\tobstacles\x18\x03 \x03(\x0b\x32\x17.perception_obstacles_t\x12\x11\n\ttimestamp\x18\x04 \x01(\x01\x12\r\n\x05scale\x18\x05 \x01(\x02\"f\n\x1bperception_universal_buff_t\x12\x17\n\x0fperception_type\x18\x01 \x01(\x05\x12\x16\n\x0eperception_len\x18\x02 \x01(\x05\x12\x16\n\x0euniversal_buff\x18\x03 \x03(\x03\"3\n$perception_local_map_visualization_t\x12\x0b\n\x03map\x18\x01 \x01(\x0c\"\x85\x02\n\x08MctlPept\x12S\n\"perception_obstacles_visualization\x18\x01 \x01(\x0b\x32%.perception_obstacles_visualization_tH\x00\x12\x41\n\x19perception_universal_buff\x18\x02 \x01(\x0b\x32\x1c.perception_universal_buff_tH\x00\x12S\n\"perception_local_map_visualization\x18\x03 \x01(\x0b\x32%.perception_local_map_visualization_tH\x00\x42\x0c\n\nSubPeptMsgb\x06proto3')
17
17
 
18
18
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
19
19
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'pymammotion.proto.mctrl_pept_pb2', globals())
@@ -23,9 +23,11 @@ if _descriptor._USE_C_DESCRIPTORS == False:
23
23
  _PERCEPTION_OBSTACLES_T._serialized_start=38
24
24
  _PERCEPTION_OBSTACLES_T._serialized_end=126
25
25
  _PERCEPTION_OBSTACLES_VISUALIZATION_T._serialized_start=129
26
- _PERCEPTION_OBSTACLES_VISUALIZATION_T._serialized_end=281
27
- _PERCEPTION_UNIVERSAL_BUFF_T._serialized_start=283
28
- _PERCEPTION_UNIVERSAL_BUFF_T._serialized_end=385
29
- _MCTLPEPT._serialized_start=388
30
- _MCTLPEPT._serialized_end=564
26
+ _PERCEPTION_OBSTACLES_VISUALIZATION_T._serialized_end=274
27
+ _PERCEPTION_UNIVERSAL_BUFF_T._serialized_start=276
28
+ _PERCEPTION_UNIVERSAL_BUFF_T._serialized_end=378
29
+ _PERCEPTION_LOCAL_MAP_VISUALIZATION_T._serialized_start=380
30
+ _PERCEPTION_LOCAL_MAP_VISUALIZATION_T._serialized_end=431
31
+ _MCTLPEPT._serialized_start=434
32
+ _MCTLPEPT._serialized_end=695
31
33
  # @@protoc_insertion_point(module_scope)
@@ -6,12 +6,20 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map
6
6
  DESCRIPTOR: _descriptor.FileDescriptor
7
7
 
8
8
  class MctlPept(_message.Message):
9
- __slots__ = ["perception_obstacles_visualization", "perception_universal_buff"]
9
+ __slots__ = ["perception_local_map_visualization", "perception_obstacles_visualization", "perception_universal_buff"]
10
+ PERCEPTION_LOCAL_MAP_VISUALIZATION_FIELD_NUMBER: _ClassVar[int]
10
11
  PERCEPTION_OBSTACLES_VISUALIZATION_FIELD_NUMBER: _ClassVar[int]
11
12
  PERCEPTION_UNIVERSAL_BUFF_FIELD_NUMBER: _ClassVar[int]
13
+ perception_local_map_visualization: perception_local_map_visualization_t
12
14
  perception_obstacles_visualization: perception_obstacles_visualization_t
13
15
  perception_universal_buff: perception_universal_buff_t
14
- def __init__(self, perception_obstacles_visualization: _Optional[_Union[perception_obstacles_visualization_t, _Mapping]] = ..., perception_universal_buff: _Optional[_Union[perception_universal_buff_t, _Mapping]] = ...) -> None: ...
16
+ def __init__(self, perception_obstacles_visualization: _Optional[_Union[perception_obstacles_visualization_t, _Mapping]] = ..., perception_universal_buff: _Optional[_Union[perception_universal_buff_t, _Mapping]] = ..., perception_local_map_visualization: _Optional[_Union[perception_local_map_visualization_t, _Mapping]] = ...) -> None: ...
17
+
18
+ class perception_local_map_visualization_t(_message.Message):
19
+ __slots__ = ["map"]
20
+ MAP_FIELD_NUMBER: _ClassVar[int]
21
+ map: bytes
22
+ def __init__(self, map: _Optional[bytes] = ...) -> None: ...
15
23
 
16
24
  class perception_obstacles_t(_message.Message):
17
25
  __slots__ = ["label", "num", "points_x", "points_y"]
@@ -26,18 +34,18 @@ class perception_obstacles_t(_message.Message):
26
34
  def __init__(self, label: _Optional[int] = ..., num: _Optional[int] = ..., points_x: _Optional[_Iterable[int]] = ..., points_y: _Optional[_Iterable[int]] = ...) -> None: ...
27
35
 
28
36
  class perception_obstacles_visualization_t(_message.Message):
29
- __slots__ = ["is_heart_beat", "num", "obstacles", "scale", "timestamp"]
30
- IS_HEART_BEAT_FIELD_NUMBER: _ClassVar[int]
37
+ __slots__ = ["num", "obstacles", "scale", "status", "timestamp"]
31
38
  NUM_FIELD_NUMBER: _ClassVar[int]
32
39
  OBSTACLES_FIELD_NUMBER: _ClassVar[int]
33
40
  SCALE_FIELD_NUMBER: _ClassVar[int]
41
+ STATUS_FIELD_NUMBER: _ClassVar[int]
34
42
  TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
35
- is_heart_beat: int
36
43
  num: int
37
44
  obstacles: _containers.RepeatedCompositeFieldContainer[perception_obstacles_t]
38
45
  scale: float
46
+ status: int
39
47
  timestamp: float
40
- def __init__(self, is_heart_beat: _Optional[int] = ..., num: _Optional[int] = ..., obstacles: _Optional[_Iterable[_Union[perception_obstacles_t, _Mapping]]] = ..., timestamp: _Optional[float] = ..., scale: _Optional[float] = ...) -> None: ...
48
+ def __init__(self, status: _Optional[int] = ..., num: _Optional[int] = ..., obstacles: _Optional[_Iterable[_Union[perception_obstacles_t, _Mapping]]] = ..., timestamp: _Optional[float] = ..., scale: _Optional[float] = ...) -> None: ...
41
49
 
42
50
  class perception_universal_buff_t(_message.Message):
43
51
  __slots__ = ["perception_len", "perception_type", "universal_buff"]
@@ -2,6 +2,106 @@ syntax = "proto3";
2
2
 
3
3
  import "pymammotion/proto/dev_net.proto";
4
4
 
5
+ enum Operation {
6
+ WRITE = 0;
7
+ READ = 1;
8
+ ERASE = 2;
9
+ }
10
+
11
+ enum OffPartId {
12
+ OFF_PART_DL_IMG = 0;
13
+ OFF_PART_UPDINFO_BACK = 1;
14
+ OFF_PART_UPDINFO = 2;
15
+ OFF_PART_NAKEDB = 3;
16
+ OFF_PART_FLASHDB = 4;
17
+ OFF_PART_UPD_APP_IMG = 5;
18
+ OFF_PART_UPD_BMS_IMG = 6;
19
+ OFF_PART_UPD_TMP_IMG = 7;
20
+ OFF_PART_DEV_INFO = 8;
21
+ OFF_PART_NAKEDB_BACK = 9;
22
+ OFF_PART_MAX = 10;
23
+ }
24
+
25
+ enum QCAppTestId {
26
+ QC_APP_ITEM_ON_CHARGESATSTION = 0;
27
+ QC_APP_TEST_X3_SPEAKER = 1;
28
+ QC_APP_TEST_STATIC_OBSTACLE_DETECTION = 2;
29
+ QC_APP_TEST_CHARGESTATION_TEMP = 3;
30
+ QC_APP_ITEM_KEY = 4;
31
+ QC_APP_TEST_BUMPER_FRONTLEFT = 5;
32
+ QC_APP_TEST_BUMPER_FRONTRIGHT = 6;
33
+ QC_APP_TEST_STOP = 7;
34
+ QC_APP_TEST_UNLOCK = 8;
35
+ QC_APP_TEST_BUZZ = 9;
36
+ QC_APP_TEST_LIFT = 10;
37
+ QC_APP_ITEM_SENEOR = 11;
38
+ QC_APP_TEST_ROLL_LEFT = 12;
39
+ QC_APP_TEST_ROLL_RIGHT = 13;
40
+ QC_APP_TEST_ULTRA_UNCOVER = 14;
41
+ QC_APP_TEST_ULTRA0_COVER = 15;
42
+ QC_APP_TEST_ULTRA1_COVER = 16;
43
+ QC_APP_TEST_ULTRA2_COVER = 17;
44
+ QC_APP_TEST_RAIN = 18;
45
+ QC_APP_ITEM_SQ = 19;
46
+ QC_APP_TEST_BLE_RSSI = 20;
47
+ QC_APP_TEST_SATELLITES_ROVER = 21;
48
+ QC_APP_TEST_SATELLITES_REF_STATION_L1 = 22;
49
+ QC_APP_TEST_SATELLITES_REF_STATION_L2 = 23;
50
+ QC_APP_TEST_SATELLITES_COMMON_VIEW = 24;
51
+ QC_APP_TEST_CNO_ROVER = 25;
52
+ QC_APP_TEST_CNO_REF_STATION = 26;
53
+ QC_APP_TEST_REF_STATION_LINK_STATUS = 27;
54
+ QC_APP_TEST_LOCATION_STATE = 28;
55
+ QC_APP_TEST_CHARGE_STATUS = 29;
56
+ QC_APP_TEST_PPS_EXTI_COUNT = 30;
57
+ QC_APP_TEST_SAFE_KEY = 50;
58
+ QC_APP_TEST_LORA_RSSI = 60;
59
+ QC_APP_TEST_WIPER_TEST = 80;
60
+ QC_APP_TEST_HEADLAMP_TEST = 81;
61
+ QC_APP_TEST_COMPLETE_SIGNAL = 99;
62
+ QC_APP_TEST_MAX = 100;
63
+ }
64
+
65
+ enum rtk_used_type {
66
+ RTK_USED_LORA = 0;
67
+ RTK_USED_INTERNET = 1;
68
+ RTK_USED_NRTK = 2;
69
+ }
70
+
71
+ enum net_used_type {
72
+ NET_USED_TYPE_NONE = 0;
73
+ NET_USED_TYPE_WIFI = 1;
74
+ NET_USED_TYPE_MNET = 2;
75
+ }
76
+
77
+ enum rpt_info_type {
78
+ RIT_CONNECT = 0;
79
+ RIT_DEV_STA = 1;
80
+ RIT_RTK = 2;
81
+ RIT_DEV_LOCAL = 3;
82
+ RIT_WORK = 4;
83
+ RIT_FW_INFO = 5;
84
+ RIT_MAINTAIN = 6;
85
+ RIT_VISION_POINT = 7;
86
+ RIT_VIO = 8;
87
+ RIT_VISION_STATISTIC = 9;
88
+ RIT_BASESTATION_INFO = 10;
89
+ RIT_CUTTER_INFO = 11;
90
+ }
91
+
92
+ enum rpt_act {
93
+ RPT_START = 0;
94
+ RPT_STOP = 1;
95
+ RPT_KEEP = 2;
96
+ }
97
+
98
+ enum Command_Result {
99
+ RS_OK = 0;
100
+ RS_FAIL_MAGIC = 1;
101
+ RS_FAIL_OTA = 2;
102
+ RS_FAIL_SLOPE = 3;
103
+ }
104
+
5
105
  message SysBatUp {
6
106
  int32 batVal = 1;
7
107
  }
@@ -72,8 +172,8 @@ message SysMowInfo {
72
172
  int32 deviceState = 1;
73
173
  int32 batVal = 2;
74
174
  int32 knifeHeight = 3;
75
- int32 rtk_status = 4;
76
- int32 rtk_stars = 5;
175
+ int32 RTKstatus = 4;
176
+ int32 RTKstars = 5;
77
177
  }
78
178
 
79
179
  message SysOptiLineAck {
@@ -114,6 +214,10 @@ message SysResetSystemStatus {
114
214
  int32 reset_staus = 1;
115
215
  }
116
216
 
217
+ message SysResetBladeUsedTimeStatus {
218
+ int32 reset_blade_used_time_status = 1;
219
+ }
220
+
117
221
  message TimeCtrlLight {
118
222
  int32 operate = 1;
119
223
  int32 enable = 2;
@@ -250,6 +354,25 @@ message mCtrlSimulationCmdData {
250
354
  repeated int32 param_value = 3;
251
355
  }
252
356
 
357
+ message app_to_dev_get_mqtt_config_t {
358
+ int32 get_mqtt_config = 1;
359
+ }
360
+
361
+ message dev_to_app_get_mqtt_config_t {
362
+ int32 rtk_status = 1;
363
+ string rtk_base_num = 2;
364
+ }
365
+
366
+ message app_to_dev_set_mqtt_rtk_t {
367
+ rtk_used_type set_rtk_mode = 1;
368
+ int32 stop_nrtk_flag = 2;
369
+ int32 set_nrtk_net_mode = 3;
370
+ }
371
+
372
+ message dev_to_app_set_mqtt_rtk_t {
373
+ int32 set_rtk_mode_error = 1;
374
+ }
375
+
253
376
  message rpt_lora {
254
377
  int32 pair_code_scan = 1;
255
378
  int32 pair_code_channel = 2;
@@ -259,9 +382,23 @@ message rpt_lora {
259
382
  }
260
383
 
261
384
  message mqtt_rtk_connect {
262
- int32 rtk_switch = 1;
263
- int32 rtk_channel = 2;
264
- string rtk_base_num = 3;
385
+ rtk_used_type rtk_switch = 1;
386
+ int32 rtk_channel = 2;
387
+ string rtk_base_num = 3;
388
+ double latitude = 4;
389
+ double longitude = 5;
390
+ int32 nrtk_map_convert_status = 6;
391
+ int32 nrtk_net_mode = 7;
392
+ int32 new_rtk_mode = 8;
393
+ }
394
+
395
+ message pos_score {
396
+ uint32 rover_score = 1;
397
+ uint32 rover_level = 2;
398
+ uint32 base_score = 3;
399
+ uint32 base_level = 4;
400
+ uint32 base_moved = 5;
401
+ uint32 base_moving = 6;
265
402
  }
266
403
 
267
404
  message rpt_rtk {
@@ -278,6 +415,7 @@ message rpt_rtk {
278
415
  int32 reset = 11;
279
416
  rpt_lora lora_info = 12;
280
417
  mqtt_rtk_connect mqtt_rtk_info = 13;
418
+ pos_score score_info = 14;
281
419
  }
282
420
 
283
421
  message rpt_dev_location {
@@ -313,6 +451,13 @@ message rpt_dev_status {
313
451
  vio_survival_info_t vio_survival_info = 9;
314
452
  collector_status_t collector_status = 10;
315
453
  lock_state_t lock_state = 11;
454
+ uint32 self_check_status = 12;
455
+ fpv_to_app_info_t fpv_info = 13;
456
+ }
457
+
458
+ message net_speed {
459
+ uint32 download = 1;
460
+ uint32 upload = 2;
316
461
  }
317
462
 
318
463
  message rpt_connect_status {
@@ -324,11 +469,15 @@ message rpt_connect_status {
324
469
  int32 mnet_inet = 6;
325
470
  net_used_type used_net = 7;
326
471
  MnetCfg mnet_cfg = 8;
472
+ net_speed dev_net_speed = 9;
473
+ bool iot_wifi_report = 10;
474
+ int32 iot_con_status = 11;
475
+ int32 wifi_con_status = 12;
476
+ int32 wifi_is_available = 13;
327
477
  }
328
478
 
329
-
330
479
  message nav_heading_state_t {
331
- int32 heading_state = 1;
480
+ uint32 heading_state = 1;
332
481
  }
333
482
 
334
483
  message rpt_work {
@@ -353,12 +502,39 @@ message rpt_work {
353
502
  int32 nav_edit_status = 19;
354
503
  int32 knife_height = 20;
355
504
  nav_heading_state_t nav_heading_state = 21;
505
+ float cutter_offset = 22;
506
+ float cutter_width = 23;
507
+ }
508
+
509
+ message blade_used {
510
+ int32 blade_used_time = 1;
511
+ int32 blade_used_warn_time = 2;
512
+ }
513
+
514
+ message user_set_blade_used_warn_time {
515
+ int32 blade_used_warn_time = 1;
356
516
  }
357
517
 
358
518
  message rpt_maintain {
359
519
  int64 mileage = 1;
360
520
  int32 work_time = 2;
361
521
  int32 bat_cycles = 3;
522
+ blade_used blade_used_time = 4;
523
+ }
524
+
525
+ message fpv_to_app_info_t {
526
+ int32 fpv_flag = 1;
527
+ int32 wifi_available = 2;
528
+ int32 mobile_net_available = 3;
529
+ }
530
+
531
+ message rpt_basestation_info {
532
+ uint32 ver_major = 1;
533
+ uint32 ver_minor = 2;
534
+ uint32 ver_patch = 3;
535
+ uint32 ver_build = 4;
536
+ uint32 basestation_status = 5;
537
+ uint32 connect_status_since_poweron = 6;
362
538
  }
363
539
 
364
540
  message report_info_cfg {
@@ -381,6 +557,123 @@ message report_info_data {
381
557
  repeated vision_point_info_msg vision_point_info = 8;
382
558
  vio_to_app_info_msg vio_to_app_info = 9;
383
559
  vision_statistic_info_msg vision_statistic_info = 10;
560
+ rpt_basestation_info basestation_info = 11;
561
+ rpt_cutter_rpm cutter_work_mode_info = 12;
562
+ }
563
+
564
+ message debug_common_report_t {
565
+ string m_name = 1;
566
+ string key = 2;
567
+ string value = 3;
568
+ int64 gen_time = 4;
569
+ }
570
+
571
+ message debug_errocode_report_t {
572
+ int32 code = 1;
573
+ string mname = 2;
574
+ string value = 3;
575
+ int64 gen_time = 4;
576
+ }
577
+
578
+ message debug_enable_t {
579
+ int32 enbale = 1;
580
+ }
581
+
582
+ message debug_res_cfg_ability_t {
583
+ int32 total_keys = 1;
584
+ int32 cur_key_id = 2;
585
+ string keys = 3;
586
+ string value = 4;
587
+ }
588
+
589
+ message debug_cfg_read_t {
590
+ string key = 1;
591
+ string value = 2;
592
+ }
593
+
594
+ message debug_cfg_write_t {
595
+ string key = 1;
596
+ string value = 2;
597
+ }
598
+
599
+ message msgbus_pkt {
600
+ int32 type = 1;
601
+ int32 typeCommand = 2;
602
+ int32 recvDeviceId = 3;
603
+ int32 sendDeviceId = 4;
604
+ int32 dataLength = 5;
605
+ string data = 6;
606
+ int32 ctrl = 7;
607
+ int32 flag = 8;
608
+ int32 seqs = 9;
609
+ }
610
+
611
+ message response_set_mode_t {
612
+ int32 statue = 1;
613
+ int32 set_work_mode = 2;
614
+ int32 cur_work_mode = 3;
615
+ int64 start_work_time = 4;
616
+ int64 end_work_time = 5;
617
+ int32 interruptflag = 6;
618
+ int32 cur_work_time = 7;
619
+ }
620
+
621
+ message rpt_cutter_rpm {
622
+ int32 current_cutter_mode = 1;
623
+ int32 current_cutter_rpm = 2;
624
+ }
625
+
626
+ message dev_statue_t {
627
+ int32 sys_status = 1;
628
+ int32 charge_status = 2;
629
+ int32 bat_val = 3;
630
+ int32 wheel_status = 4;
631
+ int32 pump_status = 5;
632
+ int32 work_mode = 6;
633
+ int32 model = 7;
634
+ int32 ble_rssi = 8;
635
+ int32 wifi_rssi = 9;
636
+ int32 wifi_connect_status = 10;
637
+ int32 iot_connect_status = 11;
638
+ int32 wifi_available = 12;
639
+ }
640
+
641
+ message report_info_t {
642
+ dev_statue_t dev_status = 1;
643
+ }
644
+
645
+ message work_mode_t {
646
+ int32 work_mode = 1;
647
+ }
648
+
649
+ message special_mode_t {
650
+ int32 stair_mode = 1;
651
+ int32 violent_mode = 2;
652
+ int32 berthing_mode = 3;
653
+ }
654
+
655
+ message set_peripherals_t {
656
+ int32 buzz_enable = 1;
657
+ }
658
+
659
+ message debug_sun_time_t {
660
+ int32 subCmd = 1;
661
+ int32 sunRiseTime = 2;
662
+ int32 sunSetTime = 3;
663
+ }
664
+
665
+ message remote_reset_req_t {
666
+ int32 magic = 1;
667
+ int64 bizid = 2;
668
+ int32 reset_mode = 3;
669
+ int32 force_reset = 4;
670
+ int64 account = 5;
671
+ }
672
+
673
+ message remote_reset_rsp_t {
674
+ int32 magic = 1;
675
+ int64 bizid = 2;
676
+ Command_Result result = 3;
384
677
  }
385
678
 
386
679
  message MctlSys {
@@ -419,84 +712,30 @@ message MctlSys {
419
712
  report_info_cfg todev_report_cfg = 38;
420
713
  report_info_data toapp_report_data = 39;
421
714
  mCtrlSimulationCmdData simulation_cmd = 42;
715
+ app_to_dev_get_mqtt_config_t app_to_dev_get_mqtt_config_msg = 43;
716
+ dev_to_app_get_mqtt_config_t dev_to_app_get_mqtt_config_msg = 44;
717
+ app_to_dev_set_mqtt_rtk_t app_to_dev_set_mqtt_rtk_msg = 45;
718
+ dev_to_app_set_mqtt_rtk_t dev_to_app_set_mqtt_rtk_msg = 46;
719
+ int32 todev_reset_blade_used_time = 47;
720
+ SysResetBladeUsedTimeStatus todev_reset_blade_used_time_status = 48;
721
+ int32 todev_factor_reset_system = 49;
722
+ user_set_blade_used_warn_time blade_used_warn_time = 50;
723
+ debug_common_report_t debug_common_report = 51;
724
+ debug_errocode_report_t debug_errocode_report = 52;
725
+ debug_enable_t debug_enable = 53;
726
+ debug_cfg_read_t debug_cfg_read = 54;
727
+ debug_cfg_write_t debug_cfg_write = 55;
728
+ debug_res_cfg_ability_t debug_res_cfg_ability = 56;
729
+ msgbus_pkt to_dev_msgbus = 57;
730
+ msgbus_pkt to_app_msgbus = 58;
731
+ response_set_mode_t response_set_mode = 59;
732
+ report_info_t report_info = 60;
733
+ work_mode_t set_work_mode = 61;
734
+ special_mode_t set_special_mode = 62;
735
+ set_peripherals_t set_peripherals = 63;
736
+ debug_sun_time_t to_dev_set_sun_time = 64;
737
+ remote_reset_req_t to_dev_remote_reset = 65;
738
+ remote_reset_rsp_t to_app_remote_reset = 66;
739
+ rpt_cutter_rpm current_cutter_mode = 67;
422
740
  }
423
- }
424
-
425
- enum Operation {
426
- WRITE = 0;
427
- READ = 1;
428
- ERASE = 2;
429
- }
430
-
431
- enum OffPartId {
432
- OFF_PART_DL_IMG = 0;
433
- OFF_PART_UPDINFO_BACK = 1;
434
- OFF_PART_UPDINFO = 2;
435
- OFF_PART_NAKEDB = 3;
436
- OFF_PART_FLASHDB = 4;
437
- OFF_PART_UPD_APP_IMG = 5;
438
- OFF_PART_UPD_BMS_IMG = 6;
439
- OFF_PART_UPD_TMP_IMG = 7;
440
- OFF_PART_DEV_INFO = 8;
441
- OFF_PART_NAKEDB_BACK = 9;
442
- OFF_PART_MAX = 10;
443
- }
444
-
445
- enum QCAppTestId {
446
- QC_APP_ITEM_ON_CHARGESATSTION = 0;
447
- QC_APP_TEST_X3_SPEAKER = 1;
448
- QC_APP_TEST_STATIC_OBSTACLE_DETECTION = 2;
449
- QC_APP_TEST_CHARGESTATION_TEMP = 3;
450
- QC_APP_ITEM_KEY = 4;
451
- QC_APP_TEST_BUMPER_FRONTLEFT = 5;
452
- QC_APP_TEST_BUMPER_FRONTRIGHT = 6;
453
- QC_APP_TEST_STOP = 7;
454
- QC_APP_TEST_UNLOCK = 8;
455
- QC_APP_TEST_BUZZ = 9;
456
- QC_APP_TEST_LIFT = 10;
457
- QC_APP_ITEM_SENEOR = 11;
458
- QC_APP_TEST_ROLL_LEFT = 12;
459
- QC_APP_TEST_ROLL_RIGHT = 13;
460
- QC_APP_TEST_ULTRA_UNCOVER = 14;
461
- QC_APP_TEST_ULTRA0_COVER = 15;
462
- QC_APP_TEST_ULTRA1_COVER = 16;
463
- QC_APP_TEST_ULTRA2_COVER = 17;
464
- QC_APP_TEST_RAIN = 18;
465
- QC_APP_ITEM_SQ = 19;
466
- QC_APP_TEST_BLE_RSSI = 20;
467
- QC_APP_TEST_SATELLITES_ROVER = 21;
468
- QC_APP_TEST_SATELLITES_REF_STATION_L1 = 22;
469
- QC_APP_TEST_SATELLITES_REF_STATION_L2 = 23;
470
- QC_APP_TEST_SATELLITES_COMMON_VIEW = 24;
471
- QC_APP_TEST_CNO_ROVER = 25;
472
- QC_APP_TEST_CNO_REF_STATION = 26;
473
- QC_APP_TEST_REF_STATION_LINK_STATUS = 27;
474
- QC_APP_TEST_LOCATION_STATE = 28;
475
- QC_APP_TEST_MAX = 29;
476
- }
477
-
478
- enum net_used_type {
479
- NET_USED_TYPE_NONE = 0;
480
- NET_USED_TYPE_WIFI = 1;
481
- NET_USED_TYPE_MNET = 2;
482
- }
483
-
484
- enum rpt_info_type {
485
- RIT_CONNECT = 0;
486
- RIT_DEV_STA = 1;
487
- RIT_RTK = 2;
488
- RIT_DEV_LOCAL = 3;
489
- RIT_WORK = 4;
490
- RIT_FW_INFO = 5;
491
- RIT_MAINTAIN = 6;
492
- RIT_VISION_POINT = 7;
493
- RIT_VIO = 8;
494
- RIT_VISION_STATISTIC = 9;
495
- RIT_BASESTATION_INFO = 10;
496
- }
497
-
498
- enum rpt_act {
499
- RPT_START = 0;
500
- RPT_STOP = 1;
501
- RPT_KEEP = 2;
502
741
  }