pymammotion 0.2.72__tar.gz → 0.2.74__tar.gz

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.
Files changed (125) hide show
  1. {pymammotion-0.2.72 → pymammotion-0.2.74}/PKG-INFO +1 -1
  2. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/bluetooth/ble.py +3 -1
  3. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/device_config.py +8 -13
  4. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/mowing_modes.py +2 -2
  5. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/mqtt/event.py +1 -1
  6. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/devices/mammotion_bluetooth.py +1 -1
  7. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_nav.proto +2 -2
  8. {pymammotion-0.2.72 → pymammotion-0.2.74}/pyproject.toml +3 -3
  9. {pymammotion-0.2.72 → pymammotion-0.2.74}/LICENSE +0 -0
  10. {pymammotion-0.2.72 → pymammotion-0.2.74}/README.md +0 -0
  11. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/__init__.py +0 -0
  12. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/aliyun/__init__.py +0 -0
  13. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/aliyun/cloud_gateway.py +0 -0
  14. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/aliyun/cloud_service.py +0 -0
  15. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/aliyun/model/aep_response.py +0 -0
  16. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/aliyun/model/connect_response.py +0 -0
  17. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
  18. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
  19. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/aliyun/model/regions_response.py +0 -0
  20. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
  21. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/aliyun/model/stream_subscription_response.py +0 -0
  22. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/aliyun/tmp_constant.py +0 -0
  23. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/bluetooth/__init__.py +0 -0
  24. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/bluetooth/ble_message.py +0 -0
  25. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/bluetooth/const.py +0 -0
  26. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/bluetooth/data/__init__.py +0 -0
  27. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/bluetooth/data/convert.py +0 -0
  28. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  29. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/bluetooth/data/notifydata.py +0 -0
  30. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/const.py +0 -0
  31. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/__init__.py +0 -0
  32. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/__init__.py +0 -0
  33. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/account.py +0 -0
  34. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/device.py +0 -0
  35. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/device_info.py +0 -0
  36. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/enums.py +0 -0
  37. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/excute_boarder_params.py +0 -0
  38. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/execute_boarder.py +0 -0
  39. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/generate_route_information.py +0 -0
  40. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/hash_list.py +0 -0
  41. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/location.py +0 -0
  42. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/plan.py +0 -0
  43. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/rapid_state.py +0 -0
  44. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/region_data.py +0 -0
  45. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/model/report_info.py +0 -0
  46. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/mqtt/__init__.py +0 -0
  47. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/mqtt/properties.py +0 -0
  48. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/mqtt/status.py +0 -0
  49. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/data/state_manager.py +0 -0
  50. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/event/__init__.py +0 -0
  51. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/event/event.py +0 -0
  52. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/http/_init_.py +0 -0
  53. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/http/http.py +0 -0
  54. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/http/model/http.py +0 -0
  55. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/__init__.py +0 -0
  56. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/commands/__init__.py +0 -0
  57. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  58. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/commands/mammotion_command.py +2 -2
  59. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  60. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/commands/messages/driver.py +0 -0
  61. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/commands/messages/media.py +0 -0
  62. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  63. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/commands/messages/network.py +0 -0
  64. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  65. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/commands/messages/system.py +0 -0
  66. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/commands/messages/video.py +0 -0
  67. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/control/__init__.py +0 -0
  68. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/control/joystick.py +0 -0
  69. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/devices/__init__.py +0 -0
  70. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/devices/base.py +0 -0
  71. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/devices/mammotion.py +0 -0
  72. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mammotion/devices/mammotion_cloud.py +0 -0
  73. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mqtt/__init__.py +0 -0
  74. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mqtt/mammotion_future.py +0 -0
  75. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
  76. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/__init__.py +0 -0
  77. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/basestation.proto +0 -0
  78. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/basestation.py +0 -0
  79. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/basestation_pb2.py +0 -0
  80. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/basestation_pb2.pyi +0 -0
  81. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/common.proto +0 -0
  82. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/common.py +0 -0
  83. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/common_pb2.py +0 -0
  84. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/common_pb2.pyi +0 -0
  85. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/dev_net.proto +0 -0
  86. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/dev_net.py +0 -0
  87. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/dev_net_pb2.py +0 -0
  88. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  89. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/luba_msg.proto +0 -0
  90. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/luba_msg.py +0 -0
  91. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/luba_msg_pb2.py +0 -0
  92. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  93. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/luba_mul.proto +0 -0
  94. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/luba_mul.py +0 -0
  95. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/luba_mul_pb2.py +0 -0
  96. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  97. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_driver.proto +0 -0
  98. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_driver.py +0 -0
  99. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  100. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  101. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_nav.py +0 -0
  102. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  103. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  104. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_ota.proto +0 -0
  105. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_ota.py +0 -0
  106. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  107. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  108. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_pept.proto +0 -0
  109. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_pept.py +0 -0
  110. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  111. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  112. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_sys.proto +0 -0
  113. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_sys.py +0 -0
  114. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  115. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  116. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/py.typed +0 -0
  117. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/utility/constant/__init__.py +0 -0
  118. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/utility/constant/device_constant.py +0 -0
  119. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/utility/conversions.py +0 -0
  120. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/utility/datatype_converter.py +0 -0
  121. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/utility/device_type.py +0 -0
  122. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/utility/map.py +0 -0
  123. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/utility/movement.py +0 -0
  124. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/utility/periodic.py +0 -0
  125. {pymammotion-0.2.72 → pymammotion-0.2.74}/pymammotion/utility/rocker_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pymammotion
3
- Version: 0.2.72
3
+ Version: 0.2.74
4
4
  Summary:
5
5
  License: GNU-3.0
6
6
  Author: Michael Arthur
@@ -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 ("Luba-" in advertising_data.local_name or "Yuka-" in advertising_data.local_name):
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
- i = 8
46
+ # TODO add scheduling logic from getReserved() WorkSettingViewModel.java
47
+ i2 = 0
48
48
  bArr = bytearray(8)
49
- bArr[0] = operation_mode.border_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
- i = calculate_yuka_mode(operation_mode)
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
- b = 10
65
- bArr[6] = b
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()
@@ -33,8 +33,8 @@ class ObstacleLapsMode(IntEnum):
33
33
  class MowOrder(IntEnum):
34
34
  """path_order"""
35
35
 
36
- border_first = 0
37
- grid_first = 1
36
+ grid_first = 0
37
+ border_first = 1
38
38
 
39
39
 
40
40
  class BypassStrategy(IntEnum):
@@ -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
@@ -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
- int64 jobId = 2;
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
- int64 jobId = 2;
198
+ fixed64 jobId = 2;
199
199
  int32 jobVer = 3;
200
200
  int32 result = 4;
201
201
  int32 area = 5;
@@ -1,10 +1,10 @@
1
1
  [project]
2
2
  name = "pymammotion"
3
- version = "0.2.72"
3
+ version = "0.2.74"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "pymammotion"
7
- version = "0.2.72"
7
+ version = "0.2.74"
8
8
  license = "GNU-3.0"
9
9
  description = ""
10
10
  readme = "README.md"
@@ -61,7 +61,7 @@ mypy = "^1.11.2"
61
61
  autotyping = "^24.3.0"
62
62
 
63
63
  [tool.bumpver]
64
- current_version = "0.2.72"
64
+ current_version = "0.2.74"
65
65
  version_pattern = "MAJOR.MINOR.PATCH"
66
66
  commit_message = "Bump version {old_version} -> {new_version}"
67
67
  commit = true
File without changes
File without changes
@@ -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, 0.0, 0.0, angular_percent)
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, 180.0, 0.0, angular_percent)
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)