diff --git a/unilabos/registry/device_comms/serial.yaml b/unilabos/registry/device_comms/serial.yaml index 4e8f776..3bf2b02 100644 --- a/unilabos/registry/device_comms/serial.yaml +++ b/unilabos/registry/device_comms/serial.yaml @@ -1,4 +1,6 @@ serial: + category: + - serial class: action_value_mappings: auto-handle_serial_request: @@ -76,6 +78,7 @@ serial: module: unilabos.ros.nodes.presets.serial_node:ROS2SerialNode status_types: {} type: ros2 + config_info: [] description: Serial communication interface, used when sharing same serial port for multiple devices handles: [] @@ -100,4 +103,4 @@ serial: properties: {} required: [] type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/camera.yaml b/unilabos/registry/devices/camera.yaml index db3c845..ea5337e 100644 --- a/unilabos/registry/devices/camera.yaml +++ b/unilabos/registry/devices/camera.yaml @@ -1,4 +1,6 @@ camera: + category: + - camera class: action_value_mappings: auto-destroy_node: @@ -44,11 +46,10 @@ camera: module: unilabos.ros.nodes.presets.camera:VideoPublisher status_types: {} type: ros2 + config_info: [] description: VideoPublisher摄像头设备节点,用于实时视频采集和流媒体发布。该设备通过OpenCV连接本地摄像头(如USB摄像头、内置摄像头等),定时采集视频帧并将其转换为ROS2的sensor_msgs/Image消息格式发布到视频话题。主要用于实验室自动化系统中的视觉监控、图像分析、实时观察等应用场景。支持可配置的摄像头索引、发布频率等参数。 handles: [] icon: '' - category: - - camera init_param_schema: config: properties: @@ -69,4 +70,4 @@ camera: properties: {} required: [] type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/characterization_optic.yaml b/unilabos/registry/devices/characterization_optic.yaml index 88be207..5fef855 100644 --- a/unilabos/registry/devices/characterization_optic.yaml +++ b/unilabos/registry/devices/characterization_optic.yaml @@ -1,4 +1,6 @@ hplc.agilent: + category: + - characterization_optic class: action_value_mappings: auto-check_status: @@ -176,6 +178,7 @@ hplc.agilent: status_text: str success: bool type: python + config_info: [] description: 安捷伦高效液相色谱(HPLC)分析设备,用于复杂化合物的分离、检测和定量分析。该设备通过UI自动化技术控制安捷伦ChemStation软件,实现全自动的样品分析流程。具备序列启动、设备状态监控、数据文件提取、结果处理等功能。支持多样品批量处理和实时状态反馈,适用于药物分析、环境检测、食品安全、化学研究等需要高精度色谱分析的实验室应用。 handles: [] icon: '' @@ -215,8 +218,10 @@ hplc.agilent: - finish_status - data_file type: object - version: 0.0.1 + version: 1.0.0 raman_home_made: + category: + - characterization_optic class: action_value_mappings: auto-ccd_time: @@ -378,6 +383,7 @@ raman_home_made: module: unilabos.devices.raman_uv.home_made_raman:RamanObj status_types: {} type: python + config_info: [] description: 拉曼光谱分析设备,用于物质的分子结构和化学成分表征。该设备集成激光器和CCD检测器,通过串口通信控制激光功率和光谱采集。具备背景扣除、多次平均、自动数据处理等功能,支持高精度的拉曼光谱测量。适用于材料表征、化学分析、质量控制、研究开发等需要分子指纹识别和结构分析的实验应用。 handles: [] icon: '' @@ -402,4 +408,4 @@ raman_home_made: properties: {} required: [] type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/hotel.yaml b/unilabos/registry/devices/hotel.yaml index 98a6785..204f021 100644 --- a/unilabos/registry/devices/hotel.yaml +++ b/unilabos/registry/devices/hotel.yaml @@ -1,10 +1,13 @@ hotel.thermo_orbitor_rs2_hotel: + category: + - hotel class: action_value_mappings: {} module: unilabos.devices.resource_container.container:HotelContainer status_types: rotation: String type: python + config_info: [] description: Thermo Orbitor RS2 Hotel容器设备,用于实验室样品的存储和管理。该设备通过HotelContainer类实现容器的旋转控制和状态监控,主要用于存储实验样品、试剂瓶或其他实验器具,支持旋转功能以便于样品的自动化存取。适用于需要有序存储和快速访问大量样品的实验室自动化场景。 handles: [] icon: '' @@ -29,4 +32,4 @@ hotel.thermo_orbitor_rs2_hotel: model: mesh: thermo_orbitor_rs2_hotel type: device - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/laiyu_add_solid.yaml b/unilabos/registry/devices/laiyu_add_solid.yaml index 07c802b..fbb654d 100644 --- a/unilabos/registry/devices/laiyu_add_solid.yaml +++ b/unilabos/registry/devices/laiyu_add_solid.yaml @@ -1,4 +1,6 @@ laiyu_add_solid: + category: + - laiyu_add_solid class: action_value_mappings: add_powder_tube: @@ -355,6 +357,7 @@ laiyu_add_solid: status_types: status: str type: python + config_info: [] description: 来渝固体粉末自动分装设备,用于实验室化学试剂的精确称量和分装。该设备通过Modbus RTU协议与控制系统通信,集成了精密天平、三轴运动平台、粉筒管理系统等组件。支持多种粉末试剂的自动拿取、精确称量、定点分装和归位操作。具备高精度称量、位置控制和批量处理能力,适用于化学合成、药物研发、材料制备等需要精确固体试剂配制的实验室应用场景。 handles: [] icon: '' @@ -379,4 +382,4 @@ laiyu_add_solid: required: - status type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/liquid_handler.yaml b/unilabos/registry/devices/liquid_handler.yaml index f5d7137..b8a92ea 100644 --- a/unilabos/registry/devices/liquid_handler.yaml +++ b/unilabos/registry/devices/liquid_handler.yaml @@ -1,4 +1,6 @@ liquid_handler: + category: + - liquid_handler class: action_value_mappings: add_liquid: @@ -4357,6 +4359,7 @@ liquid_handler: module: unilabos.devices.liquid_handling.liquid_handler_abstract:LiquidHandlerAbstract status_types: {} type: python + config_info: [] description: Liquid handler device controlled by pylabrobot handles: input: @@ -4395,8 +4398,10 @@ liquid_handler: properties: {} required: [] type: object - version: 0.0.1 + version: 1.0.0 liquid_handler.biomek: + category: + - liquid_handler class: action_value_mappings: auto-create_resource: @@ -5361,6 +5366,7 @@ liquid_handler.biomek: status_types: success: String type: python + config_info: [] description: Biomek液体处理器设备,基于pylabrobot控制 handles: [] icon: icon_yiyezhan.webp @@ -5376,8 +5382,10 @@ liquid_handler.biomek: required: - success type: object - version: 0.0.1 + version: 1.0.0 liquid_handler.prcxi: + category: + - liquid_handler class: action_value_mappings: add_liquid: @@ -7928,6 +7936,7 @@ liquid_handler.prcxi: status_types: reset_ok: bool type: python + config_info: [] description: prcxi液体处理器设备,基于pylabrobot控制 handles: [] icon: icon_yiyezhan.webp @@ -7973,8 +7982,10 @@ liquid_handler.prcxi: required: - reset_ok type: object - version: 0.0.1 + version: 1.0.0 liquid_handler.revvity: + category: + - liquid_handler class: action_value_mappings: run: @@ -8130,6 +8141,7 @@ liquid_handler.revvity: status: str success: bool type: python + config_info: [] description: '' handles: [] icon: '' @@ -8148,4 +8160,4 @@ liquid_handler.revvity: - success - status type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/mock_devices.yaml b/unilabos/registry/devices/mock_devices.yaml index 758abde..ec62986 100644 --- a/unilabos/registry/devices/mock_devices.yaml +++ b/unilabos/registry/devices/mock_devices.yaml @@ -1,4 +1,6 @@ mock_chiller: + category: + - mock_devices class: action_value_mappings: emergency_stop: @@ -325,6 +327,7 @@ mock_chiller: target_temperature: float vessel: str type: python + config_info: [] description: Mock Chiller Device handles: [] icon: '' @@ -364,8 +367,10 @@ mock_chiller: - purpose - status_info type: object - version: 0.0.1 + version: 1.0.0 mock_filter: + category: + - mock_devices class: action_value_mappings: auto-emergency_stop: @@ -743,6 +748,7 @@ mock_filter: temperature: float vessel: str type: python + config_info: [] description: Mock Filter Device handles: [] icon: '' @@ -803,8 +809,10 @@ mock_filter: - target_volume - status_info type: object - version: 0.0.1 + version: 1.0.0 mock_heater: + category: + - mock_devices class: action_value_mappings: auto-set_heating_power: @@ -1361,6 +1369,7 @@ mock_heater: target_temperature: float vessel: str type: python + config_info: [] description: Mock Heater Device handles: [] icon: '' @@ -1409,8 +1418,10 @@ mock_heater: - stir_speed - status_info type: object - version: 0.0.1 + version: 1.0.0 mock_pump: + category: + - mock_devices class: action_value_mappings: auto-emergency_stop: @@ -1887,6 +1898,7 @@ mock_pump: transfer_time: float transfer_volume: float type: python + config_info: [] description: Mock Pump Device handles: [] icon: '' @@ -1968,8 +1980,10 @@ mock_pump: - time_remaining - status_info type: object - version: 0.0.1 + version: 1.0.0 mock_rotavap: + category: + - mock_devices class: action_value_mappings: auto-emergency_stop: @@ -2296,6 +2310,7 @@ mock_rotavap: temperature: float vacuum_level: float type: python + config_info: [] description: Mock Rotavap Device handles: [] icon: '' @@ -2341,8 +2356,10 @@ mock_rotavap: - target_temperature - status_info type: object - version: 0.0.1 + version: 1.0.0 mock_separator: + category: + - mock_devices class: action_value_mappings: separate: @@ -3247,6 +3264,7 @@ mock_separator: valve_state: str waste_phase_to_vessel: str type: python + config_info: [] description: Simplified Mock Separator Device handles: [] icon: '' @@ -3325,8 +3343,10 @@ mock_separator: - time_remaining - status_info type: object - version: 0.0.1 + version: 1.0.0 mock_solenoid_valve: + category: + - mock_devices class: action_value_mappings: auto-is_closed: @@ -3481,6 +3501,7 @@ mock_solenoid_valve: status: str valve_status: str type: python + config_info: [] description: Mock Solenoid Valve Device handles: [] icon: '' @@ -3502,8 +3523,10 @@ mock_solenoid_valve: - status - valve_status type: object - version: 0.0.1 + version: 1.0.0 mock_stirrer: + category: + - mock_devices class: action_value_mappings: auto-emergency_stop: @@ -3749,6 +3772,7 @@ mock_stirrer: target_temperature: float temperature: float type: python + config_info: [] description: Mock Stirrer Device handles: [] icon: '' @@ -3797,8 +3821,10 @@ mock_stirrer: - max_temperature - status_info type: object - version: 0.0.1 + version: 1.0.0 mock_stirrer_new: + category: + - mock_devices class: action_value_mappings: start_stir: @@ -4279,6 +4305,7 @@ mock_stirrer_new: target_stir_speed: float vessel: str type: python + config_info: [] description: Mock Stirrer Device (Copy Version) handles: [] icon: '' @@ -4327,8 +4354,10 @@ mock_stirrer_new: - progress - status_info type: object - version: 0.0.1 + version: 1.0.0 mock_vacuum: + category: + - mock_devices class: action_value_mappings: auto-emergency_stop: @@ -4610,6 +4639,7 @@ mock_vacuum: target_vacuum: float vacuum_level: float type: python + config_info: [] description: Mock Vacuum Pump Device handles: [] icon: '' @@ -4652,4 +4682,4 @@ mock_vacuum: - max_pump_speed - status_info type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/moveit_config.yaml b/unilabos/registry/devices/moveit_config.yaml index 3823524..eafa522 100644 --- a/unilabos/registry/devices/moveit_config.yaml +++ b/unilabos/registry/devices/moveit_config.yaml @@ -1,4 +1,6 @@ moveit.arm_slider: + category: + - moveit_config class: action_value_mappings: auto-check_tf_update_actions: @@ -321,6 +323,7 @@ moveit.arm_slider: module: unilabos.devices.ros_dev.moveit_interface:MoveitInterface status_types: {} type: python + config_info: [] description: 机械臂与滑块运动系统,基于MoveIt2运动规划框架的多自由度机械臂控制设备。该系统集成机械臂和线性滑块,通过ROS2和MoveIt2实现精确的轨迹规划和协调运动控制。支持笛卡尔空间和关节空间的运动规划、碰撞检测、逆运动学求解等功能。适用于复杂的pick-and-place操作、精密装配、多工位协作等需要高精度多轴协调运动的实验室自动化应用。 handles: [] icon: '' @@ -346,8 +349,10 @@ moveit.arm_slider: model: mesh: arm_slider type: device - version: 0.0.1 + version: 1.0.0 moveit.toyo_xyz: + category: + - moveit_config class: action_value_mappings: auto-check_tf_update_actions: @@ -670,6 +675,7 @@ moveit.toyo_xyz: module: unilabos.devices.ros_dev.moveit_interface:MoveitInterface status_types: {} type: python + config_info: [] description: 东洋XYZ三轴运动平台,基于MoveIt2运动规划框架的精密定位设备。该设备通过ROS2和MoveIt2实现三维空间的精确运动控制,支持复杂轨迹规划、多点定位、速度控制等功能。具备高精度定位、平稳运动、实时轨迹监控等特性。适用于精密加工、样品定位、检测扫描、自动化装配等需要高精度三维运动控制的实验室和工业应用场景。 handles: [] icon: '' @@ -695,4 +701,4 @@ moveit.toyo_xyz: model: mesh: toyo_xyz type: device - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/organic_miscellaneous.yaml b/unilabos/registry/devices/organic_miscellaneous.yaml index 8ae8418..c3e4aa2 100644 --- a/unilabos/registry/devices/organic_miscellaneous.yaml +++ b/unilabos/registry/devices/organic_miscellaneous.yaml @@ -1,4 +1,6 @@ rotavap.one: + category: + - organic_miscellaneous class: action_value_mappings: auto-cmd_write: @@ -140,6 +142,7 @@ rotavap.one: module: unilabos.devices.rotavap.rotavap_one:RotavapOne status_types: {} type: python + config_info: [] description: 旋转蒸发仪设备,用于有机化学实验中的溶剂回收和浓缩操作。该设备通过串口通信控制,集成旋转和真空泵功能,支持定时控制和自动化操作。具备旋转速度调节、真空度控制、温度管理等功能,实现高效的溶剂蒸发和回收。适用于有机合成、天然产物提取、药物制备等需要溶剂去除和浓缩的实验室应用场景。 handles: [] icon: '' @@ -158,8 +161,10 @@ rotavap.one: properties: {} required: [] type: object - version: 0.0.1 + version: 1.0.0 separator.homemade: + category: + - organic_miscellaneous class: action_value_mappings: auto-read_sensor_loop: @@ -446,6 +451,7 @@ separator.homemade: module: unilabos.devices.separator.homemade_grbl_conductivity:SeparatorController status_types: {} type: python + config_info: [] description: 液-液分离器设备,基于自制Grbl控制器的自动化分离系统。该设备集成搅拌、沉降、阀门控制和电导率传感器,通过串口通信实现精确的分离操作控制。支持自动搅拌、分层沉降、基于传感器反馈的智能分液等功能。适用于有机化学中的萃取分离、相分离、液-液提取等需要精确分离控制的实验应用。 handles: [] icon: '' @@ -470,4 +476,4 @@ separator.homemade: properties: {} required: [] type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/pump_and_valve.yaml b/unilabos/registry/devices/pump_and_valve.yaml index 8d13551..7dcfa75 100644 --- a/unilabos/registry/devices/pump_and_valve.yaml +++ b/unilabos/registry/devices/pump_and_valve.yaml @@ -1,4 +1,6 @@ solenoid_valve: + category: + - pump_and_valve class: action_value_mappings: auto-close: @@ -170,6 +172,7 @@ solenoid_valve: status: str valve_position: str type: python + config_info: [] description: 电磁阀控制设备,用于精确的流体路径控制和开关操作。该设备通过串口通信控制电磁阀的开关状态,支持远程操作和状态监测。具备快速响应、可靠密封、状态反馈等特性,广泛应用于流体输送、样品进样、路径切换等需要精确流体控制的实验室自动化应用。 handles: [] icon: '' @@ -191,8 +194,10 @@ solenoid_valve: - status - valve_position type: object - version: 0.0.1 + version: 1.0.0 solenoid_valve.mock: + category: + - pump_and_valve class: action_value_mappings: auto-is_closed: @@ -328,6 +333,7 @@ solenoid_valve.mock: status: str valve_position: str type: python + config_info: [] description: 模拟电磁阀设备,用于系统测试和开发调试。该设备模拟真实电磁阀的开关操作和状态变化,提供与实际设备相同的控制接口和反馈机制。支持流体路径的虚拟控制,便于在没有实际硬件的情况下进行流体系统的集成测试和算法验证。适用于系统开发、流程调试和培训演示等场景。 handles: - data_type: fluid @@ -359,8 +365,10 @@ solenoid_valve.mock: - status - valve_position type: object - version: 0.0.1 + version: 1.0.0 syringe_pump_with_valve.runze: + category: + - pump_and_valve class: action_value_mappings: auto-close: @@ -754,6 +762,7 @@ syringe_pump_with_valve.runze: velocity_grade: String velocity_init: String type: python + config_info: [] description: 润泽精密注射泵设备,集成阀门控制的高精度流体输送系统。该设备通过串口通信控制,支持多种运行模式和精确的体积控制。具备可变速度控制、精密定位、阀门切换、实时状态监控等功能。适用于微量液体输送、精密进样、流速控制、化学反应进料等需要高精度流体操作的实验室自动化应用。 handles: [] icon: '' @@ -804,4 +813,4 @@ syringe_pump_with_valve.runze: - position - plunger_position type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/robot_agv.yaml b/unilabos/registry/devices/robot_agv.yaml index d947de6..be4aa6c 100644 --- a/unilabos/registry/devices/robot_agv.yaml +++ b/unilabos/registry/devices/robot_agv.yaml @@ -1,4 +1,6 @@ agv.SEER: + category: + - robot_agv class: action_value_mappings: auto-send: @@ -82,6 +84,7 @@ agv.SEER: pose: list status: str type: python + config_info: [] description: SEER AGV自动导引车设备,用于实验室内物料和设备的自主移动运输。该AGV通过TCP socket与导航系统通信,具备精确的定位和路径规划能力。支持实时位置监控、状态查询和导航任务执行,可在预设的实验室环境中自主移动至指定位置。适用于样品运输、设备转移、多工位协作等实验室自动化物流场景。 handles: [] icon: '' @@ -103,4 +106,4 @@ agv.SEER: - pose - status type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/robot_arm.yaml b/unilabos/registry/devices/robot_arm.yaml index 82fa0dd..e9bc94f 100644 --- a/unilabos/registry/devices/robot_arm.yaml +++ b/unilabos/registry/devices/robot_arm.yaml @@ -1,4 +1,6 @@ robotic_arm.UR: + category: + - robot_arm class: action_value_mappings: auto-arm_init: @@ -140,6 +142,7 @@ robotic_arm.UR: gripper_pose: float gripper_status: str type: python + config_info: [] description: Universal Robots机械臂设备,用于实验室精密操作和自动化作业。该设备集成了UR机械臂本体、Robotiq夹爪和RTDE通信接口,支持六自由度精确运动控制和力觉反馈。具备实时位置监控、状态反馈、轨迹规划等功能,可执行复杂的多点位运动任务。适用于样品抓取、精密装配、实验器具操作等需要高精度和高重复性的实验室自动化场景。 handles: [] icon: '' @@ -170,4 +173,4 @@ robotic_arm.UR: - arm_status - gripper_status type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/robot_gripper.yaml b/unilabos/registry/devices/robot_gripper.yaml index 383bcff..2a2ccce 100644 --- a/unilabos/registry/devices/robot_gripper.yaml +++ b/unilabos/registry/devices/robot_gripper.yaml @@ -1,4 +1,6 @@ gripper.misumi_rz: + category: + - robot_gripper class: action_value_mappings: auto-data_loop: @@ -417,6 +419,7 @@ gripper.misumi_rz: status_types: status: str type: python + config_info: [] description: Misumi RZ系列电子夹爪设备,集成旋转和抓取双重功能的精密夹爪系统。该设备通过Modbus RTU协议与控制系统通信,支持位置、速度、力矩的精确控制。具备高精度的位置反馈、实时状态监控和故障检测功能。适用于需要精密抓取和旋转操作的实验室自动化场景,如样品管理、精密装配、器件操作等应用。 handles: [] icon: '' @@ -444,8 +447,10 @@ gripper.misumi_rz: required: - status type: object - version: 0.0.1 + version: 1.0.0 gripper.mock: + category: + - robot_gripper class: action_value_mappings: auto-edit_id: @@ -563,6 +568,7 @@ gripper.mock: torque: float velocity: float type: python + config_info: [] description: 模拟夹爪设备,用于系统测试和开发调试。该设备模拟真实夹爪的位置、速度、力矩等物理特性,支持虚拟的抓取和移动操作。提供与真实夹爪相同的接口和状态反馈,便于在没有实际硬件的情况下进行系统集成测试和算法验证。适用于软件开发、系统调试和培训演示等场景。 handles: [] icon: '' @@ -587,4 +593,4 @@ gripper.mock: - torque - status type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/robot_linear_motion.yaml b/unilabos/registry/devices/robot_linear_motion.yaml index c33cace..3ca4e9a 100644 --- a/unilabos/registry/devices/robot_linear_motion.yaml +++ b/unilabos/registry/devices/robot_linear_motion.yaml @@ -1,4 +1,6 @@ linear_motion.grbl: + category: + - robot_linear_motion class: action_value_mappings: auto-initialize: @@ -430,6 +432,7 @@ linear_motion.grbl: spindle_speed: float status: str type: python + config_info: [] description: Grbl数控机床(CNC)设备,用于实验室精密加工和三轴定位操作。该设备基于Grbl固件,通过串口通信控制步进电机实现X、Y、Z三轴的精确运动。支持绝对定位、轨迹规划、主轴控制和实时状态监控。具备安全限位保护和运动平滑控制功能。适用于精密钻孔、铣削、雕刻、样品制备等需要高精度定位和加工的实验室应用场景。 handles: [] icon: '' @@ -466,8 +469,10 @@ linear_motion.grbl: - position - spindle_speed type: object - version: 0.0.1 + version: 1.0.0 motor.iCL42: + category: + - robot_linear_motion class: action_value_mappings: auto-execute_run_motor: @@ -604,6 +609,7 @@ motor.iCL42: motor_position: int success: bool type: python + config_info: [] description: iCL42步进电机驱动器,用于实验室设备的精密线性运动控制。该设备通过串口通信控制iCL42型步进电机驱动器,支持多种运动模式和精确的位置、速度控制。具备位置反馈、运行状态监控和故障检测功能。适用于自动进样器、样品传送、精密定位平台等需要准确线性运动控制的实验室自动化设备。 handles: [] icon: '' @@ -631,4 +637,4 @@ motor.iCL42: - is_executing_run - success type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/sim_nodes.yaml b/unilabos/registry/devices/sim_nodes.yaml index 4476a02..f07966b 100644 --- a/unilabos/registry/devices/sim_nodes.yaml +++ b/unilabos/registry/devices/sim_nodes.yaml @@ -1,4 +1,6 @@ lh_joint_publisher: + category: + - sim_nodes class: action_value_mappings: auto-check_tf_update_actions: @@ -285,6 +287,7 @@ lh_joint_publisher: module: unilabos.devices.ros_dev.liquid_handler_joint_publisher:LiquidHandlerJointPublisher status_types: {} type: ros2 + config_info: [] description: 液体处理器关节发布器,用于ROS2仿真系统中的液体处理设备运动控制。该节点通过发布关节状态驱动仿真模型中的机械臂运动,支持三维坐标到关节空间的逆运动学转换、多关节协调控制、资源跟踪和TF变换。具备精确的位置控制、速度调节、pick-and-place操作等功能。适用于液体处理系统的虚拟仿真、运动规划验证、系统集成测试等应用场景。 handles: [] icon: '' @@ -309,4 +312,4 @@ lh_joint_publisher: properties: {} required: [] type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/temperature.yaml b/unilabos/registry/devices/temperature.yaml index d09834d..95bdeed 100644 --- a/unilabos/registry/devices/temperature.yaml +++ b/unilabos/registry/devices/temperature.yaml @@ -1,4 +1,6 @@ chiller: + category: + - temperature class: action_value_mappings: auto-build_modbus_frame: @@ -156,6 +158,7 @@ chiller: module: unilabos.devices.temperature.chiller:Chiller status_types: {} type: python + config_info: [] description: 实验室制冷设备,用于精确的温度控制和冷却操作。该设备通过Modbus RTU协议与控制系统通信,支持精确的温度设定和监控。具备快速降温、恒温控制和温度保持功能,广泛应用于需要低温环境的化学反应、样品保存、结晶操作等实验场景。提供稳定可靠的冷却性能,确保实验过程的温度精度。 handles: [] icon: '' @@ -174,8 +177,10 @@ chiller: properties: {} required: [] type: object - version: 0.0.1 + version: 1.0.0 heaterstirrer.dalong: + category: + - temperature class: action_value_mappings: auto-close: @@ -523,6 +528,7 @@ heaterstirrer.dalong: temp_target: float temp_warning: float type: python + config_info: [] description: 大龙加热搅拌器,集成加热和搅拌双重功能的实验室设备。该设备通过串口通信控制,支持精确的温度调节、搅拌速度控制和安全保护功能。具备实时温度监测、目标温度设定、安全温度报警等特性。适用于化学合成、样品制备、反应控制等需要同时进行加热和搅拌的实验操作,提供稳定均匀的反应环境。 handles: [] icon: '' @@ -559,8 +565,10 @@ heaterstirrer.dalong: - temp_warning - temp_target type: object - version: 0.0.1 + version: 1.0.0 tempsensor: + category: + - temperature class: action_value_mappings: auto-build_modbus_request: @@ -719,6 +727,7 @@ tempsensor: status_types: value: float type: python + config_info: [] description: 高精度温度传感器设备,用于实验室环境和设备的温度监测。该传感器通过Modbus RTU协议与控制系统通信,提供实时准确的温度数据。具备高精度测量、报警温度设定、数据稳定性好等特点。适用于反应器监控、环境温度监测、设备保护等需要精确温度测量的实验场景,为实验安全和数据可靠性提供保障。 handles: [] icon: '' @@ -746,4 +755,4 @@ tempsensor: required: - value type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/vacuum_and_purge.yaml b/unilabos/registry/devices/vacuum_and_purge.yaml index 85aefdc..a127a08 100644 --- a/unilabos/registry/devices/vacuum_and_purge.yaml +++ b/unilabos/registry/devices/vacuum_and_purge.yaml @@ -1,4 +1,6 @@ gas_source.mock: + category: + - vacuum_and_purge class: action_value_mappings: auto-is_closed: @@ -149,6 +151,7 @@ gas_source.mock: status_types: status: str type: python + config_info: [] description: 模拟气体源设备,用于系统测试和开发调试。该设备模拟真实气体源的开关控制和状态监测功能,支持气体供应的启停操作。提供与真实气体源相同的接口和状态反馈,便于在没有实际硬件的情况下进行系统集成测试和算法验证。适用于气路系统调试、软件开发和实验流程验证等场景。 handles: - data_key: fluid_out @@ -173,8 +176,10 @@ gas_source.mock: required: - status type: object - version: 0.0.1 + version: 1.0.0 vacuum_pump.mock: + category: + - vacuum_and_purge class: action_value_mappings: auto-is_closed: @@ -325,6 +330,7 @@ vacuum_pump.mock: status_types: status: str type: python + config_info: [] description: 模拟真空泵设备,用于系统测试和开发调试。该设备模拟真实真空泵的抽气功能和状态控制,支持真空系统的启停操作和状态监测。提供与真实真空泵相同的接口和控制逻辑,便于在没有实际硬件的情况下进行真空系统的集成测试。适用于真空工艺调试、软件开发和实验流程验证等场景。 handles: - data_key: fluid_in @@ -349,4 +355,4 @@ vacuum_pump.mock: required: - status type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/virtual_device.yaml b/unilabos/registry/devices/virtual_device.yaml index 73a5901..572456a 100644 --- a/unilabos/registry/devices/virtual_device.yaml +++ b/unilabos/registry/devices/virtual_device.yaml @@ -1,4 +1,6 @@ virtual_centrifuge: + category: + - virtual_device class: action_value_mappings: auto-cleanup: @@ -222,6 +224,7 @@ virtual_centrifuge: target_temp: float time_remaining: float type: python + config_info: [] description: Virtual Centrifuge for CentrifugeProtocol Testing handles: - data_key: vessel @@ -282,8 +285,10 @@ virtual_centrifuge: - progress - message type: object - version: 0.0.1 + version: 1.0.0 virtual_column: + category: + - virtual_device class: action_value_mappings: auto-cleanup: @@ -609,6 +614,7 @@ virtual_column: progress: float status: str type: python + config_info: [] description: Virtual Column Chromatography Device for RunColumn Protocol Testing handles: - data_key: from_vessel @@ -674,8 +680,10 @@ virtual_column: - current_phase - final_volume type: object - version: 0.0.1 + version: 1.0.0 virtual_filter: + category: + - virtual_device class: action_value_mappings: auto-cleanup: @@ -1002,6 +1010,7 @@ virtual_filter: progress: float status: str type: python + config_info: [] description: Virtual Filter for FilterProtocol Testing handles: - data_key: vessel_in @@ -1069,8 +1078,10 @@ virtual_filter: - max_stir_speed - max_volume type: object - version: 0.0.1 + version: 1.0.0 virtual_gas_source: + category: + - virtual_device class: action_value_mappings: auto-cleanup: @@ -1261,6 +1272,7 @@ virtual_gas_source: status_types: status: str type: python + config_info: [] description: Virtual gas source handles: - data_key: fluid_out @@ -1288,8 +1300,10 @@ virtual_gas_source: required: - status type: object - version: 0.0.1 + version: 1.0.0 virtual_heatchill: + category: + - virtual_device class: action_value_mappings: auto-cleanup: @@ -1803,6 +1817,7 @@ virtual_heatchill: status: str stir_speed: float type: python + config_info: [] description: Virtual HeatChill for HeatChillProtocol Testing handles: - data_key: vessel @@ -1854,8 +1869,10 @@ virtual_heatchill: - min_temp - max_stir_speed type: object - version: 0.0.1 + version: 1.0.0 virtual_multiway_valve: + category: + - virtual_device class: action_value_mappings: auto-close: @@ -2155,6 +2172,7 @@ virtual_multiway_valve: valve_position: int valve_state: str type: python + config_info: [] description: Virtual 8-Way Valve for flow direction control handles: - data_key: fluid_in @@ -2275,8 +2293,10 @@ virtual_multiway_valve: - flow_path - info type: object - version: 0.0.1 + version: 1.0.0 virtual_pump: + category: + - virtual_device class: action_value_mappings: auto-clean_vessel: @@ -2741,6 +2761,7 @@ virtual_pump: transferred_volume: float valve_position: int type: python + config_info: [] description: Virtual Pump for PumpTransferProtocol Testing handles: - data_key: fluid_in @@ -2794,8 +2815,10 @@ virtual_pump: - transferred_volume - current_status type: object - version: 0.0.1 + version: 1.0.0 virtual_rotavap: + category: + - virtual_device class: action_value_mappings: auto-cleanup: @@ -3048,6 +3071,7 @@ virtual_rotavap: status: str vacuum_pressure: float type: python + config_info: [] description: Virtual Rotary Evaporator for EvaporateProtocol Testing handles: - data_key: vessel_in @@ -3121,8 +3145,10 @@ virtual_rotavap: - max_rotation_speed - remaining_time type: object - version: 0.0.1 + version: 1.0.0 virtual_separator: + category: + - virtual_device class: action_value_mappings: auto-cleanup: @@ -3938,6 +3964,7 @@ virtual_separator: stir_speed: float volume: float type: python + config_info: [] description: Virtual Separator for SeparateProtocol Testing handles: - data_key: from_vessel @@ -4013,8 +4040,10 @@ virtual_separator: - progress - message type: object - version: 0.0.1 + version: 1.0.0 virtual_solenoid_valve: + category: + - virtual_device class: action_value_mappings: auto-cleanup: @@ -4277,6 +4306,7 @@ virtual_solenoid_valve: valve_position: str valve_state: str type: python + config_info: [] description: Virtual Solenoid Valve for simple on/off flow control handles: - data_key: fluid_port_in @@ -4324,8 +4354,10 @@ virtual_solenoid_valve: - valve_position - state type: object - version: 0.0.1 + version: 1.0.0 virtual_solid_dispenser: + category: + - virtual_device class: action_value_mappings: add_solid: @@ -4656,6 +4688,7 @@ virtual_solid_dispenser: status: str total_operations: int type: python + config_info: [] description: Virtual Solid Dispenser for Add Protocol Testing - supports mass and molar additions handles: @@ -4704,8 +4737,10 @@ virtual_solid_dispenser: - total_operations - device_info type: object - version: 0.0.1 + version: 1.0.0 virtual_stirrer: + category: + - virtual_device class: action_value_mappings: auto-cleanup: @@ -5219,6 +5254,7 @@ virtual_stirrer: remaining_time: float status: str type: python + config_info: [] description: Virtual Stirrer for StirProtocol Testing handles: - data_key: vessel @@ -5270,8 +5306,10 @@ virtual_stirrer: - min_speed - device_info type: object - version: 0.0.1 + version: 1.0.0 virtual_transfer_pump: + category: + - virtual_device class: action_value_mappings: auto-aspirate: @@ -5728,6 +5766,7 @@ virtual_transfer_pump: status: str transfer_rate: float type: python + config_info: [] description: Virtual Transfer Pump for TransferProtocol Testing (Syringe-style) handles: - data_key: fluid_port @@ -5773,8 +5812,10 @@ virtual_transfer_pump: - remaining_capacity - pump_info type: object - version: 0.0.1 + version: 1.0.0 virtual_vacuum_pump: + category: + - virtual_device class: action_value_mappings: auto-cleanup: @@ -5965,6 +6006,7 @@ virtual_vacuum_pump: status_types: status: str type: python + config_info: [] description: Virtual vacuum pump handles: - data_key: fluid_in @@ -5992,4 +6034,4 @@ virtual_vacuum_pump: required: - status type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/work_station.yaml b/unilabos/registry/devices/work_station.yaml index e9f33bb..7e861f5 100644 --- a/unilabos/registry/devices/work_station.yaml +++ b/unilabos/registry/devices/work_station.yaml @@ -1,4 +1,6 @@ workstation: + category: + - work_station class: action_value_mappings: AGVTransferProtocol: @@ -6033,6 +6035,7 @@ workstation: module: unilabos.ros.nodes.presets.protocol_node:ROS2ProtocolNode status_types: {} type: ros2 + config_info: [] description: Workstation handles: [] icon: '' @@ -6057,4 +6060,4 @@ workstation: properties: {} required: [] type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/devices/zhida_hplc.yaml b/unilabos/registry/devices/zhida_hplc.yaml index dc1e013..ade1c0f 100644 --- a/unilabos/registry/devices/zhida_hplc.yaml +++ b/unilabos/registry/devices/zhida_hplc.yaml @@ -1,4 +1,6 @@ zhida_hplc: + category: + - zhida_hplc class: action_value_mappings: abort: @@ -150,6 +152,7 @@ zhida_hplc: methods: dict status: dict type: python + config_info: [] description: 智达高效液相色谱(HPLC)分析设备,用于实验室样品的分离、检测和定量分析。该设备通过TCP socket与HPLC控制系统通信,支持远程控制和状态监控。具备自动进样、梯度洗脱、多检测器数据采集等功能,可执行复杂的色谱分析方法。适用于化学分析、药物检测、环境监测、生物样品分析等需要高精度分离分析的实验室应用场景。 handles: [] icon: '' @@ -177,4 +180,4 @@ zhida_hplc: - status - methods type: object - version: 0.0.1 + version: 1.0.0 diff --git a/unilabos/registry/registry.py b/unilabos/registry/registry.py index 36dd6b7..87793a0 100644 --- a/unilabos/registry/registry.py +++ b/unilabos/registry/registry.py @@ -12,7 +12,7 @@ import yaml from unilabos.ros.msgs.message_converter import msg_converter_manager, ros_action_to_json_schema, String from unilabos.utils import logger from unilabos.utils.decorator import singleton -from unilabos.utils.import_manager import get_enhanced_class_info +from unilabos.utils.import_manager import get_enhanced_class_info, get_class from unilabos.utils.type_check import NoAliasDumper DEFAULT_PATHS = [Path(__file__).absolute().parent] @@ -119,7 +119,7 @@ class Registry: }, }, }, - "version": "0.0.1", + "version": "1.0.0", "icon": "icon_device.webp", "registry_type": "device", "handles": [], @@ -153,14 +153,29 @@ class Registry: # 为每个资源添加文件路径信息 for resource_id, resource_info in data.items(): resource_info["file_path"] = str(file.absolute()).replace("\\", "/") - if "description" not in resource_info: - resource_info["description"] = "" + if "version" not in resource_info: + resource_info["version"] = "1.0.0" + if "category" not in resource_info: + resource_info["category"] = [file.stem] + elif file.stem not in resource_info["category"]: + resource_info["category"].append(file.stem) + if "config_info" not in resource_info: + resource_info["config_info"] = [] if "icon" not in resource_info: resource_info["icon"] = "" if "handles" not in resource_info: resource_info["handles"] = [] if "init_param_schema" not in resource_info: resource_info["init_param_schema"] = {} + if complete_registry: + class_info = resource_info.get("class", {}) + if len(class_info) and "module" in class_info: + if class_info.get("type") == "pylabrobot": + res_class = get_class(class_info["module"]) + if callable(res_class) and not isinstance(res_class, type): # 有的是类,有的是函数,这里暂时只登记函数类的 + res_instance = res_class(res_class.__name__) + + print(res_instance) resource_info["registry_type"] = "resource" self.resource_type_registry.update(data) logger.debug( @@ -345,7 +360,7 @@ class Registry: } def load_device_types(self, path: os.PathLike, complete_registry: bool): - return + # return abs_path = Path(path).absolute() devices_path = abs_path / "devices" device_comms_path = abs_path / "device_comms" @@ -371,7 +386,13 @@ class Registry: for device_id, device_config in data.items(): # 添加文件路径信息 - 使用规范化的完整文件路径 if "version" not in device_config: - device_config["version"] = "0.0.1" + device_config["version"] = "1.0.0" + if "category" not in device_config: + device_config["category"] = [file.stem] + elif file.stem not in device_config["category"]: + device_config["category"].append(file.stem) + if "config_info" not in device_config: + device_config["config_info"] = [] if "description" not in device_config: device_config["description"] = "" if "icon" not in device_config: