From 15f3f8518bbf359824c706a53aa3cf837594910f Mon Sep 17 00:00:00 2001 From: Xuwznln <18435084+Xuwznln@users.noreply.github.com> Date: Sat, 28 Jun 2025 01:19:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=80=9A=E8=BF=87=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=96=B9=E5=BC=8F=E8=A1=A5=E5=85=A8=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=B7=A5=E4=BD=9C=E6=B5=81?= =?UTF-8?q?unilabos=5Fdevice=5Fid=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../devices/characterization_optic.yaml | 505 ++++++ unilabos/registry/devices/hotel.yaml | 3 +- unilabos/registry/devices/liquid_handler.yaml | 1006 ++++++++++- unilabos/registry/devices/mock_devices.yaml | 10 + unilabos/registry/devices/moveit_config.yaml | 612 ++++++- unilabos/registry/devices/pump_and_valve.yaml | 10 + unilabos/registry/devices/robot_gripper.yaml | 507 +++++- .../registry/devices/robot_linear_motion.yaml | 175 +- unilabos/registry/devices/sim_nodes.yaml | 6 +- unilabos/registry/devices/temperature.yaml | 2 + .../registry/devices/vacuum_and_purge.yaml | 2 + unilabos/registry/devices/virtual_device.yaml | 1574 ++++++++++++++++- unilabos/registry/devices/work_station.yaml | 44 + unilabos/registry/devices/zhida_hplc.yaml | 1 + unilabos/registry/registry.py | 32 +- unilabos/ros/nodes/presets/protocol_node.py | 5 +- unilabos/utils/import_manager.py | 15 +- 17 files changed, 4457 insertions(+), 52 deletions(-) diff --git a/unilabos/registry/devices/characterization_optic.yaml b/unilabos/registry/devices/characterization_optic.yaml index e69de29..ddca2dd 100644 --- a/unilabos/registry/devices/characterization_optic.yaml +++ b/unilabos/registry/devices/characterization_optic.yaml @@ -0,0 +1,505 @@ +hplc.agilent: + class: + action_value_mappings: + auto-check_status: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand check_status 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand check_status 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: check_status 命令参数 + type: object + type: UniLabJsonCommand + auto-execute_command_from_outer: + feedback: {} + goal: {} + goal_default: + command: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand execute_command_from_outer 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand execute_command_from_outer 的参数schema + properties: + command: + description: '参数: command' + type: string + required: + - command + type: object + result: {} + required: + - goal + title: execute_command_from_outer 命令参数 + type: object + type: UniLabJsonCommand + auto-extract_data_from_txt: + feedback: {} + goal: {} + goal_default: + file_path: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand extract_data_from_txt 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand extract_data_from_txt 的参数schema + properties: + file_path: + description: '参数: file_path' + type: string + required: + - file_path + type: object + result: {} + required: + - goal + title: extract_data_from_txt 命令参数 + type: object + type: UniLabJsonCommand + auto-get_data_file: + feedback: {} + goal: {} + goal_default: + after_time: null + mat_index: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand get_data_file 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand get_data_file 的参数schema + properties: + after_time: + description: '参数: after_time' + type: string + mat_index: + description: '参数: mat_index' + type: string + required: [] + type: object + result: {} + required: + - goal + title: get_data_file 命令参数 + type: object + type: UniLabJsonCommand + auto-start_sequence: + feedback: {} + goal: {} + goal_default: + params: null + resource: null + wf_name: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand start_sequence 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand start_sequence 的参数schema + properties: + params: + description: '参数: params' + type: string + resource: + description: '参数: resource' + type: object + wf_name: + description: '参数: wf_name' + type: string + required: + - wf_name + type: object + result: {} + required: + - goal + title: start_sequence 命令参数 + type: object + type: UniLabJsonCommand + auto-try_close_sub_device: + feedback: {} + goal: {} + goal_default: + device_name: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand try_close_sub_device 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand try_close_sub_device 的参数schema + properties: + device_name: + description: '参数: device_name' + type: string + required: [] + type: object + result: {} + required: + - goal + title: try_close_sub_device 命令参数 + type: object + type: UniLabJsonCommand + auto-try_open_sub_device: + feedback: {} + goal: {} + goal_default: + device_name: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand try_open_sub_device 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand try_open_sub_device 的参数schema + properties: + device_name: + description: '参数: device_name' + type: string + required: [] + type: object + result: {} + required: + - goal + title: try_open_sub_device 命令参数 + type: object + type: UniLabJsonCommand + execute_command_from_outer: + feedback: {} + goal: + command: command + goal_default: + command: '' + handles: [] + result: + success: success + schema: + description: ROS Action SendCmd 的 JSON Schema + properties: + feedback: + description: Action 反馈 - 执行过程中从服务器发送到客户端 + properties: + status: + type: string + required: + - status + title: SendCmd_Feedback + type: object + goal: + description: Action 目标 - 从客户端发送到服务器 + properties: + command: + type: string + required: + - command + title: SendCmd_Goal + type: object + result: + description: Action 结果 - 完成后从服务器发送到客户端 + 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.hplc.AgilentHPLC:HPLCDriver + status_types: + could_run: bool + device_status: str + driver_init_ok: bool + finish_status: str + get_data_file: tuple + is_running: bool + status_text: str + success: bool + type: python + description: HPLC device + handles: [] + icon: '' + init_param_schema: + description: UniLabJsonCommand __init__ 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand __init__ 的参数schema + properties: + driver_debug: + default: false + description: '参数: driver_debug' + type: boolean + required: [] + type: object + result: {} + required: + - goal + title: __init__ 命令参数 + type: object +raman_home_made: + class: + action_value_mappings: + auto-ccd_time: + feedback: {} + goal: {} + goal_default: + int_time: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand ccd_time 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand ccd_time 的参数schema + properties: + int_time: + description: '参数: int_time' + type: string + required: + - int_time + type: object + result: {} + required: + - goal + title: ccd_time 命令参数 + type: object + type: UniLabJsonCommand + auto-laser_on_power: + feedback: {} + goal: {} + goal_default: + output_voltage_laser: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand laser_on_power 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand laser_on_power 的参数schema + properties: + output_voltage_laser: + description: '参数: output_voltage_laser' + type: string + required: + - output_voltage_laser + type: object + result: {} + required: + - goal + title: laser_on_power 命令参数 + type: object + type: UniLabJsonCommand + auto-raman_cmd: + feedback: {} + goal: {} + goal_default: + command: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand raman_cmd 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand raman_cmd 的参数schema + properties: + command: + description: '参数: command' + type: string + required: + - command + type: object + result: {} + required: + - goal + title: raman_cmd 命令参数 + type: object + type: UniLabJsonCommand + auto-raman_without_background: + feedback: {} + goal: {} + goal_default: + int_time: null + laser_power: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand raman_without_background 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand raman_without_background 的参数schema + properties: + int_time: + description: '参数: int_time' + type: string + laser_power: + description: '参数: laser_power' + type: string + required: + - int_time + - laser_power + type: object + result: {} + required: + - goal + title: raman_without_background 命令参数 + type: object + type: UniLabJsonCommand + auto-raman_without_background_average: + feedback: {} + goal: {} + goal_default: + average: null + int_time: null + laser_power: null + sample_name: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand raman_without_background_average 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand raman_without_background_average 的参数schema + properties: + average: + description: '参数: average' + type: string + int_time: + description: '参数: int_time' + type: string + laser_power: + description: '参数: laser_power' + type: string + sample_name: + description: '参数: sample_name' + type: string + required: + - sample_name + - int_time + - laser_power + - average + type: object + result: {} + required: + - goal + title: raman_without_background_average 命令参数 + type: object + type: UniLabJsonCommand + raman_cmd: + feedback: {} + goal: + command: command + goal_default: + command: '' + handles: [] + result: + success: success + schema: + description: ROS Action SendCmd 的 JSON Schema + properties: + feedback: + description: Action 反馈 - 执行过程中从服务器发送到客户端 + properties: + status: + type: string + required: + - status + title: SendCmd_Feedback + type: object + goal: + description: Action 目标 - 从客户端发送到服务器 + properties: + command: + type: string + required: + - command + title: SendCmd_Goal + type: object + result: + description: Action 结果 - 完成后从服务器发送到客户端 + 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.raman_uv.home_made_raman:RamanObj + status_types: + status: String + type: python + description: Raman spectroscopy device + handles: [] + icon: '' + init_param_schema: + description: UniLabJsonCommand __init__ 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand __init__ 的参数schema + properties: + baudrate_ccd: + default: 921600 + description: '参数: baudrate_ccd' + type: integer + baudrate_laser: + default: 9600 + description: '参数: baudrate_laser' + type: integer + port_ccd: + description: '参数: port_ccd' + type: string + port_laser: + description: '参数: port_laser' + type: string + required: + - port_laser + - port_ccd + type: object + result: {} + required: + - goal + title: __init__ 命令参数 + type: object diff --git a/unilabos/registry/devices/hotel.yaml b/unilabos/registry/devices/hotel.yaml index 6429f01..abaf871 100644 --- a/unilabos/registry/devices/hotel.yaml +++ b/unilabos/registry/devices/hotel.yaml @@ -23,7 +23,8 @@ hotel.thermo_orbitor_rs2_hotel: type: object type: UniLabJsonCommand module: unilabos.devices.resource_container.container:HotelContainer - status_types: {} + status_types: + get_rotation: String type: python description: Thermo Orbitor RS2 Hotel handles: [] diff --git a/unilabos/registry/devices/liquid_handler.yaml b/unilabos/registry/devices/liquid_handler.yaml index 6fdb6e5..8fea092 100644 --- a/unilabos/registry/devices/liquid_handler.yaml +++ b/unilabos/registry/devices/liquid_handler.yaml @@ -554,6 +554,188 @@ liquid_handler: title: LiquidHandlerAspirate type: object type: LiquidHandlerAspirate + auto-add_liquid: + feedback: {} + goal: {} + goal_default: + asp_vols: null + blow_out_air_volume: null + delays: null + dis_vols: null + flow_rates: null + is_96_well: false + liquid_height: null + mix_liquid_height: null + mix_rate: null + mix_time: null + mix_vol: null + none_keys: [] + offsets: null + reagent_sources: null + spread: wide + targets: null + use_channels: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand add_liquid 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand add_liquid 的参数schema + properties: + asp_vols: + description: '参数: asp_vols' + type: string + blow_out_air_volume: + description: '参数: blow_out_air_volume' + type: string + delays: + description: '参数: delays' + type: string + dis_vols: + description: '参数: dis_vols' + type: string + flow_rates: + description: '参数: flow_rates' + type: string + is_96_well: + default: false + description: '参数: is_96_well' + type: boolean + liquid_height: + description: '参数: liquid_height' + type: string + mix_liquid_height: + description: '参数: mix_liquid_height' + type: string + mix_rate: + description: '参数: mix_rate' + type: string + mix_time: + description: '参数: mix_time' + type: string + mix_vol: + description: '参数: mix_vol' + type: string + none_keys: + default: [] + description: '参数: none_keys' + type: string + offsets: + description: '参数: offsets' + type: string + reagent_sources: + description: '参数: reagent_sources' + type: string + spread: + default: wide + description: '参数: spread' + type: string + targets: + description: '参数: targets' + type: string + use_channels: + description: '参数: use_channels' + type: string + required: + - asp_vols + - dis_vols + - reagent_sources + - targets + type: object + result: {} + required: + - goal + title: add_liquid 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-create_protocol: + feedback: {} + goal: {} + goal_default: + none_keys: [] + protocol_author: null + protocol_date: null + protocol_description: null + protocol_name: null + protocol_type: null + protocol_version: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand create_protocol 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand create_protocol 的参数schema + properties: + none_keys: + default: [] + description: '参数: none_keys' + type: string + protocol_author: + description: '参数: protocol_author' + type: string + protocol_date: + description: '参数: protocol_date' + type: string + protocol_description: + description: '参数: protocol_description' + type: string + protocol_name: + description: '参数: protocol_name' + type: string + protocol_type: + description: '参数: protocol_type' + type: string + protocol_version: + description: '参数: protocol_version' + type: string + required: + - protocol_name + - protocol_description + - protocol_version + - protocol_author + - protocol_date + - protocol_type + type: object + result: {} + required: + - goal + title: create_protocol 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-custom_delay: + feedback: {} + goal: {} + goal_default: + msg: null + seconds: 0 + handles: [] + result: {} + schema: + description: UniLabJsonCommand custom_delay 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand custom_delay 的参数schema + properties: + msg: + description: '参数: msg' + type: string + seconds: + default: 0 + description: '参数: seconds' + type: string + required: [] + type: object + result: {} + required: + - goal + title: custom_delay 命令参数 + type: object + type: UniLabJsonCommandAsync auto-iter_tips: feedback: {} goal: {} @@ -580,6 +762,171 @@ liquid_handler: title: iter_tips 命令参数 type: object type: UniLabJsonCommand + auto-mix: + feedback: {} + goal: {} + goal_default: + height_to_bottom: null + mix_rate: null + mix_time: null + mix_vol: null + none_keys: [] + offsets: null + targets: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand mix 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand mix 的参数schema + properties: + height_to_bottom: + description: '参数: height_to_bottom' + type: string + mix_rate: + description: '参数: mix_rate' + type: string + mix_time: + description: '参数: mix_time' + type: integer + mix_vol: + description: '参数: mix_vol' + type: string + none_keys: + default: [] + description: '参数: none_keys' + type: string + offsets: + description: '参数: offsets' + type: string + targets: + description: '参数: targets' + type: string + required: + - targets + type: object + result: {} + required: + - goal + title: mix 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-move_to: + feedback: {} + goal: {} + goal_default: + channel: 0 + dis_to_top: 0 + well: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand move_to 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand move_to 的参数schema + properties: + channel: + default: 0 + description: '参数: channel' + type: integer + dis_to_top: + default: 0 + description: '参数: dis_to_top' + type: number + well: + description: '参数: well' + type: string + required: + - well + type: object + result: {} + required: + - goal + title: move_to 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-remove_liquid: + feedback: {} + goal: {} + goal_default: + blow_out_air_volume: null + delays: null + flow_rates: null + is_96_well: false + liquid_height: null + none_keys: [] + offsets: null + sources: null + spread: wide + top: null + use_channels: null + vols: null + waste_liquid: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand remove_liquid 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand remove_liquid 的参数schema + properties: + blow_out_air_volume: + description: '参数: blow_out_air_volume' + type: string + delays: + description: '参数: delays' + type: string + flow_rates: + description: '参数: flow_rates' + type: string + is_96_well: + default: false + description: '参数: is_96_well' + type: string + liquid_height: + description: '参数: liquid_height' + type: string + none_keys: + default: [] + description: '参数: none_keys' + type: string + offsets: + description: '参数: offsets' + type: string + sources: + description: '参数: sources' + type: string + spread: + default: wide + description: '参数: spread' + type: string + top: + description: '参数: top' + type: string + use_channels: + description: '参数: use_channels' + type: string + vols: + description: '参数: vols' + type: string + waste_liquid: + description: '参数: waste_liquid' + type: string + required: + - vols + - sources + type: object + result: {} + required: + - goal + title: remove_liquid 命令参数 + type: object + type: UniLabJsonCommandAsync auto-set_tiprack: feedback: {} goal: {} @@ -606,6 +953,147 @@ liquid_handler: title: set_tiprack 命令参数 type: object type: UniLabJsonCommand + auto-touch_tip: + feedback: {} + goal: {} + goal_default: + targets: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand touch_tip 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand touch_tip 的参数schema + properties: + targets: + description: '参数: targets' + type: string + required: + - targets + type: object + result: {} + required: + - goal + title: touch_tip 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-transfer_liquid: + feedback: {} + goal: {} + goal_default: + asp_flow_rates: null + asp_vols: null + blow_out_air_volume: null + delays: null + dis_flow_rates: null + dis_vols: null + is_96_well: false + liquid_height: null + mix_liquid_height: null + mix_rate: null + mix_stage: none + mix_times: null + mix_vol: null + none_keys: [] + offsets: null + sources: null + spread: wide + targets: null + tip_racks: null + touch_tip: false + use_channels: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand transfer_liquid 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand transfer_liquid 的参数schema + properties: + asp_flow_rates: + description: '参数: asp_flow_rates' + type: string + asp_vols: + description: '参数: asp_vols' + type: string + blow_out_air_volume: + description: '参数: blow_out_air_volume' + type: string + delays: + description: '参数: delays' + type: string + dis_flow_rates: + description: '参数: dis_flow_rates' + type: string + dis_vols: + description: '参数: dis_vols' + type: string + is_96_well: + default: false + description: '参数: is_96_well' + type: boolean + liquid_height: + description: '参数: liquid_height' + type: string + mix_liquid_height: + description: '参数: mix_liquid_height' + type: string + mix_rate: + description: '参数: mix_rate' + type: string + mix_stage: + default: none + description: '参数: mix_stage' + type: string + mix_times: + description: '参数: mix_times' + type: string + mix_vol: + description: '参数: mix_vol' + type: string + none_keys: + default: [] + description: '参数: none_keys' + type: string + offsets: + description: '参数: offsets' + type: string + sources: + description: '参数: sources' + type: string + spread: + default: wide + description: '参数: spread' + type: string + targets: + description: '参数: targets' + type: string + tip_racks: + description: '参数: tip_racks' + type: string + touch_tip: + default: false + description: '参数: touch_tip' + type: boolean + use_channels: + description: '参数: use_channels' + type: string + required: + - sources + - targets + - tip_racks + - asp_vols + - dis_vols + type: object + result: {} + required: + - goal + title: transfer_liquid 命令参数 + type: object + type: UniLabJsonCommandAsync discard_tips: feedback: {} goal: @@ -4369,8 +4857,16 @@ liquid_handler: feedback: {} goal: description: UniLabJsonCommand __init__ 的参数schema - properties: {} - required: [] + properties: + backend: + description: '参数: backend' + type: string + deck: + description: '参数: deck' + type: string + required: + - backend + - deck type: object result: {} required: @@ -4380,6 +4876,454 @@ liquid_handler: liquid_handler.biomek: class: action_value_mappings: + auto-create_protocol: + feedback: {} + goal: {} + goal_default: + none_keys: [] + protocol_author: null + protocol_date: null + protocol_description: null + protocol_name: null + protocol_type: null + protocol_version: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand create_protocol 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand create_protocol 的参数schema + properties: + none_keys: + default: [] + description: '参数: none_keys' + type: string + protocol_author: + description: '参数: protocol_author' + type: string + protocol_date: + description: '参数: protocol_date' + type: string + protocol_description: + description: '参数: protocol_description' + type: string + protocol_name: + description: '参数: protocol_name' + type: string + protocol_type: + description: '参数: protocol_type' + type: string + protocol_version: + description: '参数: protocol_version' + type: string + required: + - protocol_name + - protocol_description + - protocol_version + - protocol_author + - protocol_date + - protocol_type + type: object + result: {} + required: + - goal + title: create_protocol 命令参数 + type: object + type: UniLabJsonCommand + auto-create_resource: + feedback: {} + goal: {} + goal_default: + bind_location: null + bind_parent_id: null + liquid_input_slot: null + liquid_type: null + liquid_volume: null + resource_tracker: null + resources: null + slot_on_deck: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand create_resource 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand create_resource 的参数schema + properties: + bind_location: + description: '参数: bind_location' + type: object + bind_parent_id: + description: '参数: bind_parent_id' + type: string + liquid_input_slot: + description: '参数: liquid_input_slot' + type: array + liquid_type: + description: '参数: liquid_type' + type: array + liquid_volume: + description: '参数: liquid_volume' + type: array + resource_tracker: + description: '参数: resource_tracker' + type: string + resources: + description: '参数: resources' + type: array + slot_on_deck: + description: '参数: slot_on_deck' + type: integer + required: + - resource_tracker + - resources + - bind_parent_id + - bind_location + - liquid_input_slot + - liquid_type + - liquid_volume + - slot_on_deck + type: object + result: {} + required: + - goal + title: create_resource 命令参数 + type: object + type: UniLabJsonCommand + auto-incubation_biomek: + feedback: {} + goal: {} + goal_default: + time: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand incubation_biomek 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand incubation_biomek 的参数schema + properties: + time: + description: '参数: time' + type: integer + required: + - time + type: object + result: {} + required: + - goal + title: incubation_biomek 命令参数 + type: object + type: UniLabJsonCommand + auto-instrument_setup_biomek: + feedback: {} + goal: {} + goal_default: + class_name: null + id: null + liquid_input_wells: null + liquid_type: null + liquid_volume: null + parent: null + slot_on_deck: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand instrument_setup_biomek 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand instrument_setup_biomek 的参数schema + properties: + class_name: + description: '参数: class_name' + type: string + id: + description: '参数: id' + type: string + liquid_input_wells: + description: '参数: liquid_input_wells' + type: array + liquid_type: + description: '参数: liquid_type' + type: array + liquid_volume: + description: '参数: liquid_volume' + type: array + parent: + description: '参数: parent' + type: string + slot_on_deck: + description: '参数: slot_on_deck' + type: string + required: + - id + - parent + - slot_on_deck + - class_name + - liquid_type + - liquid_volume + - liquid_input_wells + type: object + result: {} + required: + - goal + title: instrument_setup_biomek 命令参数 + type: object + type: UniLabJsonCommand + auto-move_biomek: + feedback: {} + goal: {} + goal_default: + source: null + target: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand move_biomek 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand move_biomek 的参数schema + properties: + source: + description: '参数: source' + type: string + target: + description: '参数: target' + type: string + required: + - source + - target + type: object + result: {} + required: + - goal + title: move_biomek 命令参数 + type: object + type: UniLabJsonCommand + auto-oscillation_biomek: + feedback: {} + goal: {} + goal_default: + rpm: null + time: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand oscillation_biomek 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand oscillation_biomek 的参数schema + properties: + rpm: + description: '参数: rpm' + type: integer + time: + description: '参数: time' + type: integer + required: + - rpm + - time + type: object + result: {} + required: + - goal + title: oscillation_biomek 命令参数 + type: object + type: UniLabJsonCommand + auto-run_protocol: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand run_protocol 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand run_protocol 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: run_protocol 命令参数 + type: object + type: UniLabJsonCommand + auto-transfer_biomek: + feedback: {} + goal: {} + goal_default: + aspirate_techniques: null + dispense_techniques: null + source: null + target: null + tip_rack: null + volume: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand transfer_biomek 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand transfer_biomek 的参数schema + properties: + aspirate_techniques: + description: '参数: aspirate_techniques' + type: string + dispense_techniques: + description: '参数: dispense_techniques' + type: string + source: + description: '参数: source' + type: string + target: + description: '参数: target' + type: string + tip_rack: + description: '参数: tip_rack' + type: string + volume: + description: '参数: volume' + type: number + required: + - source + - target + - tip_rack + - volume + - aspirate_techniques + - dispense_techniques + type: object + result: {} + required: + - goal + title: transfer_biomek 命令参数 + type: object + type: UniLabJsonCommand + auto-transfer_liquid: + feedback: {} + goal: {} + goal_default: + asp_flow_rates: null + asp_vols: null + blow_out_air_volume: null + delays: null + dis_flow_rates: null + dis_vols: null + is_96_well: false + liquid_height: null + mix_liquid_height: null + mix_rate: null + mix_stage: none + mix_times: null + mix_vol: null + none_keys: [] + offsets: null + sources: null + spread: wide + targets: null + tip_racks: null + touch_tip: false + use_channels: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand transfer_liquid 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand transfer_liquid 的参数schema + properties: + asp_flow_rates: + description: '参数: asp_flow_rates' + type: string + asp_vols: + description: '参数: asp_vols' + type: string + blow_out_air_volume: + description: '参数: blow_out_air_volume' + type: string + delays: + description: '参数: delays' + type: string + dis_flow_rates: + description: '参数: dis_flow_rates' + type: string + dis_vols: + description: '参数: dis_vols' + type: string + is_96_well: + default: false + description: '参数: is_96_well' + type: boolean + liquid_height: + description: '参数: liquid_height' + type: string + mix_liquid_height: + description: '参数: mix_liquid_height' + type: string + mix_rate: + description: '参数: mix_rate' + type: string + mix_stage: + default: none + description: '参数: mix_stage' + type: string + mix_times: + description: '参数: mix_times' + type: string + mix_vol: + description: '参数: mix_vol' + type: string + none_keys: + default: [] + description: '参数: none_keys' + type: string + offsets: + description: '参数: offsets' + type: string + sources: + description: '参数: sources' + type: string + spread: + default: wide + description: '参数: spread' + type: string + targets: + description: '参数: targets' + type: string + tip_racks: + description: '参数: tip_racks' + type: string + touch_tip: + default: false + description: '参数: touch_tip' + type: boolean + use_channels: + description: '参数: use_channels' + type: string + required: + - sources + - targets + - tip_racks + - asp_vols + - dis_vols + type: object + result: {} + required: + - goal + title: transfer_liquid 命令参数 + type: object + type: UniLabJsonCommand create_protocol: feedback: {} goal: @@ -5256,7 +6200,8 @@ liquid_handler.biomek: type: object type: LiquidHandlerTransfer module: unilabos.devices.liquid_handling.biomek:LiquidHandlerBiomek - status_types: {} + status_types: + success: String type: python description: Biomek液体处理器设备,基于pylabrobot控制 handles: [] @@ -5267,8 +6212,16 @@ liquid_handler.biomek: feedback: {} goal: description: UniLabJsonCommand __init__ 的参数schema - properties: {} - required: [] + properties: + args: + description: '参数: args' + type: string + kwargs: + description: '参数: kwargs' + type: string + required: + - args + - kwargs type: object result: {} required: @@ -5278,6 +6231,46 @@ liquid_handler.biomek: liquid_handler.revvity: class: action_value_mappings: + auto-run: + feedback: {} + goal: {} + goal_default: + file_path: null + params: null + resource: + AichemecoHiwo: + id: AichemecoHiwo + handles: [] + result: {} + schema: + description: UniLabJsonCommand run 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand run 的参数schema + properties: + file_path: + description: '参数: file_path' + type: string + params: + description: '参数: params' + type: string + resource: + default: + AichemecoHiwo: + id: AichemecoHiwo + description: '参数: resource' + type: object + required: + - file_path + - params + type: object + result: {} + required: + - goal + title: run 命令参数 + type: object + type: UniLabJsonCommand run: feedback: status: status @@ -5431,7 +6424,8 @@ liquid_handler.revvity: type: WorkStationRun module: unilabos.devices.liquid_handling.revvity:Revvity status_types: - status: String + status: str + success: bool type: python description: '' handles: [] diff --git a/unilabos/registry/devices/mock_devices.yaml b/unilabos/registry/devices/mock_devices.yaml index 7ec0b60..1cf844c 100644 --- a/unilabos/registry/devices/mock_devices.yaml +++ b/unilabos/registry/devices/mock_devices.yaml @@ -250,6 +250,7 @@ mock_chiller: module: unilabos.devices.mock.mock_chiller:MockChiller status_types: current_temperature: float + get_status_info: dict is_cooling: bool is_heating: bool purpose: str @@ -594,6 +595,7 @@ mock_filter: filtered_volume: float filtrate_vessel: str flow_rate: float + get_status_info: dict is_filtering: bool pressure_drop: float progress: float @@ -1053,6 +1055,7 @@ mock_heater: module: unilabos.devices.mock.mock_heater:MockHeater status_types: current_temperature: float + get_status_info: dict heating_power: float is_heating: bool max_temperature: float @@ -1510,6 +1513,7 @@ mock_pump: current_device: str flow_rate: float from_vessel: str + get_status_info: dict is_solid: bool is_viscous: bool max_flow_rate: float @@ -2081,6 +2085,7 @@ mock_rotavap: type: EmptyIn module: unilabos.devices.mock.mock_rotavap:MockRotavap status_types: + get_status_info: dict pump_state: str pump_time: float rotate_speed: float @@ -2573,6 +2578,7 @@ mock_separator: status_types: current_device: str from_vessel: str + get_status_info: dict product_phase: str purpose: str repeats: int @@ -2865,6 +2871,7 @@ mock_solenoid_valve: type: StrSingleInput module: unilabos.devices.mock.mock_solenoid_valve:MockSolenoidValve status_types: + get_valve_status: str status: str valve_status: str type: python @@ -3281,6 +3288,7 @@ mock_stirrer: type: EmptyIn module: unilabos.devices.mock.mock_stirrer:MockStirrer status_types: + get_status_info: dict heating_power: float heating_state: str max_stir_speed: float @@ -3621,6 +3629,7 @@ mock_stirrer_new: type: StopStir module: unilabos.devices.mock.mock_stirrer_new:MockStirrer_new status_types: + get_status_info: dict max_stir_speed: float progress: float purpose: str @@ -4125,6 +4134,7 @@ mock_vacuum: type: EmptyIn module: unilabos.devices.mock.mock_vacuum:MockVacuum status_types: + get_status_info: dict max_pump_speed: float power_state: str pump_efficiency: float diff --git a/unilabos/registry/devices/moveit_config.yaml b/unilabos/registry/devices/moveit_config.yaml index 2bc56a6..8865d50 100644 --- a/unilabos/registry/devices/moveit_config.yaml +++ b/unilabos/registry/devices/moveit_config.yaml @@ -1,6 +1,294 @@ moveit.arm_slider: class: action_value_mappings: + auto-check_tf_update_actions: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand check_tf_update_actions 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand check_tf_update_actions 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: check_tf_update_actions 命令参数 + type: object + type: UniLabJsonCommand + auto-moveit_joint_task: + feedback: {} + goal: {} + goal_default: + joint_names: null + joint_positions: null + move_group: null + retry: 10 + speed: 1 + handles: [] + result: {} + schema: + description: UniLabJsonCommand moveit_joint_task 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand moveit_joint_task 的参数schema + properties: + joint_names: + description: '参数: joint_names' + type: string + joint_positions: + description: '参数: joint_positions' + type: string + move_group: + description: '参数: move_group' + type: string + retry: + default: 10 + description: '参数: retry' + type: string + speed: + default: 1 + description: '参数: speed' + type: string + required: + - move_group + - joint_positions + type: object + result: {} + required: + - goal + title: moveit_joint_task 命令参数 + type: object + type: UniLabJsonCommand + auto-moveit_task: + feedback: {} + goal: {} + goal_default: + cartesian: false + move_group: null + offsets: + - 0 + - 0 + - 0 + position: null + quaternion: null + retry: 10 + speed: 1 + target_link: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand moveit_task 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand moveit_task 的参数schema + properties: + cartesian: + default: false + description: '参数: cartesian' + type: string + move_group: + description: '参数: move_group' + type: string + offsets: + default: + - 0 + - 0 + - 0 + description: '参数: offsets' + type: string + position: + description: '参数: position' + type: string + quaternion: + description: '参数: quaternion' + type: string + retry: + default: 10 + description: '参数: retry' + type: string + speed: + default: 1 + description: '参数: speed' + type: string + target_link: + description: '参数: target_link' + type: string + required: + - move_group + - position + - quaternion + type: object + result: {} + required: + - goal + title: moveit_task 命令参数 + type: object + type: UniLabJsonCommand + auto-pick_and_place: + feedback: {} + goal: {} + goal_default: + command: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand pick_and_place 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand pick_and_place 的参数schema + properties: + command: + description: '参数: command' + type: string + required: + - command + type: object + result: {} + required: + - goal + title: pick_and_place 命令参数 + type: object + type: UniLabJsonCommand + auto-post_init: + feedback: {} + goal: {} + goal_default: + ros_node: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand post_init 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand post_init 的参数schema + properties: + ros_node: + description: '参数: ros_node' + type: string + required: + - ros_node + type: object + result: {} + required: + - goal + title: post_init 命令参数 + type: object + type: UniLabJsonCommand + auto-resource_manager: + feedback: {} + goal: {} + goal_default: + parent_link: null + resource: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand resource_manager 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand resource_manager 的参数schema + properties: + parent_link: + description: '参数: parent_link' + type: string + resource: + description: '参数: resource' + type: string + required: + - resource + - parent_link + type: object + result: {} + required: + - goal + title: resource_manager 命令参数 + type: object + type: UniLabJsonCommand + auto-set_position: + feedback: {} + goal: {} + goal_default: + command: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand set_position 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand set_position 的参数schema + properties: + command: + description: '参数: command' + type: string + required: + - command + type: object + result: {} + required: + - goal + title: set_position 命令参数 + type: object + type: UniLabJsonCommand + auto-set_status: + feedback: {} + goal: {} + goal_default: + command: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand set_status 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand set_status 的参数schema + properties: + command: + description: '参数: command' + type: string + required: + - command + type: object + result: {} + required: + - goal + title: set_status 命令参数 + type: object + type: UniLabJsonCommand + auto-wait_for_resource_action: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand wait_for_resource_action 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand wait_for_resource_action 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: wait_for_resource_action 命令参数 + type: object + type: UniLabJsonCommand pick_and_place: feedback: {} goal: @@ -151,8 +439,22 @@ moveit.arm_slider: feedback: {} goal: description: UniLabJsonCommand __init__ 的参数schema - properties: {} - required: [] + properties: + device_config: + description: '参数: device_config' + type: string + joint_poses: + description: '参数: joint_poses' + type: string + moveit_type: + description: '参数: moveit_type' + type: string + rotation: + description: '参数: rotation' + type: string + required: + - moveit_type + - joint_poses type: object result: {} required: @@ -165,6 +467,294 @@ moveit.arm_slider: moveit.toyo_xyz: class: action_value_mappings: + auto-check_tf_update_actions: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand check_tf_update_actions 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand check_tf_update_actions 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: check_tf_update_actions 命令参数 + type: object + type: UniLabJsonCommand + auto-moveit_joint_task: + feedback: {} + goal: {} + goal_default: + joint_names: null + joint_positions: null + move_group: null + retry: 10 + speed: 1 + handles: [] + result: {} + schema: + description: UniLabJsonCommand moveit_joint_task 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand moveit_joint_task 的参数schema + properties: + joint_names: + description: '参数: joint_names' + type: string + joint_positions: + description: '参数: joint_positions' + type: string + move_group: + description: '参数: move_group' + type: string + retry: + default: 10 + description: '参数: retry' + type: string + speed: + default: 1 + description: '参数: speed' + type: string + required: + - move_group + - joint_positions + type: object + result: {} + required: + - goal + title: moveit_joint_task 命令参数 + type: object + type: UniLabJsonCommand + auto-moveit_task: + feedback: {} + goal: {} + goal_default: + cartesian: false + move_group: null + offsets: + - 0 + - 0 + - 0 + position: null + quaternion: null + retry: 10 + speed: 1 + target_link: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand moveit_task 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand moveit_task 的参数schema + properties: + cartesian: + default: false + description: '参数: cartesian' + type: string + move_group: + description: '参数: move_group' + type: string + offsets: + default: + - 0 + - 0 + - 0 + description: '参数: offsets' + type: string + position: + description: '参数: position' + type: string + quaternion: + description: '参数: quaternion' + type: string + retry: + default: 10 + description: '参数: retry' + type: string + speed: + default: 1 + description: '参数: speed' + type: string + target_link: + description: '参数: target_link' + type: string + required: + - move_group + - position + - quaternion + type: object + result: {} + required: + - goal + title: moveit_task 命令参数 + type: object + type: UniLabJsonCommand + auto-pick_and_place: + feedback: {} + goal: {} + goal_default: + command: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand pick_and_place 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand pick_and_place 的参数schema + properties: + command: + description: '参数: command' + type: string + required: + - command + type: object + result: {} + required: + - goal + title: pick_and_place 命令参数 + type: object + type: UniLabJsonCommand + auto-post_init: + feedback: {} + goal: {} + goal_default: + ros_node: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand post_init 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand post_init 的参数schema + properties: + ros_node: + description: '参数: ros_node' + type: string + required: + - ros_node + type: object + result: {} + required: + - goal + title: post_init 命令参数 + type: object + type: UniLabJsonCommand + auto-resource_manager: + feedback: {} + goal: {} + goal_default: + parent_link: null + resource: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand resource_manager 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand resource_manager 的参数schema + properties: + parent_link: + description: '参数: parent_link' + type: string + resource: + description: '参数: resource' + type: string + required: + - resource + - parent_link + type: object + result: {} + required: + - goal + title: resource_manager 命令参数 + type: object + type: UniLabJsonCommand + auto-set_position: + feedback: {} + goal: {} + goal_default: + command: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand set_position 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand set_position 的参数schema + properties: + command: + description: '参数: command' + type: string + required: + - command + type: object + result: {} + required: + - goal + title: set_position 命令参数 + type: object + type: UniLabJsonCommand + auto-set_status: + feedback: {} + goal: {} + goal_default: + command: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand set_status 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand set_status 的参数schema + properties: + command: + description: '参数: command' + type: string + required: + - command + type: object + result: {} + required: + - goal + title: set_status 命令参数 + type: object + type: UniLabJsonCommand + auto-wait_for_resource_action: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand wait_for_resource_action 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand wait_for_resource_action 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: wait_for_resource_action 命令参数 + type: object + type: UniLabJsonCommand pick_and_place: feedback: {} goal: @@ -315,8 +905,22 @@ moveit.toyo_xyz: feedback: {} goal: description: UniLabJsonCommand __init__ 的参数schema - properties: {} - required: [] + properties: + device_config: + description: '参数: device_config' + type: string + joint_poses: + description: '参数: joint_poses' + type: string + moveit_type: + description: '参数: moveit_type' + type: string + rotation: + description: '参数: rotation' + type: string + required: + - moveit_type + - joint_poses type: object result: {} required: diff --git a/unilabos/registry/devices/pump_and_valve.yaml b/unilabos/registry/devices/pump_and_valve.yaml index e524dac..fd0b08a 100644 --- a/unilabos/registry/devices/pump_and_valve.yaml +++ b/unilabos/registry/devices/pump_and_valve.yaml @@ -224,6 +224,7 @@ solenoid_valve: type: StrSingleInput module: unilabos.devices.pump_and_valve.solenoid_valve:SolenoidValve status_types: + get_valve_position: str status: str valve_position: str type: python @@ -454,6 +455,7 @@ solenoid_valve.mock: type: EmptyIn module: unilabos.devices.pump_and_valve.solenoid_valve_mock:SolenoidValveMock status_types: + get_valve_position: str status: str valve_position: str type: python @@ -1087,6 +1089,14 @@ syringe_pump_with_valve.runze: write: send_command module: unilabos.devices.pump_and_valve.runze_backbone:RunzeSyringePump status_types: + get_max_velocity: String + get_plunger_position: String + get_position: String + get_status: String + get_valve_position: str + get_velocity_end: String + get_velocity_grade: String + get_velocity_init: String max_velocity: float mode: int position: float diff --git a/unilabos/registry/devices/robot_gripper.yaml b/unilabos/registry/devices/robot_gripper.yaml index cd2b1aa..aa1795a 100644 --- a/unilabos/registry/devices/robot_gripper.yaml +++ b/unilabos/registry/devices/robot_gripper.yaml @@ -1,6 +1,410 @@ gripper.misumi_rz: class: action_value_mappings: + auto-data_loop: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand data_loop 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand data_loop 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: data_loop 命令参数 + type: object + type: UniLabJsonCommand + auto-data_reader: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand data_reader 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand data_reader 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: data_reader 命令参数 + type: object + type: UniLabJsonCommand + auto-gripper_move: + feedback: {} + goal: {} + goal_default: + force: null + pos: null + speed: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand gripper_move 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand gripper_move 的参数schema + properties: + force: + description: '参数: force' + type: string + pos: + description: '参数: pos' + type: string + speed: + description: '参数: speed' + type: string + required: + - pos + - speed + - force + type: object + result: {} + required: + - goal + title: gripper_move 命令参数 + type: object + type: UniLabJsonCommand + auto-init_gripper: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand init_gripper 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand init_gripper 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: init_gripper 命令参数 + type: object + type: UniLabJsonCommand + auto-modbus_crc: + feedback: {} + goal: {} + goal_default: + data: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand modbus_crc 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand modbus_crc 的参数schema + properties: + data: + description: '参数: data' + type: string + required: + - data + type: object + result: {} + required: + - goal + title: modbus_crc 命令参数 + type: object + type: UniLabJsonCommand + auto-move_and_rotate: + feedback: {} + goal: {} + goal_default: + grasp_F: null + grasp_pos: null + grasp_v: null + spin_F: null + spin_pos: null + spin_v: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand move_and_rotate 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand move_and_rotate 的参数schema + properties: + grasp_F: + description: '参数: grasp_F' + type: string + grasp_pos: + description: '参数: grasp_pos' + type: string + grasp_v: + description: '参数: grasp_v' + type: string + spin_F: + description: '参数: spin_F' + type: string + spin_pos: + description: '参数: spin_pos' + type: string + spin_v: + description: '参数: spin_v' + type: string + required: + - spin_pos + - grasp_pos + - spin_v + - grasp_v + - spin_F + - grasp_F + type: object + result: {} + required: + - goal + title: move_and_rotate 命令参数 + type: object + type: UniLabJsonCommand + auto-node_gripper_move: + feedback: {} + goal: {} + goal_default: + cmd: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand node_gripper_move 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand node_gripper_move 的参数schema + properties: + cmd: + description: '参数: cmd' + type: string + required: + - cmd + type: object + result: {} + required: + - goal + title: node_gripper_move 命令参数 + type: object + type: UniLabJsonCommand + auto-node_rotate_move: + feedback: {} + goal: {} + goal_default: + cmd: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand node_rotate_move 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand node_rotate_move 的参数schema + properties: + cmd: + description: '参数: cmd' + type: string + required: + - cmd + type: object + result: {} + required: + - goal + title: node_rotate_move 命令参数 + type: object + type: UniLabJsonCommand + auto-read_address: + feedback: {} + goal: {} + goal_default: + address: null + data_len: null + id: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand read_address 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand read_address 的参数schema + properties: + address: + description: '参数: address' + type: string + data_len: + description: '参数: data_len' + type: string + id: + description: '参数: id' + type: string + required: + - id + - address + - data_len + type: object + result: {} + required: + - goal + title: read_address 命令参数 + type: object + type: UniLabJsonCommand + auto-rotate_move_abs: + feedback: {} + goal: {} + goal_default: + force: null + pos: null + speed: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand rotate_move_abs 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand rotate_move_abs 的参数schema + properties: + force: + description: '参数: force' + type: string + pos: + description: '参数: pos' + type: string + speed: + description: '参数: speed' + type: string + required: + - pos + - speed + - force + type: object + result: {} + required: + - goal + title: rotate_move_abs 命令参数 + type: object + type: UniLabJsonCommand + auto-send_cmd: + feedback: {} + goal: {} + goal_default: + address: null + data: null + fun: null + id: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand send_cmd 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand send_cmd 的参数schema + properties: + address: + description: '参数: address' + type: string + data: + description: '参数: data' + type: string + fun: + description: '参数: fun' + type: string + id: + description: '参数: id' + type: string + required: + - id + - fun + - address + - data + type: object + result: {} + required: + - goal + title: send_cmd 命令参数 + type: object + type: UniLabJsonCommand + auto-wait_for_gripper: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand wait_for_gripper 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand wait_for_gripper 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: wait_for_gripper 命令参数 + type: object + type: UniLabJsonCommand + auto-wait_for_gripper_init: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand wait_for_gripper_init 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand wait_for_gripper_init 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: wait_for_gripper_init 命令参数 + type: object + type: UniLabJsonCommand + auto-wait_for_rotate: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand wait_for_rotate 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand wait_for_rotate 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: wait_for_rotate 命令参数 + type: object + type: UniLabJsonCommand execute_command_from_outer: feedback: {} goal: @@ -50,7 +454,7 @@ gripper.misumi_rz: type: SendCmd module: unilabos.devices.motor.Grasp:EleGripper status_types: - status: String + status: str type: python description: Misumi RZ gripper handles: [] @@ -61,8 +465,24 @@ gripper.misumi_rz: feedback: {} goal: description: UniLabJsonCommand __init__ 的参数schema - properties: {} - required: [] + properties: + baudrate: + default: 115200 + description: '参数: baudrate' + type: integer + id: + default: 9 + description: '参数: id' + type: integer + port: + description: '参数: port' + type: string + pos_error: + default: -11 + description: '参数: pos_error' + type: integer + required: + - port type: object result: {} required: @@ -72,6 +492,80 @@ gripper.misumi_rz: gripper.mock: class: action_value_mappings: + auto-edit_id: + feedback: {} + goal: {} + goal_default: + params: '{}' + resource: + Gripper1: {} + wf_name: gripper_run + handles: [] + result: {} + schema: + description: UniLabJsonCommand edit_id 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand edit_id 的参数schema + properties: + params: + default: '{}' + description: '参数: params' + type: string + resource: + default: + Gripper1: {} + description: '参数: resource' + type: object + wf_name: + default: gripper_run + description: '参数: wf_name' + type: string + required: [] + type: object + result: {} + required: + - goal + title: edit_id 命令参数 + type: object + type: UniLabJsonCommand + auto-push_to: + feedback: {} + goal: {} + goal_default: + position: null + torque: null + velocity: 0.0 + handles: [] + result: {} + schema: + description: UniLabJsonCommand push_to 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand push_to 的参数schema + properties: + position: + description: '参数: position' + type: number + torque: + description: '参数: torque' + type: number + velocity: + default: 0.0 + description: '参数: velocity' + type: number + required: + - position + - torque + type: object + result: {} + required: + - goal + title: push_to 命令参数 + type: object + type: UniLabJsonCommand push_to: feedback: effort: torque @@ -151,9 +645,10 @@ gripper.mock: type: GripperCommand module: unilabos.devices.gripper.mock:MockGripper status_types: - position: Float64 - status: String - torque: Float64 + position: float + status: str + torque: float + velocity: float type: python description: Mock gripper handles: [] diff --git a/unilabos/registry/devices/robot_linear_motion.yaml b/unilabos/registry/devices/robot_linear_motion.yaml index 4d2812d..a3abefb 100644 --- a/unilabos/registry/devices/robot_linear_motion.yaml +++ b/unilabos/registry/devices/robot_linear_motion.yaml @@ -1,6 +1,152 @@ linear_motion.grbl: class: action_value_mappings: + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommand + auto-move_through_points: + feedback: {} + goal: {} + goal_default: + positions: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand move_through_points 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand move_through_points 的参数schema + properties: + positions: + description: '参数: positions' + type: array + required: + - positions + type: object + result: {} + required: + - goal + title: move_through_points 命令参数 + type: object + type: UniLabJsonCommand + auto-set_position: + feedback: {} + goal: {} + goal_default: + position: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand set_position 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand set_position 的参数schema + properties: + position: + description: '参数: position' + type: string + required: + - position + type: object + result: {} + required: + - goal + title: set_position 命令参数 + type: object + type: UniLabJsonCommand + auto-set_spindle_speed: + feedback: {} + goal: {} + goal_default: + max_velocity: 500 + spindle_speed: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand set_spindle_speed 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand set_spindle_speed 的参数schema + properties: + max_velocity: + default: 500 + description: '参数: max_velocity' + type: number + spindle_speed: + description: '参数: spindle_speed' + type: number + required: + - spindle_speed + type: object + result: {} + required: + - goal + title: set_spindle_speed 命令参数 + type: object + type: UniLabJsonCommand + auto-stop_operation: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand stop_operation 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand stop_operation 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: stop_operation 命令参数 + type: object + type: UniLabJsonCommand + auto-wait_error: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand wait_error 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand wait_error 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: wait_error 命令参数 + type: object + type: UniLabJsonCommandAsync move_through_points: feedback: current_pose.pose.position: position @@ -347,7 +493,12 @@ linear_motion.grbl: type: object type: SingleJointPosition module: unilabos.devices.cnc.grbl_sync:GrblCNC - status_types: {} + status_types: + get_position: String + get_status: String + position: unilabos.messages:Point3D + spindle_speed: float + status: str type: python description: Grbl CNC handles: [] @@ -358,8 +509,26 @@ linear_motion.grbl: feedback: {} goal: description: UniLabJsonCommand __init__ 的参数schema - properties: {} - required: [] + properties: + address: + default: '1' + description: '参数: address' + type: string + limits: + default: + - -150 + - 150 + - -200 + - 0 + - -80 + - 0 + description: '参数: limits' + type: string + port: + description: '参数: port' + type: string + required: + - port type: object result: {} required: diff --git a/unilabos/registry/devices/sim_nodes.yaml b/unilabos/registry/devices/sim_nodes.yaml index f8794f2..bf33b8e 100644 --- a/unilabos/registry/devices/sim_nodes.yaml +++ b/unilabos/registry/devices/sim_nodes.yaml @@ -182,7 +182,7 @@ lh_joint_publisher: speed: default: 0.1 description: '参数: speed' - type: number + type: string x: description: '参数: x' type: string @@ -268,7 +268,7 @@ lh_joint_publisher: properties: channels: description: '参数: channels' - type: string + type: array link_name: description: '参数: link_name' type: string @@ -306,7 +306,7 @@ lh_joint_publisher: type: string resource_id_list: description: '参数: resource_id_list' - type: string + type: array required: - resource_id_list - link_name diff --git a/unilabos/registry/devices/temperature.yaml b/unilabos/registry/devices/temperature.yaml index b40810a..a6308a9 100644 --- a/unilabos/registry/devices/temperature.yaml +++ b/unilabos/registry/devices/temperature.yaml @@ -614,6 +614,8 @@ heaterstirrer.dalong: type: SendCmd module: unilabos.devices.heaterstirrer.dalong:HeaterStirrer_DaLong status_types: + get_status: str + get_temp: String status: str stir_speed: float temp: float diff --git a/unilabos/registry/devices/vacuum_and_purge.yaml b/unilabos/registry/devices/vacuum_and_purge.yaml index d17593b..4a15c4a 100644 --- a/unilabos/registry/devices/vacuum_and_purge.yaml +++ b/unilabos/registry/devices/vacuum_and_purge.yaml @@ -247,6 +247,7 @@ gas_source.mock: type: StrSingleInput module: unilabos.devices.pump_and_valve.vacuum_pump_mock:VacuumPumpMock status_types: + get_status: str status: str type: python description: Mock gas source @@ -525,6 +526,7 @@ vacuum_pump.mock: type: StrSingleInput module: unilabos.devices.pump_and_valve.vacuum_pump_mock:VacuumPumpMock status_types: + get_status: str status: str type: python description: Mock vacuum pump diff --git a/unilabos/registry/devices/virtual_device.yaml b/unilabos/registry/devices/virtual_device.yaml index af6af57..785b865 100644 --- a/unilabos/registry/devices/virtual_device.yaml +++ b/unilabos/registry/devices/virtual_device.yaml @@ -1,6 +1,89 @@ virtual_centrifuge: class: action_value_mappings: + auto-centrifuge: + feedback: {} + goal: {} + goal_default: + speed: null + temp: 25.0 + time: null + vessel: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand centrifuge 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand centrifuge 的参数schema + properties: + speed: + description: '参数: speed' + type: number + temp: + default: 25.0 + description: '参数: temp' + type: number + time: + description: '参数: time' + type: number + vessel: + description: '参数: vessel' + type: string + required: + - vessel + - speed + - time + type: object + result: {} + required: + - goal + title: centrifuge 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync centrifuge: feedback: current_speed: current_speed @@ -119,7 +202,11 @@ virtual_centrifuge: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: @@ -129,6 +216,84 @@ virtual_centrifuge: virtual_column: class: action_value_mappings: + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-run_column: + feedback: {} + goal: {} + goal_default: + column: null + from_vessel: null + to_vessel: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand run_column 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand run_column 的参数schema + properties: + column: + description: '参数: column' + type: string + from_vessel: + description: '参数: from_vessel' + type: string + to_vessel: + description: '参数: to_vessel' + type: string + required: + - from_vessel + - to_vessel + - column + type: object + result: {} + required: + - goal + title: run_column 命令参数 + type: object + type: UniLabJsonCommandAsync run_column: feedback: current_status: current_status @@ -241,7 +406,11 @@ virtual_column: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: @@ -251,6 +420,104 @@ virtual_column: virtual_filter: class: action_value_mappings: + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-filter: + feedback: {} + goal: {} + goal_default: + continue_heatchill: false + filtrate_vessel: '' + stir: false + stir_speed: 300.0 + temp: 25.0 + vessel: null + volume: 0.0 + handles: [] + result: {} + schema: + description: UniLabJsonCommand filter 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand filter 的参数schema + properties: + continue_heatchill: + default: false + description: '参数: continue_heatchill' + type: boolean + filtrate_vessel: + default: '' + description: '参数: filtrate_vessel' + type: string + stir: + default: false + description: '参数: stir' + type: boolean + stir_speed: + default: 300.0 + description: '参数: stir_speed' + type: number + temp: + default: 25.0 + description: '参数: temp' + type: number + vessel: + description: '参数: vessel' + type: string + volume: + default: 0.0 + description: '参数: volume' + type: number + required: + - vessel + type: object + result: {} + required: + - goal + title: filter 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync filter: feedback: current_status: current_status @@ -398,7 +665,11 @@ virtual_filter: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: @@ -408,6 +679,27 @@ virtual_filter: virtual_gas_source: class: action_value_mappings: + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync auto-close: feedback: {} goal: {} @@ -450,6 +742,27 @@ virtual_gas_source: title: get_status 命令参数 type: object type: UniLabJsonCommand + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync auto-is_closed: feedback: {} goal: {} @@ -654,6 +967,7 @@ virtual_gas_source: type: StrSingleInput module: unilabos.devices.virtual.virtual_gas_source:VirtualGasSource status_types: + get_status: str status: str type: python description: Virtual gas source @@ -680,7 +994,11 @@ virtual_gas_source: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: @@ -690,6 +1008,161 @@ virtual_gas_source: virtual_heatchill: class: action_value_mappings: + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-heat_chill: + feedback: {} + goal: {} + goal_default: + purpose: null + stir: null + stir_speed: null + temp: null + time: null + vessel: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand heat_chill 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand heat_chill 的参数schema + properties: + purpose: + description: '参数: purpose' + type: string + stir: + description: '参数: stir' + type: boolean + stir_speed: + description: '参数: stir_speed' + type: number + temp: + description: '参数: temp' + type: number + time: + description: '参数: time' + type: number + vessel: + description: '参数: vessel' + type: string + required: + - vessel + - temp + - time + - stir + - stir_speed + - purpose + type: object + result: {} + required: + - goal + title: heat_chill 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-heat_chill_start: + feedback: {} + goal: {} + goal_default: + purpose: null + temp: null + vessel: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand heat_chill_start 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand heat_chill_start 的参数schema + properties: + purpose: + description: '参数: purpose' + type: string + temp: + description: '参数: temp' + type: number + vessel: + description: '参数: vessel' + type: string + required: + - vessel + - temp + - purpose + type: object + result: {} + required: + - goal + title: heat_chill_start 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-heat_chill_stop: + feedback: {} + goal: {} + goal_default: + vessel: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand heat_chill_stop 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand heat_chill_stop 的参数schema + properties: + vessel: + description: '参数: vessel' + type: string + required: + - vessel + type: object + result: {} + required: + - goal + title: heat_chill_stop 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync heat_chill: feedback: status: status @@ -901,7 +1374,11 @@ virtual_heatchill: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: @@ -1416,6 +1893,13 @@ virtual_multiway_valve: module: unilabos.devices.virtual.virtual_multiway_valve:VirtualMultiwayValve status_types: current_position: int + get_available_ports: typing:Dict + get_available_positions: list + get_current_port: str + get_current_position: int + get_flow_path: str + get_info: dict + get_valve_position: int max_positions: Int32 status: str target_position: int @@ -1521,6 +2005,165 @@ virtual_multiway_valve: virtual_pump: class: action_value_mappings: + auto-clean_vessel: + feedback: {} + goal: {} + goal_default: + repeats: 1 + solvent: null + temp: null + vessel: null + volume: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand clean_vessel 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand clean_vessel 的参数schema + properties: + repeats: + default: 1 + description: '参数: repeats' + type: integer + solvent: + description: '参数: solvent' + type: string + temp: + description: '参数: temp' + type: number + vessel: + description: '参数: vessel' + type: string + volume: + description: '参数: volume' + type: number + required: + - vessel + - solvent + - volume + - temp + type: object + result: {} + required: + - goal + title: clean_vessel 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-transfer: + feedback: {} + goal: {} + goal_default: + amount: '' + from_vessel: null + rinsing_repeats: 0 + rinsing_solvent: '' + rinsing_volume: 0.0 + solid: false + time: 0.0 + to_vessel: null + viscous: false + volume: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand transfer 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand transfer 的参数schema + properties: + amount: + default: '' + description: '参数: amount' + type: string + from_vessel: + description: '参数: from_vessel' + type: string + rinsing_repeats: + default: 0 + description: '参数: rinsing_repeats' + type: integer + rinsing_solvent: + default: '' + description: '参数: rinsing_solvent' + type: string + rinsing_volume: + default: 0.0 + description: '参数: rinsing_volume' + type: number + solid: + default: false + description: '参数: solid' + type: boolean + time: + default: 0.0 + description: '参数: time' + type: number + to_vessel: + description: '参数: to_vessel' + type: string + viscous: + default: false + description: '参数: viscous' + type: boolean + volume: + description: '参数: volume' + type: number + required: + - from_vessel + - to_vessel + - volume + type: object + result: {} + required: + - goal + title: transfer 命令参数 + type: object + type: UniLabJsonCommandAsync set_valve_position: feedback: status: status @@ -1733,7 +2376,11 @@ virtual_pump: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: @@ -1743,6 +2390,94 @@ virtual_pump: virtual_rotavap: class: action_value_mappings: + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-evaporate: + feedback: {} + goal: {} + goal_default: + pressure: 0.1 + stir_speed: 100.0 + temp: 60.0 + time: 1800.0 + vessel: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand evaporate 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand evaporate 的参数schema + properties: + pressure: + default: 0.1 + description: '参数: pressure' + type: number + stir_speed: + default: 100.0 + description: '参数: stir_speed' + type: number + temp: + default: 60.0 + description: '参数: temp' + type: number + time: + default: 1800.0 + description: '参数: time' + type: number + vessel: + description: '参数: vessel' + type: string + required: + - vessel + type: object + result: {} + required: + - goal + title: evaporate 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync evaporate: feedback: current_temp: current_temp @@ -1904,7 +2639,11 @@ virtual_rotavap: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: @@ -1914,6 +2653,134 @@ virtual_rotavap: virtual_separator: class: action_value_mappings: + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-separate: + feedback: {} + goal: {} + goal_default: + from_vessel: null + product_phase: null + purpose: null + repeats: 1 + separation_vessel: null + settling_time: 300.0 + solvent: '' + solvent_volume: 50.0 + stir_speed: 300.0 + stir_time: 30.0 + through: '' + to_vessel: null + waste_phase_to_vessel: '' + handles: [] + result: {} + schema: + description: UniLabJsonCommand separate 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand separate 的参数schema + properties: + from_vessel: + description: '参数: from_vessel' + type: string + product_phase: + description: '参数: product_phase' + type: string + purpose: + description: '参数: purpose' + type: string + repeats: + default: 1 + description: '参数: repeats' + type: integer + separation_vessel: + description: '参数: separation_vessel' + type: string + settling_time: + default: 300.0 + description: '参数: settling_time' + type: number + solvent: + default: '' + description: '参数: solvent' + type: string + solvent_volume: + default: 50.0 + description: '参数: solvent_volume' + type: number + stir_speed: + default: 300.0 + description: '参数: stir_speed' + type: number + stir_time: + default: 30.0 + description: '参数: stir_time' + type: number + through: + default: '' + description: '参数: through' + type: string + to_vessel: + description: '参数: to_vessel' + type: string + waste_phase_to_vessel: + default: '' + description: '参数: waste_phase_to_vessel' + type: string + required: + - purpose + - product_phase + - from_vessel + - separation_vessel + - to_vessel + type: object + result: {} + required: + - goal + title: separate 命令参数 + type: object + type: UniLabJsonCommandAsync separate: feedback: current_status: status @@ -2121,7 +2988,11 @@ virtual_separator: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: @@ -2131,6 +3002,53 @@ virtual_separator: virtual_solenoid_valve: class: action_value_mappings: + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-close: + feedback: {} + goal: {} + goal_default: + kwargs: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand close 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand close 的参数schema + properties: + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs + type: object + result: {} + required: + - goal + title: close 命令参数 + type: object + type: UniLabJsonCommandAsync auto-get_state: feedback: {} goal: {} @@ -2173,6 +3091,27 @@ virtual_solenoid_valve: title: get_valve_position 命令参数 type: object type: UniLabJsonCommand + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync auto-is_closed: feedback: {} goal: {} @@ -2194,6 +3133,114 @@ virtual_solenoid_valve: title: is_closed 命令参数 type: object type: UniLabJsonCommand + auto-open: + feedback: {} + goal: {} + goal_default: + kwargs: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand open 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand open 的参数schema + properties: + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs + type: object + result: {} + required: + - goal + title: open 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-reset: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand reset 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand reset 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: reset 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-set_state: + feedback: {} + goal: {} + goal_default: + command: null + kwargs: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand set_state 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand set_state 的参数schema + properties: + command: + description: '参数: command' + type: string + kwargs: + description: '参数: kwargs' + type: string + required: + - command + - kwargs + type: object + result: {} + required: + - goal + title: set_state 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-set_valve_position: + feedback: {} + goal: {} + goal_default: + command: null + kwargs: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand set_valve_position 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand set_valve_position 的参数schema + properties: + command: + description: '参数: command' + type: string + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs + type: object + result: {} + required: + - goal + title: set_valve_position 命令参数 + type: object + type: UniLabJsonCommandAsync auto-toggle: feedback: {} goal: {} @@ -2405,6 +3452,8 @@ virtual_solenoid_valve: type: SendCmd module: unilabos.devices.virtual.virtual_solenoid_valve:VirtualSolenoidValve status_types: + get_state: dict + get_valve_position: str is_open: bool status: str valve_state: str @@ -2441,7 +3490,11 @@ virtual_solenoid_valve: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: @@ -2451,6 +3504,146 @@ virtual_solenoid_valve: virtual_stirrer: class: action_value_mappings: + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-start_stir: + feedback: {} + goal: {} + goal_default: + purpose: null + stir_speed: null + vessel: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand start_stir 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand start_stir 的参数schema + properties: + purpose: + description: '参数: purpose' + type: string + stir_speed: + description: '参数: stir_speed' + type: number + vessel: + description: '参数: vessel' + type: string + required: + - vessel + - stir_speed + - purpose + type: object + result: {} + required: + - goal + title: start_stir 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-stir: + feedback: {} + goal: {} + goal_default: + settling_time: null + stir_speed: null + stir_time: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand stir 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand stir 的参数schema + properties: + settling_time: + description: '参数: settling_time' + type: number + stir_speed: + description: '参数: stir_speed' + type: number + stir_time: + description: '参数: stir_time' + type: number + required: + - stir_time + - stir_speed + - settling_time + type: object + result: {} + required: + - goal + title: stir 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-stop_stir: + feedback: {} + goal: {} + goal_default: + vessel: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand stop_stir 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand stop_stir 的参数schema + properties: + vessel: + description: '参数: vessel' + type: string + required: + - vessel + type: object + result: {} + required: + - goal + title: stop_stir 命令参数 + type: object + type: UniLabJsonCommandAsync start_stir: feedback: status: status @@ -2663,7 +3856,11 @@ virtual_stirrer: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: @@ -2673,6 +3870,137 @@ virtual_stirrer: virtual_transfer_pump: class: action_value_mappings: + auto-aspirate: + feedback: {} + goal: {} + goal_default: + velocity: null + volume: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand aspirate 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand aspirate 的参数schema + properties: + velocity: + description: '参数: velocity' + type: number + volume: + description: '参数: volume' + type: number + required: + - volume + type: object + result: {} + required: + - goal + title: aspirate 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-dispense: + feedback: {} + goal: {} + goal_default: + velocity: null + volume: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand dispense 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand dispense 的参数schema + properties: + velocity: + description: '参数: velocity' + type: number + volume: + description: '参数: 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: [] + result: {} + schema: + description: UniLabJsonCommand empty_syringe 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand empty_syringe 的参数schema + properties: + velocity: + description: '参数: 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: [] + result: {} + schema: + description: UniLabJsonCommand fill_syringe 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand fill_syringe 的参数schema + properties: + velocity: + description: '参数: velocity' + type: number + required: [] + type: object + result: {} + required: + - goal + title: fill_syringe 命令参数 + type: object + type: UniLabJsonCommandAsync auto-get_current_volume: feedback: {} goal: {} @@ -2778,6 +4106,27 @@ virtual_transfer_pump: title: get_status 命令参数 type: object type: UniLabJsonCommand + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync auto-is_empty: feedback: {} goal: {} @@ -2820,6 +4169,66 @@ virtual_transfer_pump: title: is_full 命令参数 type: object type: UniLabJsonCommand + auto-pull_plunger: + feedback: {} + goal: {} + goal_default: + velocity: null + volume: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand pull_plunger 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand pull_plunger 的参数schema + properties: + velocity: + description: '参数: velocity' + type: number + volume: + description: '参数: 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: [] + result: {} + schema: + description: UniLabJsonCommand push_plunger 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand push_plunger 的参数schema + properties: + velocity: + description: '参数: velocity' + type: number + volume: + description: '参数: volume' + type: number + required: + - volume + type: object + result: {} + required: + - goal + title: push_plunger 命令参数 + type: object + type: UniLabJsonCommandAsync auto-set_max_velocity: feedback: {} goal: {} @@ -2846,6 +4255,91 @@ virtual_transfer_pump: title: set_max_velocity 命令参数 type: object type: UniLabJsonCommand + auto-set_position: + feedback: {} + goal: {} + goal_default: + max_velocity: null + position: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand set_position 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand set_position 的参数schema + properties: + max_velocity: + description: '参数: max_velocity' + type: number + position: + description: '参数: position' + type: number + required: + - position + type: object + result: {} + required: + - goal + title: set_position 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-stop_operation: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand stop_operation 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand stop_operation 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: stop_operation 命令参数 + type: object + type: UniLabJsonCommandAsync + auto-transfer: + feedback: {} + goal: {} + goal_default: + aspirate_velocity: null + dispense_velocity: null + volume: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand transfer 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand transfer 的参数schema + properties: + aspirate_velocity: + description: '参数: aspirate_velocity' + type: number + dispense_velocity: + description: '参数: dispense_velocity' + type: number + volume: + description: '参数: volume' + type: number + required: + - volume + type: object + result: {} + required: + - goal + title: transfer 命令参数 + type: object + type: UniLabJsonCommandAsync set_position: feedback: current_position: current_position @@ -3021,6 +4515,11 @@ virtual_transfer_pump: module: unilabos.devices.virtual.virtual_transferpump:VirtualTransferPump status_types: current_volume: float + get_current_volume: float + get_position: float + get_pump_info: dict + get_remaining_capacity: float + get_status: str max_velocity: float max_volume: Float64 position: float @@ -3051,7 +4550,11 @@ virtual_transfer_pump: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: @@ -3061,6 +4564,27 @@ virtual_transfer_pump: virtual_vacuum_pump: class: action_value_mappings: + auto-cleanup: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand cleanup 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand cleanup 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: cleanup 命令参数 + type: object + type: UniLabJsonCommandAsync auto-close: feedback: {} goal: {} @@ -3103,6 +4627,27 @@ virtual_vacuum_pump: title: get_status 命令参数 type: object type: UniLabJsonCommand + auto-initialize: + feedback: {} + goal: {} + goal_default: {} + handles: [] + result: {} + schema: + description: UniLabJsonCommand initialize 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand initialize 的参数schema + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: initialize 命令参数 + type: object + type: UniLabJsonCommandAsync auto-is_closed: feedback: {} goal: {} @@ -3307,6 +4852,7 @@ virtual_vacuum_pump: type: StrSingleInput module: unilabos.devices.virtual.virtual_vacuum_pump:VirtualVacuumPump status_types: + get_status: str status: str type: python description: Virtual vacuum pump @@ -3333,7 +4879,11 @@ virtual_vacuum_pump: device_id: description: '参数: device_id' type: string - required: [] + kwargs: + description: '参数: kwargs' + type: string + required: + - kwargs type: object result: {} required: diff --git a/unilabos/registry/devices/work_station.yaml b/unilabos/registry/devices/work_station.yaml index 293060a..3b2765b 100644 --- a/unilabos/registry/devices/work_station.yaml +++ b/unilabos/registry/devices/work_station.yaml @@ -2298,6 +2298,42 @@ workstation: title: create_ros_action_server 命令参数 type: object type: UniLabJsonCommand + auto-execute_single_action: + feedback: {} + goal: {} + goal_default: + action_kwargs: null + action_name: null + device_id: null + handles: [] + result: {} + schema: + description: UniLabJsonCommand execute_single_action 的参数schema + properties: + feedback: {} + goal: + description: UniLabJsonCommand execute_single_action 的参数schema + properties: + action_kwargs: + description: '参数: action_kwargs' + type: string + action_name: + description: '参数: action_name' + type: string + device_id: + description: '参数: device_id' + type: string + required: + - device_id + - action_name + - action_kwargs + type: object + result: {} + required: + - goal + title: execute_single_action 命令参数 + type: object + type: UniLabJsonCommandAsync auto-initialize_device: feedback: {} goal: {} @@ -2342,12 +2378,18 @@ workstation: goal: description: UniLabJsonCommand __init__ 的参数schema properties: + args: + description: '参数: args' + type: string children: description: '参数: children' type: object device_id: description: '参数: device_id' type: string + kwargs: + description: '参数: kwargs' + type: string protocol_type: description: '参数: protocol_type' type: string @@ -2359,6 +2401,8 @@ workstation: - children - protocol_type - resource_tracker + - args + - kwargs type: object result: {} required: diff --git a/unilabos/registry/devices/zhida_hplc.yaml b/unilabos/registry/devices/zhida_hplc.yaml index 0c8141a..fa95efe 100644 --- a/unilabos/registry/devices/zhida_hplc.yaml +++ b/unilabos/registry/devices/zhida_hplc.yaml @@ -226,6 +226,7 @@ zhida_hplc: type: StrSingleInput module: unilabos.devices.zhida_hplc.zhida:ZhidaClient status_types: + get_methods: dict status: dict type: python description: Zhida HPLC diff --git a/unilabos/registry/registry.py b/unilabos/registry/registry.py index 27e47e5..5895509 100644 --- a/unilabos/registry/registry.py +++ b/unilabos/registry/registry.py @@ -190,7 +190,9 @@ class Registry: logger.error(f"[UniLab Registry] 无法找到类型 '{type_name}' 用于设备 {device_id} 的 {field_name}") sys.exit(1) - def _generate_unilab_json_command_schema(self, method_args: List[Dict[str, Any]], method_name: str) -> Dict[str, Any]: + def _generate_unilab_json_command_schema( + self, method_args: List[Dict[str, Any]], method_name: str + ) -> Dict[str, Any]: """ 根据UniLabJsonCommand方法信息生成JSON Schema,暂不支持嵌套类型 @@ -302,6 +304,7 @@ class Registry: for status_name, status_type in device_config["class"]["status_types"].items(): if status_type in ["Any", "None"]: status_type = "String" # 替换成ROS的String,便于显示 + device_config["class"]["status_types"][status_name] = status_type target_type = self._replace_type_with_class(status_type, device_id, f"状态 {status_name}") status_str_type_mapping[status_type] = target_type device_config["class"]["status_types"] = dict( @@ -322,7 +325,9 @@ class Registry: for k, v in enhanced_info["action_methods"].items() } ) - device_config["init_param_schema"] = self._generate_unilab_json_command_schema(enhanced_info["init_params"], "__init__") + device_config["init_param_schema"] = self._generate_unilab_json_command_schema( + enhanced_info["init_params"], "__init__" + ) device_config.pop("schema", None) device_config["class"]["action_value_mappings"] = dict( sorted(device_config["class"]["action_value_mappings"].items()) @@ -398,7 +403,28 @@ class Registry: def obtain_registry_device_info(self): devices = [] for device_id, device_info in self.device_type_registry.items(): - msg = {"id": device_id, **device_info} + device_info_copy = copy.deepcopy(device_info) + if "class" in device_info_copy and "action_value_mappings" in device_info_copy["class"]: + action_mappings = device_info_copy["class"]["action_value_mappings"] + for action_name, action_config in action_mappings.items(): + if "schema" in action_config and action_config["schema"]: + schema = action_config["schema"] + # 确保schema结构存在 + if ( + "properties" in schema + and "goal" in schema["properties"] + and "properties" in schema["properties"]["goal"] + ): + schema["properties"]["goal"]["properties"] = { + "unilabos_device_id": { + "type": "string", + "default": "", + "description": "UniLabOS设备ID,用于指定执行动作的具体设备实例", + }, + **schema["properties"]["goal"]["properties"], + } + + msg = {"id": device_id, **device_info_copy} devices.append(msg) return devices diff --git a/unilabos/ros/nodes/presets/protocol_node.py b/unilabos/ros/nodes/presets/protocol_node.py index 09921db..380bfff 100644 --- a/unilabos/ros/nodes/presets/protocol_node.py +++ b/unilabos/ros/nodes/presets/protocol_node.py @@ -168,10 +168,9 @@ class ROS2ProtocolNode(BaseROS2DeviceNode): execution_error = "" execution_success = False protocol_return_value = None - + self.get_logger().info(f"Executing {protocol_name} action...") + action_value_mapping = self._action_value_mappings[protocol_name] try: - self.get_logger().info(f"Executing {protocol_name} action...") - action_value_mapping = self._action_value_mappings[protocol_name] print("+" * 30) print(protocol_steps_generator) # 从目标消息中提取参数, 并调用Protocol生成器(根据设备连接图)生成action步骤 diff --git a/unilabos/utils/import_manager.py b/unilabos/utils/import_manager.py index 4653977..b3968e1 100644 --- a/unilabos/utils/import_manager.py +++ b/unilabos/utils/import_manager.py @@ -207,7 +207,6 @@ class ImportManager: dynamic_info = None if use_dynamic: try: - raise ValueError("强制使用动态导入") # 强制使用动态导入以测试功能 dynamic_info = self._get_dynamic_class_info(module_path) result["dynamic_import_success"] = True logger.debug(f"[ImportManager] 动态导入类 {module_path} 成功") @@ -242,7 +241,7 @@ class ImportManager: result = { "class_name": class_name, - "init_params": {}, + "init_params": [], "status_methods": {}, "action_methods": {}, } @@ -268,10 +267,10 @@ class ImportManager: "required": param.default == inspect.Parameter.empty, "default": param_default, } - result["init_params"][param_name] = param_info + result["init_params"].append(param_info) # 分析类的所有成员 - for name, method in inspect.getmembers(cls): + for name, method in cls.__dict__.items(): if name.startswith("_"): continue @@ -551,7 +550,7 @@ class ImportManager: if i >= num_required: default_index = i - num_required if default_index < len(defaults): - default_value: Constant = defaults[default_index] + default_value: Constant = defaults[default_index] # type: ignore assert isinstance(default_value, Constant), "暂不支持对非常量类型进行推断,可反馈开源仓库" arg_info["default"] = default_value.value # 如果没有类型注解,尝试从默认值推断类型 @@ -565,7 +564,6 @@ class ImportManager: return method_info - def _infer_type_from_default(self, node: ast.AST) -> Optional[str]: """从默认值推断参数类型""" if isinstance(node, ast.Constant): @@ -594,11 +592,6 @@ class ImportManager: return "Optional[Any]" elif node.id in ["True", "False"]: return "bool" - elif isinstance(node, ast.Attribute): - # 处理类似 os.path.join 的情况 - attr_str = self._extract_default_value(node) - if "path" in attr_str.lower(): - return "str" return None