pymammotion 0.2.49__tar.gz → 0.2.50__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 (124) hide show
  1. {pymammotion-0.2.49 → pymammotion-0.2.50}/PKG-INFO +1 -1
  2. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/aliyun/cloud_gateway.py +3 -0
  3. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/hash_list.py +11 -2
  4. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/commands/messages/driver.py +1 -1
  5. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/devices/base.py +5 -4
  6. {pymammotion-0.2.49 → pymammotion-0.2.50}/pyproject.toml +3 -3
  7. {pymammotion-0.2.49 → pymammotion-0.2.50}/LICENSE +0 -0
  8. {pymammotion-0.2.49 → pymammotion-0.2.50}/README.md +0 -0
  9. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/__init__.py +0 -0
  10. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/aliyun/__init__.py +0 -0
  11. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/aliyun/cloud_service.py +0 -0
  12. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/aliyun/model/aep_response.py +0 -0
  13. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/aliyun/model/connect_response.py +0 -0
  14. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/aliyun/model/dev_by_account_response.py +0 -0
  15. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/aliyun/model/login_by_oauth_response.py +0 -0
  16. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/aliyun/model/regions_response.py +0 -0
  17. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/aliyun/model/session_by_authcode_response.py +0 -0
  18. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/aliyun/model/stream_subscription_response.py +0 -0
  19. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/aliyun/tmp_constant.py +0 -0
  20. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/bluetooth/__init__.py +0 -0
  21. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/bluetooth/ble.py +0 -0
  22. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/bluetooth/ble_message.py +0 -0
  23. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/bluetooth/const.py +0 -0
  24. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/bluetooth/data/__init__.py +0 -0
  25. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/bluetooth/data/convert.py +0 -0
  26. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  27. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/bluetooth/data/notifydata.py +0 -0
  28. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/const.py +0 -0
  29. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/__init__.py +0 -0
  30. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/__init__.py +0 -0
  31. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/account.py +0 -0
  32. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/device.py +0 -0
  33. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/device_config.py +0 -0
  34. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/enums.py +0 -0
  35. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/excute_boarder_params.py +0 -0
  36. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/execute_boarder.py +0 -0
  37. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/generate_route_information.py +0 -0
  38. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/location.py +0 -0
  39. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/mowing_modes.py +0 -0
  40. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/plan.py +0 -0
  41. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/rapid_state.py +0 -0
  42. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/region_data.py +0 -0
  43. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/model/report_info.py +0 -0
  44. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/mqtt/__init__.py +0 -0
  45. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/mqtt/event.py +0 -0
  46. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/mqtt/properties.py +0 -0
  47. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/mqtt/status.py +0 -0
  48. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/data/state_manager.py +0 -0
  49. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/event/__init__.py +0 -0
  50. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/event/event.py +0 -0
  51. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/http/_init_.py +0 -0
  52. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/http/http.py +0 -0
  53. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/http/model/http.py +0 -0
  54. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/__init__.py +0 -0
  55. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/commands/__init__.py +0 -0
  56. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  57. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  58. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  59. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/commands/messages/media.py +0 -0
  60. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  61. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/commands/messages/network.py +0 -0
  62. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  63. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/commands/messages/system.py +0 -0
  64. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/commands/messages/video.py +0 -0
  65. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/control/__init__.py +0 -0
  66. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/control/joystick.py +0 -0
  67. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/devices/__init__.py +0 -0
  68. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/devices/mammotion.py +0 -0
  69. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/devices/mammotion_bluetooth.py +0 -0
  70. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mammotion/devices/mammotion_cloud.py +0 -0
  71. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mqtt/__init__.py +0 -0
  72. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mqtt/mammotion_future.py +0 -0
  73. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
  74. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/__init__.py +0 -0
  75. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/basestation.proto +0 -0
  76. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/basestation.py +0 -0
  77. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/basestation_pb2.py +0 -0
  78. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/basestation_pb2.pyi +0 -0
  79. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/common.proto +0 -0
  80. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/common.py +0 -0
  81. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/common_pb2.py +0 -0
  82. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/common_pb2.pyi +0 -0
  83. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/dev_net.proto +0 -0
  84. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/dev_net.py +0 -0
  85. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/dev_net_pb2.py +0 -0
  86. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  87. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/luba_msg.proto +0 -0
  88. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/luba_msg.py +0 -0
  89. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/luba_msg_pb2.py +0 -0
  90. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  91. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/luba_mul.proto +0 -0
  92. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/luba_mul.py +0 -0
  93. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/luba_mul_pb2.py +0 -0
  94. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  95. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_driver.proto +0 -0
  96. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_driver.py +0 -0
  97. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  98. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  99. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_nav.proto +0 -0
  100. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_nav.py +0 -0
  101. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  102. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  103. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_ota.proto +0 -0
  104. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_ota.py +0 -0
  105. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  106. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  107. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_pept.proto +0 -0
  108. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_pept.py +0 -0
  109. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  110. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  111. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_sys.proto +0 -0
  112. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_sys.py +0 -0
  113. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  114. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  115. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/py.typed +0 -0
  116. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/utility/constant/__init__.py +0 -0
  117. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/utility/constant/device_constant.py +0 -0
  118. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/utility/conversions.py +0 -0
  119. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/utility/datatype_converter.py +0 -0
  120. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/utility/device_type.py +0 -0
  121. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/utility/map.py +0 -0
  122. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/utility/movement.py +0 -0
  123. {pymammotion-0.2.49 → pymammotion-0.2.50}/pymammotion/utility/periodic.py +0 -0
  124. {pymammotion-0.2.49 → pymammotion-0.2.50}/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.49
