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.
- pymammotion/aliyun/cloud_gateway.py +6 -6
- pymammotion/data/model/report_info.py +28 -5
- pymammotion/event/event.py +1 -1
- pymammotion/mammotion/commands/messages/network.py +17 -19
- pymammotion/mammotion/commands/messages/system.py +59 -42
- pymammotion/mammotion/commands/messages/video.py +7 -1
- pymammotion/utility/constant/device_constant.py +12 -1
- {pymammotion-0.2.90.dist-info → pymammotion-0.2.92.dist-info}/METADATA +1 -1
- {pymammotion-0.2.90.dist-info → pymammotion-0.2.92.dist-info}/RECORD +11 -11
- {pymammotion-0.2.90.dist-info → pymammotion-0.2.92.dist-info}/LICENSE +0 -0
- {pymammotion-0.2.90.dist-info → pymammotion-0.2.92.dist-info}/WHEEL +0 -0
@@ -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
|
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",
|
93
|
-
self.dev = DeviceData.from_dict(data.get("dev",
|
94
|
-
self.rtk = RTKData.from_dict(data.get("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",
|
119
|
+
self.work = WorkData.from_dict(data.get("work", self.work.to_dict()))
|
pymammotion/event/event.py
CHANGED
@@ -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
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
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
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
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
|
-
|
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
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
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
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
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
|
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
|
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=
|
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=
|
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=
|
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=
|
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=
|
60
|
-
pymammotion/mammotion/commands/messages/video.py,sha256=
|
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=
|
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.
|
123
|
-
pymammotion-0.2.
|
124
|
-
pymammotion-0.2.
|
125
|
-
pymammotion-0.2.
|
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,,
|
File without changes
|
File without changes
|