Skip to content

Commit 0a167ad

Browse files
committed
[feat] add report data structure
1 parent 0b48c37 commit 0a167ad

5 files changed

Lines changed: 602 additions & 202 deletions

File tree

xarm/core/config/x_config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@ class SerialConf:
256256

257257
class SocketConf:
258258
TCP_CONTROL_PORT = 502
259+
TCP_REPORT_RT_PORT = 30000
259260
TCP_REPORT_NORM_PORT = 30001
260261
TCP_REPORT_RICH_PORT = 30002
261262
TCP_REPORT_REAL_PORT = 30003

xarm/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '1.18.0'
1+
__version__ = '1.18.1'

xarm/wrapper/xarm_api.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,10 @@ def core(self):
157157
"""
158158
return self._arm.arm_cmd
159159

160+
@property
161+
def report_data(self):
162+
return self._arm.report_data
163+
160164
@property
161165
def count(self):
162166
"""

xarm/x3/base.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
from .utils import compare_time, version_is_ge, filter_invalid_number
4545
from .decorator import xarm_is_connected, xarm_is_ready, xarm_is_not_simulation_mode, xarm_wait_until_cmdnum_lt_max, xarm_wait_until_not_pause
4646
from .code import APIState
47+
from .report import ReportDataStructure
4748
from ..tools.threads import ThreadManage
4849
from ..version import __version__
4950

@@ -274,6 +275,8 @@ def __init__(self, port=None, is_radian=False, do_not_open=False, **kwargs):
274275
self.rh56_finger_speed = [0, 0, 0, 0, 0, 0]
275276
self.rh56_finger_force = [0, 0, 0, 0, 0, 0]
276277

278+
self.report_data = None
279+
277280
if not do_not_open:
278281
self.connect()
279282

@@ -1201,16 +1204,19 @@ def _connect_report(self):
12011204
self._port, XCONF.SocketConf.TCP_REPORT_REAL_PORT,
12021205
buffer_size=1024 if not self._is_old_protocol else 87,
12031206
forbid_uds=self._forbid_uds)
1207+
self.report_data = ReportDataStructure.create(XCONF.SocketConf.TCP_REPORT_REAL_PORT, is_radian=self._default_is_radian)
12041208
elif self._report_type == 'normal':
12051209
self._stream_report = SocketPort(
12061210
self._port, XCONF.SocketConf.TCP_REPORT_NORM_PORT,
12071211
buffer_size=XCONF.SocketConf.TCP_REPORT_NORMAL_BUF_SIZE if not self._is_old_protocol else 87,
12081212
forbid_uds=self._forbid_uds)
1213+
self.report_data = ReportDataStructure.create(XCONF.SocketConf.TCP_REPORT_NORM_PORT, is_radian=self._default_is_radian)
12091214
else:
12101215
self._stream_report = SocketPort(
12111216
self._port, XCONF.SocketConf.TCP_REPORT_RICH_PORT,
12121217
buffer_size=1024 if not self._is_old_protocol else 187,
12131218
forbid_uds=self._forbid_uds)
1219+
self.report_data = ReportDataStructure.create(XCONF.SocketConf.TCP_REPORT_RICH_PORT, is_radian=self._default_is_radian)
12141220

12151221
def __report_callback(self, report_id, item, name=''):
12161222
if report_id in self._report_callbacks.keys():
@@ -1349,6 +1355,7 @@ def _report_thread_handle(self):
13491355
size = convert.bytes_to_u32(recv_data)
13501356
if self._is_old_protocol and size > 256:
13511357
self._is_old_protocol = False
1358+
self.report_data.update(recv_data)
13521359
self._handle_report_data(recv_data)
13531360
# else:
13541361
# if self.connected:
@@ -2245,6 +2252,7 @@ def get_joint_states(self, is_radian=None, num=3):
22452252
ret[0] = self._check_code(ret[0])
22462253
positon = ret[1:8]
22472254
result = [positon]
2255+
num = num & 0x0F
22482256
if num >= 2:
22492257
velocity = ret[8:15]
22502258
result.append(velocity)

0 commit comments

Comments
 (0)