From 9c5ecda7cc7bacf16691f3740814d7ef1ca44d63 Mon Sep 17 00:00:00 2001 From: ZiWei <131428629+ZiWei09@users.noreply.github.com> Date: Fri, 17 Oct 2025 02:32:13 +0800 Subject: [PATCH 1/2] Refactor Bioyond workstation and experiment workflow (#110) Refactored the Bioyond workstation classes to improve parameter handling and workflow management. Updated experiment.py to use BioyondReactionStation with deck and material mappings, and enhanced workflow step parameter mapping and execution logic. Adjusted JSON experiment configs, improved workflow sequence handling, and added UUID assignment to PLR materials. Removed unused station_config and material cache logic, and added detailed docstrings and debug output for workflow methods. From e728007bc592e837cca88b0d4d1c586247689f10 Mon Sep 17 00:00:00 2001 From: Xuwznln <18435084+Xuwznln@users.noreply.github.com> Date: Fri, 17 Oct 2025 02:34:59 +0800 Subject: [PATCH 2/2] cancel upload_registry --- unilabos/app/main.py | 2 +- unilabos/ros/nodes/base_device_node.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/unilabos/app/main.py b/unilabos/app/main.py index b65da8e..c646518 100644 --- a/unilabos/app/main.py +++ b/unilabos/app/main.py @@ -356,7 +356,7 @@ def main(): if BasicConfig.upload_registry: # 设备注册到服务端 - 需要 ak 和 sk - if args_dict.get("ak") and args_dict.get("sk"): + if BasicConfig.ak and BasicConfig.sk: print_status("开始注册设备到服务端...", "info") try: register_devices_and_resources(lab_registry) diff --git a/unilabos/ros/nodes/base_device_node.py b/unilabos/ros/nodes/base_device_node.py index 5900aca..8dc9c86 100644 --- a/unilabos/ros/nodes/base_device_node.py +++ b/unilabos/ros/nodes/base_device_node.py @@ -582,6 +582,7 @@ class BaseROS2DeviceNode(Node, Generic[T]): - update: 更新现有资源 - remove: 从资源树中移除资源 """ + from pylabrobot.resources.resource import Resource as ResourcePLR try: data = json.loads(req.command) results = [] @@ -672,7 +673,8 @@ class BaseROS2DeviceNode(Node, Generic[T]): if callable(func): func(found_plr_resources) for plr_resource in found_plr_resources: - plr_resource.parent.unassign_child_resource(plr_resource) + if plr_resource.parent is not None: + plr_resource.parent.unassign_child_resource(plr_resource) self.resource_tracker.remove_resource(plr_resource) self.lab_logger().info(f"移除物料 {plr_resource} 及其子节点") for res in other_plr_resources: