mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-17 21:11:12 +00:00
Initial commit
This commit is contained in:
138
unilabos/resources/registry.py
Normal file
138
unilabos/resources/registry.py
Normal file
@@ -0,0 +1,138 @@
|
||||
import sys
|
||||
|
||||
|
||||
resource_schema = {
|
||||
"workstation": {"type": "object", "properties": {}},
|
||||
"work_station.aichemeco_hiwo": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"status": {"type": "string", "description": "设备状态"},
|
||||
"tasks": {"type": "string", "description": "任务列表"},
|
||||
}
|
||||
},
|
||||
"work_station.revvity": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"status": {"type": "string", "description": "设备状态"},
|
||||
"tasks": {"type": "string", "description": "任务列表"},
|
||||
}
|
||||
},
|
||||
"syringepump.runze": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"max_velocity": {"type": "number", "description": "活塞最大速度"},
|
||||
"position": {"type": "number", "description": "活塞当前位置"},
|
||||
"status": {"type": "string", "description": "设备状态"},
|
||||
"valve_position": {"type": "string", "description": "阀门当前位置"},
|
||||
},
|
||||
"required": ["max_velocity", "position", "status", "valve_position"],
|
||||
},
|
||||
"heaterstirrer.dalong": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"stir_speed": {"type": "number", "description": "搅拌器转速"},
|
||||
"temp": {"type": "number", "description": "搅拌器温度"},
|
||||
"temp_target": {"type": "number", "description": "搅拌器温度目标值"},
|
||||
"temp_warning": {"type": "number", "description": "搅拌器温度警告值"},
|
||||
},
|
||||
"required": ["temp"],
|
||||
},
|
||||
"separator_controller": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"sensordata": {"type": "number", "description": "电导传感器数据"},
|
||||
"status": {"type": "string", "description": "设备状态"},
|
||||
},
|
||||
"required": ["sensordata", "status"],
|
||||
},
|
||||
"rotavap": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"temperature": {"type": "number", "description": "蒸发器温度"},
|
||||
"rotate_time": {"type": "number", "description": "蒸发器转速"},
|
||||
"status": {"type": "string", "description": "设备状态"},
|
||||
},
|
||||
"required": ["temperature", "rotate_time", "status"],
|
||||
},
|
||||
"container": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"liquid": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"liquid_type": {"type": "string"},
|
||||
"liquid_volume": {"type": "number"},
|
||||
},
|
||||
},
|
||||
},
|
||||
"max_volume": {
|
||||
"type": "number",
|
||||
},
|
||||
},
|
||||
},
|
||||
"plate": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"layout": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"gridCount": "number",
|
||||
"gridColumnNumber": "number"
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
"serial": None,
|
||||
"gripper.mock": None,
|
||||
"solenoid_valve.mock": None,
|
||||
"vacuum_pump.mock": None,
|
||||
"gas_source.mock": None,
|
||||
"zhixing_agv": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
||||
"status": {"type": "string", "description": "设备状态"},
|
||||
},
|
||||
"required": ["status"],
|
||||
},
|
||||
"zhixing_ur_arm": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"arm_status": {"type": "string", "description": "机械臂设备状态"},
|
||||
"gripper_status": {"type": "string", "description": "夹爪设备状态"},
|
||||
},
|
||||
"required": ["arm_status"],
|
||||
},
|
||||
"hplc": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"device_status": {"type": "string", "description": "机械臂设备状态"},
|
||||
"could_run": {"type": "bool", "description": "机械臂设备状态"},
|
||||
"driver_init_ok": {"type": "bool", "description": "机械臂设备状态"},
|
||||
"is_running": {"type": "bool", "description": "机械臂设备状态"},
|
||||
"finish_status": {"type": "string", "description": "机械臂设备状态"},
|
||||
"status_text": {"type": "string", "description": "机械臂设备状态"}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def add_schema(resources_config: list[dict]) -> list[dict]:
|
||||
for resource in resources_config:
|
||||
if "type" not in resource:
|
||||
resource["type"] = str(resource["class"])
|
||||
if resource["type"].lower() == "container":
|
||||
resource["schema"] = resource_schema["container"]
|
||||
elif resource["type"].lower() == "device":
|
||||
resource["schema"] = resource_schema.get(resource["class"], None)
|
||||
|
||||
if len(resource["children"]) > 0:
|
||||
try:
|
||||
if type(resource["children"][0]) == dict:
|
||||
resource["children"] = add_schema(resource["children"])
|
||||
except:
|
||||
sys.exit(0)
|
||||
|
||||
return resources_config
|
||||
Reference in New Issue
Block a user