From 90169981c142ae9b97f47db1f6030901ac6a6f50 Mon Sep 17 00:00:00 2001 From: Xuwznln <18435084+Xuwznln@users.noreply.github.com> Date: Tue, 10 Jun 2025 21:46:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0modbus=E6=94=AF=E6=8C=81=20?= =?UTF-8?q?=E8=B0=83=E6=95=B4protocol=20node=E4=BB=A5=E6=9B=B4=E5=A5=BD?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=A4=9A=E7=A7=8D=E7=B1=BB=E5=9E=8B=E7=9A=84?= =?UTF-8?q?read=E5=92=8Cwrite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unilabos/registry/device_comms/modbus_ioboard.yaml | 2 +- unilabos/ros/nodes/presets/protocol_node.py | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/unilabos/registry/device_comms/modbus_ioboard.yaml b/unilabos/registry/device_comms/modbus_ioboard.yaml index 1473241..b1d04ee 100644 --- a/unilabos/registry/device_comms/modbus_ioboard.yaml +++ b/unilabos/registry/device_comms/modbus_ioboard.yaml @@ -5,6 +5,6 @@ io_snrd: type: python hardware_interface: name: modbus_client - extra_info: address + extra_info: [] read: read_io_coil write: write_io_coil \ No newline at end of file diff --git a/unilabos/ros/nodes/presets/protocol_node.py b/unilabos/ros/nodes/presets/protocol_node.py index c4dfd08..822146c 100644 --- a/unilabos/ros/nodes/presets/protocol_node.py +++ b/unilabos/ros/nodes/presets/protocol_node.py @@ -241,15 +241,15 @@ class ROS2ProtocolNode(BaseROS2DeviceNode): def _setup_hardware_proxy(self, device: ROS2DeviceNode, communication_device: ROS2DeviceNode, read_method, write_method): """为设备设置硬件接口代理""" - extra_info = [getattr(device.driver_instance, info) for info in communication_device.ros_node_instance._hardware_interface.get("extra_info", [])] - write_func = getattr(communication_device.ros_node_instance, communication_device.ros_node_instance._hardware_interface["write"]) - read_func = getattr(communication_device.ros_node_instance, communication_device.ros_node_instance._hardware_interface["read"]) + # extra_info = [getattr(device.driver_instance, info) for info in communication_device.ros_node_instance._hardware_interface.get("extra_info", [])] + write_func = getattr(communication_device.driver_instance, communication_device.ros_node_instance._hardware_interface["write"]) + read_func = getattr(communication_device.driver_instance, communication_device.ros_node_instance._hardware_interface["read"]) - def _read(): - return read_func(*extra_info) + def _read(*args, **kwargs): + return read_func(*args, **kwargs) - def _write(command): - return write_func(*extra_info, command) + def _write(*args, **kwargs): + return write_func(*args, **kwargs) if read_method: setattr(device.driver_instance, read_method, _read)