pymammotion 0.1.2__tar.gz → 0.1.3__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.

Potentially problematic release.


This version of pymammotion might be problematic. Click here for more details.

Files changed (115) hide show
  1. {pymammotion-0.1.2 → pymammotion-0.1.3}/PKG-INFO +1 -1
  2. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/device.py +7 -1
  3. pymammotion-0.1.3/pymammotion/data/model/report_info.py +121 -0
  4. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/state_manager.py +1 -1
  5. {pymammotion-0.1.2 → pymammotion-0.1.3}/pyproject.toml +2 -2
  6. {pymammotion-0.1.2 → pymammotion-0.1.3}/LICENSE +0 -0
  7. {pymammotion-0.1.2 → pymammotion-0.1.3}/README.md +0 -0
  8. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/__init__.py +0 -0
  9. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/aliyun/__init__.py +0 -0
  10. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/aliyun/cloud_gateway.py +0 -0
  11. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/aliyun/cloud_service.py +0 -0
  12. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/aliyun/dataclass/aep_response.py +0 -0
  13. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/aliyun/dataclass/connect_response.py +0 -0
  14. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/aliyun/dataclass/dev_by_account_response.py +0 -0
  15. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/aliyun/dataclass/login_by_oauth_response.py +0 -0
  16. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/aliyun/dataclass/regions_response.py +0 -0
  17. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/aliyun/dataclass/session_by_authcode_response.py +0 -0
  18. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/aliyun/tmp_constant.py +0 -0
  19. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/bluetooth/__init__.py +0 -0
  20. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/bluetooth/ble.py +0 -0
  21. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/bluetooth/ble_message.py +0 -0
  22. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/bluetooth/const.py +0 -0
  23. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/bluetooth/data/__init__.py +0 -0
  24. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/bluetooth/data/convert.py +0 -0
  25. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/bluetooth/data/framectrldata.py +0 -0
  26. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/bluetooth/data/notifydata.py +0 -0
  27. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/const.py +0 -0
  28. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/__init__.py +0 -0
  29. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/__init__.py +0 -0
  30. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/device_config.py +0 -0
  31. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/enums.py +0 -0
  32. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/excute_boarder_params.py +0 -0
  33. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/execute_boarder.py +0 -0
  34. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/generate_route_information.py +0 -0
  35. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/hash_list.py +0 -0
  36. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/location.py +0 -0
  37. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/mowing_modes.py +0 -0
  38. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/plan.py +0 -0
  39. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/rapid_state.py +0 -0
  40. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/model/region_data.py +0 -0
  41. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/mqtt/__init__.py +0 -0
  42. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/mqtt/event.py +0 -0
  43. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/mqtt/properties.py +0 -0
  44. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/data/mqtt/status.py +0 -0
  45. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/event/__init__.py +0 -0
  46. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/event/event.py +0 -0
  47. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/http/_init_.py +0 -0
  48. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/http/http.py +0 -0
  49. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/__init__.py +0 -0
  50. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/commands/__init__.py +0 -0
  51. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/commands/abstract_message.py +0 -0
  52. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/commands/mammotion_command.py +0 -0
  53. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/commands/messages/__init__.py +0 -0
  54. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/commands/messages/driver.py +0 -0
  55. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/commands/messages/media.py +0 -0
  56. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/commands/messages/navigation.py +0 -0
  57. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/commands/messages/network.py +0 -0
  58. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/commands/messages/ota.py +0 -0
  59. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/commands/messages/system.py +0 -0
  60. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/commands/messages/video.py +0 -0
  61. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/control/__init__.py +0 -0
  62. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/control/joystick.py +0 -0
  63. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/devices/__init__.py +0 -0
  64. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mammotion/devices/mammotion.py +0 -0
  65. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mqtt/__init__.py +0 -0
  66. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/mqtt/mammotion_mqtt.py +0 -0
  67. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/__init__.py +0 -0
  68. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/basestation.proto +0 -0
  69. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/basestation.py +0 -0
  70. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/basestation_pb2.py +0 -0
  71. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/basestation_pb2.pyi +0 -0
  72. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/common.proto +0 -0
  73. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/common.py +0 -0
  74. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/common_pb2.py +0 -0
  75. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/common_pb2.pyi +0 -0
  76. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/dev_net.proto +0 -0
  77. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/dev_net.py +0 -0
  78. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/dev_net_pb2.py +0 -0
  79. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/dev_net_pb2.pyi +0 -0
  80. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/luba_msg.proto +0 -0
  81. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/luba_msg.py +0 -0
  82. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/luba_msg_pb2.py +0 -0
  83. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/luba_msg_pb2.pyi +0 -0
  84. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/luba_mul.proto +0 -0
  85. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/luba_mul.py +0 -0
  86. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/luba_mul_pb2.py +0 -0
  87. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/luba_mul_pb2.pyi +0 -0
  88. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_driver.proto +0 -0
  89. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_driver.py +0 -0
  90. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_driver_pb2.py +0 -0
  91. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_driver_pb2.pyi +0 -0
  92. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_nav.proto +0 -0
  93. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_nav.py +0 -0
  94. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_nav_pb2.py +0 -0
  95. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_nav_pb2.pyi +0 -0
  96. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_ota.proto +0 -0
  97. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_ota.py +0 -0
  98. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_ota_pb2.py +0 -0
  99. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_ota_pb2.pyi +0 -0
  100. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_pept.proto +0 -0
  101. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_pept.py +0 -0
  102. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_pept_pb2.py +0 -0
  103. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_pept_pb2.pyi +0 -0
  104. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_sys.proto +0 -0
  105. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_sys.py +0 -0
  106. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_sys_pb2.py +0 -0
  107. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/proto/mctrl_sys_pb2.pyi +0 -0
  108. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/py.typed +0 -0
  109. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/utility/constant/__init__.py +0 -0
  110. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/utility/constant/device_constant.py +0 -0
  111. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/utility/datatype_converter.py +0 -0
  112. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/utility/device_type.py +0 -0
  113. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/utility/map.py +0 -0
  114. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/utility/periodic.py +0 -0
  115. {pymammotion-0.1.2 → pymammotion-0.1.3}/pymammotion/utility/rocker_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pymammotion
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary:
5
5
  License: GNU-3.0
