Files
Uni-Lab-OS/unilabos/registry/devices/virtual_device.yaml
2025-06-14 15:48:56 +08:00

573 lines
15 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

virtual_pump:
description: Virtual Pump for PumpTransferProtocol Testing
class:
module: unilabos.devices.virtual.virtual_pump:VirtualPump
type: python
status_types:
status: String
position: Float64
valve_position: Int32 # 修复:使用 Int32 而不是 String
max_volume: Float64
current_volume: Float64
action_value_mappings:
transfer:
type: PumpTransfer
goal:
from_vessel: from_vessel
to_vessel: to_vessel
volume: volume
amount: amount
time: time
viscous: viscous
rinsing_solvent: rinsing_solvent
rinsing_volume: rinsing_volume
rinsing_repeats: rinsing_repeats
solid: solid
feedback:
status: status
result:
success: success
set_valve_position:
type: FloatSingleInput
goal:
Int32: Int32
feedback:
status: status
result:
success: success
# 虚拟泵节点配置 - 具有多通道阀门特性根据valve_position可连接多个容器
handles:
input:
- handler_key: pump-inlet
label: Pump Inlet
data_type: fluid
io_type: target
data_source: handle
data_key: fluid_in
description: "泵的进液口,连接源容器"
output:
- handler_key: pump-outlet-1
label: Outlet Port 1
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_out_1
description: "阀门位置1的出液口"
schema:
type: object
properties:
port:
type: string
default: "VIRTUAL"
max_volume:
type: number
default: 25.0
additionalProperties: false
virtual_stirrer:
description: Virtual Stirrer for StirProtocol Testing
class:
module: unilabos.devices.virtual.virtual_stirrer:VirtualStirrer
type: python
status_types:
status: String
action_value_mappings:
stir:
type: Stir
goal:
stir_time: stir_time
stir_speed: stir_speed
settling_time: settling_time
feedback:
status: status
result:
success: success
start_stir:
type: ProtocolStartStir
goal:
vessel: vessel
stir_speed: stir_speed
purpose: purpose
feedback:
status: status
result:
success: success
stop_stir:
type: ProtocolStopStir
goal:
vessel: vessel
feedback:
status: status
result:
success: success
# 虚拟搅拌器节点配置 - 只有一个连接点,用于连接需要搅拌的容器
handles:
input:
- handler_key: stirrer-vessel
label: Vessel Connection
data_type: resource
io_type: target
data_source: handle
data_key: vessel
description: "搅拌器连接的反应容器,提供机械搅拌功能"
output:
- handler_key: stirrer-vessel-out
label: Stirred Vessel
data_type: resource
io_type: source
data_source: executor
data_key: vessel
description: "经过搅拌处理的反应容器"
schema:
type: object
properties:
port:
type: string
default: "VIRTUAL"
max_temp:
type: number
default: 100.0
max_speed:
type: number
default: 1000.0
additionalProperties: false
virtual_valve:
description: Virtual Valve for AddProtocol Testing
class:
module: unilabos.devices.virtual.virtual_valve:VirtualValve
type: python
status_types:
status: String
valve_state: String
current_position: Int32
target_position: Int32
max_positions: Int32
action_value_mappings:
set_position:
type: SendCmd
goal:
command: position
feedback: {}
result:
success: success
open:
type: EmptyIn
goal: {}
feedback: {}
result:
success: success
close:
type: EmptyIn
goal: {}
feedback: {}
result:
success: success
# 虚拟阀门节点配置 - 6通阀门1个输入口6个输出口可切换流向
handles:
input:
- handler_key: valve-inlet
label: Valve Inlet
data_type: fluid
io_type: target
data_source: handle
data_key: fluid_in
description: "阀门进液口,接收来源流体"
output:
- handler_key: valve-port-1
label: Port 1
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_1
description: "阀门端口1position=1时流体从此口流出"
- handler_key: valve-port-2
label: Port 2
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_2
description: "阀门端口2position=2时流体从此口流出"
- handler_key: valve-port-3
label: Port 3
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_3
description: "阀门端口3position=3时流体从此口流出"
- handler_key: valve-port-4
label: Port 4
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_4
description: "阀门端口4position=4时流体从此口流出"
- handler_key: valve-port-5
label: Port 5
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_5
description: "阀门端口5position=5时流体从此口流出"
- handler_key: valve-port-6
label: Port 6
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_6
description: "阀门端口6position=6时流体从此口流出"
- handler_key: valve-port-7
label: Port 7
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_6
description: "阀门端口7position=6时流体从此口流出"
schema:
type: object
properties:
port:
type: string
default: "VIRTUAL"
positions:
type: integer
default: 7
additionalProperties: false
virtual_centrifuge:
description: Virtual Centrifuge for CentrifugeProtocol Testing
class:
module: unilabos.devices.virtual.virtual_centrifuge:VirtualCentrifuge
type: python
status_types:
status: String
current_speed: Float64
target_speed: Float64
current_temp: Float64
target_temp: Float64
max_speed: Float64
max_temp: Float64
min_temp: Float64
centrifuge_state: String
time_remaining: Float64
action_value_mappings:
centrifuge:
type: ProtocolCentrifuge
goal:
vessel: vessel
speed: speed
time: time
temp: temp
feedback:
progress: progress
current_speed: current_speed
current_temp: current_temp
current_status: status
result:
success: success
message: message
# 虚拟离心机节点配置 - 单个样品处理设备,输入输出都是同一个样品容器
handles:
input:
- handler_key: centrifuge-sample
label: Sample Input
data_type: resource
io_type: target
data_source: handle
data_key: vessel
description: "需要离心的样品容器"
output:
- handler_key: centrifuge-sample-out
label: Centrifuged Sample
data_type: resource
io_type: source
data_source: executor
data_key: vessel
description: "经过离心处理的样品容器"
schema:
type: object
properties:
port:
type: string
default: "VIRTUAL"
max_speed:
type: number
default: 15000.0
max_temp:
type: number
default: 40.0
min_temp:
type: number
default: 4.0
additionalProperties: false
virtual_filter:
description: Virtual Filter for FilterProtocol Testing
class:
module: unilabos.devices.virtual.virtual_filter:VirtualFilter
type: python
status_types:
status: String
filter_state: String
current_temp: Float64
target_temp: Float64
max_temp: Float64
stir_speed: Float64
max_stir_speed: Float64
filtered_volume: Float64
progress: Float64
message: String
action_value_mappings:
filter_sample:
type: ProtocolFilter
goal:
vessel: vessel
filtrate_vessel: filtrate_vessel
stir: stir
stir_speed: stir_speed
temp: temp
continue_heatchill: continue_heatchill
volume: volume
feedback:
progress: progress
current_temp: current_temp
filtered_volume: filtered_volume
current_status: status
result:
success: success
message: message
# 虚拟过滤器节点配置 - 分离设备1个输入(原始样品)2个输出(滤液和滤渣)
handles:
input:
- handler_key: filter-sample-in
label: Sample Input
data_type: resource
io_type: target
data_source: handle
data_key: vessel
description: "需要过滤的原始样品容器"
output:
- handler_key: filter-filtrate-out
label: Filtrate Output
data_type: resource
io_type: source
data_source: executor
data_key: filtrate_vessel
description: "过滤后的滤液容器"
- handler_key: filter-residue-out
label: Filter Residue
data_type: resource
io_type: source
data_source: executor
data_key: residue_vessel
description: "过滤后的滤渣(固体残留物)"
schema:
type: object
properties:
port:
type: string
default: "VIRTUAL"
max_temp:
type: number
default: 100.0
max_stir_speed:
type: number
default: 1000.0
additionalProperties: false
virtual_heatchill:
description: Virtual HeatChill for HeatChillProtocol Testing
class:
module: unilabos.devices.virtual.virtual_heatchill:VirtualHeatChill
type: python
status_types:
status: String
action_value_mappings:
heat_chill:
type: HeatChill
goal:
vessel: vessel
temp: temp
time: time
stir: stir
stir_speed: stir_speed
purpose: purpose
feedback:
status: status
result:
success: success
heat_chill_start:
type: HeatChillStart
goal:
vessel: vessel
temp: temp
purpose: purpose
feedback:
status: status
result:
success: success
heat_chill_stop:
type: HeatChillStop
goal:
vessel: vessel
feedback:
status: status
result:
success: success
# 虚拟加热/冷却器节点配置 - 温控设备,单一连接点用于放置容器
handles:
input:
- handler_key: heatchill-vessel
label: Vessel Connection
data_type: resource
io_type: target
data_source: handle
data_key: vessel
description: "放置在加热/冷却台上的反应容器"
output:
- handler_key: heatchill-vessel-out
label: Temperature Controlled Vessel
data_type: resource
io_type: source
data_source: executor
data_key: vessel
description: "经过温度控制处理的反应容器"
schema:
type: object
properties:
port:
type: string
default: "VIRTUAL"
max_temp:
type: number
default: 200.0
min_temp:
type: number
default: -80.0
max_stir_speed:
type: number
default: 1000.0
additionalProperties: false
virtual_transfer_pump:
description: Virtual Transfer Pump for TransferProtocol Testing (Syringe-style)
class:
module: unilabos.devices.virtual.virtual_transferpump:VirtualTransferPump
type: python
status_types:
status: String
current_volume: Float64
max_volume: Float64
transfer_rate: Float64
from_vessel: String
to_vessel: String
progress: Float64
transferred_volume: Float64
current_status: String
action_value_mappings:
transfer:
type: ProtocolTransfer
goal:
from_vessel: from_vessel
to_vessel: to_vessel
volume: volume
amount: amount
time: time
viscous: viscous
rinsing_solvent: rinsing_solvent
rinsing_volume: rinsing_volume
rinsing_repeats: rinsing_repeats
solid: solid
feedback:
progress: progress
transferred_volume: transferred_volume
current_status: current_status
result:
success: success
message: message
# 注射器式转移泵节点配置 - 只有一个双向连接口,可吸入和排出液体
handles:
bidirectional:
- handler_key: syringe-port
label: Syringe Port
data_type: fluid
io_type: bidirectional
data_source: handle
data_key: fluid_port
description: "注射器式转移泵的唯一连接口,通过阀门切换实现吸入和排出"
schema:
type: object
properties:
port:
type: string
default: "VIRTUAL"
max_volume:
type: number
default: 50.0
transfer_rate:
type: number
default: 5.0
additionalProperties: false
virtual_column:
description: Virtual Column for RunColumn Protocol Testing
class:
module: unilabos.devices.virtual.virtual_column:VirtualColumn
type: python
status_types:
status: String
column_state: String
current_flow_rate: Float64
max_flow_rate: Float64
column_length: Float64
column_diameter: Float64
processed_volume: Float64
progress: Float64
current_status: String
action_value_mappings:
run_column:
type: ProtocolRunColumn
goal:
from_vessel: from_vessel
to_vessel: to_vessel
column: column
feedback:
status: current_status
progress: progress
result:
success: success
message: message
# 虚拟色谱柱节点配置 - 分离纯化设备1个样品输入口1个纯化产物输出口
handles:
input:
- handler_key: column-sample-inlet
label: Sample Input
data_type: resource
io_type: target
data_source: handle
data_key: from_vessel
description: "需要纯化的样品输入口"
output:
- handler_key: column-product-outlet
label: Purified Product
data_type: resource
io_type: source
data_source: executor
data_key: to_vessel
description: "经过色谱柱纯化的产物输出口"
schema:
type: object
properties:
port:
type: string
default: "VIRTUAL"
max_flow_rate:
type: number
default: 10.0
column_length:
type: number
default: 25.0
column_diameter:
type: number
default: 2.0
additionalProperties: false