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

@@ -691,8 +691,22 @@ class CloudIOTGateway:
691
691
  return self._devices_by_account_response
692
692
 
693
693
  async def send_cloud_command(self, iot_id: str, command: bytes) -> str:
694
- """Send a cloud command to the specified IoT device."""
695
694
 
695
+ """Sends a cloud command to a specified IoT device.
696
+
697
+ This function checks if the IoT token is expired and attempts to refresh it if
698
+ possible. It then constructs a request using the provided command and sends it
699
+ to the IoT device via an asynchronous HTTP POST request. The function handles
700
+ various error codes and exceptions based on the response from the cloud
701
+ service.
702
+
703
+ Args:
704
+ iot_id (str): The unique identifier of the IoT device.
705
+ command (bytes): The command to be sent to the IoT device in binary format.
706
+
707
+ Returns:
708
+ str: A unique message ID for the sent command.
709
+ """
696
710
  if command is None:
697
711
  raise Exception("Command is missing / None")
698
712
 
@@ -14,6 +14,7 @@ from pymammotion.data.model.hash_list import AreaHashNameList, NavGetCommData, N
14
14
  from pymammotion.data.model.work import CurrentTaskSettings
15
15
  from pymammotion.data.mqtt.properties import ThingPropertiesMessage
16
16
  from pymammotion.data.mqtt.status import ThingStatusMessage
