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: "阀门端口1,position=1时流体从此口流出" - handler_key: valve-port-2 label: Port 2 data_type: fluid io_type: source data_source: executor data_key: fluid_port_2 description: "阀门端口2,position=2时流体从此口流出" - handler_key: valve-port-3 label: Port 3 data_type: fluid io_type: source data_source: executor data_key: fluid_port_3 description: "阀门端口3,position=3时流体从此口流出" - handler_key: valve-port-4 label: Port 4 data_type: fluid io_type: source data_source: executor data_key: fluid_port_4 description: "阀门端口4,position=4时流体从此口流出" - handler_key: valve-port-5 label: Port 5 data_type: fluid io_type: source data_source: executor data_key: fluid_port_5 description: "阀门端口5,position=5时流体从此口流出" - handler_key: valve-port-6 label: Port 6 data_type: fluid io_type: source data_source: executor data_key: fluid_port_6 description: "阀门端口6,position=6时流体从此口流出" - handler_key: valve-port-7 label: Port 7 data_type: fluid io_type: source data_source: executor data_key: fluid_port_6 description: "阀门端口7,position=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