3
+ Version: 0.2.50
4
4
  Summary:
5
5
  License: GNU-3.0
6
6
  Author: Michael Arthur
@@ -478,6 +478,8 @@ class CloudIOTGateway:
478
478
 
479
479
  # Load the JSON string into a dictionary
480
480
  response_body_dict = json.loads(response_body_str)
481
+ logger.debug(response_body_dict)
482
+ return response_body_dict
481
483
 
482
484
  def check_or_refresh_session(self):
483
485
  """Check or refresh the session."""
@@ -689,6 +691,7 @@ class CloudIOTGateway:
689
691
  str(response_body_dict.get("msg")),
690
692
  )
691
693
  if response_body_dict.get("code") == 29003:
694
+ self.sign_out()
692
695
  raise SetupException(response_body_dict.get("code"))
693
696
  if response_body_dict.get("code") == 6205:
694
697
  raise DeviceOfflineException(response_body_dict.get("code"))
@@ -22,8 +22,8 @@ class FrameList(DataClassORJSONMixin):
22
22
 
23
23
  @dataclass
24
24
  class RootHashList(DataClassORJSONMixin):
25
- total_frame: int = 1
26
- data: list[NavGetHashListAck] = field(default_factory=list)
25
+ total_frame: int
26
+ data: list[NavGetHashListAck]
27
27
 
28
28
 
29
29
  @dataclass
@@ -56,6 +56,15 @@ class HashList(DataClassORJSONMixin):
56
56
  def hashlist(self) -> list[int]:
57
57
  return [i for obj in self.root_hash_list.data for i in obj.data_couple]
58
58
 
59
+ @property
60
+ def missing_hashlist(self) -> list[int]:
61
+ return [
62
+ i
63
+ for obj in self.root_hash_list.data
64
+ for i in obj.data_couple
65
+ if i not in set(self.area.keys()).union(self.path.keys(), self.obstacle.keys())
66
+ ]
67
+
59
68
  def update_root_hash_list(self, hash_list: NavGetHashListAck) -> None:
60
69
  self.root_hash_list.total_frame = hash_list.total_frame
61
70
 
@@ -27,7 +27,7 @@ class MessageDriver(AbstractMessage, ABC):
27
27
 
28
28
  def set_blade_height(self, height: int):
29
29
  logger.debug(f"Send knife height height={height}")
30
- build = mctrl_driver.MctlDriver(todev_knife_height_set=mctrl_driver.DrvKnifeHeight(knifeHeight=height))
30
+ build = mctrl_driver.MctlDriver(todev_knife_height_set=mctrl_driver.DrvKnifeHeight(knife_height=height))
31
31
  logger.debug(f"Send command--Knife motor height setting height={height}")
32
32
  return self.send_order_msg_driver(build)
33
33
 
@@ -58,7 +58,8 @@ class MammotionBaseDevice:
58
58
 
59
59
  missing_frames = self.mower.map.missing_hash_frame()
60
60
  if len(missing_frames) == 0:
61
- return await self.queue_command("synchronize_hash_data", hash_num=self.mower.map.hashlist)
61
+ data_hash = self.mower.map.missing_hashlist.pop()
62
+ return await self.queue_command("synchronize_hash_data", hash_num=data_hash)
62
63
 
63
64
  if current_frame != missing_frames[0] - 1:
64
65
  current_frame = missing_frames[0] - 1
@@ -73,7 +74,7 @@ class MammotionBaseDevice:
73
74
  if len(missing_frames) == 0:
74
75
  # get next in hash ack list
75
76
 
76
- data_hash = find_next_integer(self.mower.map.hashlist, common_data.hash)
77
+ data_hash = self.mower.map.missing_hashlist.pop()
77
78
  if data_hash is None:
78
79
  return
79
80
 
@@ -216,8 +217,8 @@ class MammotionBaseDevice:
216
217
 
217
218
  await self.queue_command("get_all_boundary_hash_list", sub_cmd=0)
218
219
  await self.queue_command("get_hash_response", total_frame=1, current_frame=1)
219
- for data_hash in self.mower.map.hashlist:
220
- await self.queue_command("synchronize_hash_data", hash_num=data_hash)
220
+ data_hash = self.mower.map.missing_hashlist.pop()
221
+ await self.queue_command("synchronize_hash_data", hash_num=data_hash)
221
222
 
222
223
  # sub_cmd 3 is job hashes??
223
224
  # sub_cmd 4 is dump location (yuka)
@@ -1,10 +1,10 @@
1
1
  [project]
2
2
  name = "pymammotion"
3
- version = "0.2.49"
3
+ version = "0.2.50"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "pymammotion"
7
- version = "0.2.49"
7
+ version = "0.2.50"
8
8
  license = "GNU-3.0"
9
9
  description = ""
10
10
  readme = "README.md"
@@ -55,7 +55,7 @@ mypy = "^1.10.0"
55
55
  pre-commit = "^3.8.0"
56
56
 
57
57
  [tool.bumpver]
58
- current_version = "0.2.49"
58
+ current_version = "0.2.50"
59
59
  version_pattern = "MAJOR.MINOR.PATCH"
60
60
  commit_message = "Bump version {old_version} -> {new_version}"
61
61
  commit = true
File without changes
File without changes