17
+ from pymammotion.event.event import DataEvent
17
18
  from pymammotion.proto import (
18
19
  AppGetAllAreaHashName,
19
20
  DeviceFwInfo,
@@ -47,20 +48,20 @@ class StateManager:
47
48
  self.cloud_get_commondata_ack_callback: (
48
49
  Callable[[NavGetCommDataAck | SvgMessageAckT], Awaitable[None]] | None
49
50
  ) = None
50
- self.cloud_get_plan_callback: Callable[[NavPlanJobSet], Awaitable[None]] | None = None
51
- self.cloud_on_notification_callback: Callable[[tuple[str, Any | None]], Awaitable[None]] | None = None
52
- self.cloud_queue_command_callback: Callable[[str, dict[str, Any]], Awaitable[None]] | None = None
51
+ self.cloud_on_notification_callback = DataEvent()
52
+ self.cloud_queue_command_callback = DataEvent()
53
53
 
54
+ self.cloud_get_plan_callback: Callable[[NavPlanJobSet], Awaitable[None]] | None = None
54
55
  self.ble_gethash_ack_callback: Callable[[NavGetHashListAck], Awaitable[None]] | None = None
55
56
  self.ble_get_commondata_ack_callback: Callable[[NavGetCommDataAck | SvgMessageAckT], Awaitable[None]] | None = (
56
57
  None
57
58
  )
58
59
  self.ble_get_plan_callback: Callable[[NavPlanJobSet], Awaitable[None]] | None = None
59
- self.ble_on_notification_callback: Callable[[tuple[str, Any | None]], Awaitable[None]] | None = None
60
- self.ble_queue_command_callback: Callable[[str, dict[str, Any]], Awaitable[None]] | None = None
60
+ self.ble_on_notification_callback = DataEvent()
61
+ self.ble_queue_command_callback = DataEvent()
61
62
 
62
- self.properties_callback: Callable[[ThingPropertiesMessage], Awaitable[None]] | None = None
63
- self.status_callback: Callable[[ThingStatusMessage], Awaitable[None]] | None = None
63
+ self.properties_callback = DataEvent()
64
+ self.status_callback = DataEvent()
64
65
 
65
66
  def get_device(self) -> MowingDevice:
66
67
  """Get device."""
@@ -99,21 +100,22 @@ class StateManager:
99
100
 
100
101
  async def on_notification_callback(self, res: tuple[str, Any | None]) -> None:
101
102
  if self.cloud_on_notification_callback:
102
- await self.cloud_on_notification_callback(res)
103
+ await self.cloud_on_notification_callback.data_event(res)
103
104
  elif self.ble_on_notification_callback:
104
- await self.ble_on_notification_callback(res)
105
+ await self.ble_on_notification_callback.data_event(res)
105
106
 
106
107
  async def on_properties_callback(self, thing_properties: ThingPropertiesMessage) -> None:
107
- """Check if we have a callback for properties."""
108
+ """Call properties callback if it exists."""
108
109
  if self.properties_callback:
109
- await self.properties_callback(thing_properties)
110
+ await self.properties_callback.data_event(thing_properties)
110
111
 
111
112
  async def on_status_callback(self, thing_status: ThingStatusMessage) -> None:
112
- """Check if we have a callback for status."""
113
+ """Execute the status callback if it is set."""
113
114
  if self.status_callback:
114
- await self.status_callback(thing_status)
115
+ await self.status_callback.data_event(thing_status)
115
116
 
116
117
  async def get_commondata_ack_callback(self, comm_data: NavGetCommDataAck | SvgMessageAckT) -> None:
118
+ """Asynchronously calls the appropriate callback based on available handlers."""
117
119
  if self.cloud_get_commondata_ack_callback:
118
120
  await self.cloud_get_commondata_ack_callback(comm_data)
119
121
  elif self.ble_get_commondata_ack_callback:
@@ -1,21 +1,42 @@
1
1
  import asyncio
2
+ from collections.abc import Callable
3
+ from types import MethodType
2
4
  from typing import Any
5
+ import weakref
3
6
 
4
7
 
5
8
  class Event:
6
9
  def __init__(self) -> None:
7
- self.__eventhandlers = []
10
+ self.__eventhandlers: list[weakref.ReferenceType] = []
8
11
 
9
- def __iadd__(self, handler):
10
- self.__eventhandlers.append(handler)
12
+ def __iadd__(self, handler: Callable) -> "Event":
13
+ if isinstance(handler, MethodType):
14
+ # Instance method, use WeakMethod
15
+ ref = weakref.WeakMethod(handler)
16
+ else:
17
+ # Function or static method, use weakref.ref
18
+ ref = weakref.ref(handler)
19
+ self.__eventhandlers.append(ref)
11
20
  return self
12
21
 
13
- def __isub__(self, handler):
14
- self.__eventhandlers.remove(handler)
22
+ def __isub__(self, handler: Callable) -> "Event":
23
+ self.__eventhandlers = [ref for ref in self.__eventhandlers if ref() is not handler]
15
24
  return self
16
25
 
17
26
  async def __call__(self, *args: Any, **kwargs: Any) -> None:
18
- await asyncio.gather(*[handler(*args, **kwargs) for handler in self.__eventhandlers])
27
+ live_handlers = []
28
+ for ref in self.__eventhandlers:
29
+ func = ref()
30
+ if func is not None:
31
+ live_handlers.append(func(*args, **kwargs))
32
+ await asyncio.gather(*live_handlers)
33
+
34
+ # Clean up dead references
35
+ self.__eventhandlers = [ref for ref in self.__eventhandlers if ref() is not None]
36
+
37
+ def has_dead_handlers(self) -> bool:
38
+ """Check if any handlers have been garbage collected."""
39
+ return any(ref() is None for ref in self.__eventhandlers)
19
40
 
20
41
 
21
42
  class MoveEvent:
pymammotion/http/http.py CHANGED
@@ -18,7 +18,7 @@ class MammotionHTTP:
18
18
  self._password = None
19
19
  self.response: Response | None = None
20
20
  self.login_info: LoginResponseData | None = None
21
- self._headers = {"User-Agent": "okhttp/4.9.3", "App-Version": "google Pixel 2 XL taimen-Android 11,1.11.332"}
21
+ self._headers = {"User-Agent": "okhttp/4.9.3", "App-Version": "Home Assistant,1.14.2.29"}
22
22
  self.encryption_utils = EncryptionUtils()
23
23
 
24
24
  @staticmethod
@@ -93,12 +93,13 @@ class MammotionHTTP:
93
93
  print(data)
94
94
 
95
95
  async def get_stream_subscription(self, iot_id: str) -> Response[StreamSubscriptionResponse]:
96
- """Get agora.io data for view camera stream"""
96
+ """Fetches stream subscription data from agora.io for a given IoT device."""
97
97
  async with ClientSession(MAMMOTION_API_DOMAIN) as session:
98
98
  async with session.post(
99
99
  "/device-server/v1/stream/subscription",
100
100
  json={"deviceId": iot_id},
101
101
  headers={
102
+ **self._headers,
102
103
  "Authorization": f"Bearer {self.login_info.access_token}",
103
104
  "Content-Type": "application/json",
104
105
  "User-Agent": "okhttp/4.9.3",
@@ -116,9 +117,8 @@ class MammotionHTTP:
116
117
  async def get_stream_subscription_mini_or_x_series(
117
118
  self, iot_id: str, is_yuka: bool
118
119
  ) -> Response[StreamSubscriptionResponse]:
119
- """Get agora.io data for view camera stream (New models 2025)"""
120
-
121
120
  # Prepare the payload with cameraStates based on is_yuka flag
121
+ """Fetches stream subscription data for a given IoT device."""
122
122
  payload = {"deviceId": iot_id, "mode": 0, "cameraStates": []}
123
123
 
124
124
  # Add appropriate cameraStates based on the is_yuka flag
@@ -132,6 +132,7 @@ class MammotionHTTP:
132
132
  "/device-server/v1/stream/token",
133
133
  json=payload,
134
134
  headers={
135
+ **self._headers,
135
136
  "Authorization": f"Bearer {self.login_info.access_token}",
136
137
  "Content-Type": "application/json",
137
138
  "User-Agent": "okhttp/4.9.3",
@@ -147,7 +148,7 @@ class MammotionHTTP:
147
148
  return response
148
149
 
149
150
  async def get_video_resource(self, iot_id: str) -> Response[VideoResourceResponse]:
150
- """Get video resource for new models (2025 series)"""
151
+ """Fetch video resource for a given IoT ID."""
151
152
  async with ClientSession(MAMMOTION_API_DOMAIN) as session:
152
153
  async with session.get(
153
154
  f"/device-server/v1/video-resource/{iot_id}",
@@ -167,12 +168,13 @@ class MammotionHTTP:
167
168
  return response
168
169
 
169
170
  async def get_device_ota_firmware(self, iot_ids: list[str]) -> Response[list[CheckDeviceVersion]]:
170
- """Device firmware upgrade check."""
171
+ """Checks device firmware versions for a list of IoT IDs."""
171
172
  async with ClientSession(MAMMOTION_API_DOMAIN) as session:
172
173
  async with session.post(
173
174
  "/device-server/v1/devices/version/check",
174
175
  json={"deviceIds": iot_ids},
175
176
  headers={
177
+ **self._headers,
176
178
  "Authorization": f"Bearer {self.login_info.access_token}",
177
179
  "Content-Type": "application/json",
178
180
  "User-Agent": "okhttp/4.9.3",
@@ -184,12 +186,13 @@ class MammotionHTTP:
184
186
  return response_factory(Response[list[CheckDeviceVersion]], data)
185
187
 
186
188
  async def start_ota_upgrade(self, iot_id: str, version: str) -> Response[str]:
187
- """Device firmware upgrade."""
189
+ """Initiates an OTA upgrade for a device."""
188
190
  async with ClientSession(MAMMOTION_API_DOMAIN) as session:
189
191
  async with session.post(
190
192
  "/device-server/v1/ota/device/upgrade",
191
193
  json={"deviceId": iot_id, "version": version},
192
194
  headers={
195
+ **self._headers,
193
196
  "Authorization": f"Bearer {self.login_info.access_token}",
194
197
  "Content-Type": "application/json",
195
198
  "User-Agent": "okhttp/4.9.3",
@@ -208,14 +211,14 @@ class MammotionHTTP:
208
211
  return await self.login(account, self._password)
209
212
 
210
213
  async def login(self, account: str, password: str) -> Response[LoginResponseData]:
214
+ """Logs in to the service using provided account and password."""
211
215
  self.account = account
212
216
  self._password = password
213
217
  async with ClientSession(MAMMOTION_DOMAIN) as session:
214
218
  async with session.post(
215
219
  "/oauth/token",
216
220
  headers={
217
- "User-Agent": "okhttp/4.9.3",
218
- "App-Version": "google Pixel 2 XL taimen-Android 11,1.11.332",
221
+ **self._headers,
219
222
  "Encrypt-Key": self.encryption_utils.encrypt_by_public_key(),
220
223
  "Decrypt-Type": "3",
221
224
  "Ec-Version": "v1",
@@ -6,6 +6,21 @@ T = TypeVar("T")
6
6
 
7
7
 
8
8
  def deserialize_data(value, target_type):
9
+ """Deserialize data into a specified target type.
10
+
11
+ The function handles deserialization of basic types, lists, and unions. It
12
+ recursively processes list elements and supports optional types by handling
13
+ Union[T, None]. For custom types with a `from_dict` method, it calls this
14
+ method for deserialization. If the target type is unknown or unsupported, it
15
+ returns the value unchanged.
16
+
17
+ Args:
18
+ value: The data to be deserialized.
19
+ target_type (type): The desired type into which the data should be deserialized.
20
+
21
+ Returns:
22
+ The deserialized data in the specified target type.
23
+ """
9
24
  if value is None:
10
25
  return None
11
26
 
@@ -30,6 +45,7 @@ def deserialize_data(value, target_type):
30
45
 
31
46
  def response_factory(response_cls: type[Response[T]], raw_dict: dict) -> Response[T]:
32
47
  # Extract the type of the generic `data` field
48
+ """Create a Response instance from a dictionary."""
33
49
  data_type = get_args(response_cls)[0] if get_args(response_cls) else None
34
50
 
35
51
  if data_type:
@@ -2,7 +2,7 @@ import asyncio
2
2
  from collections.abc import Awaitable, Callable
3
3
  import logging
4
4
  import time
5
- from typing import Any, cast
5
+ from typing import Any
6
6
  from uuid import UUID
7
7
 
8
8
  import betterproto
@@ -100,11 +100,20 @@ class MammotionBaseBLEDevice(MammotionBaseDevice):
100
100
  loop = asyncio.get_event_loop()
101
101
  loop.create_task(self.process_queue())
102
102
 
103
+ def __del__(self) -> None:
104
+ """Cleanup."""
105
+ if self._disconnect_timer:
106
+ self._disconnect_timer.cancel()
107
+ if self._ble_sync_task:
108
+ self._ble_sync_task.cancel()
109
+
110
+ self._state_manager.ble_queue_command_callback.remove_subscribers(self.queue_command)
111
+
103
112
  def set_notification_callback(self, func: Callable[[tuple[str, Any | None]], Awaitable[None]]) -> None:
104
- self._state_manager.ble_on_notification_callback = func
113
+ self._state_manager.ble_on_notification_callback.add_subscribers(func)
105
114
 
106
115
  def set_queue_callback(self, func: Callable[[str, dict[str, Any]], Awaitable[None]]) -> None:
107
- self._state_manager.ble_queue_command_callback = func
116
+ self._state_manager.ble_queue_command_callback.add_subscribers(func)
108
117
 
109
118
  def update_device(self, device: BLEDevice) -> None:
110
119
  """Update the BLE device."""
@@ -233,10 +242,12 @@ class MammotionBaseBLEDevice(MammotionBaseDevice):
233
242
  @property
234
243
  def rssi(self) -> int:
235
244
  """Return RSSI of device."""
236
- try:
237
- return cast(self.mower.sys.toapp_report_data.connect.ble_rssi, int)
238
- finally:
239
- return 0
245
+ return self.mower.report_data.connect.ble_rssi
246
+
247
+ @property
248
+ def client(self) -> BleakClientWithServiceCache | None:
249
+ """Return client."""
250
+ return self._client
240
251
 
241
252
  async def _ensure_connected(self) -> None:
242
253
  """Ensure connection to device is established."""
@@ -192,11 +192,15 @@ class MammotionBaseCloudDevice(MammotionBaseDevice):
192
192
  if self._ble_sync_task:
193
193
  self._ble_sync_task.cancel()
194
194
 
195
+ def __del__(self) -> None:
196
+ """Cleanup."""
197
+ self._state_manager.cloud_queue_command_callback.remove_subscribers(self.queue_command)
198
+
195
199
  def set_notification_callback(self, func: Callable[[tuple[str, Any | None]], Awaitable[None]]) -> None:
196
- self._state_manager.cloud_on_notification_callback = func
200
+ self._state_manager.cloud_on_notification_callback.add_subscribers(func)
197
201
 
198
202
  def set_queue_callback(self, func: Callable[[str, dict[str, Any]], Awaitable[None]]) -> None:
199
- self._state_manager.cloud_queue_command_callback = func
203
+ self._state_manager.cloud_queue_command_callback.add_subscribers(func)
200
204
 
201
205
  async def on_ready(self) -> None:
202
206
  """Callback for when MQTT is subscribed to events."""
@@ -14,29 +14,29 @@ _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\"C\n\x1bSysResetBladeUsedTimeStatus\x12$\n\x1creset_blade_used_time_status\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\x05label\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\"7\n\x1c\x61pp_to_dev_get_mqtt_config_t\x12\x17\n\x0fget_mqtt_config\x18\x01 \x01(\x05\"H\n\x1c\x64\x65v_to_app_get_mqtt_config_t\x12\x12\n\nrtk_status\x18\x01 \x01(\x05\x12\x14\n\x0crtk_base_num\x18\x02 \x01(\t\"t\n\x19\x61pp_to_dev_set_mqtt_rtk_t\x12$\n\x0cset_rtk_mode\x18\x01 \x01(\x0e\x32\x0e.rtk_used_type\x12\x16\n\x0estop_nrtk_flag\x18\x02 \x01(\x05\x12\x19\n\x11set_nrtk_net_mode\x18\x03 \x01(\x05\"7\n\x19\x64\x65v_to_app_set_mqtt_rtk_t\x12\x1a\n\x12set_rtk_mode_error\x18\x01 \x01(\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\"\xd4\x01\n\x10mqtt_rtk_connect\x12\"\n\nrtk_switch\x18\x01 \x01(\x0e\x32\x0e.rtk_used_type\x12\x13\n\x0brtk_channel\x18\x02 \x01(\x05\x12\x14\n\x0crtk_base_num\x18\x03 \x01(\t\x12\x10\n\x08latitude\x18\x04 \x01(\x01\x12\x11\n\tlongitude\x18\x05 \x01(\x01\x12\x1f\n\x17nrtk_map_convert_status\x18\x06 \x01(\x05\x12\x15\n\rnrtk_net_mode\x18\x07 \x01(\x05\x12\x14\n\x0cnew_rtk_mode\x18\x08 \x01(\x05\"\x86\x01\n\tpos_score\x12\x13\n\x0brover_score\x18\x01 \x01(\r\x12\x13\n\x0brover_level\x18\x02 \x01(\r\x12\x12\n\nbase_score\x18\x03 \x01(\r\x12\x12\n\nbase_level\x18\x04 \x01(\r\x12\x12\n\nbase_moved\x18\x05 \x01(\r\x12\x13\n\x0b\x62\x61se_moving\x18\x06 \x01(\r\"\xbb\x02\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\x12(\n\rmqtt_rtk_info\x18\r \x01(\x0b\x32\x11.mqtt_rtk_connect\x12\x1e\n\nscore_info\x18\x0e \x01(\x0b\x32\n.pos_score\"\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\"\x8b\x03\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\x12\x19\n\x11self_check_status\x18\x0c \x01(\r\x12$\n\x08\x66pv_info\x18\r \x01(\x0b\x32\x12.fpv_to_app_info_t\"-\n\tnet_speed\x12\x10\n\x08\x64ownload\x18\x01 \x01(\r\x12\x0e\n\x06upload\x18\x02 \x01(\r\"\xcd\x02\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\x12\x1a\n\x08mnet_cfg\x18\x08 \x01(\x0b\x32\x08.MnetCfg\x12!\n\rdev_net_speed\x18\t \x01(\x0b\x32\n.net_speed\x12\x17\n\x0fiot_wifi_report\x18\n \x01(\x08\x12\x16\n\x0eiot_con_status\x18\x0b \x01(\x05\x12\x17\n\x0fwifi_con_status\x18\x0c \x01(\x05\x12\x18\n\x10wifi_is_available\x18\r \x01(\x05\",\n\x13nav_heading_state_t\x12\x15\n\rheading_state\x18\x01 \x01(\r\"\xfe\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\x12/\n\x11nav_heading_state\x18\x15 \x01(\x0b\x32\x14.nav_heading_state_t\x12\x15\n\rcutter_offset\x18\x16 \x01(\x02\x12\x14\n\x0c\x63utter_width\x18\x17 \x01(\x02\"C\n\nblade_used\x12\x17\n\x0f\x62lade_used_time\x18\x01 \x01(\x05\x12\x1c\n\x14\x62lade_used_warn_time\x18\x02 \x01(\x05\"=\n\x1duser_set_blade_used_warn_time\x12\x1c\n\x14\x62lade_used_warn_time\x18\x01 \x01(\x05\"l\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\x12$\n\x0f\x62lade_used_time\x18\x04 \x01(\x0b\x32\x0b.blade_used\"[\n\x11\x66pv_to_app_info_t\x12\x10\n\x08\x66pv_flag\x18\x01 \x01(\x05\x12\x16\n\x0ewifi_available\x18\x02 \x01(\x05\x12\x1c\n\x14mobile_net_available\x18\x03 \x01(\x05\"\xa4\x01\n\x14rpt_basestation_info\x12\x11\n\tver_major\x18\x01 \x01(\r\x12\x11\n\tver_minor\x18\x02 \x01(\r\x12\x11\n\tver_patch\x18\x03 \x01(\r\x12\x11\n\tver_build\x18\x04 \x01(\r\x12\x1a\n\x12\x62\x61sestation_status\x18\x05 \x01(\r\x12$\n\x1c\x63onnect_status_since_poweron\x18\x06 \x01(\r\"\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\"\xed\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\x12/\n\x10\x62\x61sestation_info\x18\x0b \x01(\x0b\x32\x15.rpt_basestation_info\x12.\n\x15\x63utter_work_mode_info\x18\x0c \x01(\x0b\x32\x0f.rpt_cutter_rpm\"U\n\x15\x64\x65\x62ug_common_report_t\x12\x0e\n\x06m_name\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x10\n\x08gen_time\x18\x04 \x01(\x03\"W\n\x17\x64\x65\x62ug_errocode_report_t\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\r\n\x05mname\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x10\n\x08gen_time\x18\x04 \x01(\x03\" \n\x0e\x64\x65\x62ug_enable_t\x12\x0e\n\x06\x65nbale\x18\x01 \x01(\x05\"^\n\x17\x64\x65\x62ug_res_cfg_ability_t\x12\x12\n\ntotal_keys\x18\x01 \x01(\x05\x12\x12\n\ncur_key_id\x18\x02 \x01(\x05\x12\x0c\n\x04keys\x18\x03 \x01(\t\x12\r\n\x05value\x18\x04 \x01(\t\".\n\x10\x64\x65\x62ug_cfg_read_t\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"/\n\x11\x64\x65\x62ug_cfg_write_t\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\xa7\x01\n\nmsgbus_pkt\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x13\n\x0btypeCommand\x18\x02 \x01(\x05\x12\x14\n\x0crecvDeviceId\x18\x03 \x01(\x05\x12\x14\n\x0csendDeviceId\x18\x04 \x01(\x05\x12\x12\n\ndataLength\x18\x05 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\t\x12\x0c\n\x04\x63trl\x18\x07 \x01(\x05\x12\x0c\n\x04\x66lag\x18\x08 \x01(\x05\x12\x0c\n\x04seqs\x18\t \x01(\x05\"\xb1\x01\n\x13response_set_mode_t\x12\x0e\n\x06statue\x18\x01 \x01(\x05\x12\x15\n\rset_work_mode\x18\x02 \x01(\x05\x12\x15\n\rcur_work_mode\x18\x03 \x01(\x05\x12\x17\n\x0fstart_work_time\x18\x04 \x01(\x03\x12\x15\n\rend_work_time\x18\x05 \x01(\x03\x12\x15\n\rinterruptflag\x18\x06 \x01(\x05\x12\x15\n\rcur_work_time\x18\x07 \x01(\x05\"I\n\x0erpt_cutter_rpm\x12\x1b\n\x13\x63urrent_cutter_mode\x18\x01 \x01(\x05\x12\x1a\n\x12\x63urrent_cutter_rpm\x18\x02 \x01(\x05\"\x8d\x02\n\x0c\x64\x65v_statue_t\x12\x12\n\nsys_status\x18\x01 \x01(\x05\x12\x15\n\rcharge_status\x18\x02 \x01(\x05\x12\x0f\n\x07\x62\x61t_val\x18\x03 \x01(\x05\x12\x14\n\x0cwheel_status\x18\x04 \x01(\x05\x12\x13\n\x0bpump_status\x18\x05 \x01(\x05\x12\x11\n\twork_mode\x18\x06 \x01(\x05\x12\r\n\x05model\x18\x07 \x01(\x05\x12\x10\n\x08\x62le_rssi\x18\x08 \x01(\x05\x12\x11\n\twifi_rssi\x18\t \x01(\x05\x12\x1b\n\x13wifi_connect_status\x18\n \x01(\x05\x12\x1a\n\x12iot_connect_status\x18\x0b \x01(\x05\x12\x16\n\x0ewifi_available\x18\x0c \x01(\x05\"2\n\rreport_info_t\x12!\n\ndev_status\x18\x01 \x01(\x0b\x32\r.dev_statue_t\" \n\x0bwork_mode_t\x12\x11\n\twork_mode\x18\x01 \x01(\x05\"Q\n\x0especial_mode_t\x12\x12\n\nstair_mode\x18\x01 \x01(\x05\x12\x14\n\x0cviolent_mode\x18\x02 \x01(\x05\x12\x15\n\rberthing_mode\x18\x03 \x01(\x05\"(\n\x11set_peripherals_t\x12\x13\n\x0b\x62uzz_enable\x18\x01 \x01(\x05\"K\n\x10\x64\x65\x62ug_sun_time_t\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\x12\x13\n\x0bsunRiseTime\x18\x02 \x01(\x05\x12\x12\n\nsunSetTime\x18\x03 \x01(\x05\"l\n\x12remote_reset_req_t\x12\r\n\x05magic\x18\x01 \x01(\x05\x12\r\n\x05\x62izid\x18\x02 \x01(\x03\x12\x12\n\nreset_mode\x18\x03 \x01(\x05\x12\x13\n\x0b\x66orce_reset\x18\x04 \x01(\x05\x12\x0f\n\x07\x61\x63\x63ount\x18\x05 \x01(\x03\"S\n\x12remote_reset_rsp_t\x12\r\n\x05magic\x18\x01 \x01(\x05\x12\r\n\x05\x62izid\x18\x02 \x01(\x03\x12\x1f\n\x06result\x18\x03 \x01(\x0e\x32\x0f.Command_Result\"\xb1\x16\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\x12G\n\x1e\x61pp_to_dev_get_mqtt_config_msg\x18+ \x01(\x0b\x32\x1d.app_to_dev_get_mqtt_config_tH\x00\x12G\n\x1e\x64\x65v_to_app_get_mqtt_config_msg\x18, \x01(\x0b\x32\x1d.dev_to_app_get_mqtt_config_tH\x00\x12\x41\n\x1b\x61pp_to_dev_set_mqtt_rtk_msg\x18- \x01(\x0b\x32\x1a.app_to_dev_set_mqtt_rtk_tH\x00\x12\x41\n\x1b\x64\x65v_to_app_set_mqtt_rtk_msg\x18. \x01(\x0b\x32\x1a.dev_to_app_set_mqtt_rtk_tH\x00\x12%\n\x1btodev_reset_blade_used_time\x18/ \x01(\x05H\x00\x12J\n\"todev_reset_blade_used_time_status\x18\x30 \x01(\x0b\x32\x1c.SysResetBladeUsedTimeStatusH\x00\x12#\n\x19todev_factor_reset_system\x18\x31 \x01(\x05H\x00\x12>\n\x14\x62lade_used_warn_time\x18\x32 \x01(\x0b\x32\x1e.user_set_blade_used_warn_timeH\x00\x12\x35\n\x13\x64\x65\x62ug_common_report\x18\x33 \x01(\x0b\x32\x16.debug_common_report_tH\x00\x12\x39\n\x15\x64\x65\x62ug_errocode_report\x18\x34 \x01(\x0b\x32\x18.debug_errocode_report_tH\x00\x12\'\n\x0c\x64\x65\x62ug_enable\x18\x35 \x01(\x0b\x32\x0f.debug_enable_tH\x00\x12+\n\x0e\x64\x65\x62ug_cfg_read\x18\x36 \x01(\x0b\x32\x11.debug_cfg_read_tH\x00\x12-\n\x0f\x64\x65\x62ug_cfg_write\x18\x37 \x01(\x0b\x32\x12.debug_cfg_write_tH\x00\x12\x39\n\x15\x64\x65\x62ug_res_cfg_ability\x18\x38 \x01(\x0b\x32\x18.debug_res_cfg_ability_tH\x00\x12$\n\rto_dev_msgbus\x18\x39 \x01(\x0b\x32\x0b.msgbus_pktH\x00\x12$\n\rto_app_msgbus\x18: \x01(\x0b\x32\x0b.msgbus_pktH\x00\x12\x31\n\x11response_set_mode\x18; \x01(\x0b\x32\x14.response_set_mode_tH\x00\x12%\n\x0breport_info\x18< \x01(\x0b\x32\x0e.report_info_tH\x00\x12%\n\rset_work_mode\x18= \x01(\x0b\x32\x0c.work_mode_tH\x00\x12+\n\x10set_special_mode\x18> \x01(\x0b\x32\x0f.special_mode_tH\x00\x12-\n\x0fset_peripherals\x18? \x01(\x0b\x32\x12.set_peripherals_tH\x00\x12\x30\n\x13to_dev_set_sun_time\x18@ \x01(\x0b\x32\x11.debug_sun_time_tH\x00\x12\x32\n\x13to_dev_remote_reset\x18\x41 \x01(\x0b\x32\x13.remote_reset_req_tH\x00\x12\x32\n\x13to_app_remote_reset\x18\x42 \x01(\x0b\x32\x13.remote_reset_rsp_tH\x00\x12.\n\x13\x63urrent_cutter_mode\x18\x43 \x01(\x0b\x32\x0f.rpt_cutter_rpmH\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*\xe5\x08\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\x1d\n\x19QC_APP_TEST_CHARGE_STATUS\x10\x1d\x12\x1e\n\x1aQC_APP_TEST_PPS_EXTI_COUNT\x10\x1e\x12\x18\n\x14QC_APP_TEST_SAFE_KEY\x10\x32\x12\x19\n\x15QC_APP_TEST_LORA_RSSI\x10<\x12\x1a\n\x16QC_APP_TEST_WIPER_TEST\x10P\x12\x1d\n\x19QC_APP_TEST_HEADLAMP_TEST\x10Q\x12\x1f\n\x1bQC_APP_TEST_COMPLETE_SIGNAL\x10\x63\x12\x13\n\x0fQC_APP_TEST_MAX\x10\x64*L\n\rrtk_used_type\x12\x11\n\rRTK_USED_LORA\x10\x00\x12\x15\n\x11RTK_USED_INTERNET\x10\x01\x12\x11\n\rRTK_USED_NRTK\x10\x02*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*\xee\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\x12\x18\n\x14RIT_BASESTATION_INFO\x10\n\x12\x13\n\x0fRIT_CUTTER_INFO\x10\x0b*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*R\n\x0e\x43ommand_Result\x12\t\n\x05RS_OK\x10\x00\x12\x11\n\rRS_FAIL_MAGIC\x10\x01\x12\x0f\n\x0bRS_FAIL_OTA\x10\x02\x12\x11\n\rRS_FAIL_SLOPE\x10\x03\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\"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\"C\n\x1bSysResetBladeUsedTimeStatus\x12$\n\x1creset_blade_used_time_status\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\x05label\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\"7\n\x1c\x61pp_to_dev_get_mqtt_config_t\x12\x17\n\x0fget_mqtt_config\x18\x01 \x01(\x05\"H\n\x1c\x64\x65v_to_app_get_mqtt_config_t\x12\x12\n\nrtk_status\x18\x01 \x01(\x05\x12\x14\n\x0crtk_base_num\x18\x02 \x01(\t\"t\n\x19\x61pp_to_dev_set_mqtt_rtk_t\x12$\n\x0cset_rtk_mode\x18\x01 \x01(\x0e\x32\x0e.rtk_used_type\x12\x16\n\x0estop_nrtk_flag\x18\x02 \x01(\x05\x12\x19\n\x11set_nrtk_net_mode\x18\x03 \x01(\x05\"7\n\x19\x64\x65v_to_app_set_mqtt_rtk_t\x12\x1a\n\x12set_rtk_mode_error\x18\x01 \x01(\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\"\xd4\x01\n\x10mqtt_rtk_connect\x12\"\n\nrtk_switch\x18\x01 \x01(\x0e\x32\x0e.rtk_used_type\x12\x13\n\x0brtk_channel\x18\x02 \x01(\x05\x12\x14\n\x0crtk_base_num\x18\x03 \x01(\t\x12\x10\n\x08latitude\x18\x04 \x01(\x01\x12\x11\n\tlongitude\x18\x05 \x01(\x01\x12\x1f\n\x17nrtk_map_convert_status\x18\x06 \x01(\x05\x12\x15\n\rnrtk_net_mode\x18\x07 \x01(\x05\x12\x14\n\x0cnew_rtk_mode\x18\x08 \x01(\x05\"\x86\x01\n\tpos_score\x12\x13\n\x0brover_score\x18\x01 \x01(\r\x12\x13\n\x0brover_level\x18\x02 \x01(\r\x12\x12\n\nbase_score\x18\x03 \x01(\r\x12\x12\n\nbase_level\x18\x04 \x01(\r\x12\x12\n\nbase_moved\x18\x05 \x01(\r\x12\x13\n\x0b\x62\x61se_moving\x18\x06 \x01(\r\"\xbb\x02\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\x12(\n\rmqtt_rtk_info\x18\r \x01(\x0b\x32\x11.mqtt_rtk_connect\x12\x1e\n\nscore_info\x18\x0e \x01(\x0b\x32\n.pos_score\"\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\"\x8b\x03\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\x12\x19\n\x11self_check_status\x18\x0c \x01(\r\x12$\n\x08\x66pv_info\x18\r \x01(\x0b\x32\x12.fpv_to_app_info_t\"-\n\tnet_speed\x12\x10\n\x08\x64ownload\x18\x01 \x01(\r\x12\x0e\n\x06upload\x18\x02 \x01(\r\"\xce\x02\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\x12\x1a\n\x08mnet_cfg\x18\x08 \x01(\x0b\x32\x08.MnetCfg\x12!\n\rdev_net_speed\x18\t \x01(\x0b\x32\n.net_speed\x12\x17\n\x0fiot_wifi_report\x18\n \x01(\x08\x12\x16\n\x0eiot_con_status\x18\x0b \x01(\x05\x12\x17\n\x0fwifi_con_status\x18\x0c \x01(\x05\x12\x19\n\x11wifi_is_available\x18\r \x01(\x05\",\n\x13nav_heading_state_t\x12\x15\n\rheading_state\x18\x01 \x01(\r\"\xfe\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\x12/\n\x11nav_heading_state\x18\x15 \x01(\x0b\x32\x14.nav_heading_state_t\x12\x15\n\rcutter_offset\x18\x16 \x01(\x02\x12\x14\n\x0c\x63utter_width\x18\x17 \x01(\x02\"C\n\nblade_used\x12\x17\n\x0f\x62lade_used_time\x18\x01 \x01(\x05\x12\x1c\n\x14\x62lade_used_warn_time\x18\x02 \x01(\x05\"=\n\x1duser_set_blade_used_warn_time\x12\x1c\n\x14\x62lade_used_warn_time\x18\x01 \x01(\x05\"l\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\x12$\n\x0f\x62lade_used_time\x18\x04 \x01(\x0b\x32\x0b.blade_used\"[\n\x11\x66pv_to_app_info_t\x12\x10\n\x08\x66pv_flag\x18\x01 \x01(\x05\x12\x16\n\x0ewifi_available\x18\x02 \x01(\x05\x12\x1c\n\x14mobile_net_available\x18\x03 \x01(\x05\"\xa4\x01\n\x14rpt_basestation_info\x12\x11\n\tver_major\x18\x01 \x01(\r\x12\x11\n\tver_minor\x18\x02 \x01(\r\x12\x11\n\tver_patch\x18\x03 \x01(\r\x12\x11\n\tver_build\x18\x04 \x01(\r\x12\x1a\n\x12\x62\x61sestation_status\x18\x05 \x01(\r\x12$\n\x1c\x63onnect_status_since_poweron\x18\x06 \x01(\r\"\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\"\xed\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\x12/\n\x10\x62\x61sestation_info\x18\x0b \x01(\x0b\x32\x15.rpt_basestation_info\x12.\n\x15\x63utter_work_mode_info\x18\x0c \x01(\x0b\x32\x0f.rpt_cutter_rpm\"U\n\x15\x64\x65\x62ug_common_report_t\x12\x0e\n\x06m_name\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x10\n\x08gen_time\x18\x04 \x01(\x03\"W\n\x17\x64\x65\x62ug_errocode_report_t\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\r\n\x05mname\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x10\n\x08gen_time\x18\x04 \x01(\x03\" \n\x0e\x64\x65\x62ug_enable_t\x12\x0e\n\x06\x65nbale\x18\x01 \x01(\x05\"^\n\x17\x64\x65\x62ug_res_cfg_ability_t\x12\x12\n\ntotal_keys\x18\x01 \x01(\x05\x12\x12\n\ncur_key_id\x18\x02 \x01(\x05\x12\x0c\n\x04keys\x18\x03 \x01(\t\x12\r\n\x05value\x18\x04 \x01(\t\".\n\x10\x64\x65\x62ug_cfg_read_t\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"/\n\x11\x64\x65\x62ug_cfg_write_t\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"\xa7\x01\n\nmsgbus_pkt\x12\x0c\n\x04type\x18\x01 \x01(\x05\x12\x13\n\x0btypeCommand\x18\x02 \x01(\x05\x12\x14\n\x0crecvDeviceId\x18\x03 \x01(\x05\x12\x14\n\x0csendDeviceId\x18\x04 \x01(\x05\x12\x12\n\ndataLength\x18\x05 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x06 \x01(\t\x12\x0c\n\x04\x63trl\x18\x07 \x01(\x05\x12\x0c\n\x04\x66lag\x18\x08 \x01(\x05\x12\x0c\n\x04seqs\x18\t \x01(\x05\"\xb1\x01\n\x13response_set_mode_t\x12\x0e\n\x06statue\x18\x01 \x01(\x05\x12\x15\n\rset_work_mode\x18\x02 \x01(\x05\x12\x15\n\rcur_work_mode\x18\x03 \x01(\x05\x12\x17\n\x0fstart_work_time\x18\x04 \x01(\x03\x12\x15\n\rend_work_time\x18\x05 \x01(\x03\x12\x15\n\rinterruptflag\x18\x06 \x01(\x05\x12\x15\n\rcur_work_time\x18\x07 \x01(\x05\"I\n\x0erpt_cutter_rpm\x12\x1b\n\x13\x63urrent_cutter_mode\x18\x01 \x01(\x05\x12\x1a\n\x12\x63urrent_cutter_rpm\x18\x02 \x01(\x05\"\x8d\x02\n\x0c\x64\x65v_statue_t\x12\x12\n\nsys_status\x18\x01 \x01(\x05\x12\x15\n\rcharge_status\x18\x02 \x01(\x05\x12\x0f\n\x07\x62\x61t_val\x18\x03 \x01(\x05\x12\x14\n\x0cwheel_status\x18\x04 \x01(\x05\x12\x13\n\x0bpump_status\x18\x05 \x01(\x05\x12\x11\n\twork_mode\x18\x06 \x01(\x05\x12\r\n\x05model\x18\x07 \x01(\x05\x12\x10\n\x08\x62le_rssi\x18\x08 \x01(\x05\x12\x11\n\twifi_rssi\x18\t \x01(\x05\x12\x1b\n\x13wifi_connect_status\x18\n \x01(\x05\x12\x1a\n\x12iot_connect_status\x18\x0b \x01(\x05\x12\x16\n\x0ewifi_available\x18\x0c \x01(\x05\"2\n\rreport_info_t\x12!\n\ndev_status\x18\x01 \x01(\x0b\x32\r.dev_statue_t\" \n\x0bwork_mode_t\x12\x11\n\twork_mode\x18\x01 \x01(\x05\"Q\n\x0especial_mode_t\x12\x12\n\nstair_mode\x18\x01 \x01(\x05\x12\x14\n\x0cviolent_mode\x18\x02 \x01(\x05\x12\x15\n\rberthing_mode\x18\x03 \x01(\x05\"(\n\x11set_peripherals_t\x12\x13\n\x0b\x62uzz_enable\x18\x01 \x01(\x05\"K\n\x10\x64\x65\x62ug_sun_time_t\x12\x0e\n\x06subCmd\x18\x01 \x01(\x05\x12\x13\n\x0bsunRiseTime\x18\x02 \x01(\x05\x12\x12\n\nsunSetTime\x18\x03 \x01(\x05\"l\n\x12remote_reset_req_t\x12\r\n\x05magic\x18\x01 \x01(\x05\x12\r\n\x05\x62izid\x18\x02 \x01(\x03\x12\x12\n\nreset_mode\x18\x03 \x01(\x05\x12\x13\n\x0b\x66orce_reset\x18\x04 \x01(\x05\x12\x0f\n\x07\x61\x63\x63ount\x18\x05 \x01(\x03\"S\n\x12remote_reset_rsp_t\x12\r\n\x05magic\x18\x01 \x01(\x05\x12\r\n\x05\x62izid\x18\x02 \x01(\x03\x12\x1f\n\x06result\x18\x03 \x01(\x0e\x32\x0f.Command_Result\"\xb1\x16\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\x12G\n\x1e\x61pp_to_dev_get_mqtt_config_msg\x18+ \x01(\x0b\x32\x1d.app_to_dev_get_mqtt_config_tH\x00\x12G\n\x1e\x64\x65v_to_app_get_mqtt_config_msg\x18, \x01(\x0b\x32\x1d.dev_to_app_get_mqtt_config_tH\x00\x12\x41\n\x1b\x61pp_to_dev_set_mqtt_rtk_msg\x18- \x01(\x0b\x32\x1a.app_to_dev_set_mqtt_rtk_tH\x00\x12\x41\n\x1b\x64\x65v_to_app_set_mqtt_rtk_msg\x18. \x01(\x0b\x32\x1a.dev_to_app_set_mqtt_rtk_tH\x00\x12%\n\x1btodev_reset_blade_used_time\x18/ \x01(\x05H\x00\x12J\n\"todev_reset_blade_used_time_status\x18\x30 \x01(\x0b\x32\x1c.SysResetBladeUsedTimeStatusH\x00\x12#\n\x19todev_factor_reset_system\x18\x31 \x01(\x05H\x00\x12>\n\x14\x62lade_used_warn_time\x18\x32 \x01(\x0b\x32\x1e.user_set_blade_used_warn_timeH\x00\x12\x35\n\x13\x64\x65\x62ug_common_report\x18\x33 \x01(\x0b\x32\x16.debug_common_report_tH\x00\x12\x39\n\x15\x64\x65\x62ug_errocode_report\x18\x34 \x01(\x0b\x32\x18.debug_errocode_report_tH\x00\x12\'\n\x0c\x64\x65\x62ug_enable\x18\x35 \x01(\x0b\x32\x0f.debug_enable_tH\x00\x12+\n\x0e\x64\x65\x62ug_cfg_read\x18\x36 \x01(\x0b\x32\x11.debug_cfg_read_tH\x00\x12-\n\x0f\x64\x65\x62ug_cfg_write\x18\x37 \x01(\x0b\x32\x12.debug_cfg_write_tH\x00\x12\x39\n\x15\x64\x65\x62ug_res_cfg_ability\x18\x38 \x01(\x0b\x32\x18.debug_res_cfg_ability_tH\x00\x12$\n\rto_dev_msgbus\x18\x39 \x01(\x0b\x32\x0b.msgbus_pktH\x00\x12$\n\rto_app_msgbus\x18: \x01(\x0b\x32\x0b.msgbus_pktH\x00\x12\x31\n\x11response_set_mode\x18; \x01(\x0b\x32\x14.response_set_mode_tH\x00\x12%\n\x0breport_info\x18< \x01(\x0b\x32\x0e.report_info_tH\x00\x12%\n\rset_work_mode\x18= \x01(\x0b\x32\x0c.work_mode_tH\x00\x12+\n\x10set_special_mode\x18> \x01(\x0b\x32\x0f.special_mode_tH\x00\x12-\n\x0fset_peripherals\x18? \x01(\x0b\x32\x12.set_peripherals_tH\x00\x12\x30\n\x13to_dev_set_sun_time\x18@ \x01(\x0b\x32\x11.debug_sun_time_tH\x00\x12\x32\n\x13to_dev_remote_reset\x18\x41 \x01(\x0b\x32\x13.remote_reset_req_tH\x00\x12\x32\n\x13to_app_remote_reset\x18\x42 \x01(\x0b\x32\x13.remote_reset_rsp_tH\x00\x12.\n\x13\x63urrent_cutter_mode\x18\x43 \x01(\x0b\x32\x0f.rpt_cutter_rpmH\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*\xe5\x08\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\x1d\n\x19QC_APP_TEST_CHARGE_STATUS\x10\x1d\x12\x1e\n\x1aQC_APP_TEST_PPS_EXTI_COUNT\x10\x1e\x12\x18\n\x14QC_APP_TEST_SAFE_KEY\x10\x32\x12\x19\n\x15QC_APP_TEST_LORA_RSSI\x10<\x12\x1a\n\x16QC_APP_TEST_WIPER_TEST\x10P\x12\x1d\n\x19QC_APP_TEST_HEADLAMP_TEST\x10Q\x12\x1f\n\x1bQC_APP_TEST_COMPLETE_SIGNAL\x10\x63\x12\x13\n\x0fQC_APP_TEST_MAX\x10\x64*L\n\rrtk_used_type\x12\x11\n\rRTK_USED_LORA\x10\x00\x12\x15\n\x11RTK_USED_INTERNET\x10\x01\x12\x11\n\rRTK_USED_NRTK\x10\x02*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*\xee\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\x12\x18\n\x14RIT_BASESTATION_INFO\x10\n\x12\x13\n\x0fRIT_CUTTER_INFO\x10\x0b*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*R\n\x0e\x43ommand_Result\x12\t\n\x05RS_OK\x10\x00\x12\x11\n\rRS_FAIL_MAGIC\x10\x01\x12\x0f\n\x0bRS_FAIL_OTA\x10\x02\x12\x11\n\rRS_FAIL_SLOPE\x10\x03\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=11826
25
- _OPERATION._serialized_end=11869
26
- _OFFPARTID._serialized_start=11872
27
- _OFFPARTID._serialized_end=12141
28
- _QCAPPTESTID._serialized_start=12144
29
- _QCAPPTESTID._serialized_end=13269
30
- _RTK_USED_TYPE._serialized_start=13271
31
- _RTK_USED_TYPE._serialized_end=13347
32
- _NET_USED_TYPE._serialized_start=13349
33
- _NET_USED_TYPE._serialized_end=13436
34
- _RPT_INFO_TYPE._serialized_start=13439
35
- _RPT_INFO_TYPE._serialized_end=13677
36
- _RPT_ACT._serialized_start=13679
37
- _RPT_ACT._serialized_end=13731
38
- _COMMAND_RESULT._serialized_start=13733
39
- _COMMAND_RESULT._serialized_end=13815
24
+ _OPERATION._serialized_start=11827
25
+ _OPERATION._serialized_end=11870
26
+ _OFFPARTID._serialized_start=11873
27
+ _OFFPARTID._serialized_end=12142
28
+ _QCAPPTESTID._serialized_start=12145
29
+ _QCAPPTESTID._serialized_end=13270
30
+ _RTK_USED_TYPE._serialized_start=13272
31
+ _RTK_USED_TYPE._serialized_end=13348
32
+ _NET_USED_TYPE._serialized_start=13350
33
+ _NET_USED_TYPE._serialized_end=13437
34
+ _RPT_INFO_TYPE._serialized_start=13440
35
+ _RPT_INFO_TYPE._serialized_end=13678
36
+ _RPT_ACT._serialized_start=13680
37
+ _RPT_ACT._serialized_end=13732
38
+ _COMMAND_RESULT._serialized_start=13734
39
+ _COMMAND_RESULT._serialized_end=13816
40
40
  _SYSBATUP._serialized_start=70
41
41
  _SYSBATUP._serialized_end=96
42
42
  _SYSWORKSTATE._serialized_start=98
@@ -148,59 +148,59 @@ if _descriptor._USE_C_DESCRIPTORS == False:
148
148
  _NET_SPEED._serialized_start=5289
149
149
  _NET_SPEED._serialized_end=5334
150
150
  _RPT_CONNECT_STATUS._serialized_start=5337
151
- _RPT_CONNECT_STATUS._serialized_end=5670
152
- _NAV_HEADING_STATE_T._serialized_start=5672
153
- _NAV_HEADING_STATE_T._serialized_end=5716
154
- _RPT_WORK._serialized_start=5719
155
- _RPT_WORK._serialized_end=6229
156
- _BLADE_USED._serialized_start=6231
157
- _BLADE_USED._serialized_end=6298
158
- _USER_SET_BLADE_USED_WARN_TIME._serialized_start=6300
159
- _USER_SET_BLADE_USED_WARN_TIME._serialized_end=6361
160
- _RPT_MAINTAIN._serialized_start=6363
161
- _RPT_MAINTAIN._serialized_end=6471
162
- _FPV_TO_APP_INFO_T._serialized_start=6473
163
- _FPV_TO_APP_INFO_T._serialized_end=6564
164
- _RPT_BASESTATION_INFO._serialized_start=6567
165
- _RPT_BASESTATION_INFO._serialized_end=6731
166
- _REPORT_INFO_CFG._serialized_start=6734
167
- _REPORT_INFO_CFG._serialized_end=6877
168
- _REPORT_INFO_DATA._serialized_start=6880
169
- _REPORT_INFO_DATA._serialized_end=7373
170
- _DEBUG_COMMON_REPORT_T._serialized_start=7375
171
- _DEBUG_COMMON_REPORT_T._serialized_end=7460
172
- _DEBUG_ERROCODE_REPORT_T._serialized_start=7462
173
- _DEBUG_ERROCODE_REPORT_T._serialized_end=7549
174
- _DEBUG_ENABLE_T._serialized_start=7551
175
- _DEBUG_ENABLE_T._serialized_end=7583
176
- _DEBUG_RES_CFG_ABILITY_T._serialized_start=7585
177
- _DEBUG_RES_CFG_ABILITY_T._serialized_end=7679
178
- _DEBUG_CFG_READ_T._serialized_start=7681
179
- _DEBUG_CFG_READ_T._serialized_end=7727
180
- _DEBUG_CFG_WRITE_T._serialized_start=7729
181
- _DEBUG_CFG_WRITE_T._serialized_end=7776
182
- _MSGBUS_PKT._serialized_start=7779
183
- _MSGBUS_PKT._serialized_end=7946
184
- _RESPONSE_SET_MODE_T._serialized_start=7949
185
- _RESPONSE_SET_MODE_T._serialized_end=8126
186
- _RPT_CUTTER_RPM._serialized_start=8128
187
- _RPT_CUTTER_RPM._serialized_end=8201
188
- _DEV_STATUE_T._serialized_start=8204
189
- _DEV_STATUE_T._serialized_end=8473
190
- _REPORT_INFO_T._serialized_start=8475
191
- _REPORT_INFO_T._serialized_end=8525
192
- _WORK_MODE_T._serialized_start=8527
193
- _WORK_MODE_T._serialized_end=8559
194
- _SPECIAL_MODE_T._serialized_start=8561
195
- _SPECIAL_MODE_T._serialized_end=8642
196
- _SET_PERIPHERALS_T._serialized_start=8644
197
- _SET_PERIPHERALS_T._serialized_end=8684
198
- _DEBUG_SUN_TIME_T._serialized_start=8686
199
- _DEBUG_SUN_TIME_T._serialized_end=8761
200
- _REMOTE_RESET_REQ_T._serialized_start=8763
201
- _REMOTE_RESET_REQ_T._serialized_end=8871
202
- _REMOTE_RESET_RSP_T._serialized_start=8873
203
- _REMOTE_RESET_RSP_T._serialized_end=8956
204
- _MCTLSYS._serialized_start=8959
205
- _MCTLSYS._serialized_end=11824
151
+ _RPT_CONNECT_STATUS._serialized_end=5671
152
+ _NAV_HEADING_STATE_T._serialized_start=5673
153
+ _NAV_HEADING_STATE_T._serialized_end=5717
154
+ _RPT_WORK._serialized_start=5720
155
+ _RPT_WORK._serialized_end=6230
156
+ _BLADE_USED._serialized_start=6232
157
+ _BLADE_USED._serialized_end=6299
158
+ _USER_SET_BLADE_USED_WARN_TIME._serialized_start=6301
159
+ _USER_SET_BLADE_USED_WARN_TIME._serialized_end=6362
160
+ _RPT_MAINTAIN._serialized_start=6364
161
+ _RPT_MAINTAIN._serialized_end=6472
162
+ _FPV_TO_APP_INFO_T._serialized_start=6474
163
+ _FPV_TO_APP_INFO_T._serialized_end=6565
164
+ _RPT_BASESTATION_INFO._serialized_start=6568
165
+ _RPT_BASESTATION_INFO._serialized_end=6732
166
+ _REPORT_INFO_CFG._serialized_start=6735
167
+ _REPORT_INFO_CFG._serialized_end=6878
168
+ _REPORT_INFO_DATA._serialized_start=6881
169
+ _REPORT_INFO_DATA._serialized_end=7374
170
+ _DEBUG_COMMON_REPORT_T._serialized_start=7376
171
+ _DEBUG_COMMON_REPORT_T._serialized_end=7461
172
+ _DEBUG_ERROCODE_REPORT_T._serialized_start=7463
173
+ _DEBUG_ERROCODE_REPORT_T._serialized_end=7550
174
+ _DEBUG_ENABLE_T._serialized_start=7552
175
+ _DEBUG_ENABLE_T._serialized_end=7584
176
+ _DEBUG_RES_CFG_ABILITY_T._serialized_start=7586
177
+ _DEBUG_RES_CFG_ABILITY_T._serialized_end=7680
178
+ _DEBUG_CFG_READ_T._serialized_start=7682
179
+ _DEBUG_CFG_READ_T._serialized_end=7728
180
+ _DEBUG_CFG_WRITE_T._serialized_start=7730
181
+ _DEBUG_CFG_WRITE_T._serialized_end=7777
182
+ _MSGBUS_PKT._serialized_start=7780
183
+ _MSGBUS_PKT._serialized_end=7947
184
+ _RESPONSE_SET_MODE_T._serialized_start=7950
185
+ _RESPONSE_SET_MODE_T._serialized_end=8127
186
+ _RPT_CUTTER_RPM._serialized_start=8129
187
+ _RPT_CUTTER_RPM._serialized_end=8202
188
+ _DEV_STATUE_T._serialized_start=8205
189
+ _DEV_STATUE_T._serialized_end=8474
190
+ _REPORT_INFO_T._serialized_start=8476
191
+ _REPORT_INFO_T._serialized_end=8526
192
+ _WORK_MODE_T._serialized_start=8528
193
+ _WORK_MODE_T._serialized_end=8560
194
+ _SPECIAL_MODE_T._serialized_start=8562
195
+ _SPECIAL_MODE_T._serialized_end=8643
196
+ _SET_PERIPHERALS_T._serialized_start=8645
197
+ _SET_PERIPHERALS_T._serialized_end=8685
198
+ _DEBUG_SUN_TIME_T._serialized_start=8687
199
+ _DEBUG_SUN_TIME_T._serialized_end=8762
200
+ _REMOTE_RESET_REQ_T._serialized_start=8764
201
+ _REMOTE_RESET_REQ_T._serialized_end=8872
202
+ _REMOTE_RESET_RSP_T._serialized_start=8874
203
+ _REMOTE_RESET_RSP_T._serialized_end=8957
204
+ _MCTLSYS._serialized_start=8960
205
+ _MCTLSYS._serialized_end=11825
206
206
  # @@protoc_insertion_point(module_scope)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pymammotion
3
- Version: 0.4.57
3
+ Version: 0.5.1
4
4
  Summary:
5
5
  License: GPL-3.0
6
6
  Author: Michael Arthur
@@ -18,7 +18,7 @@ Requires-Dist: alicloud-gateway-iot (>=1.0.0,<2.0.0)
18
18
  Requires-Dist: async-timeout (>=4.0.3,<5.0.0)
19
19
  Requires-Dist: betterproto (>=1.2.5,<2.0.0)
20
20
  Requires-Dist: bleak (>=0.21.0)
21
- Requires-Dist: bleak-retry-connector (>=3.5.0,<4.0.0)
21
+ Requires-Dist: bleak-retry-connector (>=3.5.0)
22
22
  Requires-Dist: crcmod (>=1.7,<2.0)
23
23
  Requires-Dist: cryptography (>=43.0.1)
24
24
  Requires-Dist: jsonic (>=1.0.0,<2.0.0)
@@ -1,7 +1,7 @@
1
1
  pymammotion/__init__.py,sha256=H-U94bNLp0LPC6hkRopVEUlUsZSR97n7WfKGPjK1GMg,1638
2
2
  pymammotion/aliyun/__init__.py,sha256=T1lkX7TRYiL4nqYanG4l4MImV-SlavSbuooC-W-uUGw,29
3
3
  pymammotion/aliyun/client.py,sha256=GCpAnLOVWW_W0c8UvdRpWVzZH5oLto8JZnb82stJi-8,9662
4
- pymammotion/aliyun/cloud_gateway.py,sha256=xJN0GiR4-qMIBXUfGUFyKwqlRIAPGvbFi6GSoO3NfiM,29080
4
+ pymammotion/aliyun/cloud_gateway.py,sha256=dRsxFOm_ou1X0VjU-i5B5hee3ay3q6HK1bqEP0oK0EE,29717
5
5
  pymammotion/aliyun/model/aep_response.py,sha256=EY4uMTJ4F9rvbcXnAOc5YKi7q__9kIVgfDwfyr65Gk0,421
6
6
  pymammotion/aliyun/model/connect_response.py,sha256=Yz-fEbDzgGPTo5Of2oAjmFkSv08T7ze80pQU4k-gKIU,824
7
7
  pymammotion/aliyun/model/dev_by_account_response.py,sha256=P9yYy4Z2tLkJSqXA_5XGaCUliSSVa5ILl7VoMtL_tCA,977
@@ -45,17 +45,17 @@ pymammotion/data/mqtt/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdr
45
45
  pymammotion/data/mqtt/event.py,sha256=C8TGRJs9wNxwg9FFmr9qcsweDnl5v5kcVcwiHxtYzJw,5384
46
46
  pymammotion/data/mqtt/properties.py,sha256=FMZHDwKO-vZeaMP0ewVZ22wgBVhi244l2ZAWb9wFANQ,4259
47
47
  pymammotion/data/mqtt/status.py,sha256=SgdrpE1Uldb01hybO6hYhgU1Sp1eILghC0UhMZMHrdQ,1091
48
- pymammotion/data/state_manager.py,sha256=vs0sZQ7S36_OMQjmRk-PJxtixIrjgsMZgu1dAwjL9wk,11616
48
+ pymammotion/data/state_manager.py,sha256=Y3doVfn-ahzSZoC-0h0fMAyyGfrixDPMtXOcyNONnHE,11484
49
49
  pymammotion/event/__init__.py,sha256=mgATR6vPHACNQ-0zH5fi7NdzeTCDV1CZyaWPmtUusi8,115
50
- pymammotion/event/event.py,sha256=bj2RirSIRyBs0QvkcrOtwZWUX_8F3m1sySuHVyKmZLs,2143
50
+ pymammotion/event/event.py,sha256=Z8WYxv_-5khEqKjL1w4c_Et24G1Kdm8QFuIBylD3h3U,3021
51
51
  pymammotion/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  pymammotion/http/_init_.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
53
  pymammotion/http/encryption.py,sha256=lzXu3WwBdQlzjXxWnlJuRgkCrKdPbxx5drhMitVKIEk,8287
54
- pymammotion/http/http.py,sha256=wb2Jef_dHEG_TjJeDxTLTKfySp6KPjacv2ElJpLdY8Y,11939
54
+ pymammotion/http/http.py,sha256=_Umuj6DKnTiDZ_y6C6DqPvHMRxKvqHqM0G_1QlsmHN8,12103
55
55
  pymammotion/http/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
56
  pymammotion/http/model/camera_stream.py,sha256=ilxQNny_w9Frwt-m8kbHinvyjDv4Bx8C2swfZ2lTEDE,600
57
57
  pymammotion/http/model/http.py,sha256=VDBmi9nyY5Y2ns_HYvKIyzbkKRxhZ5elpq0lWXWzbGw,4123
58
- pymammotion/http/model/response_factory.py,sha256=lM5yfwlv2IZGn4Fk84BG3cmfXPd6dxQUnhXzRKn2Moc,1236
58
+ pymammotion/http/model/response_factory.py,sha256=f5_ZR0-4sLOU-q28BVy5sQOReSoND2A8UvpOOwnwrzA,1936
59
59
  pymammotion/mammotion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
60
  pymammotion/mammotion/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
61
  pymammotion/mammotion/commands/abstract_message.py,sha256=P5FcjGkfoQ1O4Q9JKdq306TisQnJ40xDXufR-juNn8k,792
@@ -73,8 +73,8 @@ pymammotion/mammotion/control/joystick.py,sha256=QfBVxM_gxpWsZAGO90whtgxCI2tIZ3T
73
73
  pymammotion/mammotion/devices/__init__.py,sha256=f2qQFPgLGmV85W2hSlMUh5BYuht9o_Ar_JEAAMD4fsE,102
74
74
  pymammotion/mammotion/devices/base.py,sha256=qDh7P7fnakDKgxTqjNLcQg8eE-6gHJaXAV0ONjhy_IU,12038
75
75
  pymammotion/mammotion/devices/mammotion.py,sha256=iXXV_jqv8w35ugaMRev3lEp_oKJTob54LZ6ZF659h-Y,15087
76
- pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=NJBULjxU4Mvn71N39Pp9vPPli78dpc6oTq47jF6IZWE,18967
77
- pymammotion/mammotion/devices/mammotion_cloud.py,sha256=g-2O4Lj5pFwCuc5dzLmCbyOa3RIayXP0uR3cLXECRRA,14635
76
+ pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=dSDw8xLUfAU2c9vKX65w87Rm2E78284WjJ72CKniPt4,19349
77
+ pymammotion/mammotion/devices/mammotion_cloud.py,sha256=YvBtuYoWPaNKrcDQWS2pj2lxhuJqmhDUWb8epQUCeXE,14816
78
78
  pymammotion/mqtt/__init__.py,sha256=Ocs5e-HLJvTuDpVXyECEsWIvwsUaxzj7lZ9mSYutNDY,105
79
79
  pymammotion/mqtt/linkkit/__init__.py,sha256=ENgc3ynd2kd9gMQR3-kgmCu6Ed9Y6XCIzU0zFReUlkk,80
80
80
  pymammotion/mqtt/linkkit/h2client.py,sha256=w9Nvi_nY4CLD_fw-pHtYChwQf7e2TiAGeqkY_sF4cf0,19659
@@ -110,7 +110,7 @@ pymammotion/proto/mctrl_pept.proto,sha256=E-kp3dLPTbnrnRz4x1hFHfIbv4IYs2lHL8Nhs7
110
110
  pymammotion/proto/mctrl_pept_pb2.py,sha256=7rM3ZSn2XyPD0k2FUhL0zDrHmyC15ZUJgMXqx0biptg,2436
111
111
  pymammotion/proto/mctrl_pept_pb2.pyi,sha256=rYmmllXOmHqz7PRn7IWGSkGjKmJRHI4HNA7ZkYipK_g,3308
112
112
  pymammotion/proto/mctrl_sys.proto,sha256=A6qEkLRoMKdC-Zb789E1kmep6lXa3H0KoHeVLXb9DkI,15939
113
- pymammotion/proto/mctrl_sys_pb2.py,sha256=1INowHlUWZu3grDektb1lMhYuysJOTYHGNMKM77uWR8,33160
113
+ pymammotion/proto/mctrl_sys_pb2.py,sha256=HujvgOTzE4PKct_-fdaXXwnt5E_HqLMH4WOEQ0zDZO8,33160
114
114
  pymammotion/proto/mctrl_sys_pb2.pyi,sha256=N1sJJMx7qWsj1kKYoQJ4JEZanZetLZ5JThs1IXCChUE,61557
115
115
  pymammotion/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
116
  pymammotion/utility/constant/__init__.py,sha256=tcY0LDeD-qDDHx2LKt55KOyv9ZI0UfCNM6fknLCmm8s,110
@@ -124,7 +124,7 @@ pymammotion/utility/movement.py,sha256=N75oAoAgFydqoaOedYIxGUHmuTCtPzAOtb-d_29tp
124
124
  pymammotion/utility/mur_mur_hash.py,sha256=xEfOZVbqRawJj66eLgtnZ85OauDR47oIPr29OHelzPI,4468
125
125
  pymammotion/utility/periodic.py,sha256=MbeSb9cfhxzYmdT_RiE0dZe3H9IfbQW_zSqhmSX2RUc,3321
126
126
  pymammotion/utility/rocker_util.py,sha256=6tX7sS87qoQC_tsxbx3NLL-HgS08wtzXiZkhDiz7uo0,7179
127
- pymammotion-0.4.57.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
128
- pymammotion-0.4.57.dist-info/METADATA,sha256=oyu6z5e1iaPAVa5eyfHaexrifodSW6Aj4GyBdLX89nM,3878
129
- pymammotion-0.4.57.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
130
- pymammotion-0.4.57.dist-info/RECORD,,
127
+ pymammotion-0.5.1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
128
+ pymammotion-0.5.1.dist-info/METADATA,sha256=xxLNaAy_fpnXzUHLfWVbN5Ts9VMkfKiPeDuc_OtGhPo,3870
129
+ pymammotion-0.5.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
130
+ pymammotion-0.5.1.dist-info/RECORD,,