6
6
  Author: Michael Arthur
@@ -2,9 +2,12 @@
2
2
 
3
3
  from dataclasses import dataclass
4
4
 
5
+ import betterproto
6
+
5
7
  from pymammotion.data.model import HashList
6
8
  from pymammotion.data.model.device_config import DeviceLimits
7
9
  from pymammotion.data.model.location import Location
10
+ from pymammotion.data.model.report_info import ReportData
8
11
  from pymammotion.proto.dev_net import DevNet
9
12
  from pymammotion.proto.luba_msg import LubaMsg
10
13
  from pymammotion.proto.luba_mul import SocMul
@@ -28,6 +31,7 @@ class MowingDevice:
28
31
  self.device = LubaMsg()
29
32
  self.map = HashList(area={}, path={}, obstacle={})
30
33
  self.location = Location()
34
+ self.report_data = ReportData()
31
35
  self.err_code_list = []
32
36
  self.err_code_list_time = []
33
37
  self.limits = DeviceLimits(30, 70, 0.2, 0.6)
@@ -85,7 +89,7 @@ class MowingDevice:
85
89
  ]
86
90
  )
87
91
 
88
- def report_data(self, toapp_report_data: ReportInfoData):
92
+ def update_report_data(self, toapp_report_data: ReportInfoData):
89
93
  coordinate_converter = CoordinateConverter(self.location.RTK.latitude, self.location.RTK.longitude)
90
94
  for index, location in enumerate(toapp_report_data.locations):
91
95
  if index == 0:
@@ -93,6 +97,8 @@ class MowingDevice:
93
97
  self.location.orientation = location.real_toward / 10000
94
98
  self.location.device = coordinate_converter.enu_to_lla(location.real_pos_y, location.real_pos_x)
95
99
 
100
+ self.report_data = self.report_data.from_dict(toapp_report_data.to_dict(casing=betterproto.Casing.SNAKE))
101
+
96
102
 
97
103
 
98
104
  def mow_info(self, toapp_mow_info: MowToAppInfoT):
