pymammotion 0.2.49__py3-none-any.whl → 0.2.51__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.
@@ -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 = 0
26
+ data: list[NavGetHashListAck] = list
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pymammotion
3
- Version: 0.2.49
3
+ Version: 0.2.51
4
4
  Summary:
5
5
  License: GNU-3.0
6
6
  Author: Michael Arthur
@@ -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=vMNt5MquL-t7C0-yDAXQEYA37RR4cj2rdLfh5iQ131o,25561
3
+ pymammotion/aliyun/cloud_gateway.py,sha256=96xbl_QefMcN0x8Dhz0OJQr_IaAcgrrrqfxCQAUGxTc,25668
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
@@ -28,7 +28,7 @@ pymammotion/data/model/enums.py,sha256=EpKmO8yVUZyEnTY4yH0DMMVKYNQM42zpW1maUu0i3
28
28
  pymammotion/data/model/excute_boarder_params.py,sha256=9CpUqrygcle1C_1hDW-riLmm4map4ZbE842NXjcomEI,1394
29
29
  pymammotion/data/model/execute_boarder.py,sha256=9rd_h4fbcsXxgnLOd2rO2hWyD1abnTGc47QTEpp8DD0,1103
30
30
  pymammotion/data/model/generate_route_information.py,sha256=MkUBoqGtCAKmiVQ4Q1pEoDVHZs5uLIo7vhfWT4nGbtY,801
31
- pymammotion/data/model/hash_list.py,sha256=WMnXddqHGWz3Htiof2xhcXMcHLvqjNcsDWuXAQlllVo,4394
31
+ pymammotion/data/model/hash_list.py,sha256=dc15-HrvzQ6JLehNFIXnKzSWDCgb6_MAB6omXTphZXQ,4649
32
32
  pymammotion/data/model/location.py,sha256=PwmITejfI4pm7PI4rzqSuuHetwle6IJr_CV95435s2M,871
33
33
  pymammotion/data/model/mowing_modes.py,sha256=5TrHSijUyPtIDWpNtgzx_vFQukRJWRz4gIrUaXggKPw,827
34
34
  pymammotion/data/model/plan.py,sha256=mcadkSL7fQXy0iJ0q786I3GEQY4i6kmQXfW6Ri69lcQ,2906
@@ -50,7 +50,7 @@ pymammotion/mammotion/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
50
50
  pymammotion/mammotion/commands/abstract_message.py,sha256=nw6r7694yzl7iJKqRqhLmAPRjd_TL_Xo_-JXq2_a_ug,222
51
51
  pymammotion/mammotion/commands/mammotion_command.py,sha256=Cdv8sAt-W-Sihmhir1eN56OMA2e5b8y47NP2QKYqb-o,2419
52
52
  pymammotion/mammotion/commands/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- pymammotion/mammotion/commands/messages/driver.py,sha256=ANIOEtjF23k7W_R_Yfgzxmc7p1KSBCF-l-tijUtw0Yg,3709
53
+ pymammotion/mammotion/commands/messages/driver.py,sha256=spkNa-sag_7xDuHy7mjsR_Fc8z9ztNKHCjtojWayJms,3710
54
54
  pymammotion/mammotion/commands/messages/media.py,sha256=ps0l06CXy5Ej--gTNCsyKttwo7yHLVrJUpn-wNJYecs,1150
55
55
  pymammotion/mammotion/commands/messages/navigation.py,sha256=4rXBL-mViWc38K6x1w5O-GjwV8UWS5xZXkf4aHYjs8A,23684
56
56
  pymammotion/mammotion/commands/messages/network.py,sha256=61msRJWyXdrO8FbI_rhrO2K8R1qkGVUj5BFzNwm7lwg,8155
@@ -60,7 +60,7 @@ pymammotion/mammotion/commands/messages/video.py,sha256=_8lJsU4sLm2CGnc7RDkueA0A
60
60
  pymammotion/mammotion/control/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
61
  pymammotion/mammotion/control/joystick.py,sha256=QfBVxM_gxpWsZAGO90whtgxCI2tIZ3TTad9wHIPsU9s,5640
62
62
  pymammotion/mammotion/devices/__init__.py,sha256=f2qQFPgLGmV85W2hSlMUh5BYuht9o_Ar_JEAAMD4fsE,102
63
- pymammotion/mammotion/devices/base.py,sha256=o3G-A6JciBq2AUZaPdHtp6q9pp3blOxYb1ySI3Fg_Gk,9717
63
+ pymammotion/mammotion/devices/base.py,sha256=iqvGglud4GYKgivBjzge7WU9-pLY8Z6l4QjShxLT7Go,9746
64
64
  pymammotion/mammotion/devices/mammotion.py,sha256=ForzwnQu1IRxtwsFMHAudFCtOAUJC01BcX5RK7dYYcs,12295
65
65
  pymammotion/mammotion/devices/mammotion_bluetooth.py,sha256=nyO7pkKgAoRPs-28ESf6ee-y3G5JTYRO-MCp4wKPMlE,17476
66
66
  pymammotion/mammotion/devices/mammotion_cloud.py,sha256=Q1Il0nCxH-8utg_9AKAY3HxuuhB78uHZV4yVpZ4k1TI,11282
@@ -118,7 +118,7 @@ pymammotion/utility/map.py,sha256=GYscVMg2cX3IPlNpCBNHDW0S55yS1WGRf1iHnNZ7TfQ,22
118
118
  pymammotion/utility/movement.py,sha256=N75oAoAgFydqoaOedYIxGUHmuTCtPzAOtb-d_29tpfI,615
119
119
  pymammotion/utility/periodic.py,sha256=MbeSb9cfhxzYmdT_RiE0dZe3H9IfbQW_zSqhmSX2RUc,3321
120
120
  pymammotion/utility/rocker_util.py,sha256=6tX7sS87qoQC_tsxbx3NLL-HgS08wtzXiZkhDiz7uo0,7179
121
- pymammotion-0.2.49.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
122
- pymammotion-0.2.49.dist-info/METADATA,sha256=Qw3Jl5LZDfCw9TOlEParI4X8ZffLGJiJdlHyWSRo2fQ,4052
123
- pymammotion-0.2.49.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
124
- pymammotion-0.2.49.dist-info/RECORD,,
121
+ pymammotion-0.2.51.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
122
+ pymammotion-0.2.51.dist-info/METADATA,sha256=iG3-bUgO8rYjPQBM_YcRPHOOPX7x7PdwmC8-aToZp6Y,4052
123
+ pymammotion-0.2.51.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
124
+ pymammotion-0.2.51.dist-info/RECORD,,