mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2026-02-05 14:05:12 +00:00
fix bugs from new actions
This commit is contained in:
@@ -247,6 +247,142 @@ def generate_heat_chill_protocol(
|
|||||||
|
|
||||||
return action_sequence
|
return action_sequence
|
||||||
|
|
||||||
|
|
||||||
|
def generate_heat_chill_to_temp_protocol(
|
||||||
|
G: nx.DiGraph,
|
||||||
|
vessel: str,
|
||||||
|
temp: float = 25.0,
|
||||||
|
time: float = 300.0,
|
||||||
|
temp_spec: str = "",
|
||||||
|
time_spec: str = "",
|
||||||
|
pressure: str = "",
|
||||||
|
reflux_solvent: str = "",
|
||||||
|
stir: bool = False,
|
||||||
|
stir_speed: float = 300.0,
|
||||||
|
purpose: str = "",
|
||||||
|
**kwargs # 🔧 接受额外参数,增强兼容性
|
||||||
|
) -> List[Dict[str, Any]]:
|
||||||
|
"""
|
||||||
|
生成加热/冷却操作的协议序列
|
||||||
|
|
||||||
|
Args:
|
||||||
|
G: 设备图
|
||||||
|
vessel: 加热容器名称(必需)
|
||||||
|
temp: 目标温度 (°C)
|
||||||
|
time: 加热时间 (秒)
|
||||||
|
temp_spec: 温度规格(如 'room temperature', 'reflux')
|
||||||
|
time_spec: 时间规格(如 'overnight', '2 h')
|
||||||
|
pressure: 压力规格(如 '1 mbar'),不做特殊处理
|
||||||
|
reflux_solvent: 回流溶剂名称,不做特殊处理
|
||||||
|
stir: 是否搅拌
|
||||||
|
stir_speed: 搅拌速度 (RPM)
|
||||||
|
purpose: 操作目的
|
||||||
|
**kwargs: 其他参数(兼容性)
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
List[Dict[str, Any]]: 加热操作的动作序列
|
||||||
|
"""
|
||||||
|
|
||||||
|
debug_print("=" * 50)
|
||||||
|
debug_print("开始生成加热冷却协议")
|
||||||
|
debug_print(f"输入参数:")
|
||||||
|
debug_print(f" - vessel: {vessel}")
|
||||||
|
debug_print(f" - temp: {temp}°C")
|
||||||
|
debug_print(f" - time: {time}s ({time / 60:.1f}分钟)")
|
||||||
|
debug_print(f" - temp_spec: {temp_spec}")
|
||||||
|
debug_print(f" - time_spec: {time_spec}")
|
||||||
|
debug_print(f" - pressure: {pressure}")
|
||||||
|
debug_print(f" - reflux_solvent: {reflux_solvent}")
|
||||||
|
debug_print(f" - stir: {stir}")
|
||||||
|
debug_print(f" - stir_speed: {stir_speed} RPM")
|
||||||
|
debug_print(f" - purpose: {purpose}")
|
||||||
|
debug_print(f" - 其他参数: {kwargs}")
|
||||||
|
debug_print("=" * 50)
|
||||||
|
|
||||||
|
action_sequence = []
|
||||||
|
|
||||||
|
# === 参数验证 ===
|
||||||
|
debug_print("步骤1: 参数验证...")
|
||||||
|
|
||||||
|
# 验证必需参数
|
||||||
|
if not vessel:
|
||||||
|
raise ValueError("vessel 参数不能为空")
|
||||||
|
|
||||||
|
if vessel not in G.nodes():
|
||||||
|
raise ValueError(f"容器 '{vessel}' 不存在于系统中")
|
||||||
|
|
||||||
|
# 温度解析:优先使用 temp_spec,然后是 temp
|
||||||
|
final_temp = temp
|
||||||
|
if temp_spec:
|
||||||
|
final_temp = parse_temp_spec(temp_spec)
|
||||||
|
debug_print(f"温度解析: '{temp_spec}' → {final_temp}°C")
|
||||||
|
|
||||||
|
# 时间解析:优先使用 time_spec,然后是 time
|
||||||
|
final_time = time
|
||||||
|
if time_spec:
|
||||||
|
final_time = parse_time_spec(time_spec)
|
||||||
|
debug_print(f"时间解析: '{time_spec}' → {final_time}s ({final_time / 60:.1f}分钟)")
|
||||||
|
|
||||||
|
# 参数范围验证
|
||||||
|
if final_temp < -50.0 or final_temp > 300.0:
|
||||||
|
debug_print(f"温度 {final_temp}°C 超出范围,修正为 25°C")
|
||||||
|
final_temp = 25.0
|
||||||
|
|
||||||
|
if final_time < 0:
|
||||||
|
debug_print(f"时间 {final_time}s 无效,修正为 300s")
|
||||||
|
final_time = 300.0
|
||||||
|
|
||||||
|
if stir_speed < 0 or stir_speed > 1500.0:
|
||||||
|
debug_print(f"搅拌速度 {stir_speed} RPM 超出范围,修正为 300 RPM")
|
||||||
|
stir_speed = 300.0
|
||||||
|
|
||||||
|
debug_print(f"✅ 参数验证通过")
|
||||||
|
|
||||||
|
# === 查找加热设备 ===
|
||||||
|
debug_print("步骤2: 查找加热设备...")
|
||||||
|
|
||||||
|
try:
|
||||||
|
heatchill_id = find_connected_heatchill(G, vessel)
|
||||||
|
debug_print(f"设备配置: 加热设备 = {heatchill_id}")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
debug_print(f"❌ 设备查找失败: {str(e)}")
|
||||||
|
raise ValueError(f"无法找到加热设备: {str(e)}")
|
||||||
|
|
||||||
|
# === 执行加热操作 ===
|
||||||
|
debug_print("步骤3: 执行加热操作...")
|
||||||
|
|
||||||
|
heatchill_action = {
|
||||||
|
"device_id": heatchill_id,
|
||||||
|
"action_name": "heat_chill",
|
||||||
|
"action_kwargs": {
|
||||||
|
"vessel": vessel,
|
||||||
|
"temp": final_temp,
|
||||||
|
"time": final_time,
|
||||||
|
"stir": stir,
|
||||||
|
"stir_speed": stir_speed,
|
||||||
|
"purpose": purpose or f"加热到 {final_temp}°C"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
action_sequence.append(heatchill_action)
|
||||||
|
|
||||||
|
# === 总结 ===
|
||||||
|
debug_print("=" * 50)
|
||||||
|
debug_print(f"加热冷却协议生成完成")
|
||||||
|
debug_print(f"总动作数: {len(action_sequence)}")
|
||||||
|
debug_print(f"加热容器: {vessel}")
|
||||||
|
debug_print(f"目标温度: {final_temp}°C")
|
||||||
|
debug_print(f"加热时间: {final_time}s ({final_time / 60:.1f}分钟)")
|
||||||
|
if pressure:
|
||||||
|
debug_print(f"压力参数: {pressure} (已接收,不做特殊处理)")
|
||||||
|
if reflux_solvent:
|
||||||
|
debug_print(f"回流溶剂: {reflux_solvent} (已接收,不做特殊处理)")
|
||||||
|
debug_print("=" * 50)
|
||||||
|
|
||||||
|
return action_sequence
|
||||||
|
|
||||||
|
|
||||||
def generate_heat_chill_start_protocol(
|
def generate_heat_chill_start_protocol(
|
||||||
G: nx.DiGraph,
|
G: nx.DiGraph,
|
||||||
vessel: str,
|
vessel: str,
|
||||||
|
|||||||
@@ -778,17 +778,17 @@ def generate_pump_protocol_with_rinsing(
|
|||||||
)
|
)
|
||||||
|
|
||||||
# 为每个动作添加唯一标识
|
# 为每个动作添加唯一标识
|
||||||
for i, action in enumerate(pump_action_sequence):
|
# for i, action in enumerate(pump_action_sequence):
|
||||||
if isinstance(action, dict):
|
# if isinstance(action, dict):
|
||||||
action['_protocol_id'] = protocol_id
|
# action['_protocol_id'] = protocol_id
|
||||||
action['_action_sequence'] = i
|
# action['_action_sequence'] = i
|
||||||
elif isinstance(action, list):
|
# elif isinstance(action, list):
|
||||||
for j, sub_action in enumerate(action):
|
# for j, sub_action in enumerate(action):
|
||||||
if isinstance(sub_action, dict):
|
# if isinstance(sub_action, dict):
|
||||||
sub_action['_protocol_id'] = protocol_id
|
# sub_action['_protocol_id'] = protocol_id
|
||||||
sub_action['_action_sequence'] = f"{i}_{j}"
|
# sub_action['_action_sequence'] = f"{i}_{j}"
|
||||||
|
#
|
||||||
debug_print(f"📊 协议 {protocol_id} 生成完成,共 {len(pump_action_sequence)} 个动作")
|
# debug_print(f"📊 协议 {protocol_id} 生成完成,共 {len(pump_action_sequence)} 个动作")
|
||||||
debug_print(f"🔓 释放执行锁")
|
debug_print(f"🔓 释放执行锁")
|
||||||
return pump_action_sequence
|
return pump_action_sequence
|
||||||
|
|
||||||
|
|||||||
@@ -372,6 +372,30 @@ class HeatChillProtocol(BaseModel):
|
|||||||
|
|
||||||
return 300.0 # 默认5分钟
|
return 300.0 # 默认5分钟
|
||||||
|
|
||||||
|
|
||||||
|
class HeatChillStartProtocol(BaseModel):
|
||||||
|
# === 必需参数 ===
|
||||||
|
vessel: str = Field(..., description="加热容器名称")
|
||||||
|
|
||||||
|
# === 可选参数 - 温度相关 ===
|
||||||
|
temp: float = Field(25.0, description="目标温度 (°C)")
|
||||||
|
temp_spec: str = Field("", description="温度规格(如 'room temperature', 'reflux')")
|
||||||
|
|
||||||
|
# === 可选参数 - 其他XDL参数 ===
|
||||||
|
pressure: str = Field("", description="压力规格(如 '1 mbar'),不做特殊处理")
|
||||||
|
reflux_solvent: str = Field("", description="回流溶剂名称,不做特殊处理")
|
||||||
|
|
||||||
|
# === 可选参数 - 搅拌相关 ===
|
||||||
|
stir: bool = Field(False, description="是否搅拌")
|
||||||
|
stir_speed: float = Field(300.0, description="搅拌速度 (RPM)")
|
||||||
|
purpose: str = Field("", description="操作目的")
|
||||||
|
|
||||||
|
|
||||||
|
class HeatChillStopProtocol(BaseModel):
|
||||||
|
# === 必需参数 ===
|
||||||
|
vessel: str = Field(..., description="加热容器名称")
|
||||||
|
|
||||||
|
|
||||||
class StirProtocol(BaseModel):
|
class StirProtocol(BaseModel):
|
||||||
# === 必需参数 ===
|
# === 必需参数 ===
|
||||||
vessel: str = Field(..., description="搅拌容器名称")
|
vessel: str = Field(..., description="搅拌容器名称")
|
||||||
@@ -608,7 +632,8 @@ __all__ = [
|
|||||||
"Point3D", "PumpTransferProtocol", "CleanProtocol", "SeparateProtocol",
|
"Point3D", "PumpTransferProtocol", "CleanProtocol", "SeparateProtocol",
|
||||||
"EvaporateProtocol", "EvacuateAndRefillProtocol", "AGVTransferProtocol",
|
"EvaporateProtocol", "EvacuateAndRefillProtocol", "AGVTransferProtocol",
|
||||||
"CentrifugeProtocol", "AddProtocol", "FilterProtocol",
|
"CentrifugeProtocol", "AddProtocol", "FilterProtocol",
|
||||||
"HeatChillProtocol", "HeatChillStartProtocol", "HeatChillStopProtocol",
|
"HeatChillProtocol",
|
||||||
|
"HeatChillStartProtocol", "HeatChillStopProtocol",
|
||||||
"StirProtocol", "StartStirProtocol", "StopStirProtocol",
|
"StirProtocol", "StartStirProtocol", "StopStirProtocol",
|
||||||
"TransferProtocol", "CleanVesselProtocol", "DissolveProtocol",
|
"TransferProtocol", "CleanVesselProtocol", "DissolveProtocol",
|
||||||
"FilterThroughProtocol", "RunColumnProtocol", "WashSolidProtocol",
|
"FilterThroughProtocol", "RunColumnProtocol", "WashSolidProtocol",
|
||||||
|
|||||||
@@ -842,11 +842,15 @@ mock_heater:
|
|||||||
time: time
|
time: time
|
||||||
vessel: vessel
|
vessel: vessel
|
||||||
goal_default:
|
goal_default:
|
||||||
|
pressure: ''
|
||||||
purpose: ''
|
purpose: ''
|
||||||
|
reflux_solvent: ''
|
||||||
stir: false
|
stir: false
|
||||||
stir_speed: 0.0
|
stir_speed: 0.0
|
||||||
temp: 0.0
|
temp: 0.0
|
||||||
|
temp_spec: ''
|
||||||
time: 0.0
|
time: 0.0
|
||||||
|
time_spec: ''
|
||||||
vessel: ''
|
vessel: ''
|
||||||
handles: []
|
handles: []
|
||||||
result:
|
result:
|
||||||
@@ -866,22 +870,34 @@ mock_heater:
|
|||||||
goal:
|
goal:
|
||||||
description: Action 目标 - 从客户端发送到服务器
|
description: Action 目标 - 从客户端发送到服务器
|
||||||
properties:
|
properties:
|
||||||
|
pressure:
|
||||||
|
type: string
|
||||||
purpose:
|
purpose:
|
||||||
type: string
|
type: string
|
||||||
|
reflux_solvent:
|
||||||
|
type: string
|
||||||
stir:
|
stir:
|
||||||
type: boolean
|
type: boolean
|
||||||
stir_speed:
|
stir_speed:
|
||||||
type: number
|
type: number
|
||||||
temp:
|
temp:
|
||||||
type: number
|
type: number
|
||||||
|
temp_spec:
|
||||||
|
type: string
|
||||||
time:
|
time:
|
||||||
type: number
|
type: number
|
||||||
|
time_spec:
|
||||||
|
type: string
|
||||||
vessel:
|
vessel:
|
||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- vessel
|
- vessel
|
||||||
- temp
|
- temp
|
||||||
- time
|
- time
|
||||||
|
- temp_spec
|
||||||
|
- time_spec
|
||||||
|
- pressure
|
||||||
|
- reflux_solvent
|
||||||
- stir
|
- stir
|
||||||
- stir_speed
|
- stir_speed
|
||||||
- purpose
|
- purpose
|
||||||
@@ -890,13 +906,16 @@ mock_heater:
|
|||||||
result:
|
result:
|
||||||
description: Action 结果 - 完成后从服务器发送到客户端
|
description: Action 结果 - 完成后从服务器发送到客户端
|
||||||
properties:
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
return_info:
|
return_info:
|
||||||
type: string
|
type: string
|
||||||
success:
|
success:
|
||||||
type: boolean
|
type: boolean
|
||||||
required:
|
required:
|
||||||
- return_info
|
|
||||||
- success
|
- success
|
||||||
|
- message
|
||||||
|
- return_info
|
||||||
title: HeatChill_Result
|
title: HeatChill_Result
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
@@ -1270,13 +1289,18 @@ mock_pump:
|
|||||||
volume: volume
|
volume: volume
|
||||||
goal_default:
|
goal_default:
|
||||||
amount: ''
|
amount: ''
|
||||||
|
event: ''
|
||||||
|
flowrate: 0.0
|
||||||
from_vessel: ''
|
from_vessel: ''
|
||||||
|
rate_spec: ''
|
||||||
rinsing_repeats: 0
|
rinsing_repeats: 0
|
||||||
rinsing_solvent: ''
|
rinsing_solvent: ''
|
||||||
rinsing_volume: 0.0
|
rinsing_volume: 0.0
|
||||||
solid: false
|
solid: false
|
||||||
|
through: ''
|
||||||
time: 0.0
|
time: 0.0
|
||||||
to_vessel: ''
|
to_vessel: ''
|
||||||
|
transfer_flowrate: 0.0
|
||||||
viscous: false
|
viscous: false
|
||||||
volume: 0.0
|
volume: 0.0
|
||||||
handles: []
|
handles: []
|
||||||
@@ -1334,8 +1358,14 @@ mock_pump:
|
|||||||
properties:
|
properties:
|
||||||
amount:
|
amount:
|
||||||
type: string
|
type: string
|
||||||
|
event:
|
||||||
|
type: string
|
||||||
|
flowrate:
|
||||||
|
type: number
|
||||||
from_vessel:
|
from_vessel:
|
||||||
type: string
|
type: string
|
||||||
|
rate_spec:
|
||||||
|
type: string
|
||||||
rinsing_repeats:
|
rinsing_repeats:
|
||||||
maximum: 2147483647
|
maximum: 2147483647
|
||||||
minimum: -2147483648
|
minimum: -2147483648
|
||||||
@@ -1346,10 +1376,14 @@ mock_pump:
|
|||||||
type: number
|
type: number
|
||||||
solid:
|
solid:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
through:
|
||||||
|
type: string
|
||||||
time:
|
time:
|
||||||
type: number
|
type: number
|
||||||
to_vessel:
|
to_vessel:
|
||||||
type: string
|
type: string
|
||||||
|
transfer_flowrate:
|
||||||
|
type: number
|
||||||
viscous:
|
viscous:
|
||||||
type: boolean
|
type: boolean
|
||||||
volume:
|
volume:
|
||||||
@@ -1365,6 +1399,11 @@ mock_pump:
|
|||||||
- rinsing_volume
|
- rinsing_volume
|
||||||
- rinsing_repeats
|
- rinsing_repeats
|
||||||
- solid
|
- solid
|
||||||
|
- flowrate
|
||||||
|
- transfer_flowrate
|
||||||
|
- rate_spec
|
||||||
|
- event
|
||||||
|
- through
|
||||||
title: PumpTransfer_Goal
|
title: PumpTransfer_Goal
|
||||||
type: object
|
type: object
|
||||||
result:
|
result:
|
||||||
@@ -2281,6 +2320,7 @@ mock_separator:
|
|||||||
goal_default:
|
goal_default:
|
||||||
from_vessel: ''
|
from_vessel: ''
|
||||||
product_phase: ''
|
product_phase: ''
|
||||||
|
product_vessel: ''
|
||||||
purpose: ''
|
purpose: ''
|
||||||
repeats: 0
|
repeats: 0
|
||||||
separation_vessel: ''
|
separation_vessel: ''
|
||||||
@@ -2291,7 +2331,10 @@ mock_separator:
|
|||||||
stir_time: 0.0
|
stir_time: 0.0
|
||||||
through: ''
|
through: ''
|
||||||
to_vessel: ''
|
to_vessel: ''
|
||||||
|
vessel: ''
|
||||||
|
volume: ''
|
||||||
waste_phase_to_vessel: ''
|
waste_phase_to_vessel: ''
|
||||||
|
waste_vessel: ''
|
||||||
handles: []
|
handles: []
|
||||||
result:
|
result:
|
||||||
success: success
|
success: success
|
||||||
@@ -2349,6 +2392,8 @@ mock_separator:
|
|||||||
type: string
|
type: string
|
||||||
product_phase:
|
product_phase:
|
||||||
type: string
|
type: string
|
||||||
|
product_vessel:
|
||||||
|
type: string
|
||||||
purpose:
|
purpose:
|
||||||
type: string
|
type: string
|
||||||
repeats:
|
repeats:
|
||||||
@@ -2371,8 +2416,14 @@ mock_separator:
|
|||||||
type: string
|
type: string
|
||||||
to_vessel:
|
to_vessel:
|
||||||
type: string
|
type: string
|
||||||
|
vessel:
|
||||||
|
type: string
|
||||||
|
volume:
|
||||||
|
type: string
|
||||||
waste_phase_to_vessel:
|
waste_phase_to_vessel:
|
||||||
type: string
|
type: string
|
||||||
|
waste_vessel:
|
||||||
|
type: string
|
||||||
required:
|
required:
|
||||||
- purpose
|
- purpose
|
||||||
- product_phase
|
- product_phase
|
||||||
@@ -2387,18 +2438,25 @@ mock_separator:
|
|||||||
- stir_time
|
- stir_time
|
||||||
- stir_speed
|
- stir_speed
|
||||||
- settling_time
|
- settling_time
|
||||||
|
- vessel
|
||||||
|
- volume
|
||||||
|
- product_vessel
|
||||||
|
- waste_vessel
|
||||||
title: Separate_Goal
|
title: Separate_Goal
|
||||||
type: object
|
type: object
|
||||||
result:
|
result:
|
||||||
description: Action 结果 - 完成后从服务器发送到客户端
|
description: Action 结果 - 完成后从服务器发送到客户端
|
||||||
properties:
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
return_info:
|
return_info:
|
||||||
type: string
|
type: string
|
||||||
success:
|
success:
|
||||||
type: boolean
|
type: boolean
|
||||||
required:
|
required:
|
||||||
- return_info
|
|
||||||
- success
|
- success
|
||||||
|
- message
|
||||||
|
- return_info
|
||||||
title: Separate_Result
|
title: Separate_Result
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
@@ -3472,9 +3530,13 @@ mock_stirrer_new:
|
|||||||
stir_speed: stir_speed
|
stir_speed: stir_speed
|
||||||
stir_time: stir_time
|
stir_time: stir_time
|
||||||
goal_default:
|
goal_default:
|
||||||
|
event: ''
|
||||||
settling_time: 0.0
|
settling_time: 0.0
|
||||||
stir_speed: 0.0
|
stir_speed: 0.0
|
||||||
stir_time: 0.0
|
stir_time: 0.0
|
||||||
|
time: ''
|
||||||
|
time_spec: ''
|
||||||
|
vessel: ''
|
||||||
handles: []
|
handles: []
|
||||||
result:
|
result:
|
||||||
success: success
|
success: success
|
||||||
@@ -3493,13 +3555,25 @@ mock_stirrer_new:
|
|||||||
goal:
|
goal:
|
||||||
description: Action 目标 - 从客户端发送到服务器
|
description: Action 目标 - 从客户端发送到服务器
|
||||||
properties:
|
properties:
|
||||||
|
event:
|
||||||
|
type: string
|
||||||
settling_time:
|
settling_time:
|
||||||
type: number
|
type: number
|
||||||
stir_speed:
|
stir_speed:
|
||||||
type: number
|
type: number
|
||||||
stir_time:
|
stir_time:
|
||||||
type: number
|
type: number
|
||||||
|
time:
|
||||||
|
type: string
|
||||||
|
time_spec:
|
||||||
|
type: string
|
||||||
|
vessel:
|
||||||
|
type: string
|
||||||
required:
|
required:
|
||||||
|
- vessel
|
||||||
|
- time
|
||||||
|
- event
|
||||||
|
- time_spec
|
||||||
- stir_time
|
- stir_time
|
||||||
- stir_speed
|
- stir_speed
|
||||||
- settling_time
|
- settling_time
|
||||||
@@ -3508,13 +3582,16 @@ mock_stirrer_new:
|
|||||||
result:
|
result:
|
||||||
description: Action 结果 - 完成后从服务器发送到客户端
|
description: Action 结果 - 完成后从服务器发送到客户端
|
||||||
properties:
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
return_info:
|
return_info:
|
||||||
type: string
|
type: string
|
||||||
success:
|
success:
|
||||||
type: boolean
|
type: boolean
|
||||||
required:
|
required:
|
||||||
- return_info
|
|
||||||
- success
|
- success
|
||||||
|
- message
|
||||||
|
- return_info
|
||||||
title: Stir_Result
|
title: Stir_Result
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
|
|||||||
@@ -324,9 +324,13 @@ separator.homemade:
|
|||||||
stir_speed: stir_speed
|
stir_speed: stir_speed
|
||||||
stir_time: stir_time,
|
stir_time: stir_time,
|
||||||
goal_default:
|
goal_default:
|
||||||
|
event: ''
|
||||||
settling_time: 0.0
|
settling_time: 0.0
|
||||||
stir_speed: 0.0
|
stir_speed: 0.0
|
||||||
stir_time: 0.0
|
stir_time: 0.0
|
||||||
|
time: ''
|
||||||
|
time_spec: ''
|
||||||
|
vessel: ''
|
||||||
handles: []
|
handles: []
|
||||||
result:
|
result:
|
||||||
success: success
|
success: success
|
||||||
@@ -345,13 +349,25 @@ separator.homemade:
|
|||||||
goal:
|
goal:
|
||||||
description: Action 目标 - 从客户端发送到服务器
|
description: Action 目标 - 从客户端发送到服务器
|
||||||
properties:
|
properties:
|
||||||
|
event:
|
||||||
|
type: string
|
||||||
settling_time:
|
settling_time:
|
||||||
type: number
|
type: number
|
||||||
stir_speed:
|
stir_speed:
|
||||||
type: number
|
type: number
|
||||||
stir_time:
|
stir_time:
|
||||||
type: number
|
type: number
|
||||||
|
time:
|
||||||
|
type: string
|
||||||
|
time_spec:
|
||||||
|
type: string
|
||||||
|
vessel:
|
||||||
|
type: string
|
||||||
required:
|
required:
|
||||||
|
- vessel
|
||||||
|
- time
|
||||||
|
- event
|
||||||
|
- time_spec
|
||||||
- stir_time
|
- stir_time
|
||||||
- stir_speed
|
- stir_speed
|
||||||
- settling_time
|
- settling_time
|
||||||
@@ -360,13 +376,16 @@ separator.homemade:
|
|||||||
result:
|
result:
|
||||||
description: Action 结果 - 完成后从服务器发送到客户端
|
description: Action 结果 - 完成后从服务器发送到客户端
|
||||||
properties:
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
return_info:
|
return_info:
|
||||||
type: string
|
type: string
|
||||||
success:
|
success:
|
||||||
type: boolean
|
type: boolean
|
||||||
required:
|
required:
|
||||||
- return_info
|
|
||||||
- success
|
- success
|
||||||
|
- message
|
||||||
|
- return_info
|
||||||
title: Stir_Result
|
title: Stir_Result
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
|
|||||||
@@ -377,11 +377,15 @@ heaterstirrer.dalong:
|
|||||||
time: time
|
time: time
|
||||||
vessel: vessel
|
vessel: vessel
|
||||||
goal_default:
|
goal_default:
|
||||||
|
pressure: ''
|
||||||
purpose: ''
|
purpose: ''
|
||||||
|
reflux_solvent: ''
|
||||||
stir: false
|
stir: false
|
||||||
stir_speed: 0.0
|
stir_speed: 0.0
|
||||||
temp: 0.0
|
temp: 0.0
|
||||||
|
temp_spec: ''
|
||||||
time: 0.0
|
time: 0.0
|
||||||
|
time_spec: ''
|
||||||
vessel: ''
|
vessel: ''
|
||||||
handles: []
|
handles: []
|
||||||
result:
|
result:
|
||||||
@@ -401,22 +405,34 @@ heaterstirrer.dalong:
|
|||||||
goal:
|
goal:
|
||||||
description: Action 目标 - 从客户端发送到服务器
|
description: Action 目标 - 从客户端发送到服务器
|
||||||
properties:
|
properties:
|
||||||
|
pressure:
|
||||||
|
type: string
|
||||||
purpose:
|
purpose:
|
||||||
type: string
|
type: string
|
||||||
|
reflux_solvent:
|
||||||
|
type: string
|
||||||
stir:
|
stir:
|
||||||
type: boolean
|
type: boolean
|
||||||
stir_speed:
|
stir_speed:
|
||||||
type: number
|
type: number
|
||||||
temp:
|
temp:
|
||||||
type: number
|
type: number
|
||||||
|
temp_spec:
|
||||||
|
type: string
|
||||||
time:
|
time:
|
||||||
type: number
|
type: number
|
||||||
|
time_spec:
|
||||||
|
type: string
|
||||||
vessel:
|
vessel:
|
||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- vessel
|
- vessel
|
||||||
- temp
|
- temp
|
||||||
- time
|
- time
|
||||||
|
- temp_spec
|
||||||
|
- time_spec
|
||||||
|
- pressure
|
||||||
|
- reflux_solvent
|
||||||
- stir
|
- stir
|
||||||
- stir_speed
|
- stir_speed
|
||||||
- purpose
|
- purpose
|
||||||
@@ -425,13 +441,16 @@ heaterstirrer.dalong:
|
|||||||
result:
|
result:
|
||||||
description: Action 结果 - 完成后从服务器发送到客户端
|
description: Action 结果 - 完成后从服务器发送到客户端
|
||||||
properties:
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
return_info:
|
return_info:
|
||||||
type: string
|
type: string
|
||||||
success:
|
success:
|
||||||
type: boolean
|
type: boolean
|
||||||
required:
|
required:
|
||||||
- return_info
|
|
||||||
- success
|
- success
|
||||||
|
- message
|
||||||
|
- return_info
|
||||||
title: HeatChill_Result
|
title: HeatChill_Result
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
|
|||||||
@@ -318,6 +318,12 @@ virtual_column:
|
|||||||
goal_default:
|
goal_default:
|
||||||
column: ''
|
column: ''
|
||||||
from_vessel: ''
|
from_vessel: ''
|
||||||
|
pct1: ''
|
||||||
|
pct2: ''
|
||||||
|
ratio: ''
|
||||||
|
rf: ''
|
||||||
|
solvent1: ''
|
||||||
|
solvent2: ''
|
||||||
to_vessel: ''
|
to_vessel: ''
|
||||||
handles: []
|
handles: []
|
||||||
result:
|
result:
|
||||||
@@ -346,12 +352,30 @@ virtual_column:
|
|||||||
type: string
|
type: string
|
||||||
from_vessel:
|
from_vessel:
|
||||||
type: string
|
type: string
|
||||||
|
pct1:
|
||||||
|
type: string
|
||||||
|
pct2:
|
||||||
|
type: string
|
||||||
|
ratio:
|
||||||
|
type: string
|
||||||
|
rf:
|
||||||
|
type: string
|
||||||
|
solvent1:
|
||||||
|
type: string
|
||||||
|
solvent2:
|
||||||
|
type: string
|
||||||
to_vessel:
|
to_vessel:
|
||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- from_vessel
|
- from_vessel
|
||||||
- to_vessel
|
- to_vessel
|
||||||
- column
|
- column
|
||||||
|
- rf
|
||||||
|
- pct1
|
||||||
|
- pct2
|
||||||
|
- solvent1
|
||||||
|
- solvent2
|
||||||
|
- ratio
|
||||||
title: RunColumn_Goal
|
title: RunColumn_Goal
|
||||||
type: object
|
type: object
|
||||||
result:
|
result:
|
||||||
@@ -1155,11 +1179,15 @@ virtual_heatchill:
|
|||||||
time: time
|
time: time
|
||||||
vessel: vessel
|
vessel: vessel
|
||||||
goal_default:
|
goal_default:
|
||||||
|
pressure: ''
|
||||||
purpose: ''
|
purpose: ''
|
||||||
|
reflux_solvent: ''
|
||||||
stir: false
|
stir: false
|
||||||
stir_speed: 0.0
|
stir_speed: 0.0
|
||||||
temp: 0.0
|
temp: 0.0
|
||||||
|
temp_spec: ''
|
||||||
time: 0.0
|
time: 0.0
|
||||||
|
time_spec: ''
|
||||||
vessel: ''
|
vessel: ''
|
||||||
handles: []
|
handles: []
|
||||||
result:
|
result:
|
||||||
@@ -1179,22 +1207,34 @@ virtual_heatchill:
|
|||||||
goal:
|
goal:
|
||||||
description: Action 目标 - 从客户端发送到服务器
|
description: Action 目标 - 从客户端发送到服务器
|
||||||
properties:
|
properties:
|
||||||
|
pressure:
|
||||||
|
type: string
|
||||||
purpose:
|
purpose:
|
||||||
type: string
|
type: string
|
||||||
|
reflux_solvent:
|
||||||
|
type: string
|
||||||
stir:
|
stir:
|
||||||
type: boolean
|
type: boolean
|
||||||
stir_speed:
|
stir_speed:
|
||||||
type: number
|
type: number
|
||||||
temp:
|
temp:
|
||||||
type: number
|
type: number
|
||||||
|
temp_spec:
|
||||||
|
type: string
|
||||||
time:
|
time:
|
||||||
type: number
|
type: number
|
||||||
|
time_spec:
|
||||||
|
type: string
|
||||||
vessel:
|
vessel:
|
||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- vessel
|
- vessel
|
||||||
- temp
|
- temp
|
||||||
- time
|
- time
|
||||||
|
- temp_spec
|
||||||
|
- time_spec
|
||||||
|
- pressure
|
||||||
|
- reflux_solvent
|
||||||
- stir
|
- stir
|
||||||
- stir_speed
|
- stir_speed
|
||||||
- purpose
|
- purpose
|
||||||
@@ -1203,13 +1243,16 @@ virtual_heatchill:
|
|||||||
result:
|
result:
|
||||||
description: Action 结果 - 完成后从服务器发送到客户端
|
description: Action 结果 - 完成后从服务器发送到客户端
|
||||||
properties:
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
return_info:
|
return_info:
|
||||||
type: string
|
type: string
|
||||||
success:
|
success:
|
||||||
type: boolean
|
type: boolean
|
||||||
required:
|
required:
|
||||||
- return_info
|
|
||||||
- success
|
- success
|
||||||
|
- message
|
||||||
|
- return_info
|
||||||
title: HeatChill_Result
|
title: HeatChill_Result
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
@@ -2048,13 +2091,18 @@ virtual_pump:
|
|||||||
volume: volume
|
volume: volume
|
||||||
goal_default:
|
goal_default:
|
||||||
amount: ''
|
amount: ''
|
||||||
|
event: ''
|
||||||
|
flowrate: 0.0
|
||||||
from_vessel: ''
|
from_vessel: ''
|
||||||
|
rate_spec: ''
|
||||||
rinsing_repeats: 0
|
rinsing_repeats: 0
|
||||||
rinsing_solvent: ''
|
rinsing_solvent: ''
|
||||||
rinsing_volume: 0.0
|
rinsing_volume: 0.0
|
||||||
solid: false
|
solid: false
|
||||||
|
through: ''
|
||||||
time: 0.0
|
time: 0.0
|
||||||
to_vessel: ''
|
to_vessel: ''
|
||||||
|
transfer_flowrate: 0.0
|
||||||
viscous: false
|
viscous: false
|
||||||
volume: 0.0
|
volume: 0.0
|
||||||
handles: []
|
handles: []
|
||||||
@@ -2112,8 +2160,14 @@ virtual_pump:
|
|||||||
properties:
|
properties:
|
||||||
amount:
|
amount:
|
||||||
type: string
|
type: string
|
||||||
|
event:
|
||||||
|
type: string
|
||||||
|
flowrate:
|
||||||
|
type: number
|
||||||
from_vessel:
|
from_vessel:
|
||||||
type: string
|
type: string
|
||||||
|
rate_spec:
|
||||||
|
type: string
|
||||||
rinsing_repeats:
|
rinsing_repeats:
|
||||||
maximum: 2147483647
|
maximum: 2147483647
|
||||||
minimum: -2147483648
|
minimum: -2147483648
|
||||||
@@ -2124,10 +2178,14 @@ virtual_pump:
|
|||||||
type: number
|
type: number
|
||||||
solid:
|
solid:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
through:
|
||||||
|
type: string
|
||||||
time:
|
time:
|
||||||
type: number
|
type: number
|
||||||
to_vessel:
|
to_vessel:
|
||||||
type: string
|
type: string
|
||||||
|
transfer_flowrate:
|
||||||
|
type: number
|
||||||
viscous:
|
viscous:
|
||||||
type: boolean
|
type: boolean
|
||||||
volume:
|
volume:
|
||||||
@@ -2143,6 +2201,11 @@ virtual_pump:
|
|||||||
- rinsing_volume
|
- rinsing_volume
|
||||||
- rinsing_repeats
|
- rinsing_repeats
|
||||||
- solid
|
- solid
|
||||||
|
- flowrate
|
||||||
|
- transfer_flowrate
|
||||||
|
- rate_spec
|
||||||
|
- event
|
||||||
|
- through
|
||||||
title: PumpTransfer_Goal
|
title: PumpTransfer_Goal
|
||||||
type: object
|
type: object
|
||||||
result:
|
result:
|
||||||
@@ -2325,6 +2388,7 @@ virtual_rotavap:
|
|||||||
vessel: vessel
|
vessel: vessel
|
||||||
goal_default:
|
goal_default:
|
||||||
pressure: 0.0
|
pressure: 0.0
|
||||||
|
solvent: ''
|
||||||
stir_speed: 0.0
|
stir_speed: 0.0
|
||||||
temp: 0.0
|
temp: 0.0
|
||||||
time: 0.0
|
time: 0.0
|
||||||
@@ -2385,6 +2449,8 @@ virtual_rotavap:
|
|||||||
properties:
|
properties:
|
||||||
pressure:
|
pressure:
|
||||||
type: number
|
type: number
|
||||||
|
solvent:
|
||||||
|
type: string
|
||||||
stir_speed:
|
stir_speed:
|
||||||
type: number
|
type: number
|
||||||
temp:
|
temp:
|
||||||
@@ -2399,6 +2465,7 @@ virtual_rotavap:
|
|||||||
- temp
|
- temp
|
||||||
- time
|
- time
|
||||||
- stir_speed
|
- stir_speed
|
||||||
|
- solvent
|
||||||
title: Evaporate_Goal
|
title: Evaporate_Goal
|
||||||
type: object
|
type: object
|
||||||
result:
|
result:
|
||||||
@@ -2641,6 +2708,7 @@ virtual_separator:
|
|||||||
goal_default:
|
goal_default:
|
||||||
from_vessel: ''
|
from_vessel: ''
|
||||||
product_phase: ''
|
product_phase: ''
|
||||||
|
product_vessel: ''
|
||||||
purpose: ''
|
purpose: ''
|
||||||
repeats: 0
|
repeats: 0
|
||||||
separation_vessel: ''
|
separation_vessel: ''
|
||||||
@@ -2651,7 +2719,10 @@ virtual_separator:
|
|||||||
stir_time: 0.0
|
stir_time: 0.0
|
||||||
through: ''
|
through: ''
|
||||||
to_vessel: ''
|
to_vessel: ''
|
||||||
|
vessel: ''
|
||||||
|
volume: ''
|
||||||
waste_phase_to_vessel: ''
|
waste_phase_to_vessel: ''
|
||||||
|
waste_vessel: ''
|
||||||
handles: []
|
handles: []
|
||||||
result:
|
result:
|
||||||
message: message
|
message: message
|
||||||
@@ -2710,6 +2781,8 @@ virtual_separator:
|
|||||||
type: string
|
type: string
|
||||||
product_phase:
|
product_phase:
|
||||||
type: string
|
type: string
|
||||||
|
product_vessel:
|
||||||
|
type: string
|
||||||
purpose:
|
purpose:
|
||||||
type: string
|
type: string
|
||||||
repeats:
|
repeats:
|
||||||
@@ -2732,8 +2805,14 @@ virtual_separator:
|
|||||||
type: string
|
type: string
|
||||||
to_vessel:
|
to_vessel:
|
||||||
type: string
|
type: string
|
||||||
|
vessel:
|
||||||
|
type: string
|
||||||
|
volume:
|
||||||
|
type: string
|
||||||
waste_phase_to_vessel:
|
waste_phase_to_vessel:
|
||||||
type: string
|
type: string
|
||||||
|
waste_vessel:
|
||||||
|
type: string
|
||||||
required:
|
required:
|
||||||
- purpose
|
- purpose
|
||||||
- product_phase
|
- product_phase
|
||||||
@@ -2748,18 +2827,25 @@ virtual_separator:
|
|||||||
- stir_time
|
- stir_time
|
||||||
- stir_speed
|
- stir_speed
|
||||||
- settling_time
|
- settling_time
|
||||||
|
- vessel
|
||||||
|
- volume
|
||||||
|
- product_vessel
|
||||||
|
- waste_vessel
|
||||||
title: Separate_Goal
|
title: Separate_Goal
|
||||||
type: object
|
type: object
|
||||||
result:
|
result:
|
||||||
description: Action 结果 - 完成后从服务器发送到客户端
|
description: Action 结果 - 完成后从服务器发送到客户端
|
||||||
properties:
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
return_info:
|
return_info:
|
||||||
type: string
|
type: string
|
||||||
success:
|
success:
|
||||||
type: boolean
|
type: boolean
|
||||||
required:
|
required:
|
||||||
- return_info
|
|
||||||
- success
|
- success
|
||||||
|
- message
|
||||||
|
- return_info
|
||||||
title: Separate_Result
|
title: Separate_Result
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
@@ -3149,6 +3235,180 @@ virtual_solenoid_valve:
|
|||||||
- valve_position
|
- valve_position
|
||||||
- state
|
- state
|
||||||
type: object
|
type: object
|
||||||
|
virtual_solid_dispenser:
|
||||||
|
class:
|
||||||
|
action_value_mappings:
|
||||||
|
add_solid:
|
||||||
|
feedback:
|
||||||
|
current_status: status
|
||||||
|
progress: progress
|
||||||
|
goal:
|
||||||
|
mass: mass
|
||||||
|
mol: mol
|
||||||
|
purpose: purpose
|
||||||
|
reagent: reagent
|
||||||
|
vessel: vessel
|
||||||
|
goal_default:
|
||||||
|
mass: ''
|
||||||
|
mol: ''
|
||||||
|
purpose: ''
|
||||||
|
reagent: ''
|
||||||
|
vessel: ''
|
||||||
|
handles: []
|
||||||
|
result:
|
||||||
|
message: message
|
||||||
|
return_info: return_info
|
||||||
|
success: success
|
||||||
|
schema:
|
||||||
|
description: ROS Action AddSolid 的 JSON Schema
|
||||||
|
properties:
|
||||||
|
feedback:
|
||||||
|
description: Action 反馈 - 执行过程中从服务器发送到客户端
|
||||||
|
properties:
|
||||||
|
current_status:
|
||||||
|
type: string
|
||||||
|
progress:
|
||||||
|
type: number
|
||||||
|
required:
|
||||||
|
- current_status
|
||||||
|
- progress
|
||||||
|
title: AddSolid_Feedback
|
||||||
|
type: object
|
||||||
|
goal:
|
||||||
|
description: Action 目标 - 从客户端发送到服务器
|
||||||
|
properties:
|
||||||
|
mass:
|
||||||
|
type: string
|
||||||
|
mol:
|
||||||
|
type: string
|
||||||
|
purpose:
|
||||||
|
type: string
|
||||||
|
reagent:
|
||||||
|
type: string
|
||||||
|
vessel:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- vessel
|
||||||
|
- reagent
|
||||||
|
- mass
|
||||||
|
- mol
|
||||||
|
- purpose
|
||||||
|
title: AddSolid_Goal
|
||||||
|
type: object
|
||||||
|
result:
|
||||||
|
description: Action 结果 - 完成后从服务器发送到客户端
|
||||||
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
|
return_info:
|
||||||
|
type: string
|
||||||
|
success:
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- success
|
||||||
|
- message
|
||||||
|
- return_info
|
||||||
|
title: AddSolid_Result
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- goal
|
||||||
|
title: AddSolid
|
||||||
|
type: object
|
||||||
|
type: AddSolid
|
||||||
|
auto-add_solid:
|
||||||
|
feedback: {}
|
||||||
|
goal: {}
|
||||||
|
goal_default:
|
||||||
|
mass: ''
|
||||||
|
mol: ''
|
||||||
|
purpose: ''
|
||||||
|
reagent: ''
|
||||||
|
vessel: main_reactor
|
||||||
|
handles: []
|
||||||
|
result: {}
|
||||||
|
schema:
|
||||||
|
description: add_solid的参数schema
|
||||||
|
type: object
|
||||||
|
type: UniLabJsonCommandAsync
|
||||||
|
auto-cleanup:
|
||||||
|
feedback: {}
|
||||||
|
goal: {}
|
||||||
|
goal_default: {}
|
||||||
|
handles: []
|
||||||
|
result: {}
|
||||||
|
schema:
|
||||||
|
description: cleanup的参数schema
|
||||||
|
type: object
|
||||||
|
type: UniLabJsonCommandAsync
|
||||||
|
auto-initialize:
|
||||||
|
feedback: {}
|
||||||
|
goal: {}
|
||||||
|
goal_default: {}
|
||||||
|
handles: []
|
||||||
|
result: {}
|
||||||
|
schema:
|
||||||
|
description: initialize的参数schema
|
||||||
|
type: object
|
||||||
|
type: UniLabJsonCommandAsync
|
||||||
|
module: unilabos.devices.virtual.virtual_solid_dispenser:VirtualSolidDispenser
|
||||||
|
status_types:
|
||||||
|
current_reagent: str
|
||||||
|
dispensed_amount: float
|
||||||
|
status: str
|
||||||
|
total_operations: int
|
||||||
|
type: python
|
||||||
|
description: Virtual Solid Dispenser for Add Protocol Solid Reagents
|
||||||
|
handles:
|
||||||
|
- data_key: SolidIn
|
||||||
|
data_source: handle
|
||||||
|
data_type: resource
|
||||||
|
description: 固体试剂进料口
|
||||||
|
handler_key: SolidIn
|
||||||
|
io_type: target
|
||||||
|
label: SolidIn
|
||||||
|
side: WEST
|
||||||
|
- data_key: SolidOut
|
||||||
|
data_source: executor
|
||||||
|
data_type: resource
|
||||||
|
description: 固体试剂出料口
|
||||||
|
handler_key: SolidOut
|
||||||
|
io_type: source
|
||||||
|
label: SolidOut
|
||||||
|
side: EAST
|
||||||
|
icon: ''
|
||||||
|
init_param_schema:
|
||||||
|
config:
|
||||||
|
properties:
|
||||||
|
config:
|
||||||
|
type: object
|
||||||
|
device_id:
|
||||||
|
type: string
|
||||||
|
max_capacity:
|
||||||
|
default: 100.0
|
||||||
|
description: 最大加样容量 (g)
|
||||||
|
type: number
|
||||||
|
precision:
|
||||||
|
default: 0.001
|
||||||
|
description: 加样精度 (g)
|
||||||
|
type: number
|
||||||
|
required: []
|
||||||
|
type: object
|
||||||
|
data:
|
||||||
|
properties:
|
||||||
|
current_reagent:
|
||||||
|
type: string
|
||||||
|
dispensed_amount:
|
||||||
|
type: number
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
total_operations:
|
||||||
|
type: integer
|
||||||
|
required:
|
||||||
|
- status
|
||||||
|
- current_reagent
|
||||||
|
- dispensed_amount
|
||||||
|
- total_operations
|
||||||
|
type: object
|
||||||
virtual_stirrer:
|
virtual_stirrer:
|
||||||
class:
|
class:
|
||||||
action_value_mappings:
|
action_value_mappings:
|
||||||
@@ -3183,7 +3443,6 @@ virtual_stirrer:
|
|||||||
properties:
|
properties:
|
||||||
feedback: {}
|
feedback: {}
|
||||||
goal:
|
goal:
|
||||||
|
|
||||||
properties: {}
|
properties: {}
|
||||||
required: []
|
required: []
|
||||||
type: object
|
type: object
|
||||||
@@ -3356,9 +3615,13 @@ virtual_stirrer:
|
|||||||
stir_speed: stir_speed
|
stir_speed: stir_speed
|
||||||
stir_time: stir_time
|
stir_time: stir_time
|
||||||
goal_default:
|
goal_default:
|
||||||
|
event: ''
|
||||||
settling_time: 0.0
|
settling_time: 0.0
|
||||||
stir_speed: 0.0
|
stir_speed: 0.0
|
||||||
stir_time: 0.0
|
stir_time: 0.0
|
||||||
|
time: ''
|
||||||
|
time_spec: ''
|
||||||
|
vessel: ''
|
||||||
handles: []
|
handles: []
|
||||||
result:
|
result:
|
||||||
success: success
|
success: success
|
||||||
@@ -3377,13 +3640,25 @@ virtual_stirrer:
|
|||||||
goal:
|
goal:
|
||||||
description: Action 目标 - 从客户端发送到服务器
|
description: Action 目标 - 从客户端发送到服务器
|
||||||
properties:
|
properties:
|
||||||
|
event:
|
||||||
|
type: string
|
||||||
settling_time:
|
settling_time:
|
||||||
type: number
|
type: number
|
||||||
stir_speed:
|
stir_speed:
|
||||||
type: number
|
type: number
|
||||||
stir_time:
|
stir_time:
|
||||||
type: number
|
type: number
|
||||||
|
time:
|
||||||
|
type: string
|
||||||
|
time_spec:
|
||||||
|
type: string
|
||||||
|
vessel:
|
||||||
|
type: string
|
||||||
required:
|
required:
|
||||||
|
- vessel
|
||||||
|
- time
|
||||||
|
- event
|
||||||
|
- time_spec
|
||||||
- stir_time
|
- stir_time
|
||||||
- stir_speed
|
- stir_speed
|
||||||
- settling_time
|
- settling_time
|
||||||
@@ -3392,13 +3667,16 @@ virtual_stirrer:
|
|||||||
result:
|
result:
|
||||||
description: Action 结果 - 完成后从服务器发送到客户端
|
description: Action 结果 - 完成后从服务器发送到客户端
|
||||||
properties:
|
properties:
|
||||||
|
message:
|
||||||
|
type: string
|
||||||
return_info:
|
return_info:
|
||||||
type: string
|
type: string
|
||||||
success:
|
success:
|
||||||
type: boolean
|
type: boolean
|
||||||
required:
|
required:
|
||||||
- return_info
|
|
||||||
- success
|
- success
|
||||||
|
- message
|
||||||
|
- return_info
|
||||||
title: Stir_Result
|
title: Stir_Result
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
@@ -4367,125 +4645,3 @@ virtual_vacuum_pump:
|
|||||||
required:
|
required:
|
||||||
- status
|
- status
|
||||||
type: object
|
type: object
|
||||||
virtual_solid_dispenser:
|
|
||||||
class:
|
|
||||||
action_value_mappings:
|
|
||||||
auto-cleanup:
|
|
||||||
feedback: {}
|
|
||||||
goal: {}
|
|
||||||
goal_default: {}
|
|
||||||
handles: []
|
|
||||||
result: {}
|
|
||||||
schema:
|
|
||||||
description: cleanup的参数schema
|
|
||||||
type: object
|
|
||||||
type: UniLabJsonCommandAsync
|
|
||||||
auto-initialize:
|
|
||||||
feedback: {}
|
|
||||||
goal: {}
|
|
||||||
goal_default: {}
|
|
||||||
handles: []
|
|
||||||
result: {}
|
|
||||||
schema:
|
|
||||||
description: initialize的参数schema
|
|
||||||
type: object
|
|
||||||
type: UniLabJsonCommandAsync
|
|
||||||
auto-add_solid:
|
|
||||||
feedback: {}
|
|
||||||
goal: {}
|
|
||||||
goal_default:
|
|
||||||
vessel: main_reactor
|
|
||||||
reagent: ''
|
|
||||||
mass: ''
|
|
||||||
mol: ''
|
|
||||||
purpose: ''
|
|
||||||
handles: []
|
|
||||||
result: {}
|
|
||||||
schema:
|
|
||||||
description: add_solid的参数schema
|
|
||||||
type: object
|
|
||||||
type: UniLabJsonCommandAsync
|
|
||||||
add_solid:
|
|
||||||
feedback:
|
|
||||||
current_status: status
|
|
||||||
progress: progress
|
|
||||||
goal:
|
|
||||||
vessel: vessel
|
|
||||||
reagent: reagent
|
|
||||||
mass: mass
|
|
||||||
mol: mol
|
|
||||||
purpose: purpose
|
|
||||||
goal_default:
|
|
||||||
vessel: 'main_reactor'
|
|
||||||
reagent: ''
|
|
||||||
mass: ''
|
|
||||||
mol: ''
|
|
||||||
purpose: ''
|
|
||||||
handles: []
|
|
||||||
result:
|
|
||||||
message: message
|
|
||||||
success: success
|
|
||||||
return_info: return_info
|
|
||||||
schema:
|
|
||||||
description: ROS Action AddSolid 的 JSON Schema
|
|
||||||
type: object
|
|
||||||
type: AddSolid
|
|
||||||
module: unilabos.devices.virtual.virtual_solid_dispenser:VirtualSolidDispenser
|
|
||||||
status_types:
|
|
||||||
status: str
|
|
||||||
current_reagent: str
|
|
||||||
dispensed_amount: float
|
|
||||||
total_operations: int
|
|
||||||
type: python
|
|
||||||
description: Virtual Solid Dispenser for Add Protocol Solid Reagents
|
|
||||||
handles:
|
|
||||||
- data_key: SolidIn
|
|
||||||
data_source: handle
|
|
||||||
data_type: resource
|
|
||||||
description: 固体试剂进料口
|
|
||||||
handler_key: SolidIn
|
|
||||||
io_type: target
|
|
||||||
label: SolidIn
|
|
||||||
side: WEST
|
|
||||||
- data_key: SolidOut
|
|
||||||
data_source: executor
|
|
||||||
data_type: resource
|
|
||||||
description: 固体试剂出料口
|
|
||||||
handler_key: SolidOut
|
|
||||||
io_type: source
|
|
||||||
label: SolidOut
|
|
||||||
side: EAST
|
|
||||||
icon: ''
|
|
||||||
init_param_schema:
|
|
||||||
config:
|
|
||||||
properties:
|
|
||||||
config:
|
|
||||||
type: object
|
|
||||||
device_id:
|
|
||||||
type: string
|
|
||||||
max_capacity:
|
|
||||||
type: number
|
|
||||||
default: 100.0
|
|
||||||
description: 最大加样容量 (g)
|
|
||||||
precision:
|
|
||||||
type: number
|
|
||||||
default: 0.001
|
|
||||||
description: 加样精度 (g)
|
|
||||||
required: []
|
|
||||||
type: object
|
|
||||||
data:
|
|
||||||
properties:
|
|
||||||
status:
|
|
||||||
type: string
|
|
||||||
current_reagent:
|
|
||||||
type: string
|
|
||||||
dispensed_amount:
|
|
||||||
type: number
|
|
||||||
total_operations:
|
|
||||||
type: integer
|
|
||||||
required:
|
|
||||||
- status
|
|
||||||
- current_reagent
|
|
||||||
- dispensed_amount
|
|
||||||
- total_operations
|
|
||||||
type: object
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -41,6 +41,7 @@ set(action_files
|
|||||||
"action/WashSolid.action"
|
"action/WashSolid.action"
|
||||||
"action/Filter.action"
|
"action/Filter.action"
|
||||||
"action/Add.action"
|
"action/Add.action"
|
||||||
|
"action/AddSolid.action"
|
||||||
"action/Centrifuge.action"
|
"action/Centrifuge.action"
|
||||||
"action/Crystallize.action"
|
"action/Crystallize.action"
|
||||||
"action/Purge.action"
|
"action/Purge.action"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
string from_vessel # 源容器的名称,即样品起始所在的容器(必需)
|
string from_vessel # 源容器的名称,即样品起始所在的容器(必需)
|
||||||
string to_vessel # 目标容器的名称,分离后的样品要到达的容器(必需)
|
string to_vessel # 目标容器的名称,分离后的样品要到达的容器(必需)
|
||||||
string column # 所使用的柱子的名称(必需)
|
string column # 所使用的柱子的名称(必需)
|
||||||
string Rf # Rf值(可选)
|
string rf # Rf值(可选)
|
||||||
string pct1 # 第一种溶剂百分比(如 "40 %",可选)
|
string pct1 # 第一种溶剂百分比(如 "40 %",可选)
|
||||||
string pct2 # 第二种溶剂百分比(如 "50 %",可选)
|
string pct2 # 第二种溶剂百分比(如 "50 %",可选)
|
||||||
string solvent1 # 第一种溶剂名称(可选)
|
string solvent1 # 第一种溶剂名称(可选)
|
||||||
|
|||||||
Reference in New Issue
Block a user