pymammotion 0.2.90__py3-none-any.whl → 0.2.92__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.
@@ -704,25 +704,25 @@ class CloudIOTGateway:
704
704
  self.mammotion_http = mammotion_http
705
705
 
706
706
  @property
707
- def region_response(self):
707
+ def region_response(self) -> RegionResponse:
708
708
  return self._region_response
709
709
 
710
710
  @property
711
- def aep_response(self):
711
+ def aep_response(self) -> AepResponse:
712
712
  return self._aep_response
713
713
 
714
714
  @property
715
- def session_by_authcode_response(self):
715
+ def session_by_authcode_response(self) -> SessionByAuthCodeResponse:
716
716
  return self._session_by_authcode_response
717
717
 
718
718
  @property
719
- def client_id(self):
719
+ def client_id(self) -> str:
720
720
  return self._client_id
721
721
 
722
722
  @property
723
- def login_by_oauth_response(self):
723
+ def login_by_oauth_response(self) -> LoginByOAuthResponse:
724
724
  return self._login_by_oauth_response
725
725
 
726
726
  @property
727
- def connect_response(self):
727
+ def connect_response(self) -> ConnectResponse:
728
728
  return self._connect_response
@@ -1,4 +1,4 @@
1
- from dataclasses import asdict, dataclass, field
1
+ from dataclasses import dataclass, field
2
2
 
3
3
  from mashumaro.mixins.orjson import DataClassORJSONMixin
4
4
 
@@ -8,6 +8,7 @@ class ConnectData(DataClassORJSONMixin):
8
8
  connect_type: int = 0
9
9
  ble_rssi: int = 0
10
10
  wifi_rssi: int = 0
11
+ used_net: str = ''
11
12
 
12
13
 
13
14
  @dataclass
@@ -52,6 +53,24 @@ class LocationData(DataClassORJSONMixin):
52
53
  bol_hash: str = ""
53
54
 
54
55
 
56
+ @dataclass
57
+ class Maintain(DataClassORJSONMixin):
58
+ mileage: int = 0
59
+ work_time: int = 0
60
+ bat_cycles: int = 0
61
+
62
+
63
+ @dataclass
64
+ class VisionInfo(DataClassORJSONMixin):
65
+ x: float = 0.0
66
+ y: float = 0.0
67
+ heading: float = 0.0
68
+ vio_state: int = 0
69
+ brightness: int = 1
70
+ detect_feature_num: int = 0
71
+ track_feature_num: int = 0
72
+
73
+
55
74
  @dataclass
56
75
  class WorkData(DataClassORJSONMixin):
57
76
  path: int = 0
@@ -80,6 +99,8 @@ class WorkData(DataClassORJSONMixin):
80
99
  class ReportData(DataClassORJSONMixin):
81
100
  connect: ConnectData = field(default_factory=ConnectData)
82
101
  dev: DeviceData = field(default_factory=DeviceData)
102
+ maintenance: Maintain = field(default_factory=Maintain)
103
+ vision_info: VisionInfo = field(default_factory=VisionInfo)
83
104
  rtk: RTKData = field(default_factory=RTKData)
84
105
  locations: list[LocationData] = field(default_factory=list)
85
106
  work: WorkData = field(default_factory=WorkData)
@@ -89,8 +110,10 @@ class ReportData(DataClassORJSONMixin):
89
110
  if data.get("locations") is not None:
90
111
  locations = [LocationData.from_dict(loc) for loc in data.get("locations", [])]
91
112
 
92
- self.connect = ConnectData.from_dict(data.get("connect", asdict(self.connect)))
93
- self.dev = DeviceData.from_dict(data.get("dev", asdict(self.dev)))
94
- self.rtk = RTKData.from_dict(data.get("rtk", asdict(self.rtk)))
113
+ self.connect = ConnectData.from_dict(data.get("connect", self.connect.to_dict()))
114
+ self.dev = DeviceData.from_dict(data.get("dev", self.dev.to_dict()))
115
+ self.rtk = RTKData.from_dict(data.get("rtk", self.rtk.to_dict()))
116
+ self.maintenance = Maintain.from_dict(data.get("maintain", self.maintenance.to_dict()))
117
+ self.vision_info = VisionInfo.from_dict(data.get("vio_to_app_info", self.vision_info.to_dict()))
95
118
  self.locations = locations
