diff --git a/unilabos/devices/liquid_handling/prcxi/prcxi.py b/unilabos/devices/liquid_handling/prcxi/prcxi.py index bbb3918..8d47f04 100644 --- a/unilabos/devices/liquid_handling/prcxi/prcxi.py +++ b/unilabos/devices/liquid_handling/prcxi/prcxi.py @@ -443,7 +443,7 @@ class PRCXI9300Handler(LiquidHandlerAbstract): async def move_plate( self, plate: Plate, - to: Union[ResourceStack, ResourceHolder, Resource, Coordinate], + to: Resource, intermediate_locations: Optional[List[Coordinate]] = None, pickup_offset: Coordinate = Coordinate.zero(), destination_offset: Coordinate = Coordinate.zero(), @@ -544,7 +544,7 @@ class PRCXI9300Backend(LiquidHandlerBackend): is_whole_plate = True - balance_height = drop.pickup_distance_from_top + balance_height = 0 if plate_number is None: raise ValueError("target_plate_number is required when dropping a resource") step = self.api_client.clamp_jaw_drop(plate_number, is_whole_plate, balance_height) @@ -612,7 +612,7 @@ class PRCXI9300Backend(LiquidHandlerBackend): # 清除错误代码 self.api_client.clear_error_code() print("PRCXI9300 error code cleared.") - + self.api_client.call("IAutomation", "Stop") # 执行重置 print("Starting PRCXI9300 reset...") self.api_client.call("IAutomation", "Reset") diff --git a/unilabos/ros/nodes/base_device_node.py b/unilabos/ros/nodes/base_device_node.py index 8e7faef..7c53163 100644 --- a/unilabos/ros/nodes/base_device_node.py +++ b/unilabos/ros/nodes/base_device_node.py @@ -1276,7 +1276,11 @@ class BaseROS2DeviceNode(Node, Generic[T]): seen = set() unique_resources = [] for rs in akv: # todo: 这里目前只支持plr的类型 - res = self.resource_tracker.parent_resource(rs) # 获取 resource 对象 + if isinstance(rs, list): + for r in rs: + res = self.resource_tracker.parent_resource(r) # 获取 resource 对象 + else: + res = self.resource_tracker.parent_resource(r) if id(res) not in seen: seen.add(id(res)) unique_resources.append(res)