From 369a21b9042f3cf465a3e7241fd3c73542c74292 Mon Sep 17 00:00:00 2001 From: Xuwznln <18435084+Xuwznln@users.noreply.github.com> Date: Tue, 10 Jun 2025 21:54:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4protocol=20node=E4=BB=A5?= =?UTF-8?q?=E6=9B=B4=E5=A5=BD=E6=94=AF=E6=8C=81=E5=A4=9A=E7=A7=8D=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E7=9A=84read=E5=92=8Cwrite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unilabos/ros/nodes/presets/protocol_node.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/unilabos/ros/nodes/presets/protocol_node.py b/unilabos/ros/nodes/presets/protocol_node.py index 822146c..6535fb9 100644 --- a/unilabos/ros/nodes/presets/protocol_node.py +++ b/unilabos/ros/nodes/presets/protocol_node.py @@ -1,6 +1,7 @@ import time import asyncio import traceback +from types import MethodType from typing import Union import rclpy @@ -252,9 +253,12 @@ class ROS2ProtocolNode(BaseROS2DeviceNode): return write_func(*args, **kwargs) if read_method: - setattr(device.driver_instance, read_method, _read) + bound_read = MethodType(_read, device.driver_instance) + setattr(device.driver_instance, read_method, bound_read) + if write_method: - setattr(device.driver_instance, write_method, _write) + bound_write = MethodType(_write, device.driver_instance) + setattr(device.driver_instance, write_method, bound_write) async def _update_resources(self, goal, protocol_kwargs):