96
- self.work = WorkData.from_dict(data.get("work", asdict(self.work)))
119
+ self.work = WorkData.from_dict(data.get("work", self.work.to_dict()))
@@ -14,7 +14,7 @@ class Event:
14
14
  self.__eventhandlers.remove(handler)
15
15
  return self
16
16
 
17
- async def __call__(self, *args, **kwargs) -> None:
17
+ async def __call__(self, *args: Any, **kwargs: Any) -> None:
18
18
  await asyncio.gather(*[handler(*args, **kwargs) for handler in self.__eventhandlers])
19
19
 
20
20
 
@@ -1,14 +1,19 @@
1
1
  # === sendOrderMsg_Net ===
2
+ import time
3
+ from abc import ABC
4
+
2
5
  from pymammotion import logger
6
+ from pymammotion.mammotion.commands.abstract_message import AbstractMessage
3
7
  from pymammotion.mammotion.commands.messages.navigation import MessageNavigation
4
8
  from pymammotion.proto import dev_net_pb2, luba_msg_pb2
9
+ from pymammotion.proto.dev_net import DevNet
5
10
 
6
11
 
7
- class MessageNetwork:
12
+ class MessageNetwork(AbstractMessage, ABC):
8
13
  messageNavigation: MessageNavigation = MessageNavigation()
9
14
 
10
15
  @staticmethod
11
- def send_order_msg_net(build) -> bytes:
16
+ def send_order_msg_net(build: DevNet) -> bytes:
12
17
  luba_msg = luba_msg_pb2.LubaMsg(
13
18
  msgtype=luba_msg_pb2.MSG_CMD_TYPE_ESP,
14
19
  sender=luba_msg_pb2.DEV_MOBILEAPP,
@@ -18,6 +23,7 @@ class MessageNetwork:
18
23
  version=1,
19
24
  subtype=1,
20
25
  net=build,
26
+ timestamp=round(time.time() * 1000),
21
27
  )
22
28
 
23
29
  return luba_msg.SerializeToString()
@@ -180,20 +186,12 @@ class MessageNetwork:
180
186
  logger.debug("Send command - get memorized WiFi list upload command")
181
187
  return self.send_order_msg_net(build)
182
188
 
183
- def close_clear_connect_current_wifi(self, ssid: str, status: int, is_binary: bool) -> bytes:
184
- if is_binary:
185
- build = dev_net_pb2.DevNet(
186
- todev_ble_sync=1,
187
- todev_Wifi_Configuration=dev_net_pb2.DrvWifiSet(configParam=status, Confssid=ssid),
188
- )
189
- logger.debug(
190
- f"Send command - set network (disconnect, direct connect, forget, no operation reconnect) operation command (downlink ssid={ssid}, status={status})"
191
- )
192
- return self.send_order_msg_net(build)
193
- self.close_clear_connect_current_wifi2(ssid, status)
194
-
195
- # def close_clear_connect_current_wifi2(self, ssid: str, get_msg_cmd: int) -> None:
196
- # data = {"ssid": ssid, "getMsgCmd": get_msg_cmd}
197
- # self.messageNavigation.post_custom_data(
198
- # ToDo: Fix this
199
- # self.get_json_string(bleOrderCmd.close_clear_connect_current_wifi, data).encode())
189
+ def close_clear_connect_current_wifi(self, ssid: str, status: int) -> bytes:
190
+ build = dev_net_pb2.DevNet(
191
+ todev_ble_sync=1,
192
+ todev_Wifi_Configuration=dev_net_pb2.DrvWifiSet(configParam=status, Confssid=ssid),
193
+ )
194
+ logger.debug(
195
+ f"Send command - set network (disconnect, direct connect, forget, no operation reconnect) operation command (downlink ssid={ssid}, status={status})"
196
+ )
197
+ return self.send_order_msg_net(build)
@@ -1,5 +1,6 @@
1
1
  # === sendOrderMsg_Sys ===
2
2
  import datetime
3
+ import time
3
4
  from abc import ABC
4
5
 
5
6
  from pymammotion import logger
@@ -28,19 +29,30 @@ class MessageSystem(AbstractMessage, ABC):
28
29
  def send_order_msg_sys(self, sys):
29
30
  luba_msg = LubaMsg(
30
31
  msgtype=MsgCmdType.MSG_CMD_TYPE_EMBED_SYS,
32
+ msgattr=MsgAttr.MSG_ATTR_REQ,
31
33
  sender=MsgDevice.DEV_MOBILEAPP,
32
34
  rcver=self.get_msg_device(MsgCmdType.MSG_CMD_TYPE_EMBED_SYS, MsgDevice.DEV_MAINCTL),
33
35
  sys=sys,
36
+ seqs=1,
37
+ version=1,
38
+ subtype=1,
39
+ timestamp=round(time.time() * 1000),
34
40
  )
