mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-17 21:11:12 +00:00
uncompleted refactor
This commit is contained in:
@@ -6112,7 +6112,7 @@ workstation:
|
|||||||
title: initialize_device参数
|
title: initialize_device参数
|
||||||
type: object
|
type: object
|
||||||
type: UniLabJsonCommand
|
type: UniLabJsonCommand
|
||||||
module: unilabos.ros.nodes.presets.protocol_node:ROS2WorkstationNode
|
module: unilabos.ros.nodes.presets.workstation_node:ROS2WorkstationNode
|
||||||
status_types: {}
|
status_types: {}
|
||||||
type: ros2
|
type: ros2
|
||||||
config_info: []
|
config_info: []
|
||||||
|
|||||||
@@ -958,19 +958,19 @@ class ROS2DeviceNode:
|
|||||||
driver_class, children=children, resource_tracker=self.resource_tracker
|
driver_class, children=children, resource_tracker=self.resource_tracker
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
from unilabos.ros.nodes.presets.protocol_node import ROS2WorkstationNode
|
from unilabos.ros.nodes.presets.workstation_node import ROS2WorkstationNode
|
||||||
from unilabos.devices.work_station.workstation_base import WorkstationBase
|
from unilabos.devices.workstation.workstation_base import WorkstationBase
|
||||||
|
|
||||||
# 检查是否是WorkstationBase的子类且包含设备子节点
|
# 检查是否是WorkstationBase的子类且包含设备子节点
|
||||||
if issubclass(self._driver_class, WorkstationBase) and has_device_children:
|
if issubclass(self._driver_class, WorkstationBase) and has_device_children:
|
||||||
# WorkstationBase + 设备子节点 -> 使用WorkstationNode作为ros_instance
|
# WorkstationBase + 设备子节点 -> 使用WorkstationNode作为ros_instance
|
||||||
self._use_protocol_node_ros = True
|
self._use_workstation_node_ros = True
|
||||||
self._driver_creator = DeviceClassCreator(driver_class, children=children, resource_tracker=self.resource_tracker)
|
self._driver_creator = DeviceClassCreator(driver_class, children=children, resource_tracker=self.resource_tracker)
|
||||||
elif issubclass(self._driver_class, ROS2WorkstationNode): # 是WorkstationNode的子节点,就要调用WorkstationNodeCreator
|
elif issubclass(self._driver_class, ROS2WorkstationNode): # 是WorkstationNode的子节点,就要调用WorkstationNodeCreator
|
||||||
self._use_protocol_node_ros = False
|
self._use_workstation_node_ros = False
|
||||||
self._driver_creator = WorkstationNodeCreator(driver_class, children=children, resource_tracker=self.resource_tracker)
|
self._driver_creator = WorkstationNodeCreator(driver_class, children=children, resource_tracker=self.resource_tracker)
|
||||||
else:
|
else:
|
||||||
self._use_protocol_node_ros = False
|
self._use_workstation_node_ros = False
|
||||||
self._driver_creator = DeviceClassCreator(driver_class, children=children, resource_tracker=self.resource_tracker)
|
self._driver_creator = DeviceClassCreator(driver_class, children=children, resource_tracker=self.resource_tracker)
|
||||||
|
|
||||||
if driver_is_ros:
|
if driver_is_ros:
|
||||||
@@ -984,9 +984,9 @@ class ROS2DeviceNode:
|
|||||||
# 创建ROS2节点
|
# 创建ROS2节点
|
||||||
if driver_is_ros:
|
if driver_is_ros:
|
||||||
self._ros_node = self._driver_instance # type: ignore
|
self._ros_node = self._driver_instance # type: ignore
|
||||||
elif hasattr(self, '_use_protocol_node_ros') and self._use_protocol_node_ros:
|
elif hasattr(self, '_use_workstation_node_ros') and self._use_workstation_node_ros:
|
||||||
# WorkstationBase + 设备子节点 -> 创建ROS2WorkstationNode作为ros_instance
|
# WorkstationBase + 设备子节点 -> 创建ROS2WorkstationNode作为ros_instance
|
||||||
from unilabos.ros.nodes.presets.protocol_node import ROS2WorkstationNode
|
from unilabos.ros.nodes.presets.workstation_node import ROS2WorkstationNode
|
||||||
|
|
||||||
# 从children提取设备协议类型
|
# 从children提取设备协议类型
|
||||||
protocol_types = set()
|
protocol_types = set()
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ class ROS2WorkstationNode(BaseROS2DeviceNode):
|
|||||||
def _setup_workstation_integration(self):
|
def _setup_workstation_integration(self):
|
||||||
"""设置工作站集成 - 统一设备处理模式"""
|
"""设置工作站集成 - 统一设备处理模式"""
|
||||||
# 1. 建立协议节点引用
|
# 1. 建立协议节点引用
|
||||||
self.workstation_instance.set_protocol_node(self)
|
self.workstation_instance.set_workstation_node(self)
|
||||||
|
|
||||||
self.lab_logger().info(f"ROS2WorkstationNode {self.device_id} 与工作站实例 {type(self.workstation_instance).__name__} 集成完成")
|
self.lab_logger().info(f"ROS2WorkstationNode {self.device_id} 与工作站实例 {type(self.workstation_instance).__name__} 集成完成")
|
||||||
|
|
||||||
Reference in New Issue
Block a user