From 0fba4cf2752853f403da4ee55a7d4faddd6deaa1 Mon Sep 17 00:00:00 2001 From: calvincao Date: Thu, 30 Oct 2025 19:56:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(unilabos):=20=E6=9B=B4=E6=96=B0=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E9=85=8D=E7=BD=AE=E5=92=8C=E8=B5=84=E6=BA=90=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了 bioyond_cell.yaml 中的 xlsx_path 路径分隔符为反斜杠- 在 bioyond_cell.yaml 中新增多个自动命令定义,包括创建物料、处理报告和调度重置等功能- 修改 coin_cell_assembly.py 中 func_pack_send_msg_cmd 函数签名并调整调用参数 - 新增 qiming_coin_cell_code 方法用于设置启明扣电配置参数 - 更新 coin_cell_assembly_a.csv 文件中的寄存器描述和新增压制模式及清洁忽略选项- 修改 bioyond_studio 配置文件中的默认 API 主机地址 - 更新 new_cellconfig3c.json 中的设备类名为 coincellassemblyworkstation_device- 删除 reaction_station_bioyond.yaml 的全部内容,仅保留空对象 -重新组织 YB_bottle.yaml 和 YB_bottle_carriers.yaml 中的资源分类和命名定义 --- .../bioyond_cell/2025092701.xlsx | Bin 9287 -> 18159 bytes .../bioyond_cell/样品导入模板.xlsx | Bin 9686 -> 22129 bytes .../workstation/bioyond_studio/config.py | 2 +- .../coin_cell_assembly/coin_cell_assembly.py | 27 +- .../coin_cell_assembly_a.csv | 5 +- .../coin_cell_assembly/new_cellconfig3c.json | 2 +- unilabos/registry/devices/bioyond_cell.yaml | 216 +- .../devices/coin_cell_workstation.yaml | 576 ++ .../devices/reaction_station_bioyond.yaml | 528 +- unilabos/registry/devices/work_station.yaml | 6698 ----------------- .../registry/resources/bioyond/YB_bottle.yaml | 106 +- .../resources/bioyond/YB_bottle_carriers.yaml | 218 +- 12 files changed, 977 insertions(+), 7401 deletions(-) create mode 100644 unilabos/registry/devices/coin_cell_workstation.yaml delete mode 100644 unilabos/registry/devices/work_station.yaml diff --git a/unilabos/devices/workstation/bioyond_studio/bioyond_cell/2025092701.xlsx b/unilabos/devices/workstation/bioyond_studio/bioyond_cell/2025092701.xlsx index 3ce894f1e5033c9a9bbfc0b61024bce1ce3fbf49..d1e9d2f31a2385b1028209891e31c975ebc9744b 100644 GIT binary patch literal 18159 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 literal 9287 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 Q03G%Tg6(;#X@C3mf3EfhZ2$lO diff --git a/unilabos/devices/workstation/bioyond_studio/bioyond_cell/样品导入模板.xlsx b/unilabos/devices/workstation/bioyond_studio/bioyond_cell/样品导入模板.xlsx index e6addeb9855082c3ba401dbff45cc4aecf81e8ca..0d8d0e297d6ff5c2d304bc438c499a27da375b01 100644 GIT binary patch literal 22129 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 literal 9686 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 xmGVzK06Qxi diff --git a/unilabos/devices/workstation/bioyond_studio/config.py b/unilabos/devices/workstation/bioyond_studio/config.py index 504cf459..52feff6f 100644 --- a/unilabos/devices/workstation/bioyond_studio/config.py +++ b/unilabos/devices/workstation/bioyond_studio/config.py @@ -8,7 +8,7 @@ import os # BioyondCellWorkstation 默认配置(包含所有必需参数) API_CONFIG = { # API 连接配置 - "api_host": os.getenv("BIOYOND_API_HOST", "http://172.16.10.169:44388"), + "api_host": os.getenv("BIOYOND_API_HOST", "http://172.21.32.103:44388"), "api_key": os.getenv("BIOYOND_API_KEY", "8A819E5C"), "timeout": int(os.getenv("BIOYOND_TIMEOUT", "30")), diff --git a/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly.py b/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly.py index cf06f704..e520628e 100644 --- a/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly.py +++ b/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly.py @@ -766,7 +766,7 @@ class CoinCellAssemblyWorkstation(WorkstationBase): # self.success = True # return self.success - def func_pack_send_msg_cmd(self, elec_use_num, elec_vol, assembly_type, assembly_pressure) -> bool: + def func_pack_send_msg_cmd(self, elec_use_num, elec_vol, assembly_type) -> bool: """UNILAB写参数""" while (self.request_rec_msg_status) == False: print("wait for request_rec_msg_status to True") @@ -782,9 +782,6 @@ class CoinCellAssemblyWorkstation(WorkstationBase): #发送电解液组装类型 self._unilab_send_msg_assembly_type(assembly_type) time.sleep(1) - #发送电池压制力 - self._unilab_send_msg_assembly_pressure(assembly_pressure) - time.sleep(1) self._unilab_send_msg_succ_cmd(True) time.sleep(1) while (self.request_rec_msg_status) == True: @@ -892,10 +889,22 @@ class CoinCellAssemblyWorkstation(WorkstationBase): self.success = True return self.success + def qiming_coin_cell_code(self, fujipian_panshu:int, fujipian_juzhendianwei:int=0, gemopanshu:int=0, gemo_juzhendianwei:int=0, lvbodian:bool=True, battery_pressure_mode:bool=True, battery_pressure:int=4000, battery_clean_ignore:bool=False) -> bool: + self.success = False + self.client.use_node('REG_MSG_NE_PLATE_NUM').write(fujipian_panshu) + self.client.use_node('REG_MSG_NE_PLATE_MATRIX').write(fujipian_juzhendianwei) + self.client.use_node('REG_MSG_SEPARATOR_PLATE_NUM').write(gemopanshu) + self.client.use_node('REG_MSG_SEPARATOR_PLATE_MATRIX').write(gemo_juzhendianwei) + self.client.use_node('COIL_ALUMINUM_FOIL').write(lvbodian) + self.client.use_node('REG_MSG_PRESS_MODE').write(battery_pressure_mode) + # self.client.use_node('REG_MSG_ASSEMBLY_PRESSURE').write(battery_pressure) + self.client.use_node('REG_MSG_BATTERY_CLEAN_IGNORE').write(battery_clean_ignore) + self.success = True + + return self.success - - def func_allpack_cmd(self, elec_num, elec_use_num, elec_vol:int=50, assembly_type:int=7, assembly_pressure:int=4200, file_path: str="D:\\coin_cell_data") -> bool: - elec_num, elec_use_num, elec_vol, assembly_type, assembly_pressure = int(elec_num), int(elec_use_num), int(elec_vol), int(assembly_type), int(assembly_pressure) + def func_allpack_cmd(self, elec_num, elec_use_num, elec_vol:int=50, assembly_type:int=7, file_path: str="D:\\coin_cell_data") -> bool: + elec_num, elec_use_num, elec_vol, assembly_type = int(elec_num), int(elec_use_num), int(elec_vol), int(assembly_type) summary_csv_file = os.path.join(file_path, "duandian.csv") # 如果断点文件存在,先读取之前的进度 if os.path.exists(summary_csv_file): @@ -945,7 +954,7 @@ class CoinCellAssemblyWorkstation(WorkstationBase): print(f"开始第{last_i+i+1}瓶电解液的组装") #第一个循环从上次断点继续,后续循环从0开始 j_start = last_j if i == last_i else 0 - self.func_pack_send_msg_cmd(elec_use_num-j_start, elec_vol, assembly_type, assembly_pressure) + self.func_pack_send_msg_cmd(elec_use_num-j_start, elec_vol, assembly_type) for j in range(j_start, elec_use_num): print(f"开始第{last_i+i+1}瓶电解液的第{j+j_start+1}个电池组装") @@ -1217,8 +1226,10 @@ class CoinCellAssemblyWorkstation(WorkstationBase): ''' + if __name__ == "__main__": # 简单测试 workstation = CoinCellAssemblyWorkstation() + workstation.qiming_coin_cell_code(fujipian_panshu=1, fujipian_juzhendianwei=2, gemopanshu=3, gemo_juzhendianwei=4, lvbodian=False, battery_pressure_mode=False, battery_pressure=4200, battery_clean_ignore=False) print(f"工作站创建成功: {workstation.deck.name}") print(f"料盘数量: {len(workstation.deck.children)}") diff --git a/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly_a.csv b/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly_a.csv index bb66a7a7..98f90383 100644 --- a/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly_a.csv +++ b/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly_a.csv @@ -43,21 +43,22 @@ REG_DATA_ELECTROLYTE_USE_NUM,INT16,,,,hold_register,10000, UNILAB_SEND_FINISHED_CMD,BOOL,,,,coil,8730, UNILAB_RECE_FINISHED_CMD,BOOL,,,,coil,8530, REG_DATA_ASSEMBLY_TYPE,INT16,,,,hold_register,10018,ASSEMBLY_TYPE7or8 -COIL_ALUMINUM_FOIL,BOOL,,,,coil,8340, +COIL_ALUMINUM_FOIL,BOOL,,使用铝箔垫,,coil,8340, REG_MSG_NE_PLATE_MATRIX,INT16,,负极片矩阵点位,,hold_register,440, REG_MSG_SEPARATOR_PLATE_MATRIX,INT16,,隔膜矩阵点位,,hold_register,450, REG_MSG_TIP_BOX_MATRIX,INT16,,移液枪头矩阵点位,,hold_register,480, REG_MSG_NE_PLATE_NUM,INT16,,负极片盘数,,hold_register,443, REG_MSG_SEPARATOR_PLATE_NUM,INT16,,隔膜盘数,,hold_register,453, +REG_MSG_PRESS_MODE,BOOL,,压制模式(false:压力检测模式,True:距离模式),,coil,8360,电池压制模式 ,,,,,,, ,BOOL,,视觉对位(false:使用,true:忽略),,coil,8300,视觉对位 ,BOOL,,复检(false:使用,true:忽略),,coil,8310,视觉复检 ,BOOL,,手套箱_左仓(false:使用,true:忽略),,coil,8320,手套箱左仓 ,BOOL,,手套箱_右仓(false:使用,true:忽略),,coil,8420,手套箱右仓 ,BOOL,,真空检知(false:使用,true:忽略),,coil,8350,真空检知 -,BOOL,,压制模式(false:压力检测模式,True:距离模式),,coil,8360,电池压制模式 ,BOOL,,电解液添加模式(false:单次滴液,true:二次滴液),,coil,8370,滴液模式 ,BOOL,,正极片称重(false:使用,true:忽略),,coil,8380,正极片称重 ,BOOL,,正负极片组装方式(false:正装,true:倒装),,coil,8390,正负极反装 ,BOOL,,压制清洁(false:使用,true:忽略),,coil,8400,压制清洁 ,BOOL,,物料盘摆盘方式(false:水平摆盘,true:堆叠摆盘),,coil,8410,负极片摆盘方式 +REG_MSG_BATTERY_CLEAN_IGNORE,BOOL,,忽略电池清洁(false:使用,true:忽略),,coil,8460, \ No newline at end of file diff --git a/unilabos/devices/workstation/coin_cell_assembly/new_cellconfig3c.json b/unilabos/devices/workstation/coin_cell_assembly/new_cellconfig3c.json index c96e6b2b..36190858 100644 --- a/unilabos/devices/workstation/coin_cell_assembly/new_cellconfig3c.json +++ b/unilabos/devices/workstation/coin_cell_assembly/new_cellconfig3c.json @@ -22,7 +22,7 @@ ], "parent": null, "type": "device", - "class": "bettery_station_registry", + "class": "coincellassemblyworkstation_device", "position": { "x": 600, "y": 400, diff --git a/unilabos/registry/devices/bioyond_cell.yaml b/unilabos/registry/devices/bioyond_cell.yaml index c50a1a80..a54e7021 100644 --- a/unilabos/registry/devices/bioyond_cell.yaml +++ b/unilabos/registry/devices/bioyond_cell.yaml @@ -137,7 +137,7 @@ bioyond_cell: WH4_x5_y1_z1_5_quantity: 0.0 WH4_x5_y2_z1_10_materialName: '' WH4_x5_y2_z1_10_quantity: 0.0 - xlsx_path: unilabos/devices/workstation/bioyond_cell/样品导入模板.xlsx + xlsx_path: unilabos\devices\workstation\bioyond_studio\bioyond_cell\样品导入模板.xlsx handles: {} placeholder_keys: {} result: {} @@ -463,7 +463,7 @@ bioyond_cell: default: 0.0 type: number xlsx_path: - default: unilabos/devices/workstation/bioyond_cell/样品导入模板.xlsx + default: unilabos\devices\workstation\bioyond_studio\bioyond_cell\样品导入模板.xlsx type: string required: [] type: object @@ -498,6 +498,63 @@ bioyond_cell: title: auto_feeding4to3_from_xlsx参数 type: object type: UniLabJsonCommand + auto-create_and_inbound_materials: + feedback: {} + goal: {} + goal_default: + material_names: null + type_id: 3a190ca0-b2f6-9aeb-8067-547e72c11469 + warehouse_name: 粉末加样头堆栈 + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + material_names: + type: string + type_id: + default: 3a190ca0-b2f6-9aeb-8067-547e72c11469 + type: string + warehouse_name: + default: 粉末加样头堆栈 + type: string + required: [] + type: object + result: {} + required: + - goal + title: create_and_inbound_materials参数 + type: object + type: UniLabJsonCommand + auto-create_materials: + feedback: {} + goal: {} + goal_default: + mappings: null + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + mappings: + type: object + required: + - mappings + type: object + result: {} + required: + - goal + title: create_materials参数 + type: object + type: UniLabJsonCommand auto-create_orders: feedback: {} goal: {} @@ -576,6 +633,84 @@ bioyond_cell: title: order_list_v2参数 type: object type: UniLabJsonCommand + auto-process_order_finish_report: + feedback: {} + goal: {} + goal_default: + report_request: null + used_materials: null + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + report_request: + type: string + used_materials: + type: string + required: + - report_request + type: object + result: {} + required: + - goal + title: process_order_finish_report参数 + type: object + type: UniLabJsonCommand + auto-process_sample_finish_report: + feedback: {} + goal: {} + goal_default: + report_request: null + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + report_request: + type: string + required: + - report_request + type: object + result: {} + required: + - goal + title: process_sample_finish_report参数 + type: object + type: UniLabJsonCommand + auto-process_step_finish_report: + feedback: {} + goal: {} + goal_default: + report_request: null + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + report_request: + type: string + required: + - report_request + type: object + result: {} + required: + - goal + title: process_step_finish_report参数 + type: object + type: UniLabJsonCommand auto-report_material_change: feedback: {} goal: {} @@ -622,6 +757,27 @@ bioyond_cell: title: scheduler_continue参数 type: object type: UniLabJsonCommand + auto-scheduler_reset: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: scheduler_reset参数 + type: object + type: UniLabJsonCommand auto-scheduler_start: feedback: {} goal: {} @@ -778,6 +934,62 @@ bioyond_cell: title: transfer_3_to_2_to_1参数 type: object type: UniLabJsonCommand + auto-update_push_ip: + feedback: {} + goal: {} + goal_default: + ip: null + port: null + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + ip: + type: string + port: + type: string + required: [] + type: object + result: {} + required: + - goal + title: update_push_ip参数 + type: object + type: UniLabJsonCommand + auto-wait_for_order_finish: + feedback: {} + goal: {} + goal_default: + order_code: null + timeout: 1800 + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + order_code: + type: string + timeout: + default: 1800 + type: integer + required: + - order_code + type: object + result: {} + required: + - goal + title: wait_for_order_finish参数 + type: object + type: UniLabJsonCommand auto-wait_for_transfer_task: feedback: {} goal: {} diff --git a/unilabos/registry/devices/coin_cell_workstation.yaml b/unilabos/registry/devices/coin_cell_workstation.yaml new file mode 100644 index 00000000..7e541eb8 --- /dev/null +++ b/unilabos/registry/devices/coin_cell_workstation.yaml @@ -0,0 +1,576 @@ +coincellassemblyworkstation_device: + category: + - coin_cell_workstation + class: + action_value_mappings: + auto-change_hole_sheet_to_2: + feedback: {} + goal: {} + goal_default: + hole: null + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + hole: + type: object + required: + - hole + type: object + result: {} + required: + - goal + title: change_hole_sheet_to_2参数 + type: object + type: UniLabJsonCommandAsync + auto-fill_plate: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: fill_plate参数 + type: object + type: UniLabJsonCommandAsync + auto-fun_wuliao_test: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: fun_wuliao_test参数 + type: object + type: UniLabJsonCommand + auto-func_allpack_cmd: + feedback: {} + goal: {} + goal_default: + assembly_type: 7 + elec_num: null + elec_use_num: null + elec_vol: 50 + file_path: D:\coin_cell_data + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + assembly_type: + default: 7 + type: integer + elec_num: + type: string + elec_use_num: + type: string + elec_vol: + default: 50 + type: integer + file_path: + default: D:\coin_cell_data + type: string + required: + - elec_num + - elec_use_num + type: object + result: {} + required: + - goal + title: func_allpack_cmd参数 + type: object + type: UniLabJsonCommand + auto-func_get_csv_export_status: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: func_get_csv_export_status参数 + type: object + type: UniLabJsonCommand + auto-func_pack_device_auto: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: func_pack_device_auto参数 + type: object + type: UniLabJsonCommand + auto-func_pack_device_init: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: func_pack_device_init参数 + type: object + type: UniLabJsonCommand + auto-func_pack_device_start: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: func_pack_device_start参数 + type: object + type: UniLabJsonCommand + auto-func_pack_device_stop: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: func_pack_device_stop参数 + type: object + type: UniLabJsonCommand + auto-func_pack_get_msg_cmd: + feedback: {} + goal: {} + goal_default: + file_path: D:\coin_cell_data + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + file_path: + default: D:\coin_cell_data + type: string + required: [] + type: object + result: {} + required: + - goal + title: func_pack_get_msg_cmd参数 + type: object + type: UniLabJsonCommand + auto-func_pack_send_bottle_num: + feedback: {} + goal: {} + goal_default: + bottle_num: null + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + bottle_num: + type: string + required: + - bottle_num + type: object + result: {} + required: + - goal + title: func_pack_send_bottle_num参数 + type: object + type: UniLabJsonCommand + auto-func_pack_send_finished_cmd: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: func_pack_send_finished_cmd参数 + type: object + type: UniLabJsonCommand + auto-func_pack_send_msg_cmd: + feedback: {} + goal: {} + goal_default: + assembly_type: null + elec_use_num: null + elec_vol: null + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + assembly_type: + type: string + elec_use_num: + type: string + elec_vol: + type: string + required: + - elec_use_num + - elec_vol + - assembly_type + type: object + result: {} + required: + - goal + title: func_pack_send_msg_cmd参数 + type: object + type: UniLabJsonCommand + auto-func_read_data_and_output: + feedback: {} + goal: {} + goal_default: + file_path: D:\coin_cell_data + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + file_path: + default: D:\coin_cell_data + type: string + required: [] + type: object + result: {} + required: + - goal + title: func_read_data_and_output参数 + type: object + type: UniLabJsonCommand + auto-func_stop_read_data: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: func_stop_read_data参数 + type: object + type: UniLabJsonCommand + auto-modify_deck_name: + feedback: {} + goal: {} + goal_default: + resource_name: null + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + resource_name: + type: string + required: + - resource_name + type: object + result: {} + required: + - goal + title: modify_deck_name参数 + type: object + type: UniLabJsonCommand + auto-post_init: + feedback: {} + goal: {} + goal_default: + ros_node: null + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + ros_node: + type: object + required: + - ros_node + type: object + result: {} + required: + - goal + title: post_init参数 + type: object + type: UniLabJsonCommand + auto-qiming_coin_cell_code: + feedback: {} + goal: {} + goal_default: + battery_clean_ignore: false + battery_pressure: 4000 + battery_pressure_mode: true + fujipian_juzhendianwei: 0 + fujipian_panshu: null + gemo_juzhendianwei: 0 + gemopanshu: 0 + lvbodian: true + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + battery_clean_ignore: + default: false + type: boolean + battery_pressure: + default: 4000 + type: integer + battery_pressure_mode: + default: true + type: boolean + fujipian_juzhendianwei: + default: 0 + type: integer + fujipian_panshu: + type: integer + gemo_juzhendianwei: + default: 0 + type: integer + gemopanshu: + default: 0 + type: integer + lvbodian: + default: true + type: boolean + required: + - fujipian_panshu + type: object + result: {} + required: + - goal + title: qiming_coin_cell_code参数 + type: object + type: UniLabJsonCommand + module: unilabos.devices.workstation.coin_cell_assembly.coin_cell_assembly:CoinCellAssemblyWorkstation + status_types: + data_assembly_coin_cell_num: int + data_assembly_pressure: int + data_assembly_time: float + data_axis_x_pos: float + data_axis_y_pos: float + data_axis_z_pos: float + data_coin_cell_code: str + data_coin_num: int + data_electrolyte_code: str + data_electrolyte_volume: int + data_glove_box_o2_content: float + data_glove_box_pressure: float + data_glove_box_water_content: float + data_open_circuit_voltage: float + data_pole_weight: float + request_rec_msg_status: bool + request_send_msg_status: bool + sys_mode: str + sys_status: str + type: python + config_info: [] + description: '' + handles: [] + icon: '' + init_param_schema: + config: + properties: + address: + default: 172.21.32.111 + type: string + debug_mode: + default: false + type: boolean + deck: + type: object + port: + default: '502' + type: string + required: [] + type: object + data: + properties: + data_assembly_coin_cell_num: + type: integer + data_assembly_pressure: + type: integer + data_assembly_time: + type: number + data_axis_x_pos: + type: number + data_axis_y_pos: + type: number + data_axis_z_pos: + type: number + data_coin_cell_code: + type: string + data_coin_num: + type: integer + data_electrolyte_code: + type: string + data_electrolyte_volume: + type: integer + data_glove_box_o2_content: + type: number + data_glove_box_pressure: + type: number + data_glove_box_water_content: + type: number + data_open_circuit_voltage: + type: number + data_pole_weight: + type: number + request_rec_msg_status: + type: boolean + request_send_msg_status: + type: boolean + sys_mode: + type: string + sys_status: + type: string + required: + - sys_status + - sys_mode + - request_rec_msg_status + - request_send_msg_status + - data_assembly_coin_cell_num + - data_assembly_time + - data_open_circuit_voltage + - data_axis_x_pos + - data_axis_y_pos + - data_axis_z_pos + - data_pole_weight + - data_assembly_pressure + - data_electrolyte_volume + - data_coin_num + - data_coin_cell_code + - data_electrolyte_code + - data_glove_box_pressure + - data_glove_box_o2_content + - data_glove_box_water_content + type: object + registry_type: device + version: 1.0.0 diff --git a/unilabos/registry/devices/reaction_station_bioyond.yaml b/unilabos/registry/devices/reaction_station_bioyond.yaml index f1a16ec2..0967ef42 100644 --- a/unilabos/registry/devices/reaction_station_bioyond.yaml +++ b/unilabos/registry/devices/reaction_station_bioyond.yaml @@ -1,527 +1 @@ -reaction_station.bioyond: - category: - - work_station - - reaction_station_bioyond - class: - action_value_mappings: - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-process_web_workflows: - feedback: {} - goal: {} - goal_default: - json_str: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - json_str: - type: string - volume: - description: 分液公式(μL) - type: string - required: - - volume - - assign_material_name - - time - - torque_variation - - titration_type - - temperature - type: object - result: {} - required: - - goal - title: drip_back参数 - type: object - type: UniLabJsonCommand - drip_back: - feedback: {} - goal: - assign_material_name: assign_material_name - temperature: temperature - time: time - titration_type: titration_type - torque_variation: torque_variation - volume: volume - goal_default: - assign_material_name: '' - temperature: '' - time: '' - titration_type: '' - torque_variation: '' - volume: '' - handles: {} - result: {} - schema: - description: 滴回去 - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称(不能为空) - type: string - temperature: - description: 温度设定(°C) - type: string - time: - description: 观察时间(分钟) - type: string - required: - - file_path - type: object - result: {} - required: - - goal - title: load_bioyond_data_from_file参数 - type: object - type: UniLabJsonCommand - liquid_feeding_beaker: - feedback: {} - goal: - assign_material_name: assign_material_name - temperature: temperature - time: time - titration_type: titration_type - torque_variation: torque_variation - volume: volume - goal_default: - assign_material_name: '' - temperature: '' - time: '' - titration_type: '' - torque_variation: '' - volume: '' - handles: {} - result: {} - schema: - description: 液体进料烧杯 - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称 - type: string - temperature: - description: 温度设定(°C) - type: string - time: - description: 观察时间(分钟) - type: string - titration_type: - description: 是否滴定(1=否, 2=是) - type: string - torque_variation: - description: 是否观察 (1=否, 2=是) - type: string - volume: - description: 分液公式(μL) - type: string - required: - - volume - - assign_material_name - - time - - torque_variation - - titration_type - - temperature - type: object - result: {} - required: - - goal - title: liquid_feeding_beaker参数 - type: object - type: UniLabJsonCommand - liquid_feeding_solvents: - feedback: {} - goal: - assign_material_name: assign_material_name - solvents: solvents - temperature: temperature - time: time - titration_type: titration_type - torque_variation: torque_variation - volume: volume - goal_default: - assign_material_name: '' - solvents: '' - temperature: '25.00' - time: '360' - titration_type: '1' - torque_variation: '2' - volume: '' - handles: - input: - - data_key: solvents - data_source: handle - data_type: object - handler_key: solvents - io_type: source - label: Solvents Data From Calculation Node - result: {} - schema: - description: 液体投料-溶剂。可以直接提供volume(μL),或通过solvents对象自动从additional_solvent(mL)计算volume。 - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称 - type: string - solvents: - description: '溶剂信息对象(可选),包含: additional_solvent(溶剂体积mL), total_liquid_volume(总液体体积mL)。如果提供,将自动计算volume' - type: string - temperature: - default: '25.00' - description: 温度设定(°C),默认25.00 - type: string - time: - default: '360' - description: 观察时间(分钟),默认360 - type: string - titration_type: - default: '1' - description: 是否滴定(1=否, 2=是),默认1 - type: string - torque_variation: - default: '2' - description: 是否观察 (1=否, 2=是),默认2 - type: string - volume: - description: 分液量(μL)。可直接提供,或通过solvents参数自动计算 - type: string - required: - - assign_material_name - type: object - result: {} - required: - - goal - title: liquid_feeding_solvents参数 - type: object - type: UniLabJsonCommand - liquid_feeding_titration: - feedback: {} - goal: - assign_material_name: assign_material_name - temperature: temperature - time: time - titration_type: titration_type - torque_variation: torque_variation - volume_formula: volume_formula - goal_default: - assign_material_name: '' - temperature: '' - time: '' - titration_type: '' - torque_variation: '' - volume_formula: '' - handles: {} - result: {} - schema: - description: 液体进料(滴定) - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称 - type: string - temperature: - description: 温度设定(°C) - type: string - time: - description: 观察时间(分钟) - type: string - titration_type: - description: 是否滴定(1=否, 2=是) - type: string - torque_variation: - description: 是否观察 (1=否, 2=是) - type: string - volume_formula: - description: 分液公式(μL) - type: string - required: - - volume_formula - - assign_material_name - - time - - torque_variation - - titration_type - - temperature - type: object - result: {} - required: - - goal - title: liquid_feeding_titration参数 - type: object - type: UniLabJsonCommand - liquid_feeding_vials_non_titration: - feedback: {} - goal: - assign_material_name: assign_material_name - temperature: temperature - time: time - titration_type: titration_type - torque_variation: torque_variation - volume_formula: volume_formula - goal_default: - assign_material_name: '' - temperature: '' - time: '' - titration_type: '' - torque_variation: '' - volume_formula: '' - handles: {} - result: {} - schema: - description: 液体进料小瓶(非滴定) - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称 - type: string - temperature: - description: 温度设定(°C) - type: string - time: - description: 观察时间(分钟) - type: string - titration_type: - description: 是否滴定(1=否, 2=是) - type: string - torque_variation: - description: 是否观察 (1=否, 2=是) - type: string - volume_formula: - description: 分液公式(μL) - type: string - required: - - volume_formula - - assign_material_name - - time - - torque_variation - - titration_type - - temperature - type: object - result: {} - required: - - goal - title: liquid_feeding_vials_non_titration参数 - type: object - type: UniLabJsonCommand - process_and_execute_workflow: - feedback: {} - goal: - task_name: task_name - workflow_name: workflow_name - goal_default: - task_name: '' - workflow_name: '' - handles: {} - result: {} - schema: - description: 处理并执行工作流 - properties: - feedback: {} - goal: - properties: - task_name: - description: 任务名称 - type: string - workflow_name: - description: 工作流名称 - type: string - required: - - workflow_name - - task_name - type: object - result: {} - required: - - goal - title: process_and_execute_workflow参数 - type: object - type: UniLabJsonCommand - reactor_taken_in: - feedback: {} - goal: - assign_material_name: assign_material_name - cutoff: cutoff - temperature: temperature - goal_default: - assign_material_name: '' - cutoff: '' - temperature: '' - handles: {} - result: {} - schema: - description: 反应器放入 - 将反应器放入工作站,配置物料名称、粘度上限和温度参数 - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称 - type: string - cutoff: - description: 粘度上限 - type: string - temperature: - description: 温度设定(°C) - type: string - required: - - cutoff - - temperature - - assign_material_name - type: object - result: {} - required: - - goal - title: reactor_taken_in参数 - type: object - type: UniLabJsonCommand - reactor_taken_out: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: 反应器取出 - 从工作站中取出反应器,无需参数的简单操作 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: - properties: - code: - description: 操作结果代码(1表示成功,0表示失败) - type: integer - return_info: - description: 操作结果详细信息 - type: string - type: object - required: - - goal - title: reactor_taken_out参数 - type: object - type: UniLabJsonCommand - solid_feeding_vials: - feedback: {} - goal: - assign_material_name: assign_material_name - material_id: material_id - temperature: temperature - time: time - torque_variation: torque_variation - goal_default: - assign_material_name: '' - material_id: '' - temperature: '' - time: '' - torque_variation: '' - handles: {} - result: {} - schema: - description: 固体进料小瓶 - 通过小瓶向反应器中添加固体物料,支持多种粉末类型(盐、面粉、BTDA) - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称(用于获取试剂瓶位ID) - type: string - material_id: - description: 粉末类型ID,1=盐(21分钟),2=面粉(27分钟),3=BTDA(38分钟) - type: string - temperature: - description: 温度设定(°C) - type: string - time: - description: 观察时间(分钟) - type: string - torque_variation: - description: 是否观察 (1=否, 2=是) - type: string - required: - - assign_material_name - - material_id - - time - - torque_variation - - temperature - type: object - result: {} - required: - - goal - title: solid_feeding_vials参数 - type: object - type: UniLabJsonCommand - module: unilabos.devices.workstation.bioyond_studio.reaction_station:BioyondReactionStation - protocol_type: [] - status_types: - all_workflows: dict - bioyond_status: dict - station_info: dict - workstation_status: dict - type: python - config_info: [] - description: Bioyond反应站 - handles: [] - icon: reaction_station.webp - init_param_schema: - config: - properties: - config: - type: object - deck: - type: string - required: [] - type: object - data: - properties: - all_workflows: - type: object - bioyond_status: - type: object - station_info: - type: object - workstation_status: - type: object - required: - - bioyond_status - - all_workflows - - station_info - - workstation_status - type: object - version: 1.0.0 +{} diff --git a/unilabos/registry/devices/work_station.yaml b/unilabos/registry/devices/work_station.yaml deleted file mode 100644 index ba076917..00000000 --- a/unilabos/registry/devices/work_station.yaml +++ /dev/null @@ -1,6698 +0,0 @@ -bettery_station_registry: - category: - - work_station - class: - action_value_mappings: - auto-change_hole_sheet_to_2: - feedback: {} - goal: {} - goal_default: - hole: null - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - hole: - type: object - required: - - hole - type: object - result: {} - required: - - goal - title: change_hole_sheet_to_2参数 - type: object - type: UniLabJsonCommandAsync - auto-fill_plate: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: fill_plate参数 - type: object - type: UniLabJsonCommandAsync - auto-fun_wuliao_test: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: fun_wuliao_test参数 - type: object - type: UniLabJsonCommand - auto-func_allpack_cmd: - feedback: {} - goal: {} - goal_default: - assembly_pressure: 4200 - assembly_type: 7 - elec_num: null - elec_use_num: null - elec_vol: 50 - file_path: D:\coin_cell_data - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - assembly_pressure: - default: 4200 - type: integer - assembly_type: - default: 7 - type: integer - elec_num: - type: string - elec_use_num: - type: string - elec_vol: - default: 50 - type: integer - file_path: - default: D:\coin_cell_data - type: string - required: - - elec_num - - elec_use_num - type: object - result: {} - required: - - goal - title: func_allpack_cmd参数 - type: object - type: UniLabJsonCommand - auto-func_get_csv_export_status: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: func_get_csv_export_status参数 - type: object - type: UniLabJsonCommand - auto-func_pack_device_auto: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: func_pack_device_auto参数 - type: object - type: UniLabJsonCommand - auto-func_pack_device_init: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: func_pack_device_init参数 - type: object - type: UniLabJsonCommand - auto-func_pack_device_start: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: func_pack_device_start参数 - type: object - type: UniLabJsonCommand - auto-func_pack_device_stop: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: func_pack_device_stop参数 - type: object - type: UniLabJsonCommand - auto-func_pack_get_msg_cmd: - feedback: {} - goal: {} - goal_default: - file_path: D:\coin_cell_data - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - file_path: - default: D:\coin_cell_data - type: string - required: [] - type: object - result: {} - required: - - goal - title: func_pack_get_msg_cmd参数 - type: object - type: UniLabJsonCommand - auto-func_pack_send_bottle_num: - feedback: {} - goal: {} - goal_default: - bottle_num: null - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - bottle_num: - type: string - required: - - bottle_num - type: object - result: {} - required: - - goal - title: func_pack_send_bottle_num参数 - type: object - type: UniLabJsonCommand - auto-func_pack_send_finished_cmd: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: func_pack_send_finished_cmd参数 - type: object - type: UniLabJsonCommand - auto-func_pack_send_msg_cmd: - feedback: {} - goal: {} - goal_default: - assembly_pressure: null - assembly_type: null - elec_use_num: null - elec_vol: null - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - assembly_pressure: - type: string - assembly_type: - type: string - elec_use_num: - type: string - elec_vol: - type: string - required: - - elec_use_num - - elec_vol - - assembly_type - - assembly_pressure - type: object - result: {} - required: - - goal - title: func_pack_send_msg_cmd参数 - type: object - type: UniLabJsonCommand - auto-func_read_data_and_output: - feedback: {} - goal: {} - goal_default: - file_path: D:\coin_cell_data - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - file_path: - default: D:\coin_cell_data - type: string - required: [] - type: object - result: {} - required: - - goal - title: func_read_data_and_output参数 - type: object - type: UniLabJsonCommand - auto-func_stop_read_data: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: func_stop_read_data参数 - type: object - type: UniLabJsonCommand - auto-modify_deck_name: - feedback: {} - goal: {} - goal_default: - resource_name: null - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - resource_name: - type: string - required: - - resource_name - type: object - result: {} - required: - - goal - title: modify_deck_name参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - module: unilabos.devices.workstation.coin_cell_assembly.coin_cell_assembly:CoinCellAssemblyWorkstation - status_types: - data_assembly_coin_cell_num: int - data_assembly_pressure: int - data_assembly_time: float - data_axis_x_pos: float - data_axis_y_pos: float - data_axis_z_pos: float - data_coin_cell_code: str - data_coin_num: int - data_electrolyte_code: str - data_electrolyte_volume: int - data_glove_box_o2_content: float - data_glove_box_pressure: float - data_glove_box_water_content: float - data_open_circuit_voltage: float - data_pole_weight: float - request_rec_msg_status: bool - request_send_msg_status: bool - sys_mode: str - sys_status: str - type: python - config_info: [] - description: '' - handles: [] - icon: '' - init_param_schema: - config: - properties: - address: - default: 192.168.1.20 - type: string - debug_mode: - default: true - type: boolean - port: - default: '502' - type: string - station_resource: - type: object - required: - - station_resource - type: object - data: - properties: - data_assembly_coin_cell_num: - type: integer - data_assembly_pressure: - type: integer - data_assembly_time: - type: number - data_axis_x_pos: - type: number - data_axis_y_pos: - type: number - data_axis_z_pos: - type: number - data_coin_cell_code: - type: string - data_coin_num: - type: integer - data_electrolyte_code: - type: string - data_electrolyte_volume: - type: integer - data_glove_box_o2_content: - type: number - data_glove_box_pressure: - type: number - data_glove_box_water_content: - type: number - data_open_circuit_voltage: - type: number - data_pole_weight: - type: number - request_rec_msg_status: - type: boolean - request_send_msg_status: - type: boolean - sys_mode: - type: string - sys_status: - type: string - required: - - sys_status - - sys_mode - - request_rec_msg_status - - request_send_msg_status - - data_assembly_coin_cell_num - - data_assembly_time - - data_open_circuit_voltage - - data_axis_x_pos - - data_axis_y_pos - - data_axis_z_pos - - data_pole_weight - - data_assembly_pressure - - data_electrolyte_volume - - data_coin_num - - data_coin_cell_code - - data_electrolyte_code - - data_glove_box_pressure - - data_glove_box_o2_content - - data_glove_box_water_content - type: object - version: 1.0.0 -workstation: - category: - - work_station - class: - action_value_mappings: - AGVTransferProtocol: - feedback: {} - goal: - from_repo: from_repo - from_repo_position: from_repo_position - to_repo: to_repo - to_repo_position: to_repo_position - goal_default: - from_repo: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - from_repo_position: '' - to_repo: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - to_repo_position: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: AGVTransfer_Feedback - type: object - goal: - properties: - from_repo: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_repo - type: object - from_repo_position: - type: string - to_repo: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_repo - type: object - to_repo_position: - type: string - required: - - from_repo - - from_repo_position - - to_repo - - to_repo_position - title: AGVTransfer_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: AGVTransfer_Result - type: object - required: - - goal - title: AGVTransfer - type: object - type: AGVTransfer - AddProtocol: - feedback: {} - goal: - amount: amount - equiv: equiv - event: event - mass: mass - mol: mol - purpose: purpose - rate_spec: rate_spec - ratio: ratio - reagent: reagent - stir: stir - stir_speed: stir_speed - time: time - vessel: vessel - viscous: viscous - volume: volume - goal_default: - amount: '' - equiv: '' - event: '' - mass: '' - mol: '' - purpose: '' - rate_spec: '' - ratio: '' - reagent: '' - stir: false - stir_speed: 0.0 - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - viscous: false - volume: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: reagent - data_source: handle - data_type: resource - handler_key: reagent - label: Reagent - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - progress: - type: number - required: - - progress - - current_status - title: Add_Feedback - type: object - goal: - properties: - amount: - type: string - equiv: - type: string - event: - type: string - mass: - type: string - mol: - type: string - purpose: - type: string - rate_spec: - type: string - ratio: - type: string - reagent: - type: string - stir: - type: boolean - stir_speed: - type: number - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - viscous: - type: boolean - volume: - type: string - required: - - vessel - - reagent - - volume - - mass - - amount - - time - - stir - - stir_speed - - viscous - - purpose - - event - - mol - - rate_spec - - equiv - - ratio - title: Add_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Add_Result - type: object - required: - - goal - title: Add - type: object - type: Add - AdjustPHProtocol: - feedback: {} - goal: - ph_value: ph_value - reagent: reagent - settling_time: settling_time - stir: stir - stir_speed: stir_speed - stir_time: stir_time - vessel: vessel - volume: volume - goal_default: - ph_value: 0.0 - reagent: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: reagent - data_source: handle - data_type: resource - handler_key: reagent - label: Reagent - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: AdjustPH_Feedback - type: object - goal: - properties: - ph_value: - type: number - reagent: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - ph_value - - reagent - title: AdjustPH_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: AdjustPH_Result - type: object - required: - - goal - title: AdjustPH - type: object - type: AdjustPH - CentrifugeProtocol: - feedback: {} - goal: - speed: speed - temp: temp - time: time - vessel: vessel - goal_default: - speed: 0.0 - temp: 0.0 - time: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_speed: - type: number - current_status: - type: string - current_temp: - type: number - progress: - type: number - required: - - progress - - current_speed - - current_temp - - current_status - title: Centrifuge_Feedback - type: object - goal: - properties: - speed: - type: number - temp: - type: number - time: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - speed - - time - - temp - title: Centrifuge_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Centrifuge_Result - type: object - required: - - goal - title: Centrifuge - type: object - type: Centrifuge - CleanProtocol: - feedback: {} - goal: - repeats: repeats - solvent: solvent - temp: temp - vessel: vessel - volume: volume - goal_default: - repeats: 0 - solvent: '' - temp: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: 0.0 - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_device: - type: string - status: - type: string - time_remaining: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_remaining - type: object - time_spent: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_spent - type: object - required: - - status - - current_device - - time_spent - - time_remaining - title: Clean_Feedback - type: object - goal: - properties: - repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - solvent: - type: string - temp: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: number - required: - - vessel - - solvent - - volume - - temp - - repeats - title: Clean_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: Clean_Result - type: object - required: - - goal - title: Clean - type: object - type: Clean - CleanVesselProtocol: - feedback: {} - goal: - repeats: repeats - solvent: solvent - temp: temp - vessel: vessel - volume: volume - goal_default: - repeats: 0 - solvent: '' - temp: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: 0.0 - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: CleanVessel_Feedback - type: object - goal: - properties: - repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - solvent: - type: string - temp: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: number - required: - - vessel - - solvent - - volume - - temp - - repeats - title: CleanVessel_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: CleanVessel_Result - type: object - required: - - goal - title: CleanVessel - type: object - type: CleanVessel - DissolveProtocol: - feedback: {} - goal: - amount: amount - event: event - mass: mass - mol: mol - reagent: reagent - solvent: solvent - stir_speed: stir_speed - temp: temp - time: time - vessel: vessel - volume: volume - goal_default: - amount: '' - event: '' - mass: '' - mol: '' - reagent: '' - solvent: '' - stir_speed: 0.0 - temp: '' - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - - data_key: reagent - data_source: handle - data_type: resource - handler_key: reagent - label: Reagent - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: Dissolve_Feedback - type: object - goal: - properties: - amount: - type: string - event: - type: string - mass: - type: string - mol: - type: string - reagent: - type: string - solvent: - type: string - stir_speed: - type: number - temp: - type: string - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: string - required: - - vessel - - solvent - - volume - - amount - - temp - - time - - stir_speed - - mass - - mol - - reagent - - event - title: Dissolve_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Dissolve_Result - type: object - required: - - goal - title: Dissolve - type: object - type: Dissolve - DryProtocol: - feedback: {} - goal: - compound: compound - vessel: vessel - goal_default: - compound: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: Dry_Feedback - type: object - goal: - properties: - compound: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - compound - - vessel - title: Dry_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Dry_Result - type: object - required: - - goal - title: Dry - type: object - type: Dry - EvacuateAndRefillProtocol: - feedback: {} - goal: - gas: gas - vessel: vessel - goal_default: - gas: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_device: - type: string - status: - type: string - time_remaining: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_remaining - type: object - time_spent: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_spent - type: object - required: - - status - - current_device - - time_spent - - time_remaining - title: EvacuateAndRefill_Feedback - type: object - goal: - properties: - gas: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - gas - title: EvacuateAndRefill_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: EvacuateAndRefill_Result - type: object - required: - - goal - title: EvacuateAndRefill - type: object - type: EvacuateAndRefill - EvaporateProtocol: - feedback: {} - goal: - pressure: pressure - solvent: solvent - stir_speed: stir_speed - temp: temp - time: time - vessel: vessel - goal_default: - pressure: 0.0 - solvent: '' - stir_speed: 0.0 - temp: 0.0 - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Evaporation Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Eluting Solvent - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: VesselOut - label: Evaporation Vessel - placeholder_keys: - vessel: unilabos_nodes - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_device: - type: string - status: - type: string - time_remaining: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_remaining - type: object - time_spent: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_spent - type: object - required: - - status - - current_device - - time_spent - - time_remaining - title: Evaporate_Feedback - type: object - goal: - properties: - pressure: - type: number - solvent: - type: string - stir_speed: - type: number - temp: - type: number - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - pressure - - temp - - time - - stir_speed - - solvent - title: Evaporate_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: Evaporate_Result - type: object - required: - - goal - title: Evaporate - type: object - type: Evaporate - FilterProtocol: - feedback: {} - goal: - continue_heatchill: continue_heatchill - filtrate_vessel: filtrate_vessel - stir: stir - stir_speed: stir_speed - temp: temp - vessel: vessel - volume: volume - goal_default: - continue_heatchill: false - filtrate_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - stir: false - stir_speed: 0.0 - temp: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: 0.0 - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: filtrate_vessel - data_source: handle - data_type: resource - handler_key: FiltrateVessel - label: Filtrate Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - - data_key: filtrate_vessel - data_source: executor - data_type: resource - handler_key: FiltrateOut - label: Filtrate Vessel - placeholder_keys: - filtrate_vessel: unilabos_resources - vessel: unilabos_nodes - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - current_temp: - type: number - filtered_volume: - type: number - progress: - type: number - required: - - progress - - current_temp - - filtered_volume - - current_status - title: Filter_Feedback - type: object - goal: - properties: - continue_heatchill: - type: boolean - filtrate_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: filtrate_vessel - type: object - stir: - type: boolean - stir_speed: - type: number - temp: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: number - required: - - vessel - - filtrate_vessel - - stir - - stir_speed - - temp - - continue_heatchill - - volume - title: Filter_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Filter_Result - type: object - required: - - goal - title: Filter - type: object - type: Filter - FilterThroughProtocol: - feedback: {} - goal: - eluting_repeats: eluting_repeats - eluting_solvent: eluting_solvent - eluting_volume: eluting_volume - filter_through: filter_through - from_vessel: from_vessel - residence_time: residence_time - to_vessel: to_vessel - goal_default: - eluting_repeats: 0 - eluting_solvent: '' - eluting_volume: 0.0 - filter_through: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - from_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - residence_time: 0.0 - to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVessel - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVessel - label: To Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Eluting Solvent - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVesselOut - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVesselOut - label: To Vessel - placeholder_keys: - from_vessel: unilabos_resources - to_vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: FilterThrough_Feedback - type: object - goal: - properties: - eluting_repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - eluting_solvent: - type: string - eluting_volume: - type: number - filter_through: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: filter_through - type: object - from_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_vessel - type: object - residence_time: - type: number - to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_vessel - type: object - required: - - from_vessel - - to_vessel - - filter_through - - eluting_solvent - - eluting_volume - - eluting_repeats - - residence_time - title: FilterThrough_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: FilterThrough_Result - type: object - required: - - goal - title: FilterThrough - type: object - type: FilterThrough - HeatChillProtocol: - feedback: {} - goal: - pressure: pressure - purpose: purpose - reflux_solvent: reflux_solvent - stir: stir - stir_speed: stir_speed - temp: temp - temp_spec: temp_spec - time: time - time_spec: time_spec - vessel: vessel - goal_default: - pressure: '' - purpose: '' - reflux_solvent: '' - stir: false - stir_speed: 0.0 - temp: 0.0 - temp_spec: '' - time: '' - time_spec: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: HeatChill_Feedback - type: object - goal: - properties: - pressure: - type: string - purpose: - type: string - reflux_solvent: - type: string - stir: - type: boolean - stir_speed: - type: number - temp: - type: number - temp_spec: - type: string - time: - type: string - time_spec: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - temp - - time - - temp_spec - - time_spec - - pressure - - reflux_solvent - - stir - - stir_speed - - purpose - title: HeatChill_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: HeatChill_Result - type: object - required: - - goal - title: HeatChill - type: object - type: HeatChill - HeatChillStartProtocol: - feedback: {} - goal: - purpose: purpose - temp: temp - vessel: vessel - goal_default: - purpose: '' - temp: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: HeatChillStart_Feedback - type: object - goal: - properties: - purpose: - type: string - temp: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - temp - - purpose - title: HeatChillStart_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: HeatChillStart_Result - type: object - required: - - goal - title: HeatChillStart - type: object - type: HeatChillStart - HeatChillStopProtocol: - feedback: {} - goal: - vessel: vessel - goal_default: - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: HeatChillStop_Feedback - type: object - goal: - properties: - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - title: HeatChillStop_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: HeatChillStop_Result - type: object - required: - - goal - title: HeatChillStop - type: object - type: HeatChillStop - HydrogenateProtocol: - feedback: {} - goal: - temp: temp - time: time - vessel: vessel - goal_default: - temp: '' - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: Hydrogenate_Feedback - type: object - goal: - properties: - temp: - type: string - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - temp - - time - - vessel - title: Hydrogenate_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Hydrogenate_Result - type: object - required: - - goal - title: Hydrogenate - type: object - type: Hydrogenate - PumpTransferProtocol: - feedback: {} - goal: - amount: amount - event: event - flowrate: flowrate - from_vessel: from_vessel - rate_spec: rate_spec - rinsing_repeats: rinsing_repeats - rinsing_solvent: rinsing_solvent - rinsing_volume: rinsing_volume - solid: solid - through: through - time: time - to_vessel: to_vessel - transfer_flowrate: transfer_flowrate - viscous: viscous - volume: volume - goal_default: - amount: '' - event: '' - flowrate: 0.0 - from_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - rate_spec: '' - rinsing_repeats: 0 - rinsing_solvent: '' - rinsing_volume: 0.0 - solid: false - through: '' - time: 0.0 - to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - transfer_flowrate: 0.0 - viscous: false - volume: 0.0 - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVessel - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVessel - label: To Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Rinsing Solvent - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVesselOut - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVesselOut - label: To Vessel - placeholder_keys: - from_vessel: unilabos_nodes - to_vessel: unilabos_nodes - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_device: - type: string - status: - type: string - time_remaining: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_remaining - type: object - time_spent: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_spent - type: object - required: - - status - - current_device - - time_spent - - time_remaining - title: PumpTransfer_Feedback - type: object - goal: - properties: - amount: - type: string - event: - type: string - flowrate: - type: number - from_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_vessel - type: object - rate_spec: - type: string - rinsing_repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - rinsing_solvent: - type: string - rinsing_volume: - type: number - solid: - type: boolean - through: - type: string - time: - type: number - to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_vessel - type: object - transfer_flowrate: - type: number - viscous: - type: boolean - volume: - type: number - required: - - from_vessel - - to_vessel - - volume - - amount - - time - - viscous - - rinsing_solvent - - rinsing_volume - - rinsing_repeats - - solid - - flowrate - - transfer_flowrate - - rate_spec - - event - - through - title: PumpTransfer_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: PumpTransfer_Result - type: object - required: - - goal - title: PumpTransfer - type: object - type: PumpTransfer - RecrystallizeProtocol: - feedback: {} - goal: - ratio: ratio - solvent1: solvent1 - solvent2: solvent2 - vessel: vessel - volume: volume - goal_default: - ratio: '' - solvent1: '' - solvent2: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: solvent1 - data_source: handle - data_type: resource - handler_key: solvent1 - label: Solvent 1 - - data_key: solvent2 - data_source: handle - data_type: resource - handler_key: solvent2 - label: Solvent 2 - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: Recrystallize_Feedback - type: object - goal: - properties: - ratio: - type: string - solvent1: - type: string - solvent2: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: string - required: - - ratio - - solvent1 - - solvent2 - - vessel - - volume - title: Recrystallize_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Recrystallize_Result - type: object - required: - - goal - title: Recrystallize - type: object - type: Recrystallize - ResetHandlingProtocol: - feedback: {} - goal: - solvent: solvent - goal_default: - solvent: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - output: [] - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: ResetHandling_Feedback - type: object - goal: - properties: - solvent: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - solvent - - vessel - title: ResetHandling_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: ResetHandling_Result - type: object - required: - - goal - title: ResetHandling - type: object - type: ResetHandling - RunColumnProtocol: - feedback: {} - goal: - column: column - from_vessel: from_vessel - to_vessel: to_vessel - goal_default: - column: '' - from_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - pct1: '' - pct2: '' - ratio: '' - rf: '' - solvent1: '' - solvent2: '' - to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVessel - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVessel - label: To Vessel - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVesselOut - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVesselOut - label: To Vessel - placeholder_keys: - column: unilabos_devices - from_vessel: unilabos_resources - to_vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: RunColumn_Feedback - type: object - goal: - properties: - column: - type: string - from_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_vessel - type: object - pct1: - type: string - pct2: - type: string - ratio: - type: string - rf: - type: string - solvent1: - type: string - solvent2: - type: string - to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_vessel - type: object - required: - - from_vessel - - to_vessel - - column - - rf - - pct1 - - pct2 - - solvent1 - - solvent2 - - ratio - title: RunColumn_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: RunColumn_Result - type: object - required: - - goal - title: RunColumn - type: object - type: RunColumn - SeparateProtocol: - feedback: {} - goal: - from_vessel: from_vessel - product_phase: product_phase - purpose: purpose - repeats: repeats - separation_vessel: separation_vessel - settling_time: settling_time - solvent: solvent - solvent_volume: solvent_volume - stir_speed: stir_speed - stir_time: stir_time - through: through - to_vessel: to_vessel - waste_phase_to_vessel: waste_phase_to_vessel - goal_default: - from_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - product_phase: '' - product_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - purpose: '' - repeats: 0 - separation_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - settling_time: 0.0 - solvent: '' - solvent_volume: '' - stir_speed: 0.0 - stir_time: 0.0 - through: '' - to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: '' - waste_phase_to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - waste_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVessel - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVessel - label: To Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVesselOut - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVesselOut - label: To Vessel - placeholder_keys: - from_vessel: unilabos_resources - to_vessel: unilabos_resources - waste_phase_to_vessel: unilabos_resources - waste_vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: Separate_Feedback - type: object - goal: - properties: - from_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_vessel - type: object - product_phase: - type: string - product_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: product_vessel - type: object - purpose: - type: string - repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - separation_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: separation_vessel - type: object - settling_time: - type: number - solvent: - type: string - solvent_volume: - type: string - stir_speed: - type: number - stir_time: - type: number - through: - type: string - to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_vessel - type: object - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: string - waste_phase_to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: waste_phase_to_vessel - type: object - waste_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: waste_vessel - type: object - required: - - vessel - - purpose - - product_phase - - from_vessel - - separation_vessel - - to_vessel - - waste_phase_to_vessel - - product_vessel - - waste_vessel - - solvent - - solvent_volume - - volume - - through - - repeats - - stir_time - - stir_speed - - settling_time - title: Separate_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Separate_Result - type: object - required: - - goal - title: Separate - type: object - type: Separate - StartStirProtocol: - feedback: {} - goal: - purpose: purpose - stir_speed: stir_speed - vessel: vessel - goal_default: - purpose: '' - stir_speed: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_speed: - type: number - current_status: - type: string - progress: - type: number - required: - - progress - - current_speed - - current_status - title: StartStir_Feedback - type: object - goal: - properties: - purpose: - type: string - stir_speed: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - stir_speed - - purpose - title: StartStir_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: StartStir_Result - type: object - required: - - goal - title: StartStir - type: object - type: StartStir - StirProtocol: - feedback: {} - goal: - event: event - settling_time: settling_time - stir_speed: stir_speed - stir_time: stir_time - time: time - time_spec: time_spec - vessel: vessel - goal_default: - event: '' - settling_time: '' - stir_speed: 0.0 - stir_time: 0.0 - time: '' - time_spec: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: Stir_Feedback - type: object - goal: - properties: - event: - type: string - settling_time: - type: string - stir_speed: - type: number - stir_time: - type: number - time: - type: string - time_spec: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - time - - event - - time_spec - - stir_time - - stir_speed - - settling_time - title: Stir_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Stir_Result - type: object - required: - - goal - title: Stir - type: object - type: Stir - StopStirProtocol: - feedback: {} - goal: - vessel: vessel - goal_default: - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - progress: - type: number - required: - - progress - - current_status - title: StopStir_Feedback - type: object - goal: - properties: - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - title: StopStir_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: StopStir_Result - type: object - required: - - goal - title: StopStir - type: object - type: StopStir - TransferProtocol: - feedback: {} - goal: - amount: amount - from_vessel: from_vessel - rinsing_repeats: rinsing_repeats - rinsing_solvent: rinsing_solvent - rinsing_volume: rinsing_volume - solid: solid - time: time - to_vessel: to_vessel - viscous: viscous - volume: volume - goal_default: - amount: '' - from_vessel: '' - rinsing_repeats: 0 - rinsing_solvent: '' - rinsing_volume: 0.0 - solid: false - time: 0.0 - to_vessel: '' - viscous: false - volume: 0.0 - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVessel - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVessel - label: To Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Rinsing Solvent - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVesselOut - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVesselOut - label: To Vessel - placeholder_keys: - from_vessel: unilabos_nodes - to_vessel: unilabos_nodes - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - progress: - type: number - transferred_volume: - type: number - required: - - progress - - transferred_volume - - current_status - title: Transfer_Feedback - type: object - goal: - properties: - amount: - type: string - from_vessel: - type: string - rinsing_repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - rinsing_solvent: - type: string - rinsing_volume: - type: number - solid: - type: boolean - time: - type: number - to_vessel: - type: string - viscous: - type: boolean - volume: - type: number - required: - - from_vessel - - to_vessel - - volume - - amount - - time - - viscous - - rinsing_solvent - - rinsing_volume - - rinsing_repeats - - solid - title: Transfer_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Transfer_Result - type: object - required: - - goal - title: Transfer - type: object - type: Transfer - WashSolidProtocol: - feedback: {} - goal: - filtrate_vessel: filtrate_vessel - repeats: repeats - solvent: solvent - stir: stir - stir_speed: stir_speed - temp: temp - time: time - vessel: vessel - volume: volume - goal_default: - event: '' - filtrate_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - mass: '' - repeats: 0 - repeats_spec: '' - solvent: '' - stir: false - stir_speed: 0.0 - temp: 0.0 - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: '' - volume_spec: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - - data_key: filtrate_vessel - data_source: handle - data_type: resource - handler_key: filtrate_vessel - label: Filtrate Vessel - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: VesselOut - label: Vessel Out - - data_key: filtrate_vessel - data_source: executor - data_type: resource - handler_key: filtrate_vessel_out - label: Filtrate Vessel - placeholder_keys: - filtrate_vessel: unilabos_resources - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: WashSolid_Feedback - type: object - goal: - properties: - event: - type: string - filtrate_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: filtrate_vessel - type: object - mass: - type: string - repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - repeats_spec: - type: string - solvent: - type: string - stir: - type: boolean - stir_speed: - type: number - temp: - type: number - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: string - volume_spec: - type: string - required: - - vessel - - solvent - - volume - - filtrate_vessel - - temp - - stir - - stir_speed - - time - - repeats - - volume_spec - - repeats_spec - - mass - - event - title: WashSolid_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: WashSolid_Result - type: object - required: - - goal - title: WashSolid - type: object - type: WashSolid - auto-create_ros_action_server: - feedback: {} - goal: {} - goal_default: - action_name: null - action_value_mapping: null - handles: {} - result: {} - schema: - description: create_ros_action_server的参数schema - properties: - feedback: {} - goal: - properties: - action_name: - type: string - action_value_mapping: - type: string - required: - - action_name - - action_value_mapping - type: object - result: {} - required: - - goal - 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: execute_single_action的参数schema - properties: - feedback: {} - goal: - properties: - action_kwargs: - type: string - action_name: - type: string - 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: {} - goal_default: - device_config: null - device_id: null - handles: {} - result: {} - schema: - description: initialize_device的参数schema - properties: - feedback: {} - goal: - properties: - device_config: - type: string - device_id: - type: string - required: - - device_id - - device_config - type: object - result: {} - required: - - goal - title: initialize_device参数 - type: object - type: UniLabJsonCommand - module: unilabos.ros.nodes.presets.workstation:ROS2WorkstationNode - status_types: {} - type: ros2 - config_info: [] - description: Workstation - handles: [] - icon: '' - init_param_schema: - config: - properties: - action_value_mappings: - type: object - children: - type: object - device_id: - type: string - driver_instance: - type: string - hardware_interface: - type: object - print_publish: - default: true - type: string - protocol_type: - items: - type: string - type: array - resource_tracker: - type: string - status_types: - type: object - required: - - protocol_type - - children - - driver_instance - - device_id - - status_types - - action_value_mappings - - hardware_interface - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 -workstation.example: - category: - - work_station - class: - action_value_mappings: {} - module: unilabos.devices.workstation.workstation_base:WorkstationExample - status_types: {} - type: python - config_info: [] - description: '' - handles: [] - icon: '' - init_param_schema: - config: - properties: - station_resource: - type: object - required: - - station_resource - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 diff --git a/unilabos/registry/resources/bioyond/YB_bottle.yaml b/unilabos/registry/resources/bioyond/YB_bottle.yaml index 51ea6e48..6d8a380d 100644 --- a/unilabos/registry/resources/bioyond/YB_bottle.yaml +++ b/unilabos/registry/resources/bioyond/YB_bottle.yaml @@ -1,58 +1,7 @@ -YB_fen_ye_5ml_Bottle: - category: - - yb3 - class: - module: unilabos.resources.bioyond.YB_bottles:YB_fen_ye_5ml_Bottle - type: pylabrobot - description: YB_fen_ye_5ml_Bottle - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 - -YB_fen_ye_20ml_Bottle: - category: - - yb3 - class: - module: unilabos.resources.bioyond.YB_bottles:YB_fen_ye_20ml_Bottle - type: pylabrobot - description: YB_fen_ye_20ml_Bottle - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 - -YB_pei_ye_xiao_Bottle: - category: - - yb3 - class: - module: unilabos.resources.bioyond.YB_bottles:YB_pei_ye_xiao_Bottle - type: pylabrobot - description: YB_pei_ye_xiao_Bottle - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 - -YB_pei_ye_da_Bottle: - category: - - yb3 - class: - module: unilabos.resources.bioyond.YB_bottles:YB_pei_ye_da_Bottle - type: pylabrobot - description: YB_pei_ye_da_Bottle - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 - YB_Pipette_Tip: category: - yb3 + - YB_bottle class: module: unilabos.resources.bioyond.YB_bottles:YB_Pipette_Tip type: pylabrobot @@ -62,4 +11,55 @@ YB_Pipette_Tip: init_param_schema: {} registry_type: resource version: 1.0.0 - +YB_fen_ye_20ml_Bottle: + category: + - yb3 + - YB_bottle + class: + module: unilabos.resources.bioyond.YB_bottles:YB_fen_ye_20ml_Bottle + type: pylabrobot + description: YB_fen_ye_20ml_Bottle + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_fen_ye_5ml_Bottle: + category: + - yb3 + - YB_bottle + class: + module: unilabos.resources.bioyond.YB_bottles:YB_fen_ye_5ml_Bottle + type: pylabrobot + description: YB_fen_ye_5ml_Bottle + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_pei_ye_da_Bottle: + category: + - yb3 + - YB_bottle + class: + module: unilabos.resources.bioyond.YB_bottles:YB_pei_ye_da_Bottle + type: pylabrobot + description: YB_pei_ye_da_Bottle + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_pei_ye_xiao_Bottle: + category: + - yb3 + - YB_bottle + class: + module: unilabos.resources.bioyond.YB_bottles:YB_pei_ye_xiao_Bottle + type: pylabrobot + description: YB_pei_ye_xiao_Bottle + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 diff --git a/unilabos/registry/resources/bioyond/YB_bottle_carriers.yaml b/unilabos/registry/resources/bioyond/YB_bottle_carriers.yaml index 1c5b029e..eb2ff6fc 100644 --- a/unilabos/registry/resources/bioyond/YB_bottle_carriers.yaml +++ b/unilabos/registry/resources/bioyond/YB_bottle_carriers.yaml @@ -1,59 +1,7 @@ - -YB_6StockCarrier: - category: - - yb3 - class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6StockCarrier - type: pylabrobot - description: YB_6StockCarrier - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 - -YB_6VialCarrier: - category: - - yb3 - class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6VialCarrier - type: pylabrobot - description: YB_6VialCarrier - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 - -YB_1BottleCarrier: - category: - - yb3 - class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_1BottleCarrier - type: pylabrobot - description: YB_1BottleCarrier - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 - -YB_1GaoNianYeBottleCarrier: - category: - - yb3 - class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_1GaoNianYeBottleCarrier - type: pylabrobot - description: YB_1GaoNianYeBottleCarrier - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 - YB_1Bottle100mlCarrier: category: - yb3 + - YB_bottle_carriers class: module: unilabos.resources.bioyond.YB_bottle_carriers:YB_1Bottle100mlCarrier type: pylabrobot @@ -63,49 +11,36 @@ YB_1Bottle100mlCarrier: init_param_schema: {} registry_type: resource version: 1.0.0 - -YB_6x5ml_DispensingVialCarrier: +YB_1BottleCarrier: category: - yb3 + - YB_bottle_carriers class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6x5ml_DispensingVialCarrier + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_1BottleCarrier type: pylabrobot - description: YB_6x5ml_DispensingVialCarrier + description: YB_1BottleCarrier handles: [] icon: '' init_param_schema: {} registry_type: resource version: 1.0.0 - -YB_6x20ml_DispensingVialCarrier: +YB_1GaoNianYeBottleCarrier: category: - yb3 + - YB_bottle_carriers class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6x20ml_DispensingVialCarrier + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_1GaoNianYeBottleCarrier type: pylabrobot - description: YB_6x20ml_DispensingVialCarrier + description: YB_1GaoNianYeBottleCarrier handles: [] icon: '' init_param_schema: {} registry_type: resource version: 1.0.0 - -YB_6x_SmallSolutionBottleCarrier: - category: - - yb3 - class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6x_SmallSolutionBottleCarrier - type: pylabrobot - description: YB_6x_SmallSolutionBottleCarrier - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 - YB_4x_LargeSolutionBottleCarrier: category: - yb3 + - YB_bottle_carriers class: module: unilabos.resources.bioyond.YB_bottle_carriers:YB_4x_LargeSolutionBottleCarrier type: pylabrobot @@ -115,23 +50,75 @@ YB_4x_LargeSolutionBottleCarrier: init_param_schema: {} registry_type: resource version: 1.0.0 - -YB_jia_yang_tou_da_1X1_carrier: +YB_6StockCarrier: category: - yb3 + - YB_bottle_carriers class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_jia_yang_tou_da_1X1_carrier + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6StockCarrier type: pylabrobot - description: YB_jia_yang_tou_da_1X1_carrier + description: YB_6StockCarrier + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_6VialCarrier: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6VialCarrier + type: pylabrobot + description: YB_6VialCarrier + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_6x20ml_DispensingVialCarrier: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6x20ml_DispensingVialCarrier + type: pylabrobot + description: YB_6x20ml_DispensingVialCarrier + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_6x5ml_DispensingVialCarrier: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6x5ml_DispensingVialCarrier + type: pylabrobot + description: YB_6x5ml_DispensingVialCarrier + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_6x_SmallSolutionBottleCarrier: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6x_SmallSolutionBottleCarrier + type: pylabrobot + description: YB_6x_SmallSolutionBottleCarrier handles: [] icon: '' init_param_schema: {} registry_type: resource version: 1.0.0 - YB_AdapterBlock: category: - yb3 + - YB_bottle_carriers class: module: unilabos.resources.bioyond.YB_bottle_carriers:YB_AdapterBlock type: pylabrobot @@ -141,10 +128,10 @@ YB_AdapterBlock: init_param_schema: {} registry_type: resource version: 1.0.0 - YB_TipBox: category: - yb3 + - YB_bottle_carriers class: module: unilabos.resources.bioyond.YB_bottle_carriers:YB_TipBox type: pylabrobot @@ -154,36 +141,10 @@ YB_TipBox: init_param_schema: {} registry_type: resource version: 1.0.0 - -YB_ye_Bottle: - category: - - yb3 - class: - module: unilabos.resources.bioyond.YB_bottles:YB_ye_Bottle - type: pylabrobot - description: YB_ye_Bottle - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 - -YB_ye_100ml_Bottle: - category: - - yb3 - class: - module: unilabos.resources.bioyond.YB_bottles:YB_ye_100ml_Bottle - type: pylabrobot - description: YB_ye_100ml_Bottle - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 - YB_gao_nian_ye_Bottle: category: - yb3 + - YB_bottle_carriers class: module: unilabos.resources.bioyond.YB_bottles:YB_gao_nian_ye_Bottle type: pylabrobot @@ -193,10 +154,10 @@ YB_gao_nian_ye_Bottle: init_param_schema: {} registry_type: resource version: 1.0.0 - YB_jia_yang_tou_da: category: - yb3 + - YB_bottle_carriers class: module: unilabos.resources.bioyond.YB_bottles:YB_jia_yang_tou_da type: pylabrobot @@ -206,3 +167,42 @@ YB_jia_yang_tou_da: init_param_schema: {} registry_type: resource version: 1.0.0 +YB_jia_yang_tou_da_1X1_carrier: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_jia_yang_tou_da_1X1_carrier + type: pylabrobot + description: YB_jia_yang_tou_da_1X1_carrier + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_ye_100ml_Bottle: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottles:YB_ye_100ml_Bottle + type: pylabrobot + description: YB_ye_100ml_Bottle + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_ye_Bottle: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottles:YB_ye_Bottle + type: pylabrobot + description: YB_ye_Bottle + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0