35
41
 
36
42
  return luba_msg.SerializeToString()
37
43
 
38
- def send_order_msg_sys_legacy(self, sys):
44
+ @staticmethod
45
+ def send_order_msg_sys_legacy(sys):
39
46
  luba_msg = LubaMsg(
40
47
  msgtype=MsgCmdType.MSG_CMD_TYPE_EMBED_SYS,
48
+ msgattr=MsgAttr.MSG_ATTR_REQ,
41
49
  sender=MsgDevice.DEV_MOBILEAPP,
42
50
  rcver=MsgDevice.DEV_MAINCTL,
43
51
  sys=sys,
52
+ seqs=1,
53
+ version=1,
54
+ subtype=1,
55
+ timestamp=round(time.time() * 1000),
44
56
  )
45
57
 
46
58
  return luba_msg.SerializeToString()
@@ -239,7 +251,7 @@ class MessageSystem(AbstractMessage, ABC):
239
251
 
240
252
  def get_report_cfg_stop(self, timeout: int = 10000, period: int = 1000, no_change_period: int = 1000):
241
253
  # TODO use send_order_msg_sys_legacy
242
- mctlsys = MctlSys(
254
+ mctl_sys = MctlSys(
243
255
  todev_report_cfg=ReportInfoCfg(
244
256
  act=RptAct.RPT_STOP,
245
257
  timeout=timeout,
@@ -249,30 +261,33 @@ class MessageSystem(AbstractMessage, ABC):
249
261
  )
250
262
  )
251
263
 
252
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_CONNECT)
253
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_RTK)
254
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_DEV_LOCAL)
255
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_WORK)
256
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_DEV_STA)
257
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_MAINTAIN)
258
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_VISION_POINT)
259
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_VIO)
260
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_VISION_STATISTIC)
264
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_CONNECT)
265
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_RTK)
266
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_DEV_LOCAL)
267
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_WORK)
268
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_DEV_STA)
269
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_MAINTAIN)
270
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_VISION_POINT)
271
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_VIO)
272
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_VISION_STATISTIC)
261
273
 
262
- lubaMsg = LubaMsg()
263
- lubaMsg.msgtype = MsgCmdType.MSG_CMD_TYPE_EMBED_SYS
264
- lubaMsg.sender = MsgDevice.DEV_MOBILEAPP
265
- lubaMsg.rcver = MsgDevice.DEV_MAINCTL
266
- lubaMsg.msgattr = MsgAttr.MSG_ATTR_REQ
267
- lubaMsg.seqs = 1
268
- lubaMsg.version = 1
269
- lubaMsg.subtype = 1
270
- lubaMsg.sys = mctlsys
271
- return lubaMsg.SerializeToString()
274
+ luba_msg = LubaMsg(
275
+ msgtype=MsgCmdType.MSG_CMD_TYPE_EMBED_SYS,
276
+ sender=MsgDevice.DEV_MOBILEAPP,
277
+ rcver=MsgDevice.DEV_MAINCTL,
278
+ msgattr=MsgAttr.MSG_ATTR_REQ,
279
+ seqs=1,
280
+ version=1,
281
+ subtype=1,
282
+ sys=mctl_sys,
283
+ timestamp=round(time.time() * 1000),
284
+ )
285
+
286
+ return luba_msg.SerializeToString()
272
287
 
273
288
  def get_report_cfg(self, timeout: int = 10000, period: int = 1000, no_change_period: int = 2000):
274
289
  # TODO use send_order_msg_sys_legacy
275
- mctlsys = MctlSys(
290
+ mctl_sys = MctlSys(
276
291
  todev_report_cfg=ReportInfoCfg(
277
292
  act=RptAct.RPT_START,
278
293
  timeout=timeout,
@@ -282,24 +297,26 @@ class MessageSystem(AbstractMessage, ABC):
282
297
  )
283
298
  )
284
299
 
285
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_CONNECT)
286
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_RTK)
287
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_DEV_LOCAL)
288
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_WORK)
289
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_DEV_STA)
290
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_MAINTAIN)
291
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_VISION_POINT)
292
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_VIO)
293
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_VISION_STATISTIC)
294
- mctlsys.todev_report_cfg.sub.append(RptInfoType.RIT_BASESTATION_INFO)
300
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_CONNECT)
301
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_RTK)
302
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_DEV_LOCAL)
303
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_WORK)
304
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_DEV_STA)
305
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_MAINTAIN)
306
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_VISION_POINT)
307
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_VIO)
308
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_VISION_STATISTIC)
309
+ mctl_sys.todev_report_cfg.sub.append(RptInfoType.RIT_BASESTATION_INFO)
295
310
 