@@ -0,0 +1,121 @@
1
+ from dataclasses import dataclass, field
2
+
3
+ @dataclass
4
+ class ConnectData:
5
+ connect_type: int = 0
6
+ ble_rssi: int = 0
7
+ wifi_rssi: int = 0
8
+
9
+ @classmethod
10
+ def from_dict(cls, data: dict):
11
+ return cls(
12
+ connect_type=data.get('connect_type', 0),
13
+ ble_rssi=data.get('ble_rssi', 0),
14
+ wifi_rssi=data.get('wifi_rssi', 0)
15
+ )
16
+
17
+ @dataclass
18
+ class DeviceData:
19
+ sys_status: int = 0
20
+ charge_state: int = 0
21
+ battery_val: int = 0
22
+ sensor_status: int = 0
23
+ last_status: int = 0
24
+ sys_time_stamp: str = ""
25
+
26
+ @classmethod
27
+ def from_dict(cls, data: dict):
28
+ return cls(
29
+ sys_status=data.get('sys_status', 0),
30
+ charge_state=data.get('charge_state', 0),
31
+ battery_val=data.get('battery_val', 0),
32
+ sensor_status=data.get('sensor_status', 0),
33
+ last_status=data.get('last_status', 0),
34
+ sys_time_stamp=data.get('sys_time_stamp', "")
35
+ )
36
+
37
+ @dataclass
38
+ class RTKData:
39
+ status: int = 0
40
+ pos_level: int = 0
41
+ gps_stars: int = 0
42
+ dis_status: str = ""
43
+ co_view_stars: int = 0
44
+
45
+ @classmethod
46
+ def from_dict(cls, data: dict):
47
+ return cls(
48
+ status=data.get('status', 0),
49
+ pos_level=data.get('pos_level', 0),
50
+ gps_stars=data.get('gps_stars', 0),
51
+ dis_status=data.get('dis_status', ""),
52
+ co_view_stars=data.get('co_view_stars', 0)
53
+ )
54
+
55
+ @dataclass
56
+ class LocationData:
57
+ real_pos_x: int = 0
58
+ real_pos_y: int = 0
59
+ real_toward: int = 0
60
+ pos_type: int = 0
61
+ bol_hash: str = ""
62
+
63
+ @classmethod
64
+ def from_dict(cls, data: dict):
65
+ return cls(
66
+ real_pos_x=data.get('real_pos_x', 0),
67
+ real_pos_y=data.get('real_pos_y', 0),
68
+ real_toward=data.get('real_toward', 0),
69
+ pos_type=data.get('pos_type', 0),
70
+ bol_hash=data.get('bol_hash', "")
71
+ )
72
+
73
+ @dataclass
74
+ class WorkData:
75
+ path_hash: str = ""
76
+ progress: int = 0
77
+ area: int = 0
78
+ bp_info: int = 0
79
+ bp_hash: str = ""
80
+ bp_pos_x: int = 0
81
+ bp_pos_y: int = 0
82
+ real_path_num: str = ""
83
+ ub_zone_hash: str = ""
84
+ init_cfg_hash: str = ""
85
+ ub_ecode_hash: str = ""
86
+ knife_height: int = 0
87
+
88
+ @classmethod
89
+ def from_dict(cls, data: dict):
90
+ return cls(
91
+ path_hash=data.get('path_hash', ""),
92
+ progress=data.get('progress', 0),
93
+ area=data.get('area', 0),
94
+ bp_info=data.get('bp_info', 0),
95
+ bp_hash=data.get('bp_hash', ""),
96
+ bp_pos_x=data.get('bp_pos_x', 0),
97
+ bp_pos_y=data.get('bp_pos_y', 0),
98
+ real_path_num=data.get('real_path_num', ""),
99
+ ub_zone_hash=data.get('ub_zone_hash', ""),
100
+ init_cfg_hash=data.get('init_cfg_hash', ""),
101
+ ub_ecode_hash=data.get('ub_ecode_hash', ""),
102
+ knife_height=data.get('knife_height', 0)
103
+ )
104
+
105
+ @dataclass
106
+ class ReportData:
107
+ connect: ConnectData = field(default_factory=ConnectData)
108
+ dev: DeviceData = field(default_factory=DeviceData)
109
+ rtk: RTKData = field(default_factory=RTKData)
110
+ locations: list[LocationData] = field(default_factory=list)
111
+ work: WorkData = field(default_factory=WorkData)
112
+
113
+ @classmethod
114
+ def from_dict(cls, data: dict):
115
+ return cls(
116
+ connect=ConnectData.from_dict(data.get('connect', {})),
117
+ dev=DeviceData.from_dict(data.get('dev', {})),
118
+ rtk=RTKData.from_dict(data.get('rtk', {})),
119
+ locations=[LocationData.from_dict(loc) for loc in data.get('locations', [])],
120
+ work=WorkData.from_dict(data.get('work', {}))
121
+ )
@@ -68,7 +68,7 @@ class StateManager:
68
68
  case "system_update_buf":
69
69
  self._device.buffer(sys_msg[1])
70
70
  case "toapp_report_data":
71
- self._device.report_data(sys_msg[1])
71
+ self._device.update_report_data(sys_msg[1])
72
72
  case "mow_to_app_info":
73
73
  self._device.mow_info(sys_msg[1])
74
74
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pymammotion"
3
- version = "0.1.2"
3
+ version = "0.1.3"
4
4
  license = "GNU-3.0"
5
5
  description = ""
6
6
  readme = "README.md"
@@ -48,7 +48,7 @@ mypy = "^1.10.0"
48
48
  pre-commit = "^3.7.1"
49
49
 
50
50
  [tool.bumpver]
51
- current_version = "0.1.1"
51
+ current_version = "0.1.3"
52
52
  version_pattern = "MAJOR.MINOR.PATCH"
53
53
  commit_message = "Bump version {old_version} -> {new_version}"
54
54
  commit = true
File without changes
File without changes