virtual_centrifuge: category: - virtual_device class: action_value_mappings: auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync centrifuge: feedback: current_speed: current_speed current_status: status current_temp: current_temp progress: progress goal: speed: speed temp: temp time: time vessel: vessel goal_default: speed: 0.0 temp: 0.0 time: 0.0 vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' handles: {} result: message: message success: success schema: description: '' properties: feedback: properties: current_speed: type: number current_status: type: string current_temp: type: number progress: type: number required: - progress - current_speed - current_temp - current_status title: Centrifuge_Feedback type: object goal: properties: speed: type: number temp: type: number time: type: number vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: vessel type: object required: - vessel - speed - time - temp title: Centrifuge_Goal type: object result: properties: message: type: string return_info: type: string success: type: boolean required: - success - message - return_info title: Centrifuge_Result type: object required: - goal title: Centrifuge type: object type: Centrifuge module: unilabos.devices.virtual.virtual_centrifuge:VirtualCentrifuge status_types: centrifuge_state: str current_speed: float current_temp: float max_speed: float max_temp: float message: str min_temp: float progress: float status: str target_speed: float target_temp: float time_remaining: float type: python config_info: [] description: Virtual Centrifuge for CentrifugeProtocol Testing handles: - data_key: vessel data_source: handle data_type: transport description: 需要离心的样品容器 handler_key: centrifuge io_type: target label: centrifuge side: NORTH icon: '' init_param_schema: config: properties: config: type: string device_id: type: string required: [] type: object data: properties: centrifuge_state: type: string current_speed: type: number current_temp: type: number max_speed: type: number max_temp: type: number message: type: string min_temp: type: number progress: type: number status: type: string target_speed: type: number target_temp: type: number time_remaining: type: number required: - status - centrifuge_state - current_speed - target_speed - current_temp - target_temp - max_speed - max_temp - min_temp - time_remaining - progress - message type: object version: 1.0.0 virtual_column: category: - virtual_device class: action_value_mappings: auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync run_column: feedback: current_status: current_status processed_volume: processed_volume progress: progress goal: column: column from_vessel: from_vessel to_vessel: to_vessel goal_default: column: '' from_vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' pct1: '' pct2: '' ratio: '' rf: '' solvent1: '' solvent2: '' to_vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' handles: {} result: message: current_status return_info: current_status success: success schema: description: '' properties: feedback: properties: progress: type: number status: type: string required: - status - progress title: RunColumn_Feedback type: object goal: properties: column: type: string from_vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: from_vessel type: object pct1: type: string pct2: type: string ratio: type: string rf: type: string solvent1: type: string solvent2: type: string to_vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: to_vessel type: object required: - from_vessel - to_vessel - column - rf - pct1 - pct2 - solvent1 - solvent2 - ratio title: RunColumn_Goal type: object result: properties: message: type: string return_info: type: string success: type: boolean required: - success - message - return_info title: RunColumn_Result type: object required: - goal title: RunColumn type: object type: RunColumn module: unilabos.devices.virtual.virtual_column:VirtualColumn status_types: column_diameter: float column_length: float column_state: str current_flow_rate: float current_phase: str current_status: str final_volume: float max_flow_rate: float processed_volume: float progress: float status: str type: python config_info: [] description: Virtual Column Chromatography Device for RunColumn Protocol Testing handles: - data_key: from_vessel data_source: handle data_type: transport description: 样品输入口 handler_key: columnin io_type: target label: columnin side: WEST - data_key: to_vessel data_source: handle data_type: transport description: 产物输出口 handler_key: columnout io_type: source label: columnout side: EAST icon: '' init_param_schema: config: properties: config: type: object device_id: type: string required: [] type: object data: properties: column_diameter: type: number column_length: type: number column_state: type: string current_flow_rate: type: number current_phase: type: string current_status: type: string final_volume: type: number max_flow_rate: type: number processed_volume: type: number progress: type: number status: type: string required: - status - column_state - current_flow_rate - max_flow_rate - column_length - column_diameter - processed_volume - progress - current_status - current_phase - final_volume type: object version: 1.0.0 virtual_filter: category: - virtual_device class: action_value_mappings: auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync filter: feedback: current_status: current_status current_temp: current_temp filtered_volume: filtered_volume progress: progress goal: continue_heatchill: continue_heatchill filtrate_vessel: filtrate_vessel stir: stir stir_speed: stir_speed temp: temp vessel: vessel volume: volume goal_default: continue_heatchill: false filtrate_vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' stir: false stir_speed: 0.0 temp: 0.0 vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' volume: 0.0 handles: {} result: message: message return_info: message success: success schema: description: '' properties: feedback: properties: current_status: type: string current_temp: type: number filtered_volume: type: number progress: type: number required: - progress - current_temp - filtered_volume - current_status title: Filter_Feedback type: object goal: properties: continue_heatchill: type: boolean filtrate_vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: filtrate_vessel type: object stir: type: boolean stir_speed: type: number temp: type: number vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: vessel type: object volume: type: number required: - vessel - filtrate_vessel - stir - stir_speed - temp - continue_heatchill - volume title: Filter_Goal type: object result: properties: message: type: string return_info: type: string success: type: boolean required: - success - message - return_info title: Filter_Result type: object required: - goal title: Filter type: object type: Filter module: unilabos.devices.virtual.virtual_filter:VirtualFilter status_types: current_status: str current_temp: float filtered_volume: float max_stir_speed: float max_temp: float max_volume: float message: str progress: float status: str type: python config_info: [] description: Virtual Filter for FilterProtocol Testing handles: - data_key: vessel_in data_source: handle data_type: transport description: 需要过滤的样品容器 handler_key: filterin io_type: target label: filter_in side: NORTH - data_key: filtrate_out data_source: handle data_type: transport description: 滤液出口 handler_key: filtrateout io_type: source label: filtrate_out side: SOUTH - data_key: retentate_out data_source: handle data_type: transport description: 滤渣/固体出口 handler_key: retentateout io_type: source label: retentate_out side: EAST icon: '' init_param_schema: config: properties: config: type: string device_id: type: string required: [] type: object data: properties: current_status: type: string current_temp: type: number filtered_volume: type: number max_stir_speed: type: number max_temp: type: number max_volume: type: number message: type: string progress: type: number status: type: string required: - status - progress - current_temp - current_status - filtered_volume - message - max_temp - max_stir_speed - max_volume type: object version: 1.0.0 virtual_gas_source: category: - virtual_device class: action_value_mappings: auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync auto-is_closed: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: is_closed的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: is_closed参数 type: object type: UniLabJsonCommand auto-is_open: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: is_open的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: is_open参数 type: object type: UniLabJsonCommand close: feedback: {} goal: {} goal_default: {} handles: {} result: {} schema: description: '' properties: feedback: properties: {} required: [] title: EmptyIn_Feedback type: object goal: properties: {} required: [] title: EmptyIn_Goal type: object result: properties: return_info: type: string required: - return_info title: EmptyIn_Result type: object required: - goal title: EmptyIn type: object type: EmptyIn open: feedback: {} goal: {} goal_default: {} handles: {} result: {} schema: description: '' properties: feedback: properties: {} required: [] title: EmptyIn_Feedback type: object goal: properties: {} required: [] title: EmptyIn_Goal type: object result: properties: return_info: type: string required: - return_info title: EmptyIn_Result type: object required: - goal title: EmptyIn type: object type: EmptyIn set_status: feedback: {} goal: string: string goal_default: string: '' handles: {} result: {} schema: description: '' properties: feedback: properties: {} required: [] title: StrSingleInput_Feedback type: object goal: properties: string: type: string required: - string title: StrSingleInput_Goal type: object result: properties: return_info: type: string success: type: boolean required: - return_info - success title: StrSingleInput_Result type: object required: - goal title: StrSingleInput type: object type: StrSingleInput module: unilabos.devices.virtual.virtual_gas_source:VirtualGasSource status_types: status: str type: python config_info: [] description: Virtual gas source handles: - data_key: fluid_out data_source: executor data_type: fluid description: 气源出气口 handler_key: gassource io_type: source label: gassource side: SOUTH icon: '' init_param_schema: config: properties: config: type: string device_id: type: string required: [] type: object data: properties: status: type: string required: - status type: object version: 1.0.0 virtual_heatchill: category: - virtual_device class: action_value_mappings: auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync heat_chill: feedback: status: status goal: purpose: purpose stir: stir stir_speed: stir_speed temp: temp time: time vessel: vessel goal_default: pressure: '' purpose: '' reflux_solvent: '' stir: false stir_speed: 0.0 temp: 0.0 temp_spec: '' time: '' time_spec: '' vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' handles: {} result: success: success schema: description: '' properties: feedback: properties: status: type: string required: - status title: HeatChill_Feedback type: object goal: properties: pressure: type: string purpose: type: string reflux_solvent: type: string stir: type: boolean stir_speed: type: number temp: type: number temp_spec: type: string time: type: string time_spec: type: string vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: vessel type: object required: - vessel - temp - time - temp_spec - time_spec - pressure - reflux_solvent - stir - stir_speed - purpose title: HeatChill_Goal type: object result: properties: message: type: string return_info: type: string success: type: boolean required: - success - message - return_info title: HeatChill_Result type: object required: - goal title: HeatChill type: object type: HeatChill heat_chill_start: feedback: status: status goal: purpose: purpose temp: temp vessel: vessel goal_default: purpose: '' temp: 0.0 vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' handles: {} result: success: success schema: description: '' properties: feedback: properties: status: type: string required: - status title: HeatChillStart_Feedback type: object goal: properties: purpose: type: string temp: type: number vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: vessel type: object required: - vessel - temp - purpose title: HeatChillStart_Goal type: object result: properties: return_info: type: string success: type: boolean required: - return_info - success title: HeatChillStart_Result type: object required: - goal title: HeatChillStart type: object type: HeatChillStart heat_chill_stop: feedback: status: status goal: vessel: vessel goal_default: vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' handles: {} result: success: success schema: description: '' properties: feedback: properties: status: type: string required: - status title: HeatChillStop_Feedback type: object goal: properties: vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: vessel type: object required: - vessel title: HeatChillStop_Goal type: object result: properties: return_info: type: string success: type: boolean required: - return_info - success title: HeatChillStop_Result type: object required: - goal title: HeatChillStop type: object type: HeatChillStop module: unilabos.devices.virtual.virtual_heatchill:VirtualHeatChill status_types: is_stirring: bool max_stir_speed: float max_temp: float min_temp: float operation_mode: str progress: float remaining_time: float status: str stir_speed: float type: python config_info: [] description: Virtual HeatChill for HeatChillProtocol Testing handles: - data_key: vessel data_source: handle data_type: mechanical description: 加热/冷却器的物理连接口 handler_key: heatchill io_type: source label: heatchill side: NORTH icon: Heater.webp init_param_schema: config: properties: config: type: object device_id: type: string required: [] type: object data: properties: is_stirring: type: boolean max_stir_speed: type: number max_temp: type: number min_temp: type: number operation_mode: type: string progress: type: number remaining_time: type: number status: type: string stir_speed: type: number required: - status - operation_mode - is_stirring - stir_speed - remaining_time - progress - max_temp - min_temp - max_stir_speed type: object version: 1.0.0 virtual_multiway_valve: category: - virtual_device class: action_value_mappings: auto-close: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: close的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: close参数 type: object type: UniLabJsonCommand auto-is_at_port: feedback: {} goal: {} goal_default: port_number: null handles: {} placeholder_keys: {} result: {} schema: description: is_at_port的参数schema properties: feedback: {} goal: properties: port_number: type: integer required: - port_number type: object result: {} required: - goal title: is_at_port参数 type: object type: UniLabJsonCommand auto-is_at_position: feedback: {} goal: {} goal_default: position: null handles: {} placeholder_keys: {} result: {} schema: description: is_at_position的参数schema properties: feedback: {} goal: properties: position: type: integer required: - position type: object result: {} required: - goal title: is_at_position参数 type: object type: UniLabJsonCommand auto-is_at_pump_position: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: is_at_pump_position的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: is_at_pump_position参数 type: object type: UniLabJsonCommand auto-open: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: '' properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: open参数 type: object type: UniLabJsonCommand auto-reset: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: reset的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: reset参数 type: object type: UniLabJsonCommand auto-set_to_port: feedback: {} goal: {} goal_default: port_number: null handles: {} placeholder_keys: {} result: {} schema: description: set_to_port的参数schema properties: feedback: {} goal: properties: port_number: type: integer required: - port_number type: object result: {} required: - goal title: set_to_port参数 type: object type: UniLabJsonCommand auto-set_to_pump_position: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: set_to_pump_position的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: set_to_pump_position参数 type: object type: UniLabJsonCommand auto-switch_between_pump_and_port: feedback: {} goal: {} goal_default: port_number: null handles: {} placeholder_keys: {} result: {} schema: description: switch_between_pump_and_port的参数schema properties: feedback: {} goal: properties: port_number: type: integer required: - port_number type: object result: {} required: - goal title: switch_between_pump_and_port参数 type: object type: UniLabJsonCommand set_position: feedback: {} goal: command: command goal_default: command: '' handles: {} result: success: success schema: description: '' properties: feedback: properties: status: type: string required: - status title: SendCmd_Feedback type: object goal: properties: command: type: string required: - command title: SendCmd_Goal type: object result: properties: return_info: type: string success: type: boolean required: - return_info - success title: SendCmd_Result type: object required: - goal title: SendCmd type: object type: SendCmd set_valve_position: feedback: {} goal: command: command goal_default: command: '' handles: {} result: success: success schema: description: '' properties: feedback: properties: status: type: string required: - status title: SendCmd_Feedback type: object goal: properties: command: type: string required: - command title: SendCmd_Goal type: object result: properties: return_info: type: string success: type: boolean required: - return_info - success title: SendCmd_Result type: object required: - goal title: SendCmd type: object type: SendCmd module: unilabos.devices.virtual.virtual_multiway_valve:VirtualMultiwayValve status_types: current_port: str current_position: int flow_path: str status: str target_position: int valve_position: int valve_state: str type: python config_info: [] description: Virtual 8-Way Valve for flow direction control handles: - data_key: fluid_in data_source: handle data_type: fluid description: 八通阀门进液口 handler_key: transferpump io_type: target label: transferpump side: NORTH - data_key: fluid_port_1 data_source: executor data_type: fluid description: 八通阀门端口1 handler_key: '1' io_type: source label: '1' side: NORTH - data_key: fluid_port_2 data_source: executor data_type: fluid description: 八通阀门端口2 handler_key: '2' io_type: source label: '2' side: EAST - data_key: fluid_port_3 data_source: executor data_type: fluid description: 八通阀门端口3 handler_key: '3' io_type: source label: '3' side: EAST - data_key: fluid_port_4 data_source: executor data_type: fluid description: 八通阀门端口4 handler_key: '4' io_type: source label: '4' side: SOUTH - data_key: fluid_port_5 data_source: executor data_type: fluid description: 八通阀门端口5 handler_key: '5' io_type: source label: '5' side: SOUTH - data_key: fluid_port_6 data_source: executor data_type: fluid description: 八通阀门端口6 handler_key: '6' io_type: source label: '6' side: WEST - data_key: fluid_port_7 data_source: executor data_type: fluid description: 八通阀门端口7 handler_key: '7' io_type: source label: '7' side: WEST - data_key: fluid_port_8 data_source: executor data_type: fluid description: 八通阀门端口8-特殊输入 handler_key: '8' io_type: target label: '8' side: WEST - data_key: fluid_port_8 data_source: executor data_type: fluid description: 八通阀门端口8 handler_key: '8' io_type: source label: '8' side: NORTH icon: EightPipeline.webp init_param_schema: config: properties: port: default: VIRTUAL type: string positions: default: 8 type: integer required: [] type: object data: properties: current_port: type: string current_position: type: integer flow_path: type: string status: type: string target_position: type: integer valve_position: type: integer valve_state: type: string required: - status - valve_state - current_position - target_position - current_port - valve_position - flow_path type: object version: 1.0.0 virtual_rotavap: category: - virtual_device class: action_value_mappings: auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync evaporate: feedback: current_device: current_device status: status goal: pressure: pressure stir_speed: stir_speed temp: temp time: time vessel: vessel goal_default: pressure: 0.0 solvent: '' stir_speed: 0.0 temp: 0.0 time: '' vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' handles: {} result: message: message success: success schema: description: '' properties: feedback: properties: current_device: type: string status: type: string time_remaining: properties: nanosec: maximum: 4294967295 minimum: 0 type: integer sec: maximum: 2147483647 minimum: -2147483648 type: integer required: - sec - nanosec title: time_remaining type: object time_spent: properties: nanosec: maximum: 4294967295 minimum: 0 type: integer sec: maximum: 2147483647 minimum: -2147483648 type: integer required: - sec - nanosec title: time_spent type: object required: - status - current_device - time_spent - time_remaining title: Evaporate_Feedback type: object goal: properties: pressure: type: number solvent: type: string stir_speed: type: number temp: type: number time: type: string vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: vessel type: object required: - vessel - pressure - temp - time - stir_speed - solvent title: Evaporate_Goal type: object result: properties: return_info: type: string success: type: boolean required: - return_info - success title: Evaporate_Result type: object required: - goal title: Evaporate type: object type: Evaporate module: unilabos.devices.virtual.virtual_rotavap:VirtualRotavap status_types: current_temp: float evaporated_volume: float max_rotation_speed: float max_temp: float message: str progress: float remaining_time: float rotation_speed: float rotavap_state: str status: str vacuum_pressure: float type: python config_info: [] description: Virtual Rotary Evaporator for EvaporateProtocol Testing handles: - data_key: vessel_in data_source: handle data_type: fluid description: 样品连接口 handler_key: samplein io_type: target label: sample_in side: NORTH - data_key: product_out data_source: handle data_type: fluid description: 浓缩产物出口 handler_key: productout io_type: source label: product_out side: SOUTH - data_key: solvent_out data_source: handle data_type: fluid description: 冷凝溶剂出口 handler_key: solventout io_type: source label: solvent_out side: EAST icon: Rotaryevaporator.webp init_param_schema: config: properties: config: type: string device_id: type: string required: [] type: object data: properties: current_temp: type: number evaporated_volume: type: number max_rotation_speed: type: number max_temp: type: number message: type: string progress: type: number remaining_time: type: number rotation_speed: type: number rotavap_state: type: string status: type: string vacuum_pressure: type: number required: - status - rotavap_state - current_temp - rotation_speed - vacuum_pressure - evaporated_volume - progress - message - max_temp - max_rotation_speed - remaining_time type: object version: 1.0.0 virtual_separator: category: - virtual_device class: action_value_mappings: auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync separate: feedback: current_status: status progress: progress goal: from_vessel: from_vessel product_phase: product_phase purpose: purpose repeats: repeats separation_vessel: separation_vessel settling_time: settling_time solvent: solvent solvent_volume: solvent_volume stir_speed: stir_speed stir_time: stir_time through: through to_vessel: to_vessel waste_phase_to_vessel: waste_phase_to_vessel goal_default: from_vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' product_phase: '' product_vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' purpose: '' repeats: 0 separation_vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' settling_time: 0.0 solvent: '' solvent_volume: '' stir_speed: 0.0 stir_time: 0.0 through: '' to_vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' volume: '' waste_phase_to_vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' waste_vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' handles: {} result: message: message success: success schema: description: '' properties: feedback: properties: progress: type: number status: type: string required: - status - progress title: Separate_Feedback type: object goal: properties: from_vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: from_vessel type: object product_phase: type: string product_vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: product_vessel type: object purpose: type: string repeats: maximum: 2147483647 minimum: -2147483648 type: integer separation_vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: separation_vessel type: object settling_time: type: number solvent: type: string solvent_volume: type: string stir_speed: type: number stir_time: type: number through: type: string to_vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: to_vessel type: object vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: vessel type: object volume: type: string waste_phase_to_vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: waste_phase_to_vessel type: object waste_vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: waste_vessel type: object required: - vessel - purpose - product_phase - from_vessel - separation_vessel - to_vessel - waste_phase_to_vessel - product_vessel - waste_vessel - solvent - solvent_volume - volume - through - repeats - stir_time - stir_speed - settling_time title: Separate_Goal type: object result: properties: message: type: string return_info: type: string success: type: boolean required: - success - message - return_info title: Separate_Result type: object required: - goal title: Separate type: object type: Separate module: unilabos.devices.virtual.virtual_separator:VirtualSeparator status_types: has_phases: bool message: str phase_separation: bool progress: float separator_state: str settling_time: float status: str stir_speed: float volume: float type: python config_info: [] description: Virtual Separator for SeparateProtocol Testing handles: - data_key: from_vessel data_source: handle data_type: fluid description: 需要分离的混合液体输入口 handler_key: separatorin io_type: target label: separator_in side: NORTH - data_key: bottom_outlet data_source: executor data_type: fluid description: 下相(重相)液体输出口 handler_key: bottomphaseout io_type: source label: bottom_phase_out side: SOUTH - data_key: mechanical_port data_source: handle data_type: mechanical description: 用于连接搅拌器等机械设备的接口 handler_key: bind io_type: target label: bind side: WEST icon: Separator.webp init_param_schema: config: properties: config: type: string device_id: type: string required: [] type: object data: properties: has_phases: type: boolean message: type: string phase_separation: type: boolean progress: type: number separator_state: type: string settling_time: type: number status: type: string stir_speed: type: number volume: type: number required: - status - separator_state - volume - has_phases - phase_separation - stir_speed - settling_time - progress - message type: object version: 1.0.0 virtual_solenoid_valve: category: - virtual_device class: action_value_mappings: auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync auto-is_closed: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: is_closed的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: is_closed参数 type: object type: UniLabJsonCommand auto-reset: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: reset的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: reset参数 type: object type: UniLabJsonCommandAsync auto-toggle: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: toggle的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: toggle参数 type: object type: UniLabJsonCommand close: feedback: {} goal: command: CLOSED goal_default: {} handles: {} result: success: success schema: description: '' properties: feedback: properties: {} required: [] title: EmptyIn_Feedback type: object goal: properties: {} required: [] title: EmptyIn_Goal type: object result: properties: return_info: type: string required: - return_info title: EmptyIn_Result type: object required: - goal title: EmptyIn type: object type: EmptyIn open: feedback: {} goal: {} goal_default: {} handles: {} result: {} schema: description: '' properties: feedback: properties: {} required: [] title: EmptyIn_Feedback type: object goal: properties: {} required: [] title: EmptyIn_Goal type: object result: properties: return_info: type: string required: - return_info title: EmptyIn_Result type: object required: - goal title: EmptyIn type: object type: EmptyIn set_status: feedback: {} goal: string: string goal_default: string: '' handles: {} result: {} schema: description: '' properties: feedback: properties: {} required: [] title: StrSingleInput_Feedback type: object goal: properties: string: type: string required: - string title: StrSingleInput_Goal type: object result: properties: return_info: type: string success: type: boolean required: - return_info - success title: StrSingleInput_Result type: object required: - goal title: StrSingleInput type: object type: StrSingleInput set_valve_position: feedback: {} goal: command: command goal_default: command: '' handles: {} result: message: message success: success valve_position: valve_position schema: description: '' properties: feedback: properties: status: type: string required: - status title: SendCmd_Feedback type: object goal: properties: command: type: string required: - command title: SendCmd_Goal type: object result: properties: return_info: type: string success: type: boolean required: - return_info - success title: SendCmd_Result type: object required: - goal title: SendCmd type: object type: SendCmd module: unilabos.devices.virtual.virtual_solenoid_valve:VirtualSolenoidValve status_types: is_open: bool status: str valve_position: str valve_state: str type: python config_info: [] description: Virtual Solenoid Valve for simple on/off flow control handles: - data_key: fluid_port_in data_source: handle data_type: fluid description: 电磁阀的进液口 handler_key: in io_type: target label: in side: NORTH - data_key: fluid_port_out data_source: handle data_type: fluid description: 电磁阀的出液口 handler_key: out io_type: source label: out side: SOUTH icon: '' init_param_schema: config: properties: config: type: object device_id: type: string required: [] type: object data: properties: is_open: type: boolean status: type: string valve_position: type: string valve_state: type: string required: - status - valve_state - is_open - valve_position type: object version: 1.0.0 virtual_solid_dispenser: category: - virtual_device class: action_value_mappings: add_solid: feedback: current_status: status progress: progress goal: equiv: equiv event: event mass: mass mol: mol purpose: purpose rate_spec: rate_spec ratio: ratio reagent: reagent vessel: vessel goal_default: amount: '' equiv: '' event: '' mass: '' mol: '' purpose: '' rate_spec: '' ratio: '' reagent: '' stir: false stir_speed: 0.0 time: '' vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' viscous: false volume: '' handles: {} result: message: message return_info: return_info success: success schema: description: '' properties: feedback: properties: current_status: type: string progress: type: number required: - progress - current_status title: Add_Feedback type: object goal: properties: amount: type: string equiv: type: string event: type: string mass: type: string mol: type: string purpose: type: string rate_spec: type: string ratio: type: string reagent: type: string stir: type: boolean stir_speed: type: number time: type: string vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: vessel type: object viscous: type: boolean volume: type: string required: - vessel - reagent - volume - mass - amount - time - stir - stir_speed - viscous - purpose - event - mol - rate_spec - equiv - ratio title: Add_Goal type: object result: properties: message: type: string return_info: type: string success: type: boolean required: - success - message - return_info title: Add_Result type: object required: - goal title: Add type: object type: Add auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-find_solid_reagent_bottle: feedback: {} goal: {} goal_default: reagent_name: null handles: {} placeholder_keys: {} result: {} schema: description: '' properties: feedback: {} goal: properties: reagent_name: type: string required: - reagent_name type: object result: {} required: - goal title: find_solid_reagent_bottle参数 type: object type: UniLabJsonCommand auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync auto-parse_mass_string: feedback: {} goal: {} goal_default: mass_str: null handles: {} placeholder_keys: {} result: {} schema: description: '' properties: feedback: {} goal: properties: mass_str: type: string required: - mass_str type: object result: {} required: - goal title: parse_mass_string参数 type: object type: UniLabJsonCommand auto-parse_mol_string: feedback: {} goal: {} goal_default: mol_str: null handles: {} placeholder_keys: {} result: {} schema: description: '' properties: feedback: {} goal: properties: mol_str: type: string required: - mol_str type: object result: {} required: - goal title: parse_mol_string参数 type: object type: UniLabJsonCommand module: unilabos.devices.virtual.virtual_solid_dispenser:VirtualSolidDispenser status_types: current_reagent: str dispensed_amount: float status: str total_operations: int type: python config_info: [] description: Virtual Solid Dispenser for Add Protocol Testing - supports mass and molar additions handles: - data_key: solid_out data_source: executor data_type: resource description: 固体试剂输出口 handler_key: SolidOut io_type: source label: SolidOut side: SOUTH - data_key: solid_in data_source: handle data_type: resource description: 固体试剂输入口(连接试剂瓶) handler_key: SolidIn io_type: target label: SolidIn side: NORTH icon: '' init_param_schema: config: properties: config: type: object device_id: type: string required: [] type: object data: properties: current_reagent: type: string dispensed_amount: type: number status: type: string total_operations: type: integer required: - status - current_reagent - dispensed_amount - total_operations type: object version: 1.0.0 virtual_stirrer: category: - virtual_device class: action_value_mappings: auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync start_stir: feedback: status: status goal: purpose: purpose stir_speed: stir_speed vessel: vessel goal_default: purpose: '' stir_speed: 0.0 vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' handles: {} result: success: success schema: description: '' properties: feedback: properties: current_speed: type: number current_status: type: string progress: type: number required: - progress - current_speed - current_status title: StartStir_Feedback type: object goal: properties: purpose: type: string stir_speed: type: number vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: vessel type: object required: - vessel - stir_speed - purpose title: StartStir_Goal type: object result: properties: message: type: string return_info: type: string success: type: boolean required: - success - message - return_info title: StartStir_Result type: object required: - goal title: StartStir type: object type: StartStir stir: feedback: status: status goal: settling_time: settling_time stir_speed: stir_speed stir_time: stir_time goal_default: event: '' settling_time: '' stir_speed: 0.0 stir_time: 0.0 time: '' time_spec: '' vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' handles: {} result: success: success schema: description: '' properties: feedback: properties: status: type: string required: - status title: Stir_Feedback type: object goal: properties: event: type: string settling_time: type: string stir_speed: type: number stir_time: type: number time: type: string time_spec: type: string vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: vessel type: object required: - vessel - time - event - time_spec - stir_time - stir_speed - settling_time title: Stir_Goal type: object result: properties: message: type: string return_info: type: string success: type: boolean required: - success - message - return_info title: Stir_Result type: object required: - goal title: Stir type: object type: Stir stop_stir: feedback: status: status goal: vessel: vessel goal_default: vessel: category: '' children: [] config: '' data: '' id: '' name: '' parent: '' pose: orientation: w: 1.0 x: 0.0 y: 0.0 z: 0.0 position: x: 0.0 y: 0.0 z: 0.0 sample_id: '' type: '' handles: {} result: success: success schema: description: '' properties: feedback: properties: current_status: type: string progress: type: number required: - progress - current_status title: StopStir_Feedback type: object goal: properties: vessel: properties: category: type: string children: items: type: string type: array config: type: string data: type: string id: type: string name: type: string parent: type: string pose: properties: orientation: properties: w: type: number x: type: number y: type: number z: type: number required: - x - y - z - w title: orientation type: object position: properties: x: type: number y: type: number z: type: number required: - x - y - z title: position type: object required: - position - orientation title: pose type: object sample_id: type: string type: type: string required: - id - name - sample_id - children - parent - type - category - pose - config - data title: vessel type: object required: - vessel title: StopStir_Goal type: object result: properties: message: type: string return_info: type: string success: type: boolean required: - success - message - return_info title: StopStir_Result type: object required: - goal title: StopStir type: object type: StopStir module: unilabos.devices.virtual.virtual_stirrer:VirtualStirrer status_types: current_speed: float current_vessel: str is_stirring: bool max_speed: float min_speed: float operation_mode: str remaining_time: float status: str type: python config_info: [] description: Virtual Stirrer for StirProtocol Testing handles: - data_key: vessel data_source: handle data_type: mechanical description: 搅拌器的机械连接口 handler_key: stirrer io_type: source label: stirrer side: NORTH icon: Stirrer.webp init_param_schema: config: properties: config: type: object device_id: type: string required: [] type: object data: properties: current_speed: type: number current_vessel: type: string is_stirring: type: boolean max_speed: type: number min_speed: type: number operation_mode: type: string remaining_time: type: number status: type: string required: - status - operation_mode - current_vessel - current_speed - is_stirring - remaining_time - max_speed - min_speed type: object version: 1.0.0 virtual_transfer_pump: category: - virtual_device class: action_value_mappings: auto-aspirate: feedback: {} goal: {} goal_default: velocity: null volume: null handles: {} placeholder_keys: {} result: {} schema: description: aspirate的参数schema properties: feedback: {} goal: properties: velocity: type: number volume: type: number required: - volume type: object result: {} required: - goal title: aspirate参数 type: object type: UniLabJsonCommandAsync auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-dispense: feedback: {} goal: {} goal_default: velocity: null volume: null handles: {} placeholder_keys: {} result: {} schema: description: dispense的参数schema properties: feedback: {} goal: properties: velocity: type: number volume: type: number required: - volume type: object result: {} required: - goal title: dispense参数 type: object type: UniLabJsonCommandAsync auto-empty_syringe: feedback: {} goal: {} goal_default: velocity: null handles: {} placeholder_keys: {} result: {} schema: description: empty_syringe的参数schema properties: feedback: {} goal: properties: velocity: type: number required: [] type: object result: {} required: - goal title: empty_syringe参数 type: object type: UniLabJsonCommandAsync auto-fill_syringe: feedback: {} goal: {} goal_default: velocity: null handles: {} placeholder_keys: {} result: {} schema: description: fill_syringe的参数schema properties: feedback: {} goal: properties: velocity: type: number required: [] type: object result: {} required: - goal title: fill_syringe参数 type: object type: UniLabJsonCommandAsync auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync auto-is_empty: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: is_empty的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: is_empty参数 type: object type: UniLabJsonCommand auto-is_full: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: is_full的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: is_full参数 type: object type: UniLabJsonCommand auto-pull_plunger: feedback: {} goal: {} goal_default: velocity: null volume: null handles: {} placeholder_keys: {} result: {} schema: description: pull_plunger的参数schema properties: feedback: {} goal: properties: velocity: type: number volume: type: number required: - volume type: object result: {} required: - goal title: pull_plunger参数 type: object type: UniLabJsonCommandAsync auto-push_plunger: feedback: {} goal: {} goal_default: velocity: null volume: null handles: {} placeholder_keys: {} result: {} schema: description: push_plunger的参数schema properties: feedback: {} goal: properties: velocity: type: number volume: type: number required: - volume type: object result: {} required: - goal title: push_plunger参数 type: object type: UniLabJsonCommandAsync auto-set_max_velocity: feedback: {} goal: {} goal_default: velocity: null handles: {} placeholder_keys: {} result: {} schema: description: set_max_velocity的参数schema properties: feedback: {} goal: properties: velocity: type: number required: - velocity type: object result: {} required: - goal title: set_max_velocity参数 type: object type: UniLabJsonCommand auto-stop_operation: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: stop_operation的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: stop_operation参数 type: object type: UniLabJsonCommandAsync set_position: feedback: current_position: current_position progress: progress status: status goal: max_velocity: max_velocity position: position goal_default: max_velocity: 0.0 position: 0.0 handles: {} result: message: message success: success schema: description: '' properties: feedback: properties: current_position: type: number progress: type: number status: type: string required: - status - current_position - progress title: SetPumpPosition_Feedback type: object goal: properties: max_velocity: type: number position: type: number required: - position - max_velocity title: SetPumpPosition_Goal type: object result: properties: message: type: string return_info: type: string success: type: boolean required: - return_info - success - message title: SetPumpPosition_Result type: object required: - goal title: SetPumpPosition type: object type: SetPumpPosition transfer: feedback: current_status: current_status progress: progress transferred_volume: transferred_volume goal: amount: amount from_vessel: from_vessel rinsing_repeats: rinsing_repeats rinsing_solvent: rinsing_solvent rinsing_volume: rinsing_volume solid: solid time: time to_vessel: to_vessel viscous: viscous volume: volume goal_default: amount: '' from_vessel: '' rinsing_repeats: 0 rinsing_solvent: '' rinsing_volume: 0.0 solid: false time: 0.0 to_vessel: '' viscous: false volume: 0.0 handles: {} result: message: message success: success schema: description: '' properties: feedback: properties: current_status: type: string progress: type: number transferred_volume: type: number required: - progress - transferred_volume - current_status title: Transfer_Feedback type: object goal: properties: amount: type: string from_vessel: type: string rinsing_repeats: maximum: 2147483647 minimum: -2147483648 type: integer rinsing_solvent: type: string rinsing_volume: type: number solid: type: boolean time: type: number to_vessel: type: string viscous: type: boolean volume: type: number required: - from_vessel - to_vessel - volume - amount - time - viscous - rinsing_solvent - rinsing_volume - rinsing_repeats - solid title: Transfer_Goal type: object result: properties: message: type: string return_info: type: string success: type: boolean required: - success - message - return_info title: Transfer_Result type: object required: - goal title: Transfer type: object type: Transfer module: unilabos.devices.virtual.virtual_transferpump:VirtualTransferPump status_types: current_volume: float max_velocity: float position: float remaining_capacity: float status: str transfer_rate: float type: python config_info: [] description: Virtual Transfer Pump for TransferProtocol Testing (Syringe-style) handles: - data_key: fluid_port data_source: handle data_type: fluid description: 注射器式转移泵的连接口 handler_key: transferpump io_type: source label: transferpump side: SOUTH icon: Pump.webp init_param_schema: config: properties: config: type: object device_id: type: string required: [] type: object data: properties: current_volume: type: number max_velocity: type: number position: type: number remaining_capacity: type: number status: type: string transfer_rate: type: number required: - status - position - current_volume - max_velocity - transfer_rate - remaining_capacity type: object version: 1.0.0 virtual_vacuum_pump: category: - virtual_device class: action_value_mappings: auto-cleanup: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: cleanup的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: cleanup参数 type: object type: UniLabJsonCommandAsync auto-initialize: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: initialize的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: initialize参数 type: object type: UniLabJsonCommandAsync auto-is_closed: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: is_closed的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: is_closed参数 type: object type: UniLabJsonCommand auto-is_open: feedback: {} goal: {} goal_default: {} handles: {} placeholder_keys: {} result: {} schema: description: is_open的参数schema properties: feedback: {} goal: properties: {} required: [] type: object result: {} required: - goal title: is_open参数 type: object type: UniLabJsonCommand close: feedback: {} goal: {} goal_default: {} handles: {} result: {} schema: description: '' properties: feedback: properties: {} required: [] title: EmptyIn_Feedback type: object goal: properties: {} required: [] title: EmptyIn_Goal type: object result: properties: return_info: type: string required: - return_info title: EmptyIn_Result type: object required: - goal title: EmptyIn type: object type: EmptyIn open: feedback: {} goal: {} goal_default: {} handles: {} result: {} schema: description: '' properties: feedback: properties: {} required: [] title: EmptyIn_Feedback type: object goal: properties: {} required: [] title: EmptyIn_Goal type: object result: properties: return_info: type: string required: - return_info title: EmptyIn_Result type: object required: - goal title: EmptyIn type: object type: EmptyIn set_status: feedback: {} goal: string: string goal_default: string: '' handles: {} result: {} schema: description: '' properties: feedback: properties: {} required: [] title: StrSingleInput_Feedback type: object goal: properties: string: type: string required: - string title: StrSingleInput_Goal type: object result: properties: return_info: type: string success: type: boolean required: - return_info - success title: StrSingleInput_Result type: object required: - goal title: StrSingleInput type: object type: StrSingleInput module: unilabos.devices.virtual.virtual_vacuum_pump:VirtualVacuumPump status_types: status: str type: python config_info: [] description: Virtual vacuum pump handles: - data_key: fluid_in data_source: handle data_type: fluid description: 真空泵进气口 handler_key: vacuumpump io_type: source label: vacuumpump side: SOUTH icon: Vacuum.webp init_param_schema: config: properties: config: type: string device_id: type: string required: [] type: object data: properties: status: type: string required: - status type: object version: 1.0.0