296
- lubaMsg = LubaMsg()
297
- lubaMsg.msgtype = MsgCmdType.MSG_CMD_TYPE_EMBED_SYS
298
- lubaMsg.sender = MsgDevice.DEV_MOBILEAPP
299
- lubaMsg.rcver = MsgDevice.DEV_MAINCTL
300
- lubaMsg.msgattr = MsgAttr.MSG_ATTR_REQ
301
- lubaMsg.seqs = 1
302
- lubaMsg.version = 1
303
- lubaMsg.subtype = 1
304
- lubaMsg.sys = mctlsys
305
- return lubaMsg.SerializeToString()
311
+ luba_msg = LubaMsg(
312
+ msgtype=MsgCmdType.MSG_CMD_TYPE_EMBED_SYS,
313
+ sender=MsgDevice.DEV_MOBILEAPP,
314
+ rcver=MsgDevice.DEV_MAINCTL,
315
+ msgattr=MsgAttr.MSG_ATTR_REQ,
316
+ seqs=1,
317
+ version=1,
318
+ subtype=1,
319
+ sys=mctl_sys,
320
+ timestamp=round(time.time() * 1000),
321
+ )
322
+ return luba_msg.SerializeToString()
@@ -1,9 +1,10 @@
1
1
  # === sendOrderMsg_Video ===
2
+ import time
2
3
  from abc import ABC
3
4
 
4
5
  from pymammotion.mammotion.commands.abstract_message import AbstractMessage
5
6
  from pymammotion.proto import luba_msg_pb2, luba_mul_pb2
6
- from pymammotion.proto.luba_msg import MsgCmdType, MsgDevice
7
+ from pymammotion.proto.luba_msg import MsgAttr, MsgCmdType, MsgDevice
7
8
  from pymammotion.utility.device_type import DeviceType
8
9
 
9
10
 
@@ -11,9 +12,14 @@ class MessageVideo(AbstractMessage, ABC):
11
12
  async def send_order_msg_video(self, mul):
12
13
  luba_msg = luba_msg_pb2.LubaMsg(
13
14
  msgtype=luba_msg_pb2.MSG_CMD_TYPE_MUL,
15
+ msgattr=MsgAttr.MSG_ATTR_REQ,
14
16
  sender=luba_msg_pb2.DEV_MOBILEAPP,
15
17
  rcver=self.get_msg_device(MsgCmdType.MSG_CMD_TYPE_MUL, MsgDevice.SOC_MODULE_MULTIMEDIA),
16
18
  mul=mul,
19
+ seqs=1,
20
+ version=1,
21
+ subtype=1,
22
+ timestamp=round(time.time() * 1000),
17
23
  )
18
24
 
19
25
  return luba_msg.SerializeToString()
@@ -212,7 +212,18 @@ class WorkMode:
212
212
  MODE_WORKING = 13
213
213
 
214
214
 
