mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2026-02-05 14:05:12 +00:00
* Update README and MQTTClient for installation instructions and code improvements * feat: 支持local_config启动 add: 增加对crt path的说明,为传入config.py的相对路径 move: web component * add: registry description * add 3d visualization * 完成在main中启动设备可视化 完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model 添加物料模型管理类,遍历物料与resource_model,完成TF数据收集 * 完成TF发布 * 修改模型方向,在yaml中添加变换属性 * 添加物料tf变化时,发送topic到前端 另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题 * 添加关节发布节点与物料可视化节点进入unilab * 使用json启动plr与3D模型仿真 * feat: node_info_update srv fix: OTDeck cant create * close #12 feat: slave node registry * feat: show machine name fix: host node registry not uploaded * feat: add hplc registry * feat: add hplc registry * fix: hplc status typo * fix: devices/ * 完成启动OT并联动rviz * add 3d visualization * 完成在main中启动设备可视化 完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model 添加物料模型管理类,遍历物料与resource_model,完成TF数据收集 * 完成TF发布 * 修改模型方向,在yaml中添加变换属性 * 添加物料tf变化时,发送topic到前端 另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题 * 添加关节发布节点与物料可视化节点进入unilab * 使用json启动plr与3D模型仿真 * 完成启动OT并联动rviz * fix: device.class possible null * fix: HPLC additions with online service * fix: slave mode spin not working * fix: slave mode spin not working * 修复rviz位置问题, 修复rviz位置问题, 在无tf变动时减缓发送频率 在backend中添加物料跟随方法 * feat: 多ProtocolNode 允许子设备ID相同 feat: 上报发现的ActionClient feat: Host重启动,通过discover机制要求slaveNode重新注册,实现信息及时上报 * feat: 支持env设置config * fix: running logic * fix: running logic * fix: missing ot * 在main中直接初始化republisher和物料的mesh节点 * 将joint_republisher和resource_mesh_manager添加进 main_slave_run.py中 * Device visualization (#14) * add 3d visualization * 完成在main中启动设备可视化 完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model 添加物料模型管理类,遍历物料与resource_model,完成TF数据收集 * 完成TF发布 * 修改模型方向,在yaml中添加变换属性 * 添加物料tf变化时,发送topic到前端 另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题 * 添加关节发布节点与物料可视化节点进入unilab * 使用json启动plr与3D模型仿真 * 完成启动OT并联动rviz * add 3d visualization * 完成在main中启动设备可视化 完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model 添加物料模型管理类,遍历物料与resource_model,完成TF数据收集 * 完成TF发布 * 修改模型方向,在yaml中添加变换属性 * 添加物料tf变化时,发送topic到前端 另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题 * 添加关节发布节点与物料可视化节点进入unilab * 使用json启动plr与3D模型仿真 * 完成启动OT并联动rviz * 修复rviz位置问题, 修复rviz位置问题, 在无tf变动时减缓发送频率 在backend中添加物料跟随方法 * fix: running logic * fix: running logic * fix: missing ot * 在main中直接初始化republisher和物料的mesh节点 * 将joint_republisher和resource_mesh_manager添加进 main_slave_run.py中 --------- Co-authored-by: zhangshixiang <@zhangshixiang> Co-authored-by: wznln <18435084+Xuwznln@users.noreply.github.com> * fix: missing hostname in devices_names fix: upload_file for model file * fix: missing paho-mqtt package bump version to 0.9.0 * fix startup add ResourceCreateFromOuter.action * fix type hint * update actions * update actions * host node add_resource_from_outer fix cmake list * pass device config to device class * add: bind_parent_ids to resource create action fix: message convert string * fix: host node should not be re_discovered * feat: resource tracker support dict * feat: add more necessary params * feat: fix boolean null in registry action data * feat: add outer resource * 编写mesh添加action * feat: append resource * add action * feat: vis 2d for plr * fix * fix: browser on rviz * fix: cloud bridge error fallback to local * fix: salve auto run rviz * 初始化两个plate * Device visualization (#22) * add 3d visualization * 完成在main中启动设备可视化 完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model 添加物料模型管理类,遍历物料与resource_model,完成TF数据收集 * 完成TF发布 * 修改模型方向,在yaml中添加变换属性 * 添加物料tf变化时,发送topic到前端 另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题 * 添加关节发布节点与物料可视化节点进入unilab * 使用json启动plr与3D模型仿真 * 完成启动OT并联动rviz * add 3d visualization * 完成在main中启动设备可视化 完成在main中启动设备可视化,并输出物料ID:mesh的对应关系resource_model 添加物料模型管理类,遍历物料与resource_model,完成TF数据收集 * 完成TF发布 * 修改模型方向,在yaml中添加变换属性 * 添加物料tf变化时,发送topic到前端 另外修改了物料初始化的方法,防止在tf还未发布时提前建立物料模型与发布话题 * 添加关节发布节点与物料可视化节点进入unilab * 使用json启动plr与3D模型仿真 * 完成启动OT并联动rviz * 修复rviz位置问题, 修复rviz位置问题, 在无tf变动时减缓发送频率 在backend中添加物料跟随方法 * fix: running logic * fix: running logic * fix: missing ot * 在main中直接初始化republisher和物料的mesh节点 * 将joint_republisher和resource_mesh_manager添加进 main_slave_run.py中 * 编写mesh添加action * add action * fix * fix: browser on rviz * fix: cloud bridge error fallback to local * fix: salve auto run rviz * 初始化两个plate --------- Co-authored-by: zhangshixiang <@zhangshixiang> Co-authored-by: wznln <18435084+Xuwznln@users.noreply.github.com> * fix: multi channel * fix: aspirate * fix: aspirate * fix: aspirate * fix: aspirate * 提交 * fix: jobadd * fix: jobadd * fix: msg converter * tijiao * add resource creat easy action * identify debug msg * mq client id * unify liquid_handler definition * Update virtual_device.yaml * 更正了stir和heater的连接方式 * 区分了虚拟仪器中的八通阀和电磁阀,添加了两个阀门的驱动 * 修改了add protocol * 修复了阀门更新版的bug * 修复了添加protocol前缀导致的不能启动的bug * Fix handles * bump version to 0.9.6 * add resource edge upload * update container registry and handles * add virtual_separator virtual_rotavap fix transfer_pump * fix container value add parent_name to edge device id * 大图的问题都修复好了,添加了gassource和vacuum pump的驱动以及注册表 * default resource upload mode is false * 添加了icon的文件名在注册表里面 * 修改了json图中link的格式 * fix resource and edge upload * fix device ports * Fix edge id * 移除device的父节点关联 * separate registry sync and resource_add * 默认不进行注册表报送,通过命令unilabos-register或者增加启动参数 * 完善tip * protocol node不再嵌套显示 * bump version to 0.9.7 新增一个测试PumpTransferProtocol的teststation,亲测可以运行,将八通阀们和转移泵与pump_protocol适配 * protocol node 执行action不应携带自身device id * 添加了一套简易双八通阀工作站JSON,亲测能跑 * 修复了很多protocol,亲测能跑 * 添加了run column和filter through的protocol,亲测能跑 * fix mock_reactor * 修改了大图和小图的json,但是在前端上没看到改变 --------- Co-authored-by: Harvey Que <Q-Query@outlook.com> Co-authored-by: wznln <18435084+Xuwznln@users.noreply.github.com> Co-authored-by: zhangshixiang <@zhangshixiang> Co-authored-by: q434343 <73513873+q434343@users.noreply.github.com> Co-authored-by: Junhan Chang <changjh@pku.edu.cn>
191 lines
4.0 KiB
Python
191 lines
4.0 KiB
Python
from pydantic import BaseModel, Field
|
|
import pint
|
|
|
|
|
|
class Point3D(BaseModel):
|
|
x: float = Field(..., title="X coordinate")
|
|
y: float = Field(..., title="Y coordinate")
|
|
z: float = Field(..., title="Z coordinate")
|
|
|
|
# Start Protocols
|
|
|
|
class PumpTransferProtocol(BaseModel):
|
|
from_vessel: str
|
|
to_vessel: str
|
|
volume: float
|
|
amount: str = ""
|
|
time: float = 0
|
|
viscous: bool = False
|
|
rinsing_solvent: str = "air"
|
|
rinsing_volume: float = 5000
|
|
rinsing_repeats: int = 2
|
|
solid: bool = False
|
|
flowrate: float = 500
|
|
transfer_flowrate: float = 2500
|
|
|
|
|
|
class CleanProtocol(BaseModel):
|
|
vessel: str
|
|
solvent: str
|
|
volume: float
|
|
temp: float
|
|
repeats: int = 1
|
|
|
|
|
|
class SeparateProtocol(BaseModel):
|
|
purpose: str
|
|
product_phase: str
|
|
from_vessel: str
|
|
separation_vessel: str
|
|
to_vessel: str
|
|
waste_phase_to_vessel: str
|
|
solvent: str
|
|
solvent_volume: float
|
|
through: str
|
|
repeats: int
|
|
stir_time: float
|
|
stir_speed: float
|
|
settling_time: float
|
|
|
|
|
|
class EvaporateProtocol(BaseModel):
|
|
vessel: str
|
|
pressure: float
|
|
temp: float
|
|
time: float
|
|
stir_speed: float
|
|
|
|
|
|
class EvacuateAndRefillProtocol(BaseModel):
|
|
vessel: str
|
|
gas: str
|
|
repeats: int
|
|
|
|
|
|
class AGVTransferProtocol(BaseModel):
|
|
from_repo: dict
|
|
to_repo: dict
|
|
from_repo_position: str
|
|
to_repo_position: str
|
|
|
|
#=============新添加的新的协议================
|
|
class AddProtocol(BaseModel):
|
|
vessel: str
|
|
reagent: str
|
|
volume: float
|
|
mass: float
|
|
amount: str
|
|
time: float
|
|
stir: bool
|
|
stir_speed: float
|
|
viscous: bool
|
|
purpose: str
|
|
|
|
class CentrifugeProtocol(BaseModel):
|
|
vessel: str
|
|
speed: float
|
|
time: float
|
|
temp: float
|
|
|
|
class FilterProtocol(BaseModel):
|
|
vessel: str
|
|
filtrate_vessel: str
|
|
stir: bool
|
|
stir_speed: float
|
|
temp: float
|
|
continue_heatchill: bool
|
|
volume: float
|
|
|
|
class HeatChillProtocol(BaseModel):
|
|
vessel: str
|
|
temp: float
|
|
time: float
|
|
stir: bool
|
|
stir_speed: float
|
|
purpose: str
|
|
|
|
class HeatChillStartProtocol(BaseModel):
|
|
vessel: str
|
|
temp: float
|
|
purpose: str
|
|
|
|
class HeatChillStopProtocol(BaseModel):
|
|
vessel: str
|
|
|
|
class StirProtocol(BaseModel):
|
|
stir_time: float
|
|
stir_speed: float
|
|
settling_time: float
|
|
|
|
class StartStirProtocol(BaseModel):
|
|
vessel: str
|
|
stir_speed: float
|
|
purpose: str
|
|
|
|
class StopStirProtocol(BaseModel):
|
|
vessel: str
|
|
|
|
class TransferProtocol(BaseModel):
|
|
from_vessel: str
|
|
to_vessel: str
|
|
volume: float
|
|
amount: str = ""
|
|
time: float = 0
|
|
viscous: bool = False
|
|
rinsing_solvent: str = ""
|
|
rinsing_volume: float = 0.0
|
|
rinsing_repeats: int = 0
|
|
solid: bool = False
|
|
|
|
class CleanVesselProtocol(BaseModel):
|
|
vessel: str
|
|
solvent: str
|
|
volume: float
|
|
temp: float
|
|
repeats: int = 1
|
|
|
|
class DissolveProtocol(BaseModel):
|
|
vessel: str
|
|
solvent: str
|
|
volume: float
|
|
amount: str = ""
|
|
temp: float = 25.0
|
|
time: float = 0.0
|
|
stir_speed: float = 0.0
|
|
|
|
class FilterThroughProtocol(BaseModel):
|
|
from_vessel: str
|
|
to_vessel: str
|
|
filter_through: str
|
|
eluting_solvent: str = ""
|
|
eluting_volume: float = 0.0
|
|
eluting_repeats: int = 0
|
|
residence_time: float = 0.0
|
|
|
|
class RunColumnProtocol(BaseModel):
|
|
from_vessel: str
|
|
to_vessel: str
|
|
column: str
|
|
|
|
class WashSolidProtocol(BaseModel):
|
|
vessel: str
|
|
solvent: str
|
|
volume: float
|
|
filtrate_vessel: str = ""
|
|
temp: float = 25.0
|
|
stir: bool = False
|
|
stir_speed: float = 0.0
|
|
time: float = 0.0
|
|
repeats: int = 1
|
|
|
|
__all__ = [
|
|
"Point3D", "PumpTransferProtocol", "CleanProtocol", "SeparateProtocol",
|
|
"EvaporateProtocol", "EvacuateAndRefillProtocol", "AGVTransferProtocol",
|
|
"CentrifugeProtocol", "AddProtocol", "FilterProtocol",
|
|
"HeatChillProtocol", "HeatChillStartProtocol", "HeatChillStopProtocol",
|
|
"StirProtocol", "StartStirProtocol", "StopStirProtocol",
|
|
"TransferProtocol", "CleanVesselProtocol", "DissolveProtocol",
|
|
"FilterThroughProtocol", "RunColumnProtocol", "WashSolidProtocol"
|
|
]
|
|
# End Protocols
|