diff --git a/unilabos/devices/workstation/bioyond_studio/bioyond_cell/bioyond_cell_workstation.py b/unilabos/devices/workstation/bioyond_studio/bioyond_cell/bioyond_cell_workstation.py index 8eaed9e2..ce25288b 100644 --- a/unilabos/devices/workstation/bioyond_studio/bioyond_cell/bioyond_cell_workstation.py +++ b/unilabos/devices/workstation/bioyond_studio/bioyond_cell/bioyond_cell_workstation.py @@ -257,7 +257,7 @@ class BioyondCellWorkstation(BioyondWorkstation): def auto_feeding4to3( self, # ★ 修改点:默认模板路径 - xlsx_path: Optional[str] = "/Users/calvincao/Desktop/work/uni-lab-all/Uni-Lab-OS/unilabos/devices/workstation/bioyond_studio/bioyond_cell/material_template.xlsx", + xlsx_path: Optional[str] = "/Users/sml/work/Unilab/Uni-Lab-OS/unilabos/devices/workstation/bioyond_studio/bioyond_cell/material_template.xlsx", # ---------------- WH4 - 加样头面 (Z=1, 12个点位) ---------------- WH4_x1_y1_z1_1_materialName: str = "", WH4_x1_y1_z1_1_quantity: float = 0.0, WH4_x2_y1_z1_2_materialName: str = "", WH4_x2_y1_z1_2_quantity: float = 0.0, @@ -477,7 +477,7 @@ class BioyondCellWorkstation(BioyondWorkstation): - totalMass 自动计算为所有物料质量之和 - createTime 缺失或为空时自动填充为当前日期(YYYY/M/D) """ - default_path = Path("/Users/calvincao/Desktop/work/uni-lab-all/Uni-Lab-OS/unilabos/devices/workstation/bioyond_studio/bioyond_cell/2025092701.xlsx") + default_path = Path("/Users/sml/work/Unilab/Uni-Lab-OS/unilabos/devices/workstation/bioyond_studio/bioyond_cell/2025092701.xlsx") path = Path(xlsx_path) if xlsx_path else default_path print(f"[create_orders] 使用 Excel 路径: {path}") if path != default_path: @@ -1165,137 +1165,39 @@ class BioyondCellWorkstation(BioyondWorkstation): }) return final_result - - - -def run_bioyond_cell_workflow(config: Dict[str, Any]) -> BioyondCellWorkstation: - """按照统一配置执行奔曜配液与转运工作流。 - - Args: - config: 统一的工作流配置。字段示例: - { - "lab_registry": {"setup": True}, - "deck": {"setup": True}, - "workstation": {"config": {...}}, - "update_push_ip": True, - "samples": [ - {"name": "...", "board_type": "...", "bottle_type": "...", "location_code": "...", "warehouse_name": "..."} - ], - "scheduler": {"start": True, "log": True}, - "operations": { - "auto_feeding4to3": {"enabled": True}, - "create_orders": {"excel_path": "...", "log": True}, - "transfer_3_to_2_to_1": {"enabled": True, "log": True}, - "transfer_1_to_2": {"enabled": True, "log": True} - }, - "keep_alive": False, - "keep_alive_interval": 1 - } - - Returns: - 执行完毕的 `BioyondCellWorkstation` 实例。 - """ - - if config.get("lab_registry", {}).get("setup", True): - lab_registry.setup() - - deck_config = config.get("deck") - if isinstance(deck_config, dict): - deck = BIOYOND_YB_Deck(**deck_config) - elif deck_config is None: - deck = BIOYOND_YB_Deck(setup=True) - else: - deck = deck_config - - workstation_kwargs = dict(config.get("workstation", {})) - if "deck" not in workstation_kwargs: - workstation_kwargs["deck"] = deck - ws = BioyondCellWorkstation(**workstation_kwargs) - - if config.get("update_push_ip", True): - ws.update_push_ip() - - for sample_cfg in config.get("samples", []): - ws.create_sample(**sample_cfg) - - scheduler_cfg = config.get("scheduler", {}) - if scheduler_cfg.get("start", True): - result = ws.scheduler_start() - if scheduler_cfg.get("log", True): - logger.info(result) - - operations_cfg = config.get("operations", {}) - - auto_feeding_cfg = operations_cfg.get("auto_feeding4to3", {}) - if auto_feeding_cfg.get("enabled", True): - result = ws.auto_feeding4to3() - if auto_feeding_cfg.get("log", True): - logger.info(result) - - create_orders_cfg = operations_cfg.get("create_orders") - if create_orders_cfg: - excel_path = create_orders_cfg.get("excel_path") - if not excel_path: - raise ValueError("create_orders 需要提供 excel_path。") - result = ws.create_orders(Path(excel_path)) - if create_orders_cfg.get("log", True): - logger.info(result) - - transfer_321_cfg = operations_cfg.get("transfer_3_to_2_to_1", {}) - if transfer_321_cfg.get("enabled", True): - result = ws.transfer_3_to_2_to_1() - if transfer_321_cfg.get("log", True): - logger.info(result) - - transfer_12_cfg = operations_cfg.get("transfer_1_to_2", {}) - if transfer_12_cfg.get("enabled", True): - result = ws.transfer_1_to_2() - if transfer_12_cfg.get("log", True): - logger.info(result) - - if config.get("keep_alive", False): - interval = config.get("keep_alive_interval", 1) - while True: - time.sleep(interval) - - return ws - - + def run_bioyond_cell_workflow(self): + self.create_sample( + board_type="配液瓶(小)板", + bottle_type="配液瓶(小)", + location_code="B01", + name="配液瓶", + warehouse_name="手动堆栈" + ) + self.create_sample( + board_type="5ml分液瓶板", + bottle_type="5ml分液瓶", + location_code="B02", + name="分液瓶", + warehouse_name="手动堆栈" + ) + self.scheduler_start() + self.auto_feeding4to3( + xlsx_path="/Users/sml/work/Unilab/Uni-Lab-OS/unilabos/devices/workstation/bioyond_studio/bioyond_cell/material_template.xlsx" + ) + self.create_orders( + xlsx_path="/Users/sml/work/Unilab/Uni-Lab-OS/unilabos/devices/workstation/bioyond_studio/bioyond_cell/2025092701.xlsx" + ) + self.transfer_3_to_2_to_1( + source_wh_id="3a19debc-84b4-0359-e2d4-b3beea49348b", + source_x=1, + source_y=1, + source_z=1, + ) + return self if __name__ == "__main__": - workflow_config = { - "deck": {"setup": True}, - "update_push_ip": True, - "samples": [ - { - "name": "配液瓶", - "board_type": "配液瓶(小)板", - "bottle_type": "配液瓶(小)", - "location_code": "E01", - }, - { - "name": "分液瓶", - "board_type": "5ml分液瓶板", - "bottle_type": "5ml分液瓶", - "location_code": "D01", - }, - ], - "operations": { - "auto_feeding4to3": {"enabled": True, "log": True}, - "create_orders": { - "excel_path": "/Users/calvincao/Desktop/work/uni-lab-all/Uni-Lab-OS/unilabos/devices/workstation/bioyond_studio/bioyond_cell/2025092701.xlsx", - "log": True, - }, - "transfer_3_to_2_to_1": {"enabled": True, "log": True}, - "transfer_1_to_2": {"enabled": True, "log": True}, - }, - "keep_alive": True, - } - run_bioyond_cell_workflow(workflow_config) - - # 1. location code - # 2. 实验文件 - # 3. material template file - + deck = BIOYOND_YB_Deck(setup=True) + w = BioyondCellWorkstation(deck=deck, address="172.16.28.102", port="502", debug_mode=False) + w.run_bioyond_cell_workflow() while True: time.sleep(1) # re=ws.scheduler_stop() diff --git a/unilabos/devices/workstation/bioyond_studio/config.py b/unilabos/devices/workstation/bioyond_studio/config.py index b2aed016..736ca66f 100644 --- a/unilabos/devices/workstation/bioyond_studio/config.py +++ b/unilabos/devices/workstation/bioyond_studio/config.py @@ -8,8 +8,8 @@ import os # BioyondCellWorkstation 默认配置(包含所有必需参数) API_CONFIG = { # API 连接配置 - "api_host": os.getenv("BIOYOND_API_HOST", "http://172.16.1.143:44389"),#实机 - # "api_host": os.getenv("BIOYOND_API_HOST", "http://172.16.7.149:44388"),# 仿真机 + # "api_host": os.getenv("BIOYOND_API_HOST", "http://172.16.1.143:44389"),#实机 + "api_host": os.getenv("BIOYOND_API_HOST", "http://172.16.11.219:44388"),# 仿真机 "api_key": os.getenv("BIOYOND_API_KEY", "8A819E5C"), "timeout": int(os.getenv("BIOYOND_TIMEOUT", "30")), @@ -17,7 +17,7 @@ API_CONFIG = { "report_token": os.getenv("BIOYOND_REPORT_TOKEN", "CHANGE_ME_TOKEN"), # HTTP 服务配置 - "HTTP_host": os.getenv("BIOYOND_HTTP_HOST", "172.16.2.140"), # HTTP服务监听地址,监听计算机飞连ip地址 + "HTTP_host": os.getenv("BIOYOND_HTTP_HOST", "172.16.11.2"), # HTTP服务监听地址,监听计算机飞连ip地址 "HTTP_port": int(os.getenv("BIOYOND_HTTP_PORT", "8080")), "debug_mode": False,# 调试模式 } 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 b94dd5f7..97ae452e 100644 --- a/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly.py +++ b/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly.py @@ -1,4 +1,3 @@ - import csv import inspect import json @@ -139,12 +138,11 @@ class CoinCellAssemblyWorkstation(WorkstationBase): time.sleep(2) if not modbus_client.client.is_socket_open(): raise ValueError('modbus tcp connection failed') - self.nodes = BaseClient.load_csv(os.path.join(os.path.dirname(__file__), 'coin_cell_assembly_a.csv')) + self.nodes = BaseClient.load_csv(os.path.join(os.path.dirname(__file__), 'coin_cell_assembly_1105.csv')) self.client = modbus_client.register_node_list(self.nodes) else: print("测试模式,跳过连接") self.nodes, self.client = None, None - """ 工站的配置 """ self.success = False @@ -986,6 +984,31 @@ class CoinCellAssemblyWorkstation(WorkstationBase): #self.success = True #return self.success + def run_packaging_workflow(self, workflow_config: Dict[str, Any]) -> "CoinCellAssemblyWorkstation": + config = workflow_config or {} + + qiming_params = config.get("qiming") or {} + if qiming_params: + self.qiming_coin_cell_code(**qiming_params) + + if config.get("init", True): + self.func_pack_device_init() + if config.get("auto", True): + self.func_pack_device_auto() + if config.get("start", True): + self.func_pack_device_start() + + packaging_config = config.get("packaging") or {} + bottle_num = packaging_config.get("bottle_num") + if bottle_num is not None: + self.func_pack_send_bottle_num(bottle_num) + + allpack_params = packaging_config.get("command") or {} + if allpack_params: + self.func_allpack_cmd(**allpack_params) + + return self + def fun_wuliao_test(self) -> bool: #找到data_init中构建的2个物料盘 liaopan3 = self.deck.get_resource("\u7535\u6c60\u6599\u76d8") @@ -1199,96 +1222,34 @@ class CoinCellAssemblyWorkstation(WorkstationBase): """移液枪头库存 (数量, INT16)""" inventory, read_err = self.client.register_node_list(self.nodes).use_node('REG_DATA_TIPS_INVENTORY').read(1) return inventory - + ''' -def run_coin_cell_packaging_workflow(config: Dict[str, Any]) -> CoinCellAssemblyWorkstation: - """根据统一配置顺序执行扣电池装配工作流。 - - Args: - config: 统一的工作流配置。字段示例: - { - "deck": {"setup": True, "name": "coin_cell_deck"}, - "workstation": {"address": "...", "port": "...", "debug_mode": False}, - "qiming": {...}, - "init": True, - "auto": True, - "start": True, - "packaging": { - "bottle_num": 16, - "command": {...} - } - } - - Returns: - 执行完毕的 `CoinCellAssemblyWorkstation` 实例。 - """ - - deck_config = config.get("deck") - if isinstance(deck_config, Deck): - deck = deck_config - elif isinstance(deck_config, dict): - deck = CoincellDeck(**deck_config) - elif deck_config is None: - deck = CoincellDeck(setup=True, name="coin_cell_deck") - else: - raise ValueError("deck 配置需为 Deck 实例或 dict。") - - workstation_config = dict(config.get("workstation", {})) - workstation_config.setdefault("deck", deck) - workstation = CoinCellAssemblyWorkstation(**workstation_config) - - qiming_params = config.get("qiming", {}) - if qiming_params: - workstation.qiming_coin_cell_code(**qiming_params) - - if config.get("init", True): - workstation.func_pack_device_init() - if config.get("auto", True): - workstation.func_pack_device_auto() - if config.get("start", True): - workstation.func_pack_device_start() - - packaging_config = config.get("packaging", {}) - bottle_num = packaging_config.get("bottle_num") - if bottle_num is not None: - workstation.func_pack_send_bottle_num(bottle_num) - - allpack_params = packaging_config.get("command", {}) - if allpack_params: - workstation.func_allpack_cmd(**allpack_params) - - return workstation + def run_coin_cell_assembly_workflow(self): + self.qiming_coin_cell_code( + fujipian_panshu=1, + fujipian_juzhendianwei=0, + gemopanshu=0, + gemo_juzhendianwei=0, + lvbodian=True, + battery_pressure_mode=True, + battery_pressure=4200, + battery_clean_ignore=False, + ) + self.func_pack_device_init() + self.func_pack_device_auto() + self.func_pack_device_start() + self.func_pack_send_bottle_num(1) + self.func_allpack_cmd(elec_num = 1, elec_use_num = 1, elec_vol=50, assembly_type=7, assembly_pressure=4200, file_path="/Users/sml/work") + self.func_pack_send_finished_cmd() + self.func_pack_device_stop() + # 物料转换 + return self if __name__ == "__main__": - workflow_config = { - "deck": {"setup": True, "name": "coin_cell_deck"}, - "workstation": { - "address": "172.16.28.102", - "port": "502", - "debug_mode": False, - }, - "qiming": { - "fujipian_panshu": 1, - "fujipian_juzhendianwei": 2, - "gemopanshu": 3, - "gemo_juzhendianwei": 4, - "lvbodian": False, - "battery_pressure_mode": False, - "battery_pressure": 4200, - "battery_clean_ignore": False, - }, - "packaging": { - "bottle_num": 16, - "command": { - "elec_num": 16, - "elec_use_num": 16, - "elec_vol": 50, - "assembly_type": 7, - "assembly_pressure": 4200, - "file_path": "/Users/calvincao/Desktop/work/Uni-Lab-OS-hhm", - }, - }, - } - run_coin_cell_packaging_workflow(workflow_config) \ No newline at end of file + deck = CoincellDeck(setup=True, name="coin_cell_deck") + w = CoinCellAssemblyWorkstation(deck=deck, address="172.16.28.102", port="502", debug_mode=False) + w.run_coin_cell_assembly_workflow() + + \ No newline at end of file diff --git a/unilabos/registry/devices/bioyond_cell.yaml b/unilabos/registry/devices/bioyond_cell.yaml index 81d78b9e..ff1de750 100644 --- a/unilabos/registry/devices/bioyond_cell.yaml +++ b/unilabos/registry/devices/bioyond_cell.yaml @@ -821,6 +821,27 @@ bioyond_cell: title: resource_tree_transfer参数 type: object type: UniLabJsonCommand + auto-run_bioyond_cell_workflow: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: run_bioyond_cell_workflow参数 + type: object + type: UniLabJsonCommand auto-scheduler_continue: feedback: {} goal: {} @@ -1114,7 +1135,7 @@ bioyond_cell: config_info: [] description: '' handles: [] - icon: benyao2.webp + icon: '' init_param_schema: config: properties: diff --git a/unilabos/registry/devices/coin_cell_workstation.yaml b/unilabos/registry/devices/coin_cell_workstation.yaml index eabebad7..ce5775ff 100644 --- a/unilabos/registry/devices/coin_cell_workstation.yaml +++ b/unilabos/registry/devices/coin_cell_workstation.yaml @@ -79,7 +79,7 @@ coincellassemblyworkstation_device: elec_num: null elec_use_num: null elec_vol: 50 - file_path: C:\Users\67484\Desktop + file_path: /Users/sml/work handles: {} placeholder_keys: {} result: {} @@ -103,7 +103,7 @@ coincellassemblyworkstation_device: default: 50 type: integer file_path: - default: C:\Users\67484\Desktop + default: /Users/sml/work type: string required: - elec_num @@ -332,7 +332,7 @@ coincellassemblyworkstation_device: feedback: {} goal: {} goal_default: - file_path: D:\coin_cell_data + file_path: /Users/sml/work handles: {} placeholder_keys: {} result: {} @@ -343,7 +343,7 @@ coincellassemblyworkstation_device: goal: properties: file_path: - default: D:\coin_cell_data + default: /Users/sml/work type: string required: [] type: object @@ -477,6 +477,52 @@ coincellassemblyworkstation_device: title: qiming_coin_cell_code参数 type: object type: UniLabJsonCommand + auto-run_coin_cell_assembly_workflow: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: run_coin_cell_assembly_workflow参数 + type: object + type: UniLabJsonCommand + auto-run_packaging_workflow: + feedback: {} + goal: {} + goal_default: + workflow_config: null + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + workflow_config: + type: object + required: + - workflow_config + type: object + result: {} + required: + - goal + title: run_packaging_workflow参数 + type: object + type: UniLabJsonCommand module: unilabos.devices.workstation.coin_cell_assembly.coin_cell_assembly:CoinCellAssemblyWorkstation status_types: data_assembly_coin_cell_num: int @@ -500,20 +546,22 @@ coincellassemblyworkstation_device: sys_status: str type: python config_info: [] - description: '' + description: 扣电工站 handles: [] - icon: koudian.webp + icon: '' init_param_schema: config: properties: address: - default: 172.21.32.111 + default: 172.16.28.102 type: string + config: + type: object debug_mode: default: false type: boolean deck: - type: object + type: string port: default: '502' type: string diff --git a/unilabos/registry/devices/liquid_handler.yaml b/unilabos/registry/devices/liquid_handler.yaml index 99c92333..bfe98e89 100644 --- a/unilabos/registry/devices/liquid_handler.yaml +++ b/unilabos/registry/devices/liquid_handler.yaml @@ -654,6 +654,31 @@ liquid_handler: title: iter_tips参数 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: string + required: + - ros_node + type: object + result: {} + required: + - goal + title: post_init参数 + type: object + type: UniLabJsonCommand auto-set_group: feedback: {} goal: {} @@ -6170,6 +6195,31 @@ liquid_handler.prcxi: title: move_to参数 type: object type: UniLabJsonCommandAsync + 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-run_protocol: feedback: {} goal: {} diff --git a/unilabos/registry/devices/neware_battery_test_system.yaml b/unilabos/registry/devices/neware_battery_test_system.yaml index 2ef8d591..64f712ef 100644 --- a/unilabos/registry/devices/neware_battery_test_system.yaml +++ b/unilabos/registry/devices/neware_battery_test_system.yaml @@ -5,6 +5,73 @@ neware_battery_test_system: - battery_test 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: string + required: + - ros_node + type: object + result: {} + required: + - goal + title: post_init参数 + type: object + type: UniLabJsonCommand + auto-print_status_summary: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: print_status_summary参数 + type: object + type: UniLabJsonCommand + auto-test_connection: + feedback: {} + goal: {} + goal_default: {} + handles: {} + placeholder_keys: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: test_connection参数 + type: object + type: UniLabJsonCommand debug_resource_names: feedback: {} goal: {} @@ -320,28 +387,24 @@ neware_battery_test_system: config: properties: devtype: - default: '27' type: string ip: - default: 127.0.0.1 type: string machine_id: default: 1 type: integer port: - default: 502 type: integer size_x: - default: 50.0 + default: 50 type: number size_y: - default: 50.0 + default: 50 type: number size_z: - default: 20.0 + default: 20 type: number timeout: - default: 20 type: integer required: [] type: object diff --git a/unilabos/registry/devices/virtual_device.yaml b/unilabos/registry/devices/virtual_device.yaml index 18575821..77ac5336 100644 --- a/unilabos/registry/devices/virtual_device.yaml +++ b/unilabos/registry/devices/virtual_device.yaml @@ -45,6 +45,31 @@ virtual_centrifuge: title: initialize参数 type: object type: UniLabJsonCommandAsync + 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 centrifuge: feedback: current_speed: current_speed @@ -335,6 +360,31 @@ virtual_column: title: initialize参数 type: object type: UniLabJsonCommandAsync + 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 run_column: feedback: current_status: current_status @@ -732,6 +782,31 @@ virtual_filter: title: initialize参数 type: object type: UniLabJsonCommandAsync + 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 filter: feedback: current_status: current_status @@ -1358,6 +1433,31 @@ virtual_heatchill: title: initialize参数 type: object type: UniLabJsonCommandAsync + 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 heat_chill: feedback: status: status @@ -2358,6 +2458,31 @@ virtual_rotavap: title: initialize参数 type: object type: UniLabJsonCommandAsync + 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 evaporate: feedback: current_device: current_device @@ -2690,6 +2815,31 @@ virtual_separator: title: initialize参数 type: object type: UniLabJsonCommandAsync + 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 separate: feedback: current_status: status @@ -3600,6 +3750,31 @@ virtual_solenoid_valve: title: is_closed参数 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-reset: feedback: {} goal: {} @@ -4177,6 +4352,31 @@ virtual_solid_dispenser: title: parse_mol_string参数 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 module: unilabos.devices.virtual.virtual_solid_dispenser:VirtualSolidDispenser status_types: current_reagent: str @@ -4278,6 +4478,31 @@ virtual_stirrer: title: initialize参数 type: object type: UniLabJsonCommandAsync + 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 start_stir: feedback: status: status @@ -4995,6 +5220,31 @@ virtual_transfer_pump: title: is_full参数 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-pull_plunger: feedback: {} goal: {} diff --git a/unilabos/registry/resources/bioyond/YB_bottle.yaml b/unilabos/registry/resources/bioyond/YB_bottle.yaml index 87a335b6..f8e17261 100644 --- a/unilabos/registry/resources/bioyond/YB_bottle.yaml +++ b/unilabos/registry/resources/bioyond/YB_bottle.yaml @@ -1,16 +1,3 @@ -YB_qiang_tou: - category: - - yb3 - - YB_bottle - class: - module: unilabos.resources.bioyond.YB_bottles:YB_qiang_tou - type: pylabrobot - description: YB_qiang_tou - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 YB_20ml_fenyeping: category: - yb3 @@ -37,6 +24,19 @@ YB_5ml_fenyeping: init_param_schema: {} registry_type: resource version: 1.0.0 +YB_jia_yang_tou_da: + category: + - yb3 + - YB_bottle + class: + module: unilabos.resources.bioyond.YB_bottles:YB_jia_yang_tou_da + type: pylabrobot + description: YB_jia_yang_tou_da + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 YB_pei_ye_da_Bottle: category: - yb3 @@ -63,14 +63,14 @@ YB_pei_ye_xiao_Bottle: init_param_schema: {} registry_type: resource version: 1.0.0 -YB_jia_yang_tou_da: +YB_qiang_tou: category: - yb3 - YB_bottle class: - module: unilabos.resources.bioyond.YB_bottles:YB_jia_yang_tou_da + module: unilabos.resources.bioyond.YB_bottles:YB_qiang_tou type: pylabrobot - description: YB_jia_yang_tou_da + description: YB_qiang_tou handles: [] icon: '' init_param_schema: {} @@ -80,6 +80,7 @@ YB_ye_Bottle: category: - yb3 - YB_bottle_carriers + - YB_bottle class: module: unilabos.resources.bioyond.YB_bottles:YB_ye_Bottle type: pylabrobot @@ -88,4 +89,4 @@ YB_ye_Bottle: icon: '' init_param_schema: {} registry_type: resource - version: 1.0.0 \ No newline at end of file + 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 2c0c6f0b..4698a266 100644 --- a/unilabos/registry/resources/bioyond/YB_bottle_carriers.yaml +++ b/unilabos/registry/resources/bioyond/YB_bottle_carriers.yaml @@ -11,71 +11,6 @@ YB_100ml_yeti: init_param_schema: {} registry_type: resource version: 1.0.0 -# YB_1BottleCarrier: -# category: -# - yb3 -# - YB_bottle_carriers -# 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_gaonianye: - category: - - yb3 - - YB_bottle_carriers - class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_gaonianye - type: pylabrobot - description: YB_gaonianye - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -YB_peiyepingdaban: - category: - - yb3 - - YB_bottle_carriers - class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_peiyepingdaban - type: pylabrobot - description: YB_peiyepingdaban - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -YB_6StockCarrier: - category: - - yb3 - - YB_bottle_carriers - 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 - - 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_20ml_fenyepingban: category: - yb3 @@ -102,40 +37,27 @@ YB_5ml_fenyepingban: init_param_schema: {} registry_type: resource version: 1.0.0 -YB_peiyepingxiaoban: +YB_6StockCarrier: category: - yb3 - YB_bottle_carriers class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_peiyepingxiaoban + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6StockCarrier type: pylabrobot - description: YB_peiyepingxiaoban + description: YB_6StockCarrier handles: [] icon: '' init_param_schema: {} registry_type: resource version: 1.0.0 -YB_shi_pei_qi_kuai: +YB_6VialCarrier: category: - yb3 - YB_bottle_carriers class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_shi_pei_qi_kuai + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_6VialCarrier type: pylabrobot - description: YB_shi_pei_qi_kuai - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -YB_qiang_tou_he: - category: - - yb3 - - YB_bottle_carriers - class: - module: unilabos.resources.bioyond.YB_bottle_carriers:YB_qiang_tou_he - type: pylabrobot - description: YB_qiang_tou_he + description: YB_6VialCarrier handles: [] icon: '' init_param_schema: {} @@ -154,19 +76,19 @@ 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 -# description: YB_jia_yang_tou_da -# handles: [] -# icon: '' -# init_param_schema: {} -# registry_type: resource -# version: 1.0.0 +YB_gaonianye: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_gaonianye + type: pylabrobot + description: YB_gaonianye + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 YB_jia_yang_tou_da_Carrier: category: - yb3 @@ -180,14 +102,53 @@ YB_jia_yang_tou_da_Carrier: init_param_schema: {} registry_type: resource version: 1.0.0 -YB_ye_100ml_Bottle: +YB_peiyepingdaban: category: - yb3 - YB_bottle_carriers class: - module: unilabos.resources.bioyond.YB_bottles:YB_ye_100ml_Bottle + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_peiyepingdaban type: pylabrobot - description: YB_ye_100ml_Bottle + description: YB_peiyepingdaban + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_peiyepingxiaoban: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_peiyepingxiaoban + type: pylabrobot + description: YB_peiyepingxiaoban + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_qiang_tou_he: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_qiang_tou_he + type: pylabrobot + description: YB_qiang_tou_he + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +YB_shi_pei_qi_kuai: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_shi_pei_qi_kuai + type: pylabrobot + description: YB_shi_pei_qi_kuai handles: [] icon: '' init_param_schema: {} @@ -206,3 +167,16 @@ YB_ye: 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