From 948f590b4728e368f6e0763ede1fe4a287a886fb Mon Sep 17 00:00:00 2001 From: wznln <18435084+Xuwznln@users.noreply.github.com> Date: Tue, 6 May 2025 12:30:48 +0800 Subject: [PATCH] update actions --- .../liquid_handling/action_definition.py | 6 ++++- unilabos/registry/devices/liquid_handler.yaml | 8 +++--- .../action/DPLiquidHandlerAddLiquid.action | 20 +++++++++++++++ .../action/DPLiquidHandlerCustomDelay.action | 6 +++++ .../action/DPLiquidHandlerMix.action | 11 ++++++++ .../action/DPLiquidHandlerMoveTo.action | 7 ++++++ .../action/DPLiquidHandlerRemoveLiquid.action | 17 +++++++++++++ .../action/DPLiquidHandlerSetTiprack.action | 5 ++++ .../action/DPLiquidHandlerTouchTip.action | 5 ++++ .../DPLiquidHandlerTransferLiquid.action | 25 +++++++++++++++++++ 10 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 unilabos_msgs/action/DPLiquidHandlerAddLiquid.action create mode 100644 unilabos_msgs/action/DPLiquidHandlerCustomDelay.action create mode 100644 unilabos_msgs/action/DPLiquidHandlerMix.action create mode 100644 unilabos_msgs/action/DPLiquidHandlerMoveTo.action create mode 100644 unilabos_msgs/action/DPLiquidHandlerRemoveLiquid.action create mode 100644 unilabos_msgs/action/DPLiquidHandlerSetTiprack.action create mode 100644 unilabos_msgs/action/DPLiquidHandlerTouchTip.action create mode 100644 unilabos_msgs/action/DPLiquidHandlerTransferLiquid.action diff --git a/unilabos/devices/liquid_handling/action_definition.py b/unilabos/devices/liquid_handling/action_definition.py index 9cefa1ce..530703ad 100644 --- a/unilabos/devices/liquid_handling/action_definition.py +++ b/unilabos/devices/liquid_handling/action_definition.py @@ -36,6 +36,7 @@ class DPLiquidHandler(LiquidHandler): delays: Optional[List[int]] = None, is_96_well: Optional[bool] = False, top: Optional[List(float)] = None, + none_keys: List[str] = [] ): """A complete *remove* (aspirate → waste) operation.""" trash = self.deck.get_trash_area() @@ -98,7 +99,8 @@ class DPLiquidHandler(LiquidHandler): mix_time: Optional[int] = None, mix_vol: Optional[int] = None, mix_rate: Optional[int] = None, - mix_liquid_height: Optional[float] = None + mix_liquid_height: Optional[float] = None, + none_keys: List[str] = [] ): """A complete *add* (aspirate reagent → dispense into targets) operation.""" @@ -177,6 +179,7 @@ class DPLiquidHandler(LiquidHandler): mix_rate: Optional[int] = None, mix_liquid_height: Optional[float] = None, delays: Optional[List[int]] = None, + none_keys: List[str] = [] ): """Transfer liquid from each *source* well/plate to the corresponding *target*. @@ -295,6 +298,7 @@ class DPLiquidHandler(LiquidHandler): height_to_bottom: Optional[float] = None, offsets: Optional[Coordinate] = None, mix_rate: Optional[float] = None, + none_keys: List[str] = [] ): if mix_time is None: # No mixing required return diff --git a/unilabos/registry/devices/liquid_handler.yaml b/unilabos/registry/devices/liquid_handler.yaml index 4451ca06..b37866b2 100644 --- a/unilabos/registry/devices/liquid_handler.yaml +++ b/unilabos/registry/devices/liquid_handler.yaml @@ -163,13 +163,14 @@ liquid_handler: schema: type: object properties: - status: + name: type: string description: 液体处理仪器当前状态 required: - - status + - name additionalProperties: false + liquid_handler.revvity: class: module: unilabos.devices.liquid_handling.revvity:Revvity @@ -179,7 +180,7 @@ liquid_handler.revvity: action_value_mappings: run: type: WorkStationRun - goal: + goal: wf_name: file_path params: params resource: resource @@ -187,4 +188,3 @@ liquid_handler.revvity: status: status result: success: success - \ No newline at end of file diff --git a/unilabos_msgs/action/DPLiquidHandlerAddLiquid.action b/unilabos_msgs/action/DPLiquidHandlerAddLiquid.action new file mode 100644 index 00000000..0611b276 --- /dev/null +++ b/unilabos_msgs/action/DPLiquidHandlerAddLiquid.action @@ -0,0 +1,20 @@ +float64[] asp_vols +float64[] dis_vols +Resource[] reagent_sources +Resource[] targets +int32[] use_channels +float64[] flow_rates +geometry_msgs/Point[] offsets +float64[] liquid_height +float64[] blow_out_air_volume +string spread +bool is_96_well +int32 mix_time +int32 mix_vol +int32 mix_rate +float64 mix_liquid_height +string[] none_keys +--- +bool success +--- +# 反馈 \ No newline at end of file diff --git a/unilabos_msgs/action/DPLiquidHandlerCustomDelay.action b/unilabos_msgs/action/DPLiquidHandlerCustomDelay.action new file mode 100644 index 00000000..29f9b45b --- /dev/null +++ b/unilabos_msgs/action/DPLiquidHandlerCustomDelay.action @@ -0,0 +1,6 @@ +float64 seconds +string msg +--- +bool success +--- +# 反馈 \ No newline at end of file diff --git a/unilabos_msgs/action/DPLiquidHandlerMix.action b/unilabos_msgs/action/DPLiquidHandlerMix.action new file mode 100644 index 00000000..81d1b71c --- /dev/null +++ b/unilabos_msgs/action/DPLiquidHandlerMix.action @@ -0,0 +1,11 @@ +Resource[] targets +int32 mix_time +int32 mix_vol +float64 height_to_bottom +geometry_msgs/Point[] offsets +float64 mix_rate +string[] none_keys +--- +bool success +--- +# 反馈 \ No newline at end of file diff --git a/unilabos_msgs/action/DPLiquidHandlerMoveTo.action b/unilabos_msgs/action/DPLiquidHandlerMoveTo.action new file mode 100644 index 00000000..740d0fc6 --- /dev/null +++ b/unilabos_msgs/action/DPLiquidHandlerMoveTo.action @@ -0,0 +1,7 @@ +Resource well +float64 dis_to_top +int32 channel +--- +bool success +--- +# 反馈 \ No newline at end of file diff --git a/unilabos_msgs/action/DPLiquidHandlerRemoveLiquid.action b/unilabos_msgs/action/DPLiquidHandlerRemoveLiquid.action new file mode 100644 index 00000000..e6b43c53 --- /dev/null +++ b/unilabos_msgs/action/DPLiquidHandlerRemoveLiquid.action @@ -0,0 +1,17 @@ +float64[] vols +Resource[] sources +Resource waste_liquid +int32[] use_channels +float64[] flow_rates +geometry_msgs/Point[] offsets +float64[] liquid_height +float64[] blow_out_air_volume +string spread +int32[] delays +bool is_96_well +float64[] top +string[] none_keys +--- +bool success +--- +# 反馈 \ No newline at end of file diff --git a/unilabos_msgs/action/DPLiquidHandlerSetTiprack.action b/unilabos_msgs/action/DPLiquidHandlerSetTiprack.action new file mode 100644 index 00000000..437d3e3f --- /dev/null +++ b/unilabos_msgs/action/DPLiquidHandlerSetTiprack.action @@ -0,0 +1,5 @@ +Resource[] tip_racks +--- +bool success +--- +# 反馈 \ No newline at end of file diff --git a/unilabos_msgs/action/DPLiquidHandlerTouchTip.action b/unilabos_msgs/action/DPLiquidHandlerTouchTip.action new file mode 100644 index 00000000..e0c31046 --- /dev/null +++ b/unilabos_msgs/action/DPLiquidHandlerTouchTip.action @@ -0,0 +1,5 @@ +Resource[] targets +--- +bool success +--- +# 反馈 \ No newline at end of file diff --git a/unilabos_msgs/action/DPLiquidHandlerTransferLiquid.action b/unilabos_msgs/action/DPLiquidHandlerTransferLiquid.action new file mode 100644 index 00000000..39df59bb --- /dev/null +++ b/unilabos_msgs/action/DPLiquidHandlerTransferLiquid.action @@ -0,0 +1,25 @@ +float64[] asp_vols +float64[] dis_vols +Resource[] sources +Resource[] targets +Resource[] tip_racks +int32[] use_channels +float64[] asp_flow_rates +float64[] dis_flow_rates +geometry_msgs/Point[] offsets +bool touch_tip +float64[] liquid_height +float64[] blow_out_air_volume +string spread +bool is_96_well +string mix_stage +int32[] mix_times +int32 mix_vol +int32 mix_rate +float64 mix_liquid_height +int32[] delays +string[] none_keys +--- +bool success +--- +# 反馈 \ No newline at end of file