215
- def device_mode(value) -> str:
215
+ def device_connection(value: int, mnet_type: str) -> str:
216
+ """Return string representation of device connection."""
217
+ if value == 1:
218
+ return "BLE"
219
+
220
+ if mnet_type == 'NET_USED_TYPE_WIFI':
221
+ return "WIFI"
222
+
223
+ return "3G/4G"
224
+
225
+
226
+ def device_mode(value: int) -> str:
216
227
  """Return the mode corresponding to the given value.
217
228
 
218
229
  This function takes a value and returns the corresponding mode from a
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pymammotion
3
- Version: 0.2.90
3
+ Version: 0.2.92
4
4
  Summary:
5
5
  License: GNU-3.0
6
6
  Author: Michael Arthur
@@ -1,6 +1,6 @@
1
1
  pymammotion/__init__.py,sha256=jHCQrpJaG1jAoID9T4RT3g4JsZc0JpJqIcqjnA7cXd0,1605
2
2
  pymammotion/aliyun/__init__.py,sha256=T1lkX7TRYiL4nqYanG4l4MImV-SlavSbuooC-W-uUGw,29
3
- pymammotion/aliyun/cloud_gateway.py,sha256=m-cVJ0p3-v1mKM24lTKTj3t0PEseO5ca2FbyK_iT_S8,25657
3
+ pymammotion/aliyun/cloud_gateway.py,sha256=NDrDFEI86I-fv2wJL2PWsYXbty4SrltGBRh3_Ykpw5o,25769
4
4
  pymammotion/aliyun/cloud_service.py,sha256=px7dUKow5Z7VyebjYzuKkzkm77XbUXYiFiYO_2e-UQ0,2207
5
5
  pymammotion/aliyun/model/aep_response.py,sha256=8f6GIP58ve8gd6AL3HBoXxsy0n2q4ygWvjELGnoOnVc,452
6
6
  pymammotion/aliyun/model/connect_response.py,sha256=Yz-fEbDzgGPTo5Of2oAjmFkSv08T7ze80pQU4k-gKIU,824
@@ -35,14 +35,14 @@ pymammotion/data/model/mowing_modes.py,sha256=5TrHSijUyPtIDWpNtgzx_vFQukRJWRz4gI
35
35
  pymammotion/data/model/plan.py,sha256=mcadkSL7fQXy0iJ0q786I3GEQY4i6kmQXfW6Ri69lcQ,2906
36
36
  pymammotion/data/model/rapid_state.py,sha256=mIdhAG_LZXpVcybxqTLgLXkNOmVmDTn04B9PGIDA8Ls,1251
37
37
  pymammotion/data/model/region_data.py,sha256=OTV15vRyn9JORXsQPjWMNF1ZujuNhsOKl25KeqwMObA,3007
38
- pymammotion/data/model/report_info.py,sha256=m3T2P2mLfy5wDDpyjM2q1y9zCKJJKIItNX0M-Ge1ijg,2577
38
+ pymammotion/data/model/report_info.py,sha256=M7vk7d22HP9GiSaVePSo32Nh3jkKgjGhfYlvMpBf7-U,3270
39
39
  pymammotion/data/mqtt/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
40
40
  pymammotion/data/mqtt/event.py,sha256=pEOQcjnv5XKosSPD8UmVAgCAaI8vLuIhGECZcU4xKjk,5055
41
41
  pymammotion/data/mqtt/properties.py,sha256=kvphcjrDuJHuX8Az98-wKeFv_rSmu2Fz9YKLGodGSj0,3759
42
42
  pymammotion/data/mqtt/status.py,sha256=zqnlo-MzejEQZszl0i0Wucoc3E76x6UtI9JLxoBnu54,1067
43
43
  pymammotion/data/state_manager.py,sha256=vtBT28-5DY58hJMi_kqOUKnOq6rJ4fx1zX8yU7N96A8,5357
44
44
  pymammotion/event/__init__.py,sha256=mgATR6vPHACNQ-0zH5fi7NdzeTCDV1CZyaWPmtUusi8,115
45
- pymammotion/event/event.py,sha256=m7gDAxVcgQAWQBe7AZd3w59eMf9mlcEv27eRT-zz2c0,2133
45
+ pymammotion/event/event.py,sha256=bj2RirSIRyBs0QvkcrOtwZWUX_8F3m1sySuHVyKmZLs,2143
46
46
  pymammotion/http/_init_.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  pymammotion/http/http.py,sha256=9TnVah-R8nkjlb6oCMk78IZ0Y-2iAcMyIdjcQ54GEPk,3562
48
48
  pymammotion/http/model/http.py,sha256=_hHqe9IfKDukUYKQDrZb_Tt_9rd5BNN1WKsaGIjsexM,1876
@@ -54,10 +54,10 @@ pymammotion/mammotion/commands/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5J
54
54
  pymammotion/mammotion/commands/messages/driver.py,sha256=DlOAC_yi1ycO5hKr5rfCpLmrqao6Mb6Fv1JWwMISnKE,3766
55
55
  pymammotion/mammotion/commands/messages/media.py,sha256=l-m4l2Vp1ZOHPHyJTceuLaLvdgHOEfmykkbDncCDUI4,1359
56
56
  pymammotion/mammotion/commands/messages/navigation.py,sha256=Z6RQK-pMh8o7_K_1yTENx3lkNBFQTU_ojunolSre0oM,23241
57
- pymammotion/mammotion/commands/messages/network.py,sha256=HjB6oz4_g_vgYybuTuzCxIXmy83mgTAl9A0CBNuLTfI,7901
57
+ pymammotion/mammotion/commands/messages/network.py,sha256=yJyFHGZgDgek8TMMBHGv261cKt4pLno1KK_04B7Jgn0,7698
58
58
  pymammotion/mammotion/commands/messages/ota.py,sha256=g937HT_-OQXV6A3zUiZ53b45cOX6y-rzs5m-4b0IcTk,1473
59
- pymammotion/mammotion/commands/messages/system.py,sha256=pUdV8z-pnoXvDM29DQbfAi2mG6uK7EHQzJL2sWZLHrc,12843
60
- pymammotion/mammotion/commands/messages/video.py,sha256=ne1YSuQChaDFfmHgMO5Jc9_O_7vkt5yV1EXVEh3LTbg,1141
59
+ pymammotion/mammotion/commands/messages/system.py,sha256=FRDwdHBc04jfe-D830DjYtg2DsIxW2cmac1vAeosEZI,13245
60
+ pymammotion/mammotion/commands/messages/video.py,sha256=xili9khz4Op5NwjXfvIkeRYzQlQPIf8o8bnoYx-Ylpw,1319
61
61
  pymammotion/mammotion/control/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
62
  pymammotion/mammotion/control/joystick.py,sha256=QfBVxM_gxpWsZAGO90whtgxCI2tIZ3TTad9wHIPsU9s,5640
63
63
  pymammotion/mammotion/devices/__init__.py,sha256=f2qQFPgLGmV85W2hSlMUh5BYuht9o_Ar_JEAAMD4fsE,102
@@ -111,7 +111,7 @@ pymammotion/proto/mctrl_sys_pb2.py,sha256=DYemb514mlC7c27t-k1YqqBif0xxhLmnIWk8rX
111
111
  pymammotion/proto/mctrl_sys_pb2.pyi,sha256=Dj_1UM86kZ5MfcVyNC76Z0gKrfl5YFsVWP2b-bKoZvk,38912
112
112
  pymammotion/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
113
  pymammotion/utility/constant/__init__.py,sha256=tcY0LDeD-qDDHx2LKt55KOyv9ZI0UfCNM6fknLCmm8s,110
114
- pymammotion/utility/constant/device_constant.py,sha256=rAEK60F52VyJL31uLnq0Y60D-0VK5gVm59yi9kBfndM,7123
114
+ pymammotion/utility/constant/device_constant.py,sha256=S9NEzztTX4Jbz0MBEKdjbdQ6kT17jZ_7s99Hq4aDVCk,7372
115
115
  pymammotion/utility/conversions.py,sha256=v3YICy0zZwwBBzrUZgabI7GRfiDBnkiAX2qdtk3NxOY,89
116
116
  pymammotion/utility/datatype_converter.py,sha256=SPM_HuaaD_XOawlqEnA8qlRRZXGba3WjA8kGOZgeBlQ,4284
117
117
  pymammotion/utility/device_type.py,sha256=xOgfIhOkzgcAtoKtlhlB1q8FpiKe1rVVV5BvN7K7zYc,9433
@@ -119,7 +119,7 @@ pymammotion/utility/map.py,sha256=GYscVMg2cX3IPlNpCBNHDW0S55yS1WGRf1iHnNZ7TfQ,22
119
119
  pymammotion/utility/movement.py,sha256=N75oAoAgFydqoaOedYIxGUHmuTCtPzAOtb-d_29tpfI,615
120
120
  pymammotion/utility/periodic.py,sha256=MbeSb9cfhxzYmdT_RiE0dZe3H9IfbQW_zSqhmSX2RUc,3321
121
121
  pymammotion/utility/rocker_util.py,sha256=6tX7sS87qoQC_tsxbx3NLL-HgS08wtzXiZkhDiz7uo0,7179
122
- pymammotion-0.2.90.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
123
- pymammotion-0.2.90.dist-info/METADATA,sha256=t37I4jjWd0cx1DdU3wqfgDD-X2CZevhmkQyeIF4ukiE,3896
124
- pymammotion-0.2.90.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
125
- pymammotion-0.2.90.dist-info/RECORD,,
122
+ pymammotion-0.2.92.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
123
+ pymammotion-0.2.92.dist-info/METADATA,sha256=s9V_OD5zvzeihbS7Ed6u1y7IHCtXFZQCmA3wn97yUfc,3896
124
+ pymammotion-0.2.92.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
125
+ pymammotion-0.2.92.dist-info/RECORD,,