pymammotion 0.2.72__py3-none-any.whl → 0.2.74__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/bluetooth/ble.py +3 -1
- pymammotion/data/model/device_config.py +8 -13
- pymammotion/data/model/mowing_modes.py +2 -2
- pymammotion/data/mqtt/event.py +1 -1
- pymammotion/mammotion/commands/mammotion_command.py +2 -2
- pymammotion/mammotion/devices/mammotion_bluetooth.py +1 -1
- pymammotion/proto/mctrl_nav.proto +2 -2
- {pymammotion-0.2.72.dist-info → pymammotion-0.2.74.dist-info}/METADATA +1 -1
- {pymammotion-0.2.72.dist-info → pymammotion-0.2.74.dist-info}/RECORD +11 -11
- {pymammotion-0.2.72.dist-info → pymammotion-0.2.74.dist-info}/LICENSE +0 -0
- {pymammotion-0.2.72.dist-info → pymammotion-0.2.74.dist-info}/WHEEL +0 -0
pymammotion/bluetooth/ble.py
CHANGED
@@ -21,7 +21,9 @@ class MammotionBLE:
|
|
21
21
|
# TODO: do something with incoming data
|
22
22
|
print(device)
|
23
23
|
print(advertising_data)
|
24
|
-
if advertising_data.local_name and (
|
24
|
+
if advertising_data.local_name and (
|
25
|
+
"Luba-" in advertising_data.local_name or "Yuka-" in advertising_data.local_name
|
26
|
+
):
|
25
27
|
return True
|
26
28
|
return False
|
27
29
|
|
@@ -36,33 +36,28 @@ class OperationSettings(DataClassORJSONMixin):
|
|
36
36
|
toward: int = 0 # is just angle
|
37
37
|
toward_included_angle: int = 90
|
38
38
|
toward_mode: int = 0 # angle type relative etc
|
39
|
-
border_mode: int = 1 # border laps
|
40
39
|
obstacle_laps: int = 1
|
41
|
-
mowing_laps: int = 1
|
40
|
+
mowing_laps: int = 1 # border laps
|
42
41
|
start_progress: int = 0
|
43
42
|
areas: list[int] = field(default_factory=list)
|
44
43
|
|
45
44
|
|
46
45
|
def create_path_order(operation_mode: OperationSettings, device_name: str) -> str:
|
47
|
-
|
46
|
+
# TODO add scheduling logic from getReserved() WorkSettingViewModel.java
|
47
|
+
i2 = 0
|
48
48
|
bArr = bytearray(8)
|
49
|
-
bArr[0] = operation_mode.
|
49
|
+
bArr[0] = operation_mode.mowing_laps
|
50
50
|
bArr[1] = operation_mode.obstacle_laps
|
51
51
|
bArr[3] = int(operation_mode.start_progress)
|
52
52
|
bArr[2] = 0
|
53
|
-
|
54
53
|
if not DeviceType.is_luba1(device_name):
|
55
54
|
bArr[4] = 0
|
56
55
|
if DeviceType.is_yuka(device_name):
|
57
|
-
|
58
|
-
elif not DeviceType.is_luba_2(device_name):
|
59
|
-
i = 0
|
60
|
-
bArr[5] = i
|
61
|
-
if operation_mode.is_dump:
|
62
|
-
b = int(operation_mode.collect_grass_frequency)
|
56
|
+
bArr[5] = calculate_yuka_mode(operation_mode)
|
63
57
|
else:
|
64
|
-
|
65
|
-
|
58
|
+
bArr[5] = 8 if DeviceType.is_luba_2(device_name) else 0
|
59
|
+
|
60
|
+
bArr[6] = int(operation_mode.collect_grass_frequency) if operation_mode.is_dump else 10
|
66
61
|
if DeviceType.is_luba1(device_name):
|
67
62
|
bArr[4] = operation_mode.toward_mode
|
68
63
|
return bArr.decode()
|
pymammotion/data/mqtt/event.py
CHANGED
@@ -75,7 +75,7 @@ class DeviceBizReqEventValue(DataClassORJSONMixin):
|
|
75
75
|
class GeneralParams(DataClassORJSONMixin):
|
76
76
|
groupIdList: list[str]
|
77
77
|
groupId: str
|
78
|
-
categoryKey: Literal["LawnMower"]
|
78
|
+
categoryKey: Literal["LawnMower", "Tracker"]
|
79
79
|
batchId: str
|
80
80
|
gmtCreate: int
|
81
81
|
productKey: str
|
@@ -42,11 +42,11 @@ class MammotionCommand(
|
|
42
42
|
def move_left(self, angular: float) -> bytes:
|
43
43
|
"""Move forward. values 0.0 1.0."""
|
44
44
|
angular_percent = get_percent(abs(angular * 100))
|
45
|
-
(linear_speed, angular_speed) = transform_both_speeds(0.0,
|
45
|
+
(linear_speed, angular_speed) = transform_both_speeds(0.0, 180.0, 0.0, angular_percent)
|
46
46
|
return self.send_movement(linear_speed=linear_speed, angular_speed=angular_speed)
|
47
47
|
|
48
48
|
def move_right(self, angular: float) -> bytes:
|
49
49
|
"""Move back. values 0.0 1.0."""
|
50
50
|
angular_percent = get_percent(abs(angular * 100))
|
51
|
-
(linear_speed, angular_speed) = transform_both_speeds(0.0,
|
51
|
+
(linear_speed, angular_speed) = transform_both_speeds(0.0, 0.0, 0.0, angular_percent)
|
52
52
|
return self.send_movement(linear_speed=linear_speed, angular_speed=angular_speed)
|
@@ -322,7 +322,7 @@ class MammotionBaseBLEDevice(MammotionBaseDevice):
|
|
322
322
|
self._update_raw_data(data)
|
323
323
|
except (KeyError, ValueError, IndexError, UnicodeDecodeError):
|
324
324
|
_LOGGER.exception("Error parsing message %s", data)
|
325
|
-
data = b
|
325
|
+
data = b""
|
326
326
|
finally:
|
327
327
|
self._message.clearNotification()
|
328
328
|
|
@@ -174,7 +174,7 @@ message NavGetCommDataAck {
|
|
174
174
|
|
175
175
|
message NavReqCoverPath {
|
176
176
|
int32 pver = 1;
|
177
|
-
|
177
|
+
fixed64 jobId = 2;
|
178
178
|
int32 jobVer = 3;
|
179
179
|
int32 jobMode = 4;
|
180
180
|
int32 subCmd = 5;
|
@@ -195,7 +195,7 @@ message NavReqCoverPath {
|
|
195
195
|
|
196
196
|
message NavUploadZigZagResult {
|
197
197
|
int32 pver = 1;
|
198
|
-
|
198
|
+
fixed64 jobId = 2;
|
199
199
|
int32 jobVer = 3;
|
200
200
|
int32 result = 4;
|
201
201
|
int32 area = 5;
|
@@ -11,7 +11,7 @@ pymammotion/aliyun/model/session_by_authcode_response.py,sha256=qW0pnnRXfyEuMbb9
|
|
11
11
|
pymammotion/aliyun/model/stream_subscription_response.py,sha256=po765WASQDboVCosbPEfDHNlanBf-3WMrA6iV3ezooY,357
|
12
12
|
pymammotion/aliyun/tmp_constant.py,sha256=M4Hq_lrGB3LZdX6R2XohRPFoK1NDnNV-pTJwJcJ9838,6650
|
13
13
|
pymammotion/bluetooth/__init__.py,sha256=LAl8jqZ1fPh-3mLmViNQsP3s814C1vsocYUa6oSaXt0,36
|
14
|
-
pymammotion/bluetooth/ble.py,sha256=
|
14
|
+
pymammotion/bluetooth/ble.py,sha256=Z2cO1EV2ndORKoJMzc2RdUdYbUe_PIzxCZICJg0_V24,2404
|
15
15
|
pymammotion/bluetooth/ble_message.py,sha256=toPhMOgmHEdHzvaOsgCUfrkjdI38oeS4Av0E-I8X0_s,14952
|
16
16
|
pymammotion/bluetooth/const.py,sha256=CCqyHsYbB0BAYjwdhXt_n6eWWxmhlUrAFjvVv57mbvE,1749
|
17
17
|
pymammotion/bluetooth/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -23,7 +23,7 @@ pymammotion/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
|
|
23
23
|
pymammotion/data/model/__init__.py,sha256=aSyroxYQQS-WMRi6WmWm2js4wLa9nmsi160gx9tts4o,323
|
24
24
|
pymammotion/data/model/account.py,sha256=vJM-KTf2q6eBfVC-UlNHBSmJvqHiCawZ40vnuhXhaz8,140
|
25
25
|
pymammotion/data/model/device.py,sha256=uta1BzfCIKd7Z0naw7JcEGy273yMdcAJ7pjidfpGhKQ,12315
|
26
|
-
pymammotion/data/model/device_config.py,sha256=
|
26
|
+
pymammotion/data/model/device_config.py,sha256=eP3Bq8GvhkeDzbImT5nIxOwmakZpXvo-zDQQHL9aTcw,2826
|
27
27
|
pymammotion/data/model/device_info.py,sha256=ahz2xILdSYdX6SIVuVzz8QCfSQLefbQnpXrsiDpBDbY,585
|
28
28
|
pymammotion/data/model/enums.py,sha256=EpKmO8yVUZyEnTY4yH0DMMVKYNQM42zpW1maUu0i3IE,1582
|
29
29
|
pymammotion/data/model/excute_boarder_params.py,sha256=9CpUqrygcle1C_1hDW-riLmm4map4ZbE842NXjcomEI,1394
|
@@ -31,13 +31,13 @@ pymammotion/data/model/execute_boarder.py,sha256=9rd_h4fbcsXxgnLOd2rO2hWyD1abnTG
|
|
31
31
|
pymammotion/data/model/generate_route_information.py,sha256=MkUBoqGtCAKmiVQ4Q1pEoDVHZs5uLIo7vhfWT4nGbtY,801
|
32
32
|
pymammotion/data/model/hash_list.py,sha256=ZPg5d1hy4bPMgPw5JkHujT06LIoEmXn7qSdQW79FF3A,6257
|
33
33
|
pymammotion/data/model/location.py,sha256=PwmITejfI4pm7PI4rzqSuuHetwle6IJr_CV95435s2M,871
|
34
|
-
pymammotion/data/model/mowing_modes.py,sha256=
|
34
|
+
pymammotion/data/model/mowing_modes.py,sha256=F7ah4QtYBBeXXJKdQVeQQMBjynQU8RQzIev7-v6t14c,827
|
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
38
|
pymammotion/data/model/report_info.py,sha256=m3T2P2mLfy5wDDpyjM2q1y9zCKJJKIItNX0M-Ge1ijg,2577
|
39
39
|
pymammotion/data/mqtt/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
40
|
-
pymammotion/data/mqtt/event.py,sha256=
|
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
|
@@ -49,7 +49,7 @@ pymammotion/http/model/http.py,sha256=1NJP4hkBulcnpbD7Rcwltd8Ry9lnZzQVFJN8Oo7MKe
|
|
49
49
|
pymammotion/mammotion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
50
|
pymammotion/mammotion/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
51
51
|
pymammotion/mammotion/commands/abstract_message.py,sha256=l2Wcyg7tIEjRGyQAk9T2rQVOLwilxG1hXTNf7811jGA,727
|
52
|
-
pymammotion/mammotion/commands/mammotion_command.py,sha256=
|
52
|
+
pymammotion/mammotion/commands/mammotion_command.py,sha256=PM9UCuBCKp_TWDfkeVJsBelSbRrKosRa2LvHA-By1k8,2510
|
53
53
|
pymammotion/mammotion/commands/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
54
54
|
pymammotion/mammotion/commands/messages/driver.py,sha256=DlOAC_yi1ycO5hKr5rfCpLmrqao6Mb6Fv1JWwMISnKE,3766
|
55
55
|
pymammotion/mammotion/commands/messages/media.py,sha256=l-m4l2Vp1ZOHPHyJTceuLaLvdgHOEfmykkbDncCDUI4,1359
|
@@ -63,7 +63,7 @@ pymammotion/mammotion/control/joystick.py,sha256=QfBVxM_gxpWsZAGO90whtgxCI2tIZ3T
|
|
63
63
|
pymammotion/mammotion/devices/__init__.py,sha256=f2qQFPgLGmV85W2hSlMUh5BYuht9o_Ar_JEAAMD4fsE,102
|
64
64
|
pymammotion/mammotion/devices/base.py,sha256=F_L5aDtY6rgRkk7Q4CwilLenTANW6cBe9zIU3a9HRmA,10020
|
65
65
|
pymammotion/mammotion/devices/mammotion.py,sha256=hSO184o1q4ftfLPx9froFPIXk428wGg8Ayw160W3z7c,12482
|
66
|
-
pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=
|
66
|
+
pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=ZsLsMlsgGG8uNlgoYvifxSRrUsoM0-9UlyY3f77ZmRI,18903
|
67
67
|
pymammotion/mammotion/devices/mammotion_cloud.py,sha256=7xbSZmC1PUG6ZfF5LtiELkQE61lybHoJcBUzz76VvLg,12074
|
68
68
|
pymammotion/mqtt/__init__.py,sha256=Ocs5e-HLJvTuDpVXyECEsWIvwsUaxzj7lZ9mSYutNDY,105
|
69
69
|
pymammotion/mqtt/mammotion_future.py,sha256=_OWqKOlUGl2yT1xOsXFQYpGd-1zQ63OxqXgy7KRQgYc,710
|
@@ -93,7 +93,7 @@ pymammotion/proto/mctrl_driver.proto,sha256=I0BncdAa3laeqT17Sn95r_1HuBD3dSc9IVu9
|
|
93
93
|
pymammotion/proto/mctrl_driver.py,sha256=sseY2MxUtaQZvg7fvbA_gNvtqx9MVDW_rvUcfA2CWVs,2971
|
94
94
|
pymammotion/proto/mctrl_driver_pb2.py,sha256=bfLwZb5Hehb6OIkgFrZMkQ0oTBXoOBxpruszKz-UM1U,3785
|
95
95
|
pymammotion/proto/mctrl_driver_pb2.pyi,sha256=9_rcQELsSeOfeIQMTEFIpeXICpDe3arQeA4kAYWNSWw,5860
|
96
|
-
pymammotion/proto/mctrl_nav.proto,sha256=
|
96
|
+
pymammotion/proto/mctrl_nav.proto,sha256=g7Mh9tqhA2bA7LRn9Cmgb9zTngO4ghUDPFTAGo2z_i8,12453
|
97
97
|
pymammotion/proto/mctrl_nav.py,sha256=okOznE_1dCi1yE5sSdQNKWkgI8CpbGRxMAISL5zqiT4,25040
|
98
98
|
pymammotion/proto/mctrl_nav_pb2.py,sha256=LAHfEmGfNVZCN6vuLSZF6s2wd1Qk-siaWe4mdPWPdxc,24213
|
99
99
|
pymammotion/proto/mctrl_nav_pb2.pyi,sha256=qmGYfKh2o63e5ppl9QIWnwDbmGVUVOf7EqhC9ApE5fg,51336
|
@@ -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.74.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
123
|
+
pymammotion-0.2.74.dist-info/METADATA,sha256=ULnp2FFjMAMqTa2GtNl8CSwIIgxnYqqaZ7UPpOTj3C8,3896
|
124
|
+
pymammotion-0.2.74.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
125
|
+
pymammotion-0.2.74.dist-info/RECORD,,
|
File without changes
|
File without changes
|