pymammotion 0.5.69__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/__init__.py +53 -0
- pymammotion/agora/__init__.py +0 -0
- pymammotion/agora/agora_api.py +755 -0
- pymammotion/agora/agora_rtc_capabilities.py +748 -0
- pymammotion/agora/agora_websockets.py +1175 -0
- pymammotion/aliyun/__init__.py +1 -0
- pymammotion/aliyun/client.py +235 -0
- pymammotion/aliyun/cloud_gateway.py +982 -0
- pymammotion/aliyun/model/aep_response.py +21 -0
- pymammotion/aliyun/model/connect_response.py +51 -0
- pymammotion/aliyun/model/dev_by_account_response.py +195 -0
- pymammotion/aliyun/model/login_by_oauth_response.py +64 -0
- pymammotion/aliyun/model/regions_response.py +29 -0
- pymammotion/aliyun/model/session_by_authcode_response.py +19 -0
- pymammotion/aliyun/model/thing_response.py +12 -0
- pymammotion/aliyun/regions.py +62 -0
- pymammotion/aliyun/tea/core.py +297 -0
- pymammotion/aliyun/tmp_constant.py +171 -0
- pymammotion/bluetooth/__init__.py +1 -0
- pymammotion/bluetooth/ble.py +62 -0
- pymammotion/bluetooth/ble_message.py +676 -0
- pymammotion/bluetooth/const.py +27 -0
- pymammotion/bluetooth/data/__init__.py +0 -0
- pymammotion/bluetooth/data/convert.py +25 -0
- pymammotion/bluetooth/data/framectrldata.py +40 -0
- pymammotion/bluetooth/data/notifydata.py +62 -0
- pymammotion/bluetooth/model/__init__.py +0 -0
- pymammotion/bluetooth/model/atomic_integer.py +54 -0
- pymammotion/const.py +13 -0
- pymammotion/data/__init__.py +0 -0
- pymammotion/data/model/__init__.py +8 -0
- pymammotion/data/model/account.py +8 -0
- pymammotion/data/model/device.py +192 -0
- pymammotion/data/model/device_config.py +72 -0
- pymammotion/data/model/device_info.py +60 -0
- pymammotion/data/model/device_limits.py +49 -0
- pymammotion/data/model/enums.py +77 -0
- pymammotion/data/model/errors.py +12 -0
- pymammotion/data/model/events.py +14 -0
- pymammotion/data/model/generate_geojson.py +565 -0
- pymammotion/data/model/generate_route_information.py +26 -0
- pymammotion/data/model/hash_list.py +475 -0
- pymammotion/data/model/location.py +36 -0
- pymammotion/data/model/mowing_modes.py +77 -0
- pymammotion/data/model/rapid_state.py +45 -0
- pymammotion/data/model/raw_data.py +215 -0
- pymammotion/data/model/region_data.py +102 -0
- pymammotion/data/model/report_info.py +182 -0
- pymammotion/data/model/work.py +27 -0
- pymammotion/data/mower_state_manager.py +369 -0
- pymammotion/data/mqtt/__init__.py +1 -0
- pymammotion/data/mqtt/event.py +227 -0
- pymammotion/data/mqtt/mammotion_properties.py +276 -0
- pymammotion/data/mqtt/properties.py +203 -0
- pymammotion/data/mqtt/status.py +57 -0
- pymammotion/event/__init__.py +6 -0
- pymammotion/event/event.py +96 -0
- pymammotion/homeassistant/__init__.py +3 -0
- pymammotion/homeassistant/mower_api.py +514 -0
- pymammotion/homeassistant/rtk_api.py +54 -0
- pymammotion/http/__init__.py +0 -0
- pymammotion/http/encryption.py +220 -0
- pymammotion/http/http.py +673 -0
- pymammotion/http/model/__init__.py +0 -0
- pymammotion/http/model/camera_stream.py +31 -0
- pymammotion/http/model/http.py +249 -0
- pymammotion/http/model/response_factory.py +61 -0
- pymammotion/http/model/rtk.py +16 -0
- pymammotion/mammotion/__init__.py +0 -0
- pymammotion/mammotion/commands/__init__.py +0 -0
- pymammotion/mammotion/commands/abstract_message.py +24 -0
- pymammotion/mammotion/commands/mammotion_command.py +81 -0
- pymammotion/mammotion/commands/messages/__init__.py +0 -0
- pymammotion/mammotion/commands/messages/basestation.py +43 -0
- pymammotion/mammotion/commands/messages/driver.py +122 -0
- pymammotion/mammotion/commands/messages/media.py +87 -0
- pymammotion/mammotion/commands/messages/navigation.py +564 -0
- pymammotion/mammotion/commands/messages/network.py +205 -0
- pymammotion/mammotion/commands/messages/ota.py +38 -0
- pymammotion/mammotion/commands/messages/system.py +330 -0
- pymammotion/mammotion/commands/messages/video.py +33 -0
- pymammotion/mammotion/control/__init__.py +0 -0
- pymammotion/mammotion/control/joystick.py +145 -0
- pymammotion/mammotion/devices/__init__.py +29 -0
- pymammotion/mammotion/devices/base.py +163 -0
- pymammotion/mammotion/devices/mammotion.py +571 -0
- pymammotion/mammotion/devices/mammotion_bluetooth.py +496 -0
- pymammotion/mammotion/devices/mammotion_cloud.py +355 -0
- pymammotion/mammotion/devices/mammotion_mower_ble.py +48 -0
- pymammotion/mammotion/devices/mammotion_mower_cloud.py +39 -0
- pymammotion/mammotion/devices/managers/managers.py +81 -0
- pymammotion/mammotion/devices/mower_device.py +120 -0
- pymammotion/mammotion/devices/mower_manager.py +107 -0
- pymammotion/mammotion/devices/rtk_ble.py +89 -0
- pymammotion/mammotion/devices/rtk_cloud.py +115 -0
- pymammotion/mammotion/devices/rtk_device.py +50 -0
- pymammotion/mammotion/devices/rtk_manager.py +125 -0
- pymammotion/mqtt/__init__.py +6 -0
- pymammotion/mqtt/aliyun_mqtt.py +237 -0
- pymammotion/mqtt/linkkit/__init__.py +5 -0
- pymammotion/mqtt/linkkit/h2client.py +585 -0
- pymammotion/mqtt/linkkit/linkkit.py +3025 -0
- pymammotion/mqtt/mammotion_future.py +26 -0
- pymammotion/mqtt/mammotion_mqtt.py +214 -0
- pymammotion/mqtt/mqtt_models.py +66 -0
- pymammotion/proto/__init__.py +4841 -0
- pymammotion/proto/basestation.proto +51 -0
- pymammotion/proto/basestation_pb2.py +35 -0
- pymammotion/proto/basestation_pb2.pyi +89 -0
- pymammotion/proto/common.proto +7 -0
- pymammotion/proto/common_pb2.py +25 -0
- pymammotion/proto/common_pb2.pyi +13 -0
- pymammotion/proto/dev_net.proto +321 -0
- pymammotion/proto/dev_net_pb2.py +111 -0
- pymammotion/proto/dev_net_pb2.pyi +515 -0
- pymammotion/proto/luba_msg.proto +76 -0
- pymammotion/proto/luba_msg_pb2.py +41 -0
- pymammotion/proto/luba_msg_pb2.pyi +97 -0
- pymammotion/proto/luba_mul.proto +129 -0
- pymammotion/proto/luba_mul_pb2.py +61 -0
- pymammotion/proto/luba_mul_pb2.pyi +178 -0
- pymammotion/proto/mctrl_driver.proto +107 -0
- pymammotion/proto/mctrl_driver_pb2.py +57 -0
- pymammotion/proto/mctrl_driver_pb2.pyi +167 -0
- pymammotion/proto/mctrl_nav.proto +591 -0
- pymammotion/proto/mctrl_nav_pb2.py +136 -0
- pymammotion/proto/mctrl_nav_pb2.pyi +1067 -0
- pymammotion/proto/mctrl_ota.proto +80 -0
- pymammotion/proto/mctrl_ota_pb2.py +45 -0
- pymammotion/proto/mctrl_ota_pb2.pyi +128 -0
- pymammotion/proto/mctrl_pept.proto +34 -0
- pymammotion/proto/mctrl_pept_pb2.py +33 -0
- pymammotion/proto/mctrl_pept_pb2.pyi +58 -0
- pymammotion/proto/mctrl_sys.proto +741 -0
- pymammotion/proto/mctrl_sys_pb2.py +206 -0
- pymammotion/proto/mctrl_sys_pb2.pyi +1213 -0
- pymammotion/proto/message_pool.py +3 -0
- pymammotion/proto/py.typed +0 -0
- pymammotion/py.typed +0 -0
- pymammotion/utility/constant/__init__.py +3 -0
- pymammotion/utility/constant/device_constant.py +315 -0
- pymammotion/utility/conversions.py +5 -0
- pymammotion/utility/datatype_converter.py +124 -0
- pymammotion/utility/device_config.py +755 -0
- pymammotion/utility/device_type.py +489 -0
- pymammotion/utility/map.py +259 -0
- pymammotion/utility/movement.py +18 -0
- pymammotion/utility/mur_mur_hash.py +159 -0
- pymammotion/utility/periodic.py +106 -0
- pymammotion/utility/rocker_util.py +194 -0
- pymammotion-0.5.69.dist-info/METADATA +93 -0
- pymammotion-0.5.69.dist-info/RECORD +154 -0
- pymammotion-0.5.69.dist-info/WHEEL +4 -0
- pymammotion-0.5.69.dist-info/licenses/LICENSE +674 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import copy
|
|
2
|
+
import math
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class RockerControlUtil:
|
|
6
|
+
"""generated source for class RockerControlUtil"""
|
|
7
|
+
|
|
8
|
+
instance_ = None
|
|
9
|
+
list_ = []
|
|
10
|
+
thresholdValue_1 = 30
|
|
11
|
+
thresholdValue_2 = 7
|
|
12
|
+
thresholdValue_3 = 15
|
|
13
|
+
|
|
14
|
+
def __init__(self) -> None:
|
|
15
|
+
"""Generated source for method __init__"""
|
|
16
|
+
|
|
17
|
+
@classmethod
|
|
18
|
+
def getInstance(cls):
|
|
19
|
+
"""Return the instance of RockerControlUtil if it exists, otherwise create
|
|
20
|
+
a new instance.
|
|
21
|
+
|
|
22
|
+
This method checks if an instance of RockerControlUtil exists. If not,
|
|
23
|
+
it creates a new instance and returns it.
|
|
24
|
+
|
|
25
|
+
Args:
|
|
26
|
+
cls (class): The class for which the instance is being retrieved.
|
|
27
|
+
|
|
28
|
+
Returns:
|
|
29
|
+
RockerControlUtil: An instance of RockerControlUtil.
|
|
30
|
+
|
|
31
|
+
"""
|
|
32
|
+
if cls.instance_ == None:
|
|
33
|
+
cls.instance_ = RockerControlUtil()
|
|
34
|
+
return cls.instance_
|
|
35
|
+
|
|
36
|
+
def transfrom(self, f, f2):
|
|
37
|
+
"""Perform a transformation based on the input angles and distance.
|
|
38
|
+
|
|
39
|
+
This method calculates the transformation based on the input angle 'f'
|
|
40
|
+
and distance 'f2'. It determines the appropriate radians based on the
|
|
41
|
+
angle and performs the transformation.
|
|
42
|
+
|
|
43
|
+
Args:
|
|
44
|
+
f (float): The angle in degrees for transformation.
|
|
45
|
+
f2 (float): The distance for transformation.
|
|
46
|
+
|
|
47
|
+
Returns:
|
|
48
|
+
list: A list containing the transformed coordinates.
|
|
49
|
+
|
|
50
|
+
"""
|
|
51
|
+
radians = 0.0
|
|
52
|
+
self.list_.clear()
|
|
53
|
+
i = self.thresholdValue_2
|
|
54
|
+
if f > 90 - i and f < i + 90:
|
|
55
|
+
radians = math.radians(90.0)
|
|
56
|
+
elif f > 270 - i and f < i + 270:
|
|
57
|
+
radians = math.radians(270.0)
|
|
58
|
+
elif f > 180 - i and f < i + 180:
|
|
59
|
+
radians = math.radians(180.0)
|
|
60
|
+
elif f < i and f > 360 - i:
|
|
61
|
+
radians = math.radians(0.0)
|
|
62
|
+
else:
|
|
63
|
+
if f > i:
|
|
64
|
+
i2 = self.thresholdValue_2
|
|
65
|
+
if f < 90 - i2:
|
|
66
|
+
radians = math.radians(90 - i2)
|
|
67
|
+
|
|
68
|
+
i3 = self.thresholdValue_1
|
|
69
|
+
if f > i3 + 90 and f < 180 - i:
|
|
70
|
+
radians = math.radians(i3 + 90)
|
|
71
|
+
elif f > i + 180 and f < 270 - i3:
|
|
72
|
+
radians = math.radians(270 - i3)
|
|
73
|
+
elif f > i3 + 270 and f < 360 - i:
|
|
74
|
+
radians = math.radians(i3 + 270)
|
|
75
|
+
else:
|
|
76
|
+
radians = math.radians(f)
|
|
77
|
+
d = f2
|
|
78
|
+
self.list_.append(int(math.sin(radians) * d))
|
|
79
|
+
self.list_.append(int(d * math.cos(radians)))
|
|
80
|
+
return copy.copy(self.list_)
|
|
81
|
+
|
|
82
|
+
def transfrom2(self, f, f2):
|
|
83
|
+
"""Calculate the transformation of input angles to radians and perform
|
|
84
|
+
trigonometric calculations.
|
|
85
|
+
|
|
86
|
+
This method takes two input parameters, an angle 'f' and a value 'f2',
|
|
87
|
+
and calculates the corresponding radians based on the angle. It then
|
|
88
|
+
performs trigonometric calculations using the radians and 'f2' value to
|
|
89
|
+
generate a list of transformed values.
|
|
90
|
+
|
|
91
|
+
Args:
|
|
92
|
+
self: The instance of the class.
|
|
93
|
+
f (float): The input angle in degrees.
|
|
94
|
+
f2 (float): The input value for trigonometric calculations.
|
|
95
|
+
|
|
96
|
+
Returns:
|
|
97
|
+
list: A list containing the transformed values based on trigonometric
|
|
98
|
+
calculations.
|
|
99
|
+
|
|
100
|
+
"""
|
|
101
|
+
radians = 0.0
|
|
102
|
+
self.list_.clear()
|
|
103
|
+
i = self.thresholdValue_2
|
|
104
|
+
if f > 90 - i and f < i + 90:
|
|
105
|
+
radians = math.radians(90.0)
|
|
106
|
+
elif f > 270 - i and f < i + 270:
|
|
107
|
+
radians = math.radians(270.0)
|
|
108
|
+
else:
|
|
109
|
+
i2 = self.thresholdValue_3
|
|
110
|
+
if f > 180 - i2 and f < i2 + 180:
|
|
111
|
+
radians = math.radians(0.0)
|
|
112
|
+
elif f < i2 or f > 360 - i2:
|
|
113
|
+
radians = math.radians(180.0)
|
|
114
|
+
else:
|
|
115
|
+
if f > i2:
|
|
116
|
+
i3 = self.thresholdValue_1
|
|
117
|
+
if f < 90 - i3:
|
|
118
|
+
radians = math.radians(i3 + 90)
|
|
119
|
+
i4 = self.thresholdValue_1
|
|
120
|
+
if f > i4 + 90 and f < 180 - i2:
|
|
121
|
+
radians = math.radians(90 - i4)
|
|
122
|
+
elif f > i2 + 180 and f < 270 - i4:
|
|
123
|
+
radians = math.radians(i4 + 270)
|
|
124
|
+
elif f > i4 + 270 and f < 360 - i2:
|
|
125
|
+
radians = math.radians(270 - i4)
|
|
126
|
+
elif f > 270 - i4 and f < 270 - i:
|
|
127
|
+
radians = math.radians((270.0 - f) + 270.0)
|
|
128
|
+
elif f > i + 270 and f < i4 + 270:
|
|
129
|
+
radians = math.radians(270.0 - (f - 270.0))
|
|
130
|
+
elif f > 90 - i4 and f < 90 - i:
|
|
131
|
+
radians = math.radians((90.0 - f) + 90.0)
|
|
132
|
+
elif f > i + 90 and f < i4 + 90:
|
|
133
|
+
radians = math.radians(90.0 - (f - 90.0))
|
|
134
|
+
else:
|
|
135
|
+
radians = math.radians(f)
|
|
136
|
+
d = f2
|
|
137
|
+
self.list_.append(int(math.sin(radians) * d))
|
|
138
|
+
self.list_.append(int(d * math.cos(radians)))
|
|
139
|
+
return copy.copy(self.list_)
|
|
140
|
+
|
|
141
|
+
def transfrom3(self, f, f2):
|
|
142
|
+
"""Calculate the transformation of input angles to radians and perform
|
|
143
|
+
trigonometric calculations.
|
|
144
|
+
|
|
145
|
+
This method calculates the transformation of input angles to radians
|
|
146
|
+
based on certain threshold values. It then performs trigonometric
|
|
147
|
+
calculations using sine and cosine functions to determine the output
|
|
148
|
+
values.
|
|
149
|
+
|
|
150
|
+
Args:
|
|
151
|
+
self: The object instance.
|
|
152
|
+
f (float): The input angle in degrees.
|
|
153
|
+
f2 (float): The input value for trigonometric calculations.
|
|
154
|
+
|
|
155
|
+
Returns:
|
|
156
|
+
list: A list containing the calculated values based on trigonometric
|
|
157
|
+
functions.
|
|
158
|
+
|
|
159
|
+
"""
|
|
160
|
+
radians = 0.0
|
|
161
|
+
self.list_.clear()
|
|
162
|
+
i = self.thresholdValue_2
|
|
163
|
+
if f > 90 - i and f < i + 90:
|
|
164
|
+
radians = math.radians(90.0)
|
|
165
|
+
elif f > 270 - i and f < i + 270:
|
|
166
|
+
radians = math.radians(270.0)
|
|
167
|
+
else:
|
|
168
|
+
i2 = self.thresholdValue_3
|
|
169
|
+
if f > 180 - i2 and f < i2 + 180:
|
|
170
|
+
radians = math.radians(180.0)
|
|
171
|
+
elif f < i2 or f > 360 - i2:
|
|
172
|
+
radians = math.radians(0.0)
|
|
173
|
+
else:
|
|
174
|
+
if f > i2:
|
|
175
|
+
i3 = self.thresholdValue_1
|
|
176
|
+
if f < 90 - i3:
|
|
177
|
+
radians = math.radians(90 - i3)
|
|
178
|
+
i4 = self.thresholdValue_1
|
|
179
|
+
if f > i4 + 90 and f < 180 - i2:
|
|
180
|
+
radians = math.radians(i4 + 90)
|
|
181
|
+
elif f > i2 + 180 and f < 270 - i4:
|
|
182
|
+
radians = math.radians(i4 + 270)
|
|
183
|
+
elif f > i4 + 270 and f < 360 - i2:
|
|
184
|
+
radians = math.radians(270 - i4)
|
|
185
|
+
elif f > 270 - i4 and f < 270 - i:
|
|
186
|
+
radians = math.radians((270.0 - f) + 270.0)
|
|
187
|
+
elif f > i + 270 and f < i4 + 270:
|
|
188
|
+
radians = math.radians(270.0 - (f - 270.0))
|
|
189
|
+
else:
|
|
190
|
+
radians = math.radians(f)
|
|
191
|
+
d = f2
|
|
192
|
+
self.list_.append(int(math.sin(radians) * d))
|
|
193
|
+
self.list_.append(int(d * math.cos(radians)))
|
|
194
|
+
return copy.copy(self.list_)
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pymammotion
|
|
3
|
+
Version: 0.5.69
|
|
4
|
+
Author: jLynx
|
|
5
|
+
Author-email: Michael Arthur <michael@jumblesoft.co.nz>
|
|
6
|
+
License-Expression: GPL-3.0
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Python: <4.0,>=3.12
|
|
9
|
+
Requires-Dist: aiohttp>=3.9.1
|
|
10
|
+
Requires-Dist: alibabacloud-apigateway-util<0.0.3,>=0.0.2
|
|
11
|
+
Requires-Dist: alibabacloud-iot-api-gateway<0.0.5,>=0.0.4
|
|
12
|
+
Requires-Dist: betterproto2>=0.9.1
|
|
13
|
+
Requires-Dist: bleak-retry-connector>=3.5.0
|
|
14
|
+
Requires-Dist: bleak>=0.21.0
|
|
15
|
+
Requires-Dist: crcmod~=1.7
|
|
16
|
+
Requires-Dist: cryptography>=43.0.1
|
|
17
|
+
Requires-Dist: mashumaro~=3.13
|
|
18
|
+
Requires-Dist: numpy>=1.26.0
|
|
19
|
+
Requires-Dist: orjson<4,>=3.9.15
|
|
20
|
+
Requires-Dist: paho-mqtt<3,>=2.1.0
|
|
21
|
+
Requires-Dist: protobuf>=4.23.1
|
|
22
|
+
Requires-Dist: pyjwt>=2.10.1
|
|
23
|
+
Requires-Dist: sdp-transform>=1.1.0
|
|
24
|
+
Requires-Dist: shapely>=2.1.2
|
|
25
|
+
Requires-Dist: websockets>=13.1
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
|
|
28
|
+
# PyMammotion - Python API for Mammotion Mowers [](https://discord.gg/vpZdWhJX8x)
|
|
29
|
+
|
|
30
|
+
[![SemVer 0.8.5][img_version]][url_version]
|
|
31
|
+
[![PyPI Releases][img_pypi]][url_pypi]
|
|
32
|
+
[![Supported Python Versions][img_pyversions]][url_pyversions]
|
|
33
|
+
|
|
34
|
+
[img_version]: https://img.shields.io/static/v1.svg?label=SemVer&message=0.4.0&color=blue
|
|
35
|
+
[url_version]: https://pypi.org/project/pymammotion/
|
|
36
|
+
|
|
37
|
+
[img_pypi]: https://img.shields.io/badge/PyPI-wheels-green.svg
|
|
38
|
+
[url_pypi]: https://pypi.org/project/pymammotion/#files
|
|
39
|
+
|
|
40
|
+
[img_pyversions]: https://img.shields.io/pypi/pyversions/pymammotion.svg
|
|
41
|
+
[url_pyversions]: https://pypi.python.org/pypi/pymammotion
|
|
42
|
+
|
|
43
|
+
💬 [Join us on Discord](https://discord.gg/vpZdWhJX8x)
|
|
44
|
+
|
|
45
|
+
PyMammotion is a Python API for controlling and monitoring Mammotion robot mowers (Luba, Luba 2 & Yuka) via MQTT, Cloud, and Bluetooth.
|
|
46
|
+
|
|
47
|
+
⚠️ **Please note:** This API is still under active development. You may encounter unfinished features or bugs. If you come across any issues, please open an issue on the GitHub repository. 🐛
|
|
48
|
+
|
|
49
|
+
## Home Assistant Integration
|
|
50
|
+
|
|
51
|
+
This library is the foundation for the [Mammotion Home Assistant integration](https://github.com/mikey0000/Mammotion-HA). If you're looking to control your Mammotion mower through Home Assistant, check out the integration repository for installation and setup instructions.
|
|
52
|
+
|
|
53
|
+
## Installation 🛠️
|
|
54
|
+
|
|
55
|
+
You can install PyMammotion using pip:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
pip install pymammotion
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Development 🔧
|
|
62
|
+
|
|
63
|
+
PyMammotion uses `betterproto` and `protoc` for generating protobuf models. To set up the development environment:
|
|
64
|
+
|
|
65
|
+
1. Clone the repository
|
|
66
|
+
2. poetry install --with=dev
|
|
67
|
+
3. Profit
|
|
68
|
+
|
|
69
|
+
## Contributing 🤝
|
|
70
|
+
|
|
71
|
+
Contributions are welcome! Please check the [issues](https://github.com/mikey0000/pymammotion/issues) for ways you can help improve PyMammotion.
|
|
72
|
+
|
|
73
|
+
## Troubleshooting 🔍
|
|
74
|
+
|
|
75
|
+
If you encounter any issues:
|
|
76
|
+
|
|
77
|
+
- Check the [wiki](https://github.com/mikey0000/pymammotion/wiki) for known issues and solutions
|
|
78
|
+
- Ensure you're using the latest version of PyMammotion
|
|
79
|
+
- If the problem persists, please open an issue on GitHub
|
|
80
|
+
|
|
81
|
+
## Credits 👥
|
|
82
|
+
|
|
83
|
+
[](https://github.com/mikey0000/pymammotion/graphs/contributors)
|
|
84
|
+
|
|
85
|
+
## License 📄
|
|
86
|
+
|
|
87
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
## Trademark Notice
|
|
91
|
+
|
|
92
|
+
The trademarks "Mammotion," "Luba," and "Yuka" referenced herein are registered trademarks of their respective owners. The author of this software repository is not affiliated with, endorsed by, or connected to these trademark owners in any way.
|
|
93
|
+
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
pymammotion/__init__.py,sha256=1qcHKu-sHbn1Jc2PCiYX0S_GDKg6g-FneTEw1x4IcNs,1661
|
|
2
|
+
pymammotion/const.py,sha256=SUB5OQEIBoJ_K6gzIZhx4yVxwWO24yGsEMYPy0MUiKE,499
|
|
3
|
+
pymammotion/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
pymammotion/agora/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
pymammotion/agora/agora_api.py,sha256=Ef-Glk_RBZKkxifL9yMP5azvVBKTX4Iw60NEk3q6up8,24759
|
|
6
|
+
pymammotion/agora/agora_rtc_capabilities.py,sha256=H2pUFi66Ua8tF53xUQQI9fuMB6QEyNPWH7oglGjrZ9g,21150
|
|
7
|
+
pymammotion/agora/agora_websockets.py,sha256=VLzWrXM7f5tAQTrPGiDG2cNI6NQpQw885CmaPaAHCVo,47745
|
|
8
|
+
pymammotion/aliyun/__init__.py,sha256=T1lkX7TRYiL4nqYanG4l4MImV-SlavSbuooC-W-uUGw,29
|
|
9
|
+
pymammotion/aliyun/client.py,sha256=gS15-fAYn3nViwFY3zMlS_2T9mZokFLUyuHADaXH-O8,9777
|
|
10
|
+
pymammotion/aliyun/cloud_gateway.py,sha256=0GW2MQaQVmtVT1C50MOXHWB3bvIP8OS3J5UHmyMmopw,35718
|
|
11
|
+
pymammotion/aliyun/regions.py,sha256=ctlRGrmdE4-xgItl9slCANYOV502qVN5lkAU4lj92sk,2518
|
|
12
|
+
pymammotion/aliyun/tmp_constant.py,sha256=M4Hq_lrGB3LZdX6R2XohRPFoK1NDnNV-pTJwJcJ9838,6650
|
|
13
|
+
pymammotion/aliyun/model/aep_response.py,sha256=EY4uMTJ4F9rvbcXnAOc5YKi7q__9kIVgfDwfyr65Gk0,421
|
|
14
|
+
pymammotion/aliyun/model/connect_response.py,sha256=Yz-fEbDzgGPTo5Of2oAjmFkSv08T7ze80pQU4k-gKIU,824
|
|
15
|
+
pymammotion/aliyun/model/dev_by_account_response.py,sha256=PTkHRJQzEdqJRIGKEaU_4Q45O2KdupxRjZGR757xzvw,6788
|
|
16
|
+
pymammotion/aliyun/model/login_by_oauth_response.py,sha256=g7JnvEjoa3SplHd-UqCuK6x0qtODpHlDyJCHRz7tfDI,1228
|
|
17
|
+
pymammotion/aliyun/model/regions_response.py,sha256=HSnpPcgpjr6VNXBQHw__gn-xWCkQ-MZ-Tmus9_va9mI,635
|
|
18
|
+
pymammotion/aliyun/model/session_by_authcode_response.py,sha256=0owdNcGFIP7rsVqLIf9rT-iOtvWmKCt2AW0cUUXwFiQ,427
|
|
19
|
+
pymammotion/aliyun/model/thing_response.py,sha256=23gUpB8EX3jNICp-p4Gytxs4qAfzKVr8anUA9JCl4XM,273
|
|
20
|
+
pymammotion/aliyun/tea/core.py,sha256=4SjhRkbPMbw-uI0lQnCN0SBNAHAgVFrpHeaauuu6nZY,10200
|
|
21
|
+
pymammotion/bluetooth/__init__.py,sha256=LAl8jqZ1fPh-3mLmViNQsP3s814C1vsocYUa6oSaXt0,36
|
|
22
|
+
pymammotion/bluetooth/ble.py,sha256=XQWJBpSzeIawCrLTsVrq9LI6jmM_ALVTttUkosK2BRM,2480
|
|
23
|
+
pymammotion/bluetooth/ble_message.py,sha256=d9rGsPa8XKLpg3aBmngQp5BUQzIxASPjx1Aoj2G-Su8,18298
|
|
24
|
+
pymammotion/bluetooth/const.py,sha256=CCqyHsYbB0BAYjwdhXt_n6eWWxmhlUrAFjvVv57mbvE,1749
|
|
25
|
+
pymammotion/bluetooth/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
+
pymammotion/bluetooth/data/convert.py,sha256=6DMwvzVr9FWCoQFIKSI2poFXjISc_m6X59g8FlVO0-o,800
|
|
27
|
+
pymammotion/bluetooth/data/framectrldata.py,sha256=qxhGQsTGsfPx-CarEMLkgBn_RJ6I2-exmr9AX2U4pFg,995
|
|
28
|
+
pymammotion/bluetooth/data/notifydata.py,sha256=jeROpoFmaZfNTidkLLm5VYeFbeIgDSi8waJ0nVLRUTA,1995
|
|
29
|
+
pymammotion/bluetooth/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
+
pymammotion/bluetooth/model/atomic_integer.py,sha256=jtSqeqd6It3TvzZN7TJyYHQNRuItuw0Bg-cL0AUEBhY,1666
|
|
31
|
+
pymammotion/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
+
pymammotion/data/mower_state_manager.py,sha256=L9toRKylPlvEibFJGY_9pO8IjXrMlZ44c5HHHBCn_oI,16950
|
|
33
|
+
pymammotion/data/model/__init__.py,sha256=UVRbSXGOjYnWv30ZEvzT5QRpdVqAbyeToo-t0QBWyi4,292
|
|
34
|
+
pymammotion/data/model/account.py,sha256=vJM-KTf2q6eBfVC-UlNHBSmJvqHiCawZ40vnuhXhaz8,140
|
|
35
|
+
pymammotion/data/model/device.py,sha256=qQM7wCZrfg5iV5RZdvnMPcZS6CXLH2cTMg-sVqFbAWg,9090
|
|
36
|
+
pymammotion/data/model/device_config.py,sha256=cLfvO_xs8GhEQbhTZLOfhYK5OX4T337M9OZkyQ_GNWQ,2652
|
|
37
|
+
pymammotion/data/model/device_info.py,sha256=YRs-7kcnzS5qNeZTvLTNewv8RZ_Qx51pXrebSKYj7Ks,1411
|
|
38
|
+
pymammotion/data/model/device_limits.py,sha256=m8HdxD-RaAkPm7jHYb9GLxMEH9IfzBPz0ZypmsLnId4,1946
|
|
39
|
+
pymammotion/data/model/enums.py,sha256=LVLP-9ypW0NxwyTeizxPVFNX3INWGfhSR9obM_vl0-M,1782
|
|
40
|
+
pymammotion/data/model/errors.py,sha256=lBHq2cE8P5fc6Q4JXgrkJXzFKTWgxsoPOyMlTaJWbWk,396
|
|
41
|
+
pymammotion/data/model/events.py,sha256=fa8xG6kB2NgZKzpd-T9TKRcVEme_fdB5VnHuF2Qa62s,392
|
|
42
|
+
pymammotion/data/model/generate_geojson.py,sha256=p6CqOda_iHJdXX8pU34hAbKC9K8Z4iT6oSixaDptWPA,19853
|
|
43
|
+
pymammotion/data/model/generate_route_information.py,sha256=-_c8pk10zwRh-O2vJ0i3DDCOQbv9CRJ7YNWpfsIpajI,807
|
|
44
|
+
pymammotion/data/model/hash_list.py,sha256=cAhHt9tqi3wf8jA5rreUII5B7dxRoJ9tijaGHLfkd8M,16204
|
|
45
|
+
pymammotion/data/model/location.py,sha256=BirPRZDjZEi_pEg2RquCOfCRR8cV4THuWyHoJM8gAAg,919
|
|
46
|
+
pymammotion/data/model/mowing_modes.py,sha256=4rMn1H8w2iU2aBwpmAhPh_sT81yqrocrWWUIaU7DCIc,1171
|
|
47
|
+
pymammotion/data/model/rapid_state.py,sha256=mIdhAG_LZXpVcybxqTLgLXkNOmVmDTn04B9PGIDA8Ls,1251
|
|
48
|
+
pymammotion/data/model/raw_data.py,sha256=x2xuqVC8CQuV3ui3QK4G5EqRET9EsNljHLHR11ByYgo,6471
|
|
49
|
+
pymammotion/data/model/region_data.py,sha256=OP4hXYX2U1gNxU7VFsHQfQbE1Bze_nvVFQ0ZT7XZJsg,2909
|
|
50
|
+
pymammotion/data/model/report_info.py,sha256=mkMhPpaOtVxGeJ4Bv2PL5idAEr0kHlkRQoqpOAxxJZ8,5033
|
|
51
|
+
pymammotion/data/model/work.py,sha256=AfKMItFqnRtAlVHzKCfYY-BQy-WFDYZBzdj-9Yc03bo,655
|
|
52
|
+
pymammotion/data/mqtt/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
53
|
+
pymammotion/data/mqtt/event.py,sha256=IdaFnXl0o00d24xQFC3YaxNwT63z3VWNqR-fOvCTvnQ,7032
|
|
54
|
+
pymammotion/data/mqtt/mammotion_properties.py,sha256=ZV8uSkpK1Xhxp8d_ZrYrh2J4mSGChWrYOHuketJq6po,9064
|
|
55
|
+
pymammotion/data/mqtt/properties.py,sha256=Dqhp2z-XO1_5wB9qfboWcpj1O47X9mmCWo8l1-fws98,5273
|
|
56
|
+
pymammotion/data/mqtt/status.py,sha256=xG6krDz9tbADbU4ui3Ay7K70hb9J3AJOpPtjMGEnyQ4,1765
|
|
57
|
+
pymammotion/event/__init__.py,sha256=mgATR6vPHACNQ-0zH5fi7NdzeTCDV1CZyaWPmtUusi8,115
|
|
58
|
+
pymammotion/event/event.py,sha256=P2yphZfJwMCefVE4h4hLTDPqCCVd63tSUo667gWF72c,3153
|
|
59
|
+
pymammotion/homeassistant/__init__.py,sha256=j0aQZKWR41pCDR3g1y2p_zfp033pESECcqXiefRg1DQ,107
|
|
60
|
+
pymammotion/homeassistant/mower_api.py,sha256=7SAq44fFwja6g1KwsGxAvjBdMjGIvH442qh4oFqa47A,22110
|
|
61
|
+
pymammotion/homeassistant/rtk_api.py,sha256=XVc6S0zN2dl2PWXGJ3bAFRba4AICofg1hYCUE84czTw,2516
|
|
62
|
+
pymammotion/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
|
+
pymammotion/http/encryption.py,sha256=lzXu3WwBdQlzjXxWnlJuRgkCrKdPbxx5drhMitVKIEk,8287
|
|
64
|
+
pymammotion/http/http.py,sha256=-uUI6YEB_ZAhzjjLN_NQ1YxIgaZQEzoeLf37DjMc-RQ,26938
|
|
65
|
+
pymammotion/http/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
|
+
pymammotion/http/model/camera_stream.py,sha256=ilxQNny_w9Frwt-m8kbHinvyjDv4Bx8C2swfZ2lTEDE,600
|
|
67
|
+
pymammotion/http/model/http.py,sha256=ETNxFByIohZSAEv_a4MG630tLyp9TSM4-e0gemA0eVI,6928
|
|
68
|
+
pymammotion/http/model/response_factory.py,sha256=OoS7_f2yh8TUecTKlQhf6bFKdsihn9b7k1cgoyaw7XY,2183
|
|
69
|
+
pymammotion/http/model/rtk.py,sha256=pR2mi6_Y8oTPlqDXWLk7oaUqmcgcrBQ0f3MJdC0_CUg,491
|
|
70
|
+
pymammotion/mammotion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
+
pymammotion/mammotion/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
|
+
pymammotion/mammotion/commands/abstract_message.py,sha256=M4qL-Yw5g3fTgS9jB9LUSgJSAqpUf7MME-2mfv471Sk,808
|
|
73
|
+
pymammotion/mammotion/commands/mammotion_command.py,sha256=wX1bPtlPbYZfAw_TOLkVk5QCTZbQQXNIswQg8bfmcpI,3647
|
|
74
|
+
pymammotion/mammotion/commands/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
|
+
pymammotion/mammotion/commands/messages/basestation.py,sha256=a1LEF4C25ynILeQLx-FOOU4d-N_vMkXSh_etojJjIDM,1442
|
|
76
|
+
pymammotion/mammotion/commands/messages/driver.py,sha256=tJUM1WhlWFs92PbZW5QSG-TMo6nemAUkcUDzI_6gETU,4695
|
|
77
|
+
pymammotion/mammotion/commands/messages/media.py,sha256=KJyMzSZkwQrHWjAWfAI88Y7-jmfN3-WYtY193KaomT4,2930
|
|
78
|
+
pymammotion/mammotion/commands/messages/navigation.py,sha256=sZ66aMObEVStNxGcDvtSSJmTAr45pTBzJ-WMpaHqwtM,26365
|
|
79
|
+
pymammotion/mammotion/commands/messages/network.py,sha256=7K6aqt29ymTSUG0iEv4kIRD0Dv6rfHNctE00UvuMpG4,7264
|
|
80
|
+
pymammotion/mammotion/commands/messages/ota.py,sha256=Nk3Tlp6n7hkbkuy355BlqbozHIHzsYnrH2cDO8QGaLk,1446
|
|
81
|
+
pymammotion/mammotion/commands/messages/system.py,sha256=1Xchdx7Y0-kbrM-knSEUhwELu9PyF7DjtsCFt7_BCXw,13343
|
|
82
|
+
pymammotion/mammotion/commands/messages/video.py,sha256=5D5Azt6Q63K-OeC2eSPmmrGgFLmGIi21jPuESCYVgnE,1296
|
|
83
|
+
pymammotion/mammotion/control/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
|
+
pymammotion/mammotion/control/joystick.py,sha256=QfBVxM_gxpWsZAGO90whtgxCI2tIZ3TTad9wHIPsU9s,5640
|
|
85
|
+
pymammotion/mammotion/devices/__init__.py,sha256=YYphpxf0zr1Xc_dOBKsCzcO5zSwlewuhZNjAbmy6cHI,1012
|
|
86
|
+
pymammotion/mammotion/devices/base.py,sha256=MLLup0ZQI1GvyEF980BTtIeuayRZJijR1kvk77U1DS0,6518
|
|
87
|
+
pymammotion/mammotion/devices/mammotion.py,sha256=0s6RqyQfW45Lz_oGN5AO_fbxj7IHO9_CVL192Q98fec,25418
|
|
88
|
+
pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=xSxqlsWJaXnozFUv3kV91FwWMg7IWAIos-MMjshvQEI,19184
|
|
89
|
+
pymammotion/mammotion/devices/mammotion_cloud.py,sha256=pBZYLFsFdKL5hBd6PADD7G63cXUtCzC06T19hePJsc0,15540
|
|
90
|
+
pymammotion/mammotion/devices/mammotion_mower_ble.py,sha256=v2fdj7qWhudMc7yy8LeQ7t8OZy3hI5cqiMYyR71ElDI,1900
|
|
91
|
+
pymammotion/mammotion/devices/mammotion_mower_cloud.py,sha256=JwCQICv8S31c1ll23JIWFFJEwzbTss182MvE4ZiQxWs,1877
|
|
92
|
+
pymammotion/mammotion/devices/mower_device.py,sha256=Oa--dxOdE8w3Z5tSni2OPPJ9jUPGFMXSsblCMneE3pw,5498
|
|
93
|
+
pymammotion/mammotion/devices/mower_manager.py,sha256=m2U90ZlNgSmdPAh8BtKtyMVt5ZTBpfxNs5RT_lsUTls,4280
|
|
94
|
+
pymammotion/mammotion/devices/rtk_ble.py,sha256=egZo4VJYS1_9r7e8f8FA21tD-bVthc-YgJbTtf0cNSI,3601
|
|
95
|
+
pymammotion/mammotion/devices/rtk_cloud.py,sha256=a6XPo6c5p-HhyeaNiPvrSoj4NEwkqgmC_8GUx2wf5DI,4851
|
|
96
|
+
pymammotion/mammotion/devices/rtk_device.py,sha256=8wUCPqS6Xkox7sFj8AaXlVbzh67X9HarqldddBoWqBE,1917
|
|
97
|
+
pymammotion/mammotion/devices/rtk_manager.py,sha256=3rm_adJUdga9E6Uo6If2jRLcfAXdkreMIWESlwY2yC8,4523
|
|
98
|
+
pymammotion/mammotion/devices/managers/managers.py,sha256=WD6ZZefMRi5sMrtaKwvc1hKqmAj3iDVbyP6htRIt1_0,2287
|
|
99
|
+
pymammotion/mqtt/__init__.py,sha256=9nhy9GS8EbzOAPOrXHBTd_olePq8mctIkwMruDDSeWw,155
|
|
100
|
+
pymammotion/mqtt/aliyun_mqtt.py,sha256=-15bFVOMfqssZffOWnHjK01hL37yn7UO-bJXfYGWWRY,10304
|
|
101
|
+
pymammotion/mqtt/mammotion_future.py,sha256=_OWqKOlUGl2yT1xOsXFQYpGd-1zQ63OxqXgy7KRQgYc,710
|
|
102
|
+
pymammotion/mqtt/mammotion_mqtt.py,sha256=MUkwx4kaofrdppqMRUCzDjincIqi3OGo3g072ALpvDE,8765
|
|
103
|
+
pymammotion/mqtt/mqtt_models.py,sha256=3JXP9Nals-3f27pYUqxD9WrfQHf5tpnal1j4R6vr-CM,1760
|
|
104
|
+
pymammotion/mqtt/linkkit/__init__.py,sha256=ENgc3ynd2kd9gMQR3-kgmCu6Ed9Y6XCIzU0zFReUlkk,80
|
|
105
|
+
pymammotion/mqtt/linkkit/h2client.py,sha256=w9Nvi_nY4CLD_fw-pHtYChwQf7e2TiAGeqkY_sF4cf0,19659
|
|
106
|
+
pymammotion/mqtt/linkkit/linkkit.py,sha256=77rbykSCxad-nrI4Ibs-J1227zhGHlCaZp9L-B2fFeg,133030
|
|
107
|
+
pymammotion/proto/__init__.py,sha256=tiNljAXKL-CkTfIgnJ0dzXhMTHuprHL9xThyNqoVR88,151190
|
|
108
|
+
pymammotion/proto/basestation.proto,sha256=YiSsDmT0DY_ep6DHay13SbhxGMhentYt0BmJrVQrwLQ,1198
|
|
109
|
+
pymammotion/proto/basestation_pb2.py,sha256=suenbpMz9JZCXdGJGdiPaapppRz9Cf4IDzAXUfdIG3w,3083
|
|
110
|
+
pymammotion/proto/basestation_pb2.pyi,sha256=lGcTPlGaLdHEQ1A39YITbMG_vs1cVaqHAg5TsPvzexc,4652
|
|
111
|
+
pymammotion/proto/common.proto,sha256=op8TCU1ppCMeP-izK2tXMoJXQyZXdgj1EgOKcd14A-A,81
|
|
112
|
+
pymammotion/proto/common_pb2.py,sha256=8OpJ04lLq8sAktY6CkP8TxVGar9x858sCf6FqLy7Rs4,1030
|
|
113
|
+
pymammotion/proto/common_pb2.pyi,sha256=skF2ydSIQIvoobjiCUjXVD-pTfJiAILbaUl6nkdh2SY,460
|
|
114
|
+
pymammotion/proto/dev_net.proto,sha256=EXZp8PV-_l6-Y6o55ANAudmgKP4YPc2oGNvXa1emD0I,6027
|
|
115
|
+
pymammotion/proto/dev_net_pb2.py,sha256=BHMv7iUEtBf6OnaZTwnshOdyY94zlLLr7f00xarTeYY,13906
|
|
116
|
+
pymammotion/proto/dev_net_pb2.pyi,sha256=LrAYzN1NcZ-uuINOzU-77WmGuUIw5pQMrlxlWv9funQ,23993
|
|
117
|
+
pymammotion/proto/luba_msg.proto,sha256=JHK9JqIIKEnamO7mI_67z4dj5yGXi5MGTtNA8I1QBNE,1695
|
|
118
|
+
pymammotion/proto/luba_msg_pb2.py,sha256=-dEGD7lCHeItY5D7dAZ391l7qqjWKafbx8tavl7qqgU,4564
|
|
119
|
+
pymammotion/proto/luba_msg_pb2.pyi,sha256=_pTiOzssrVbEty_yIjHpnQWbTNtFfKfqSC_wvpVT_bI,4325
|
|
120
|
+
pymammotion/proto/luba_mul.proto,sha256=jAJN9Sts0PfqmLYDdte5NIY36oOrMP0bbqat6RuigYI,2135
|
|
121
|
+
pymammotion/proto/luba_mul_pb2.py,sha256=MDZotppPPglKfTuBuWNjw6iHXbUVAH_PXPyl9VVF7sc,5724
|
|
122
|
+
pymammotion/proto/luba_mul_pb2.pyi,sha256=KsTOSGRTvcO1qO7wxuu827zRT7Eb7xnUN-KRd7dgm6s,7713
|
|
123
|
+
pymammotion/proto/mctrl_driver.proto,sha256=35U29NukN3ZT4davrrwOWtszmMX8R_8D39sWVMgixnY,2181
|
|
124
|
+
pymammotion/proto/mctrl_driver_pb2.py,sha256=gDk7woW1L3yyNx_Yufxa0_cjJnDIMW7EMqXBwhNsXKk,5512
|
|
125
|
+
pymammotion/proto/mctrl_driver_pb2.pyi,sha256=yVKNGzAWaQTFI1DQ6ytnHKofUmGqDmLqmNq_9TXofMQ,8494
|
|
126
|
+
pymammotion/proto/mctrl_nav.proto,sha256=qIhKkmP5yLCc85LmFq6OCC2cE_-S_CYoV0fHHWE4ohc,12804
|
|
127
|
+
pymammotion/proto/mctrl_nav_pb2.py,sha256=h7orPnijActaK0WAZF5LNeB3EDI7yqEPL_hWzmnEWVU,26271
|
|
128
|
+
pymammotion/proto/mctrl_nav_pb2.pyi,sha256=3u3yZ-H5TdKWAJh4bjuGNKXALVGotyfzKekK-eQZ5Xk,55825
|
|
129
|
+
pymammotion/proto/mctrl_ota.proto,sha256=feIooPeE-FgkLpjd0pWp6maAMaJOUIjIlbXk_FHDrD4,1337
|
|
130
|
+
pymammotion/proto/mctrl_ota_pb2.py,sha256=Fs5IQbGBZSvLqxertw1JRaYOGd2EhNI41lgSHkrGWPs,3762
|
|
131
|
+
pymammotion/proto/mctrl_ota_pb2.pyi,sha256=sXX19_q1SfLKMKzdPnmcy6eIslt1NASlD0hlMNNYCQY,5913
|
|
132
|
+
pymammotion/proto/mctrl_pept.proto,sha256=E-kp3dLPTbnrnRz4x1hFHfIbv4IYs2lHL8Nhs73qla4,807
|
|
133
|
+
pymammotion/proto/mctrl_pept_pb2.py,sha256=7rM3ZSn2XyPD0k2FUhL0zDrHmyC15ZUJgMXqx0biptg,2436
|
|
134
|
+
pymammotion/proto/mctrl_pept_pb2.pyi,sha256=rYmmllXOmHqz7PRn7IWGSkGjKmJRHI4HNA7ZkYipK_g,3308
|
|
135
|
+
pymammotion/proto/mctrl_sys.proto,sha256=XdmmJTkVmy7M93--tQIhM7w2B0YZdsTjSXqmD6kbd1g,15938
|
|
136
|
+
pymammotion/proto/mctrl_sys_pb2.py,sha256=N12eEXmpJZh5VvjN7QdNZAwWLABKtfHR5VGTzA-kxDY,33162
|
|
137
|
+
pymammotion/proto/mctrl_sys_pb2.pyi,sha256=N1sJJMx7qWsj1kKYoQJ4JEZanZetLZ5JThs1IXCChUE,61557
|
|
138
|
+
pymammotion/proto/message_pool.py,sha256=4-cRhhiM6bmfpUJZ8qxc8LEyqHBHpLCcotjbyZxl7JM,71
|
|
139
|
+
pymammotion/proto/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
140
|
+
pymammotion/utility/conversions.py,sha256=v3YICy0zZwwBBzrUZgabI7GRfiDBnkiAX2qdtk3NxOY,89
|
|
141
|
+
pymammotion/utility/datatype_converter.py,sha256=A9qHBTbnq2PniAyBKxx3Qrk08aF5SIXGK1lDIY1siPU,4424
|
|
142
|
+
pymammotion/utility/device_config.py,sha256=65Jl73-dQDs4yMXwYXZW_bsgSvnwpFBZDu8OQPEIgx8,27877
|
|
143
|
+
pymammotion/utility/device_type.py,sha256=RdxBdkqzd03Q0MCCkbfqLj_CKrks8nNV4ji50UvJbH8,17024
|
|
144
|
+
pymammotion/utility/map.py,sha256=1SdHmysJPSsQPd69QHm-xPkkN452iBF4TRZa2FAtyro,9372
|
|
145
|
+
pymammotion/utility/movement.py,sha256=N75oAoAgFydqoaOedYIxGUHmuTCtPzAOtb-d_29tpfI,615
|
|
146
|
+
pymammotion/utility/mur_mur_hash.py,sha256=5h2qew1eY3a1PrCzgQLsHeo_Q33ropgG1E23uzmZ72o,5864
|
|
147
|
+
pymammotion/utility/periodic.py,sha256=MbeSb9cfhxzYmdT_RiE0dZe3H9IfbQW_zSqhmSX2RUc,3321
|
|
148
|
+
pymammotion/utility/rocker_util.py,sha256=6tX7sS87qoQC_tsxbx3NLL-HgS08wtzXiZkhDiz7uo0,7179
|
|
149
|
+
pymammotion/utility/constant/__init__.py,sha256=tcY0LDeD-qDDHx2LKt55KOyv9ZI0UfCNM6fknLCmm8s,110
|
|
150
|
+
pymammotion/utility/constant/device_constant.py,sha256=X27pgHJaz9ljhepz-m0p6Dvpylg6ASB8om2PlFOd_nU,8250
|
|
151
|
+
pymammotion-0.5.69.dist-info/METADATA,sha256=TaA8SHmjCGdsesnNHlPwWFdB_qpJu5lJVCX4TlT_upY,3512
|
|
152
|
+
pymammotion-0.5.69.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
153
|
+
pymammotion-0.5.69.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
154
|
+
pymammotion-0.5.69.dist-info/RECORD,,
|