Initial commit

This commit is contained in:
Junhan Chang
2025-04-17 15:19:47 +08:00
parent a47a3f5c3a
commit c78ac482d8
262 changed files with 39871 additions and 0 deletions

View 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