Update work_station.yaml (#60)

* Update work_station.yaml

* Checklist里面有XDL跟protocol之间没对齐的问题,工作量有点大找时间写完
This commit is contained in:
Kongchang Feng
2025-07-05 15:13:14 +08:00
committed by GitHub
parent a6ec20e279
commit c8c755057c
2 changed files with 555 additions and 1 deletions

View File

@@ -40,4 +40,183 @@
AdjustPH 写完了 <AdjustPH pH="8.0" reagent="hydrochloric acid" vessel="main_reactor"/>
Recrystallize 写完了 <Recrystallize ratio="?" solvent1="dichloromethane" solvent2="methanol" vessel="filter" volume="?"/>
TakeSample <TakeSample id="a" vessel="rotavap"/>
Hydrogenate <Hydrogenate temp="45 °C" time="?" vessel="main_reactor"/>
Hydrogenate <Hydrogenate temp="45 °C" time="?" vessel="main_reactor"/>
4. 参数对齐
class PumpTransferProtocol(BaseModel):
from_vessel: str
to_vessel: str
volume: float
amount: str = ""
time: float = 0
viscous: bool = False
rinsing_solvent: str = "air" <Transfer from_vessel="main_reactor" to_vessel="rotavap"/>
rinsing_volume: float = 5000
rinsing_repeats: int = 2
solid: bool = False
flowrate: float = 500
transfer_flowrate: float = 2500
class SeparateProtocol(BaseModel):
purpose: str
product_phase: str
from_vessel: str
separation_vessel: str
to_vessel: str
waste_phase_to_vessel: str
solvent: str
solvent_volume: float <Separate product_phase="bottom" purpose="wash" solvent="water" vessel="separator" volume="?"/>
through: str
repeats: int
stir_time: float
stir_speed: float
settling_time: float
class EvaporateProtocol(BaseModel):
vessel: str
pressure: float
temp: float <Evaporate solvent="ethanol" vessel="rotavap"/>
time: float
stir_speed: float
class EvacuateAndRefillProtocol(BaseModel):
vessel: str
gas: str <EvacuateAndRefill gas="nitrogen" vessel="main_reactor"/>
repeats: int
class AddProtocol(BaseModel):
vessel: str
reagent: str
volume: float
mass: float
amount: str
time: float
stir: bool
stir_speed: float <Add reagent="ethanol" vessel="main_reactor" volume="2.7 mL"/>
viscous: bool
purpose: str
class CentrifugeProtocol(BaseModel):
vessel: str
speed: float
time: float 自创的
temp: float
class FilterProtocol(BaseModel):
vessel: str
filtrate_vessel: str
stir: bool <Filter vessel="filter"/>
stir_speed: float
temp: float
continue_heatchill: bool
volume: float
class HeatChillProtocol(BaseModel):
vessel: str
temp: float
time: float <HeatChill pressure="1 mbar" temp_spec="room temperature" time="?" vessel="main_reactor"/>
<HeatChill temp_spec="room temperature" time_spec="overnight" vessel="main_reactor"/>
stir: bool
stir_speed: float
purpose: str
class HeatChillStartProtocol(BaseModel):
vessel: str
temp: float 疑似没有
purpose: str
class HeatChillStopProtocol(BaseModel):
vessel: str 疑似没有
class StirProtocol(BaseModel):
stir_time: float
stir_speed: float <Stir time="0.5 h" vessel="main_reactor"/>
settling_time: float
class StartStirProtocol(BaseModel):
vessel: str
stir_speed: float 疑似没有
purpose: str
class StopStirProtocol(BaseModel):
vessel: str 疑似没有
class TransferProtocol(BaseModel):
from_vessel: str
to_vessel: str
volume: float
amount: str = ""
time: float = 0
viscous: bool = False <Transfer from_vessel="main_reactor" to_vessel="rotavap"/>
rinsing_solvent: str = ""
rinsing_volume: float = 0.0
rinsing_repeats: int = 0
solid: bool = False
class CleanVesselProtocol(BaseModel):
vessel: str
solvent: str
volume: float
temp: float
repeats: int = 1 <CleanVessel vessel="centrifuge"/>
class DissolveProtocol(BaseModel):
vessel: str
solvent: str
volume: float <Dissolve mass="2.9 g" mol="0.12 mol" reagent="magnesium" vessel="main_reactor"/>
amount: str = ""
temp: float = 25.0
time: float = 0.0
stir_speed: float = 0.0
class FilterThroughProtocol(BaseModel):
from_vessel: str
to_vessel: str
filter_through: str
eluting_solvent: str = ""
eluting_volume: float = 0.0 疑似没有
eluting_repeats: int = 0
residence_time: float = 0.0
class RunColumnProtocol(BaseModel):
from_vessel: str
to_vessel: str <RunColumn Rf="?" column="column" from_vessel="rotavap" pct1="40 %" pct2="50 %" solvent1="ethyl acetate" solvent2="hexane" to_vessel="rotavap"/>
column: str
class WashSolidProtocol(BaseModel):
vessel: str
solvent: str
volume: float
filtrate_vessel: str = ""
temp: float = 25.0 <WashSolid filtrate_vessel="rotavap" solvent="formic acid" vessel="main_reactor" volume="?"/>
stir: bool = False
stir_speed: float = 0.0
time: float = 0.0
repeats: int = 1
class AdjustPHProtocol(BaseModel):
vessel: str = Field(..., description="目标容器")
ph_value: float = Field(..., description="目标pH值") # 改为 ph_value
reagent: str = Field(..., description="酸碱试剂名称")
# 移除其他可选参数,使用默认值 <新写的没问题>
class ResetHandlingProtocol(BaseModel):
solvent: str = Field(..., description="溶剂名称") <新写的没问题>
class DryProtocol(BaseModel):
compound: str = Field(..., description="化合物名称") <新写的没问题>
vessel: str = Field(..., description="目标容器")
class RecrystallizeProtocol(BaseModel):
ratio: str = Field(..., description="溶剂比例(如 '1:1', '3:7'")
solvent1: str = Field(..., description="第一种溶剂名称") <新写的没问题>
solvent2: str = Field(..., description="第二种溶剂名称")
vessel: str = Field(..., description="目标容器")
volume: float = Field(..., description="总体积 (mL)")
class HydrogenateProtocol(BaseModel):
temp: str = Field(..., description="反应温度(如 '45 °C'")
time: str = Field(..., description="反应时间(如 '2 h'") <新写的没问题>
vessel: str = Field(..., description="反应容器")

View File

@@ -2355,6 +2355,381 @@ workstation:
title: initialize_device参数
type: object
type: UniLabJsonCommand
AdjustPHProtocol:
feedback: {}
goal:
vessel: vessel
ph_value: ph_value
reagent: reagent
goal_default:
vessel: ''
ph_value: 7.0
reagent: ''
handles:
input:
- data_key: vessel
data_source: handle
data_type: resource
handler_key: Vessel
label: Vessel
- data_key: reagent
data_source: handle
data_type: resource
handler_key: reagent
label: Reagent
output:
- data_key: vessel
data_source: executor
data_type: resource
handler_key: VesselOut
label: Vessel
result: {}
schema:
description: ROS Action AdjustPH 的 JSON Schema
properties:
feedback:
description: Action 反馈 - 执行过程中从服务器发送到客户端
properties:
status:
type: string
progress:
type: number
required:
- status
- progress
title: AdjustPH_Feedback
type: object
goal:
description: Action 目标 - 从客户端发送到服务器
properties:
vessel:
type: string
ph_value:
type: number
reagent:
type: string
required:
- vessel
- ph_value
- reagent
title: AdjustPH_Goal
type: object
result:
description: Action 结果 - 完成后从服务器发送到客户端
properties:
message:
type: string
return_info:
type: string
success:
type: boolean
required:
- success
- message
- return_info
title: AdjustPH_Result
type: object
required:
- goal
title: AdjustPH
type: object
type: AdjustPH
ResetHandlingProtocol:
feedback: {}
goal:
solvent: solvent
goal_default:
solvent: ''
handles:
input:
- data_key: solvent
data_source: handle
data_type: resource
handler_key: solvent
label: Solvent
output: []
result: {}
schema:
description: ROS Action ResetHandling 的 JSON Schema
properties:
feedback:
description: Action 反馈 - 执行过程中从服务器发送到客户端
properties:
status:
type: string
progress:
type: number
required:
- status
- progress
title: ResetHandling_Feedback
type: object
goal:
description: Action 目标 - 从客户端发送到服务器
properties:
solvent:
type: string
required:
- solvent
title: ResetHandling_Goal
type: object
result:
description: Action 结果 - 完成后从服务器发送到客户端
properties:
message:
type: string
return_info:
type: string
success:
type: boolean
required:
- success
- message
- return_info
title: ResetHandling_Result
type: object
required:
- goal
title: ResetHandling
type: object
type: ResetHandling
DryProtocol:
feedback: {}
goal:
compound: compound
vessel: vessel
goal_default:
compound: ''
vessel: ''
handles:
input:
- data_key: vessel
data_source: handle
data_type: resource
handler_key: Vessel
label: Vessel
output:
- data_key: vessel
data_source: executor
data_type: resource
handler_key: VesselOut
label: Vessel
result: {}
schema:
description: ROS Action Dry 的 JSON Schema
properties:
feedback:
description: Action 反馈 - 执行过程中从服务器发送到客户端
properties:
status:
type: string
progress:
type: number
required:
- status
- progress
title: Dry_Feedback
type: object
goal:
description: Action 目标 - 从客户端发送到服务器
properties:
compound:
type: string
vessel:
type: string
required:
- compound
- vessel
title: Dry_Goal
type: object
result:
description: Action 结果 - 完成后从服务器发送到客户端
properties:
message:
type: string
return_info:
type: string
success:
type: boolean
required:
- success
- message
- return_info
title: Dry_Result
type: object
required:
- goal
title: Dry
type: object
type: Dry
HydrogenateProtocol:
feedback: {}
goal:
temp: temp
time: time
vessel: vessel
goal_default:
temp: ''
time: ''
vessel: ''
handles:
input:
- data_key: vessel
data_source: handle
data_type: resource
handler_key: Vessel
label: Vessel
output:
- data_key: vessel
data_source: executor
data_type: resource
handler_key: VesselOut
label: Vessel
result: {}
schema:
description: ROS Action Hydrogenate 的 JSON Schema
properties:
feedback:
description: Action 反馈 - 执行过程中从服务器发送到客户端
properties:
status:
type: string
progress:
type: number
required:
- status
- progress
title: Hydrogenate_Feedback
type: object
goal:
description: Action 目标 - 从客户端发送到服务器
properties:
temp:
type: string
time:
type: string
vessel:
type: string
required:
- temp
- time
- vessel
title: Hydrogenate_Goal
type: object
result:
description: Action 结果 - 完成后从服务器发送到客户端
properties:
message:
type: string
return_info:
type: string
success:
type: boolean
required:
- success
- message
- return_info
title: Hydrogenate_Result
type: object
required:
- goal
title: Hydrogenate
type: object
type: Hydrogenate
RecrystallizeProtocol:
feedback: {}
goal:
ratio: ratio
solvent1: solvent1
solvent2: solvent2
vessel: vessel
volume: volume
goal_default:
ratio: ''
solvent1: ''
solvent2: ''
vessel: ''
volume: 0.0
handles:
input:
- data_key: vessel
data_source: handle
data_type: resource
handler_key: Vessel
label: Vessel
- data_key: solvent
data_source: handle
data_type: resource
handler_key: solvent1
label: Solvent 1
- data_key: solvent
data_source: handle
data_type: resource
handler_key: solvent2
label: Solvent 2
output:
- data_key: vessel
data_source: executor
data_type: resource
handler_key: VesselOut
label: Vessel
result: {}
schema:
description: ROS Action Recrystallize 的 JSON Schema
properties:
feedback:
description: Action 反馈 - 执行过程中从服务器发送到客户端
properties:
status:
type: string
progress:
type: number
required:
- status
- progress
title: Recrystallize_Feedback
type: object
goal:
description: Action 目标 - 从客户端发送到服务器
properties:
ratio:
type: string
solvent1:
type: string
solvent2:
type: string
vessel:
type: string
volume:
type: number
required:
- ratio
- solvent1
- solvent2
- vessel
- volume
title: Recrystallize_Goal
type: object
result:
description: Action 结果 - 完成后从服务器发送到客户端
properties:
message:
type: string
return_info:
type: string
success:
type: boolean
required:
- success
- message
- return_info
title: Recrystallize_Result
type: object
required:
- goal
title: Recrystallize
type: object
type: Recrystallize
module: unilabos.ros.nodes.presets.protocol_node:ROS2ProtocolNode
status_types: {}
type: ros2