mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-17 13:01:12 +00:00
* add biomek.py demo implementation * 更新LiquidHandlerBiomek类,添加资源创建功能,优化协议创建方法,修复部分代码格式问题,更新YAML配置以支持新功能。 * Test * fix biomek success type * Convert LH action to biomek. * Update biomek.py * 注册表上报handle和schema (param input) * 修复biomek缺少的字段 * delete 's' * Remove warnings * Update biomek.py * Biomek test * Update biomek.py * 新增transfer_biomek的msg * New transfer_biomek * Updated transfer_biomek * 更新transfer_biomek的msg * 更新transfer_biomek的msg * 支持Biomek创建 * new action * fix key name typo * New parameter for biomek to run. * Refine * Update * new actions * new actions * 1 * registry * fix biomek startup add action handles * fix handles not as default entry * biomek_test.py biomek_test.py是最新的版本,运行它会生成complete_biomek_protocol.json * Update biomek.py * biomek_test.py * fix liquid_handler.biomek handles * host node新增resource add时间统计 create_resource新增handle bump version to 0.9.2 * 修正物料上传时间 改用biomek_test 增加ResultInfoEncoder 支持返回结果上传 * 正确发送return_info结果 * 同步执行状态信息 * 取消raiseValueError提示 * Update biomek_test.py * 0608 DONE * 同步了Biomek.py 现在应可用 * biomek switch back to non-test * temp disable initialize resource * 37-biomek-i5i7 (#40) * add biomek.py demo implementation * 更新LiquidHandlerBiomek类,添加资源创建功能,优化协议创建方法,修复部分代码格式问题,更新YAML配置以支持新功能。 * Test * fix biomek success type * Convert LH action to biomek. * Update biomek.py * 注册表上报handle和schema (param input) * 修复biomek缺少的字段 * delete 's' * Remove warnings * Update biomek.py * Biomek test * Update biomek.py * 新增transfer_biomek的msg * New transfer_biomek * Updated transfer_biomek * 更新transfer_biomek的msg * 更新transfer_biomek的msg * 支持Biomek创建 * new action * fix key name typo * New parameter for biomek to run. * Refine * Update * new actions * new actions * 1 * registry * fix biomek startup add action handles * fix handles not as default entry * biomek_test.py biomek_test.py是最新的版本,运行它会生成complete_biomek_protocol.json * Update biomek.py * biomek_test.py * fix liquid_handler.biomek handles * host node新增resource add时间统计 create_resource新增handle bump version to 0.9.2 * 修正物料上传时间 改用biomek_test 增加ResultInfoEncoder 支持返回结果上传 * 正确发送return_info结果 * 同步执行状态信息 * 取消raiseValueError提示 * Update biomek_test.py * 0608 DONE * 同步了Biomek.py 现在应可用 * biomek switch back to non-test * temp disable initialize resource * Refine biomek * Refine copy issue * Refine --------- Co-authored-by: Junhan Chang <changjh@pku.edu.cn> Co-authored-by: Guangxin Zhang <guangxin.zhang.bio@gmail.com> Co-authored-by: qxw138 <qxw@stu.pku.edu.cn> * Device visualization (#39) * 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 * 提取lh的joint发布 * unify liquid_handler definition * 修改物料跟随与物料添加逻辑 修改物料跟随与物料添加逻辑 将joint_publisher类移出lh的backends,但仍需要对lh的backends进行一些改写 * Revert "修改物料跟随与物料添加逻辑" This reverts commit498c997ad7. * Reapply "修改物料跟随与物料添加逻辑" This reverts commit3a60d2ae81. * Revert "Merge remote-tracking branch 'upstream/dev' into device_visualization" This reverts commitfa727220af, reversing changes made to498c997ad7. * 修改物料放下时的方法,如果选择 修改物料放下时的方法, 如果选择drop_trash,则删除物料显示 如果选择drop,则让其解除连接 * add biomek.py demo implementation * 更新LiquidHandlerBiomek类,添加资源创建功能,优化协议创建方法,修复部分代码格式问题,更新YAML配置以支持新功能。 * Test * fix biomek success type * Convert LH action to biomek. * Update biomek.py * 注册表上报handle和schema (param input) * 修复biomek缺少的字段 * delete 's' * Remove warnings * Update biomek.py * Biomek test * Update biomek.py * 新增transfer_biomek的msg * New transfer_biomek * Updated transfer_biomek * 更新transfer_biomek的msg * 更新transfer_biomek的msg * 支持Biomek创建 * new action * fix key name typo * New parameter for biomek to run. * Refine * Update * new actions * new actions * 1 * registry * fix biomek startup add action handles * fix handles not as default entry * unilab添加moveit启动 1,整合所有moveit节点到一个move_group中,并整合所有的controller依次激活 2,添加pymoveit2的节点,使用json可直接启动 3,修改机械臂规划方式,添加约束,让冗余关节不会进行过多移动 * biomek_test.py biomek_test.py是最新的版本,运行它会生成complete_biomek_protocol.json * Update biomek.py * biomek_test.py * fix liquid_handler.biomek handles * 修改物体attach时,多次赋值当前时间导致卡顿问题, * Revert "修改物体attach时,多次赋值当前时间导致卡顿问题," This reverts commit56d45b94f5. * Reapply "修改物体attach时,多次赋值当前时间导致卡顿问题," This reverts commit07d9db20c3. * 添加缺少物料:"plate_well_G12", * host node新增resource add时间统计 create_resource新增handle bump version to 0.9.2 * 修正物料上传时间 改用biomek_test 增加ResultInfoEncoder 支持返回结果上传 * 正确发送return_info结果 * 同步执行状态信息 * 取消raiseValueError提示 * Update biomek_test.py * 0608 DONE * 同步了Biomek.py 现在应可用 * biomek switch back to non-test * temp disable initialize resource * add * fix tip resource data * liquid states * change to debug level * Revert "change to debug level" This reverts commit5d9953c3e5. * Reapply "change to debug level" This reverts commit2487bb6ffc. * fix tip resource data * add full device * add moveit yaml * 修复moveit 增加post_init阶段,给予ros_node反向 * remove necessary node * fix moveit action client * remove necessary imports * Update moveit_interface.py * fix handler_key uppercase * json add liquids * fix setup * add * change to "sources" and "targets" for lh * bump version * remove parent's parent link --------- 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: Junhan Chang <changjh@pku.edu.cn> Co-authored-by: Guangxin Zhang <guangxin.zhang.bio@gmail.com> Co-authored-by: qxw138 <qxw@stu.pku.edu.cn> * Device visualization (#41) * 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 * 提取lh的joint发布 * unify liquid_handler definition * 修改物料跟随与物料添加逻辑 修改物料跟随与物料添加逻辑 将joint_publisher类移出lh的backends,但仍需要对lh的backends进行一些改写 * Revert "修改物料跟随与物料添加逻辑" This reverts commit498c997ad7. * Reapply "修改物料跟随与物料添加逻辑" This reverts commit3a60d2ae81. * Revert "Merge remote-tracking branch 'upstream/dev' into device_visualization" This reverts commitfa727220af, reversing changes made to498c997ad7. * 修改物料放下时的方法,如果选择 修改物料放下时的方法, 如果选择drop_trash,则删除物料显示 如果选择drop,则让其解除连接 * add biomek.py demo implementation * 更新LiquidHandlerBiomek类,添加资源创建功能,优化协议创建方法,修复部分代码格式问题,更新YAML配置以支持新功能。 * Test * fix biomek success type * Convert LH action to biomek. * Update biomek.py * 注册表上报handle和schema (param input) * 修复biomek缺少的字段 * delete 's' * Remove warnings * Update biomek.py * Biomek test * Update biomek.py * 新增transfer_biomek的msg * New transfer_biomek * Updated transfer_biomek * 更新transfer_biomek的msg * 更新transfer_biomek的msg * 支持Biomek创建 * new action * fix key name typo * New parameter for biomek to run. * Refine * Update * new actions * new actions * 1 * registry * fix biomek startup add action handles * fix handles not as default entry * unilab添加moveit启动 1,整合所有moveit节点到一个move_group中,并整合所有的controller依次激活 2,添加pymoveit2的节点,使用json可直接启动 3,修改机械臂规划方式,添加约束,让冗余关节不会进行过多移动 * biomek_test.py biomek_test.py是最新的版本,运行它会生成complete_biomek_protocol.json * Update biomek.py * biomek_test.py * fix liquid_handler.biomek handles * 修改物体attach时,多次赋值当前时间导致卡顿问题, * Revert "修改物体attach时,多次赋值当前时间导致卡顿问题," This reverts commit56d45b94f5. * Reapply "修改物体attach时,多次赋值当前时间导致卡顿问题," This reverts commit07d9db20c3. * 添加缺少物料:"plate_well_G12", * host node新增resource add时间统计 create_resource新增handle bump version to 0.9.2 * 修正物料上传时间 改用biomek_test 增加ResultInfoEncoder 支持返回结果上传 * 正确发送return_info结果 * 同步执行状态信息 * 取消raiseValueError提示 * Update biomek_test.py * 0608 DONE * 同步了Biomek.py 现在应可用 * biomek switch back to non-test * temp disable initialize resource * add * fix tip resource data * liquid states * change to debug level * Revert "change to debug level" This reverts commit5d9953c3e5. * Reapply "change to debug level" This reverts commit2487bb6ffc. * fix tip resource data * add full device * add moveit yaml * 修复moveit 增加post_init阶段,给予ros_node反向 * remove necessary node * fix moveit action client * remove necessary imports * Update moveit_interface.py * fix handler_key uppercase * json add liquids * fix setup * add * change to "sources" and "targets" for lh * bump version * remove parent's parent link * change arm's name * change name --------- Co-authored-by: Harvey Que <Q-Query@outlook.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> Co-authored-by: Guangxin Zhang <guangxin.zhang.bio@gmail.com> Co-authored-by: qxw138 <qxw@stu.pku.edu.cn> * fix move it * fix move it * create_resource * bump ver modify slot type * 增加modbus支持 调整protocol node以更好支持多种类型的read和write * 调整protocol node以更好支持多种类型的read和write * 补充日志 * Device visualization (#42) * 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 * 提取lh的joint发布 * unify liquid_handler definition * 修改物料跟随与物料添加逻辑 修改物料跟随与物料添加逻辑 将joint_publisher类移出lh的backends,但仍需要对lh的backends进行一些改写 * Revert "修改物料跟随与物料添加逻辑" This reverts commit498c997ad7. * Reapply "修改物料跟随与物料添加逻辑" This reverts commit3a60d2ae81. * Revert "Merge remote-tracking branch 'upstream/dev' into device_visualization" This reverts commitfa727220af, reversing changes made to498c997ad7. * 修改物料放下时的方法,如果选择 修改物料放下时的方法, 如果选择drop_trash,则删除物料显示 如果选择drop,则让其解除连接 * unilab添加moveit启动 1,整合所有moveit节点到一个move_group中,并整合所有的controller依次激活 2,添加pymoveit2的节点,使用json可直接启动 3,修改机械臂规划方式,添加约束,让冗余关节不会进行过多移动 * 修改物体attach时,多次赋值当前时间导致卡顿问题, * Revert "修改物体attach时,多次赋值当前时间导致卡顿问题," This reverts commit56d45b94f5. * Reapply "修改物体attach时,多次赋值当前时间导致卡顿问题," This reverts commit07d9db20c3. * 添加缺少物料:"plate_well_G12", * add * fix tip resource data * liquid states * change to debug level * Revert "change to debug level" This reverts commit5d9953c3e5. * Reapply "change to debug level" This reverts commit2487bb6ffc. * fix tip resource data * add full device * add moveit yaml * 修复moveit 增加post_init阶段,给予ros_node反向 * remove necessary node * fix moveit action client * remove necessary imports * Update moveit_interface.py * fix handler_key uppercase * json add liquids * fix setup * add * change to "sources" and "targets" for lh * bump version * remove parent's parent link * change arm's name * change name * fix ik error --------- Co-authored-by: Harvey Que <Q-Query@outlook.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> * Add Mock Device for Organic Synthesis\添加有机合成的虚拟仪器和Protocol (#43) * Add Device MockChiller Add device MockChiller * Add Device MockFilter * Add Device MockPump * Add Device MockRotavap * Add Device MockSeparator * Add Device MockStirrer * Add Device MockHeater * Add Device MockVacuum * Add Device MockSolenoidValve * Add Device Mock \_init_.py * 规范模拟设备代码与注册表信息 * 更改Mock大写文件夹名 * 删除大写目录 * Edited Mock device json * Match mock device with action * Edit mock device yaml * Add new action * Add Virtual Device, Action, YAML, Protocol for Organic Syn * 单独分类测试的protocol文件夹 * 更名Action --------- Co-authored-by: Xuwznln <18435084+Xuwznln@users.noreply.github.com> * bump version & protocol fix * hotfix: Add macos_sdk_config (#46) Co-authored-by: quehh <scienceol@outlook.com> * include device_mesh when pip install * 测试自动构建 * try build fix * try build * test artifacts * hotfix: Add .certs in .gitignore * create container * container 添加和更新完成 * Device registry port (#49) * 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> * 更新workstation注册表 * 添加了两个protocol的检索功能 (#51) * 添加了两个protocol的检索liquid type功能 * fix workstation registry * 修复了没连接的几个仪器的link,添加了container的icon * 修改了json和注册表,现在大图全部的device都链接上了 * 修复了小图的json图,线全部连上了 * add work_station protocol handles (ports) * fix workstation action handle --------- Co-authored-by: Xuwznln <18435084+Xuwznln@users.noreply.github.com> Co-authored-by: Junhan Chang <changjh@dp.tech> * 新增注册表补全功能,修复Protocol执行失败 * 支持通过导入方式补全注册表,新增工作流unilabos_device_id字段 * 修复不启用注册表补充就无法启动的bug * 修复部分识别error * 修复静态方法识别get status,注册表支持python类型 * status types对于嵌套类型返回的对象,暂时处理成字符串,无法直接进行转换 * 支持通过list[int],list[float]进行Int64MultiArray,Float64MultiArray的替换 * 成功动态导入的不再需要使用静态导入 * Fix handle names (#55) * fix handle names * improve evacuateAndRefill gas source finding * add camera and dependency (#56) * 修复auto-的Action在protocol node下错误注册 * 匹配init param schema格式 * Add channel_sources config in conda_build_config.yaml (#58) * 修复任务执行传参 * Create 5 new protocols & bump version 0.9.8 (#59) * 添加了5个缺失的protocol,验证了可以运行 * bump version to 0.9.8 * 修复新增的Action的字段缺失 --------- Co-authored-by: Xuwznln <18435084+Xuwznln@users.noreply.github.com> * 转换到ros消息时,要进行基础类型转换 * Update work_station.yaml (#60) * Update work_station.yaml * Checklist里面有XDL跟protocol之间没对齐的问题,工作量有点大找时间写完 * Create prcxi.py * Update prcxi.py * Update Prcxi * 更新中析仪器,以及启动示例 * 修改moveit_interface,并在mqtt上报时发送一个时间戳,方便网页端对数据的筛选 (#62) * 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 * 提取lh的joint发布 * unify liquid_handler definition * 修改物料跟随与物料添加逻辑 修改物料跟随与物料添加逻辑 将joint_publisher类移出lh的backends,但仍需要对lh的backends进行一些改写 * Revert "修改物料跟随与物料添加逻辑" This reverts commit498c997ad7. * Reapply "修改物料跟随与物料添加逻辑" This reverts commit3a60d2ae81. * Revert "Merge remote-tracking branch 'upstream/dev' into device_visualization" This reverts commitfa727220af, reversing changes made to498c997ad7. * 修改物料放下时的方法,如果选择 修改物料放下时的方法, 如果选择drop_trash,则删除物料显示 如果选择drop,则让其解除连接 * unilab添加moveit启动 1,整合所有moveit节点到一个move_group中,并整合所有的controller依次激活 2,添加pymoveit2的节点,使用json可直接启动 3,修改机械臂规划方式,添加约束,让冗余关节不会进行过多移动 * 修改物体attach时,多次赋值当前时间导致卡顿问题, * Revert "修改物体attach时,多次赋值当前时间导致卡顿问题," This reverts commit56d45b94f5. * Reapply "修改物体attach时,多次赋值当前时间导致卡顿问题," This reverts commit07d9db20c3. * 添加缺少物料:"plate_well_G12", * add * fix tip resource data * liquid states * change to debug level * Revert "change to debug level" This reverts commit5d9953c3e5. * Reapply "change to debug level" This reverts commit2487bb6ffc. * fix tip resource data * add full device * add moveit yaml * 修复moveit 增加post_init阶段,给予ros_node反向 * remove necessary node * fix moveit action client * remove necessary imports * Update moveit_interface.py * fix handler_key uppercase * json add liquids * fix setup * add * change to "sources" and "targets" for lh * bump version * remove parent's parent link * change arm's name * change name * fix ik error * 修改moveit_interface,并在mqtt上报时发送一个时间戳 --------- 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: Junhan Chang <changjh@pku.edu.cn> * 更新实例 * 更新实例 * 更新实例 * 修正prcxi启动 * 更新PRCXI配置,修改主机地址和设置状态,并添加示例用法 * add pickup tips for prcxi * 任意执行错误都应该返回failed * 任意执行错误都应该返回failed * Add plateT6 to PRCXI configuration and enhance error handling in liquid handling * prcxi blending * assert blending_times > 0 * update prcxi * update prcxi registry * Update prcxi.py to fit the function in unilabos. * 不生成已配置action的动作,增加prcxi的debug模式 * 增加注册表版本参数,支持将auto-指令人工检查后非auto,不生成人工已检查的指令,取消不必要的description生成 * 增加注册表版本参数,支持将auto-指令人工检查后非auto,不生成人工已检查的指令,取消不必要的description生成 * Update prcxi.py * 修复了部分的protocol因为XDL更新导致的问题 (#61) * 修复了部分的protocol因为XDL更新导致的问题 但是pumptransfer,add,dissolve,separate还没修,后续还需要写virtual固体加料器 * 补充了四个action * 添加了固体加样器,丰富了json,修改了add protocol * bump version to 0.9.9 * fix bugs from new actions * protocol完整修复版本& bump version to 0.9.10 * 修补了一些单位处理,bump version to 0.9.11 * 优化了全protocol的运行时间,除了pumptransfer相关的还没 * 补充了剩下的几个protocol --------- Co-authored-by: Junhan Chang <changjh@dp.tech> Co-authored-by: Xuwznln <18435084+Xuwznln@users.noreply.github.com> * 修复action移除时的报错,更新注册表 * Update prcxi.py * Update prcxi.py * 新增simulator * Update prcxi.py * Update trash * Update prcxi.py * Update prcxi.py * Update for discard tips * Update prcxi.py * Update PRCXI * 更新axis等参数 * Update 9320 * get_well_container&get_tip_rack * update * Update 9320 * update * deck * 更新注册表&增加资源,parent应为resources字段 * Update 9320 * update * 新增set liquid方法 * 新增set liquid方法 * action to resource & 0.9.12 (#64) * action to resource & 0.9.12 * stir和adjustph的中的bug修不好 * modify prcxi * 0.9.12 update registry * update * update * registry upadte * Update * update * container_for_nothing * mix * registry fix * registry fix * registry fix * Update * Update prcxi.py * SET TIP RACK * bump version * update registry version & category * update set tip rack * yaml dump支持ordered dict,支持config_info * fix devices * fix resource check serialize * fix: Protocol node resource run (#65) * stir和adjustph的中的bug修不好 * fix sub-resource query in protocol node compiling * add resource placeholder to vessels * add the rest yaml * Update work_station.yaml --------- Co-authored-by: KCFeng425 <2100011801@stu.pku.edu.cn> * 采用http报送resource * 采用http报送resource * update * Update .gitignore * bump version to 0.10.0 * default param simulator * slim * Update * Update for prcxi * Update * Update * Refactor PRCXI9300Deck initialization and update plate configurations - Changed deck name from "PRCXI_Deck" to "PRCXI_Deck_9300". - Updated plate4 initialization to use get_well_container instead of get_tip_rack. - Modified plate4 material details with new UUID, code, and name. - Renamed output JSON file to "deck_9300_new.json". - Uncommented and adjusted liquid handling operations for clarity and future use. * test * update * Update prcxi_9300.json This one is good * update * fix protocol_node communication transfer * 修复注册表handles类型错误的问题 * 物料添加失败应该直接raise ValueError,不要等待 * 更正注册表中的数字类型 * Delete unnecessary files. * 新增lab_id直接传入 * fix vessel_id param passing in protocols * 新增dll预载,保证部分设备可正常使用unilabos_msgs * 修复可能的web template找不到的问题 新增联网获取json启动 删除非-g传入启动json的方式 兼容传参参数名短横线与下划线 * 修复可能的web template找不到的问题 新增联网获取json启动 删除非-g传入启动json的方式 兼容传参参数名短横线与下划线 更新版本到0.10.1 修复Upload Registry镜像不匹配 * 新增用户引导 * Device visualization (#67) * 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 * 提取lh的joint发布 * unify liquid_handler definition * 修改物料跟随与物料添加逻辑 修改物料跟随与物料添加逻辑 将joint_publisher类移出lh的backends,但仍需要对lh的backends进行一些改写 * Revert "修改物料跟随与物料添加逻辑" This reverts commit498c997ad7. * Reapply "修改物料跟随与物料添加逻辑" This reverts commit3a60d2ae81. * Revert "Merge remote-tracking branch 'upstream/dev' into device_visualization" This reverts commitfa727220af, reversing changes made to498c997ad7. * 修改物料放下时的方法,如果选择 修改物料放下时的方法, 如果选择drop_trash,则删除物料显示 如果选择drop,则让其解除连接 * unilab添加moveit启动 1,整合所有moveit节点到一个move_group中,并整合所有的controller依次激活 2,添加pymoveit2的节点,使用json可直接启动 3,修改机械臂规划方式,添加约束,让冗余关节不会进行过多移动 * 修改物体attach时,多次赋值当前时间导致卡顿问题, * Revert "修改物体attach时,多次赋值当前时间导致卡顿问题," This reverts commit56d45b94f5. * Reapply "修改物体attach时,多次赋值当前时间导致卡顿问题," This reverts commit07d9db20c3. * 添加缺少物料:"plate_well_G12", * add * fix tip resource data * liquid states * change to debug level * Revert "change to debug level" This reverts commit5d9953c3e5. * Reapply "change to debug level" This reverts commit2487bb6ffc. * fix tip resource data * add full device * add moveit yaml * 修复moveit 增加post_init阶段,给予ros_node反向 * remove necessary node * fix moveit action client * remove necessary imports * Update moveit_interface.py * fix handler_key uppercase * json add liquids * fix setup * add * change to "sources" and "targets" for lh * bump version * remove parent's parent link * change arm's name * change name * fix ik error * 修改moveit_interface,并在mqtt上报时发送一个时间戳 * 添加机械臂和移液站 * 添加 * 添加硬件 * update * 添加 --------- 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: Junhan Chang <changjh@pku.edu.cn> * 更新注册表 --------- Co-authored-by: Junhan Chang <changjh@pku.edu.cn> Co-authored-by: Guangxin Zhang <guangxin.zhang.bio@gmail.com> Co-authored-by: qxw138 <qxw@stu.pku.edu.cn> Co-authored-by: q434343 <73513873+q434343@users.noreply.github.com> Co-authored-by: Harvey Que <Q-Query@outlook.com> Co-authored-by: Kongchang Feng <2100011801@stu.pku.edu.cn> Co-authored-by: hh. <103566763+Mile-Away@users.noreply.github.com> Co-authored-by: quehh <scienceol@outlook.com> Co-authored-by: Harvey Que <quehaohui@dp.tech> Co-authored-by: Junhan Chang <changjh@dp.tech> Co-authored-by: ZiWei <131428629+ZiWei09@users.noreply.github.com>
6038 lines
157 KiB
YAML
6038 lines
157 KiB
YAML
virtual_centrifuge:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
centrifuge:
|
|
feedback:
|
|
current_speed: current_speed
|
|
current_status: status
|
|
current_temp: current_temp
|
|
progress: progress
|
|
goal:
|
|
speed: speed
|
|
temp: temp
|
|
time: time
|
|
vessel: vessel
|
|
goal_default:
|
|
speed: 0.0
|
|
temp: 0.0
|
|
time: 0.0
|
|
vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
handles: []
|
|
result:
|
|
message: message
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
current_speed:
|
|
type: number
|
|
current_status:
|
|
type: string
|
|
current_temp:
|
|
type: number
|
|
progress:
|
|
type: number
|
|
required:
|
|
- progress
|
|
- current_speed
|
|
- current_temp
|
|
- current_status
|
|
title: Centrifuge_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
speed:
|
|
type: number
|
|
temp:
|
|
type: number
|
|
time:
|
|
type: number
|
|
vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
required:
|
|
- vessel
|
|
- speed
|
|
- time
|
|
- temp
|
|
title: Centrifuge_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
message:
|
|
type: string
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
- message
|
|
- return_info
|
|
title: Centrifuge_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: Centrifuge
|
|
type: object
|
|
type: Centrifuge
|
|
module: unilabos.devices.virtual.virtual_centrifuge:VirtualCentrifuge
|
|
status_types:
|
|
centrifuge_state: str
|
|
current_speed: float
|
|
current_temp: float
|
|
max_speed: float
|
|
max_temp: float
|
|
message: str
|
|
min_temp: float
|
|
progress: float
|
|
status: str
|
|
target_speed: float
|
|
target_temp: float
|
|
time_remaining: float
|
|
type: python
|
|
config_info: []
|
|
description: Virtual Centrifuge for CentrifugeProtocol Testing
|
|
handles:
|
|
- data_key: vessel
|
|
data_source: handle
|
|
data_type: transport
|
|
description: 需要离心的样品容器
|
|
handler_key: centrifuge
|
|
io_type: target
|
|
label: centrifuge
|
|
side: NORTH
|
|
icon: ''
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: string
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
centrifuge_state:
|
|
type: string
|
|
current_speed:
|
|
type: number
|
|
current_temp:
|
|
type: number
|
|
max_speed:
|
|
type: number
|
|
max_temp:
|
|
type: number
|
|
message:
|
|
type: string
|
|
min_temp:
|
|
type: number
|
|
progress:
|
|
type: number
|
|
status:
|
|
type: string
|
|
target_speed:
|
|
type: number
|
|
target_temp:
|
|
type: number
|
|
time_remaining:
|
|
type: number
|
|
required:
|
|
- status
|
|
- centrifuge_state
|
|
- current_speed
|
|
- target_speed
|
|
- current_temp
|
|
- target_temp
|
|
- max_speed
|
|
- max_temp
|
|
- min_temp
|
|
- time_remaining
|
|
- progress
|
|
- message
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_column:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
run_column:
|
|
feedback:
|
|
current_status: current_status
|
|
processed_volume: processed_volume
|
|
progress: progress
|
|
goal:
|
|
column: column
|
|
from_vessel: from_vessel
|
|
to_vessel: to_vessel
|
|
goal_default:
|
|
column: ''
|
|
from_vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
pct1: ''
|
|
pct2: ''
|
|
ratio: ''
|
|
rf: ''
|
|
solvent1: ''
|
|
solvent2: ''
|
|
to_vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
handles: []
|
|
result:
|
|
message: current_status
|
|
return_info: current_status
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
progress:
|
|
type: number
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
- progress
|
|
title: RunColumn_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
column:
|
|
type: string
|
|
from_vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
pct1:
|
|
type: string
|
|
pct2:
|
|
type: string
|
|
ratio:
|
|
type: string
|
|
rf:
|
|
type: string
|
|
solvent1:
|
|
type: string
|
|
solvent2:
|
|
type: string
|
|
to_vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
required:
|
|
- from_vessel
|
|
- to_vessel
|
|
- column
|
|
- rf
|
|
- pct1
|
|
- pct2
|
|
- solvent1
|
|
- solvent2
|
|
- ratio
|
|
title: RunColumn_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
message:
|
|
type: string
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
- message
|
|
- return_info
|
|
title: RunColumn_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: RunColumn
|
|
type: object
|
|
type: RunColumn
|
|
module: unilabos.devices.virtual.virtual_column:VirtualColumn
|
|
status_types:
|
|
column_diameter: float
|
|
column_length: float
|
|
column_state: str
|
|
current_flow_rate: float
|
|
current_phase: str
|
|
current_status: str
|
|
final_volume: float
|
|
max_flow_rate: float
|
|
processed_volume: float
|
|
progress: float
|
|
status: str
|
|
type: python
|
|
config_info: []
|
|
description: Virtual Column Chromatography Device for RunColumn Protocol Testing
|
|
handles:
|
|
- data_key: from_vessel
|
|
data_source: handle
|
|
data_type: transport
|
|
description: 样品输入口
|
|
handler_key: columnin
|
|
io_type: target
|
|
label: columnin
|
|
side: WEST
|
|
- data_key: to_vessel
|
|
data_source: handle
|
|
data_type: transport
|
|
description: 产物输出口
|
|
handler_key: columnout
|
|
io_type: source
|
|
label: columnout
|
|
side: EAST
|
|
icon: ''
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: object
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
column_diameter:
|
|
type: number
|
|
column_length:
|
|
type: number
|
|
column_state:
|
|
type: string
|
|
current_flow_rate:
|
|
type: number
|
|
current_phase:
|
|
type: string
|
|
current_status:
|
|
type: string
|
|
final_volume:
|
|
type: number
|
|
max_flow_rate:
|
|
type: number
|
|
processed_volume:
|
|
type: number
|
|
progress:
|
|
type: number
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
- column_state
|
|
- current_flow_rate
|
|
- max_flow_rate
|
|
- column_length
|
|
- column_diameter
|
|
- processed_volume
|
|
- progress
|
|
- current_status
|
|
- current_phase
|
|
- final_volume
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_filter:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
filter:
|
|
feedback:
|
|
current_status: current_status
|
|
current_temp: current_temp
|
|
filtered_volume: filtered_volume
|
|
progress: progress
|
|
goal:
|
|
continue_heatchill: continue_heatchill
|
|
filtrate_vessel: filtrate_vessel
|
|
stir: stir
|
|
stir_speed: stir_speed
|
|
temp: temp
|
|
vessel: vessel
|
|
volume: volume
|
|
goal_default:
|
|
continue_heatchill: false
|
|
filtrate_vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
stir: false
|
|
stir_speed: 0.0
|
|
temp: 0.0
|
|
vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
volume: 0.0
|
|
handles: []
|
|
result:
|
|
message: message
|
|
return_info: message
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
current_status:
|
|
type: string
|
|
current_temp:
|
|
type: number
|
|
filtered_volume:
|
|
type: number
|
|
progress:
|
|
type: number
|
|
required:
|
|
- progress
|
|
- current_temp
|
|
- filtered_volume
|
|
- current_status
|
|
title: Filter_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
continue_heatchill:
|
|
type: boolean
|
|
filtrate_vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
stir:
|
|
type: boolean
|
|
stir_speed:
|
|
type: number
|
|
temp:
|
|
type: number
|
|
vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
volume:
|
|
type: number
|
|
required:
|
|
- vessel
|
|
- filtrate_vessel
|
|
- stir
|
|
- stir_speed
|
|
- temp
|
|
- continue_heatchill
|
|
- volume
|
|
title: Filter_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
message:
|
|
type: string
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
- message
|
|
- return_info
|
|
title: Filter_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: Filter
|
|
type: object
|
|
type: Filter
|
|
module: unilabos.devices.virtual.virtual_filter:VirtualFilter
|
|
status_types:
|
|
current_status: str
|
|
current_temp: float
|
|
filtered_volume: float
|
|
max_stir_speed: float
|
|
max_temp: float
|
|
max_volume: float
|
|
message: str
|
|
progress: float
|
|
status: str
|
|
type: python
|
|
config_info: []
|
|
description: Virtual Filter for FilterProtocol Testing
|
|
handles:
|
|
- data_key: vessel_in
|
|
data_source: handle
|
|
data_type: transport
|
|
description: 需要过滤的样品容器
|
|
handler_key: filterin
|
|
io_type: target
|
|
label: filter_in
|
|
side: NORTH
|
|
- data_key: filtrate_out
|
|
data_source: handle
|
|
data_type: transport
|
|
description: 滤液出口
|
|
handler_key: filtrateout
|
|
io_type: source
|
|
label: filtrate_out
|
|
side: SOUTH
|
|
- data_key: retentate_out
|
|
data_source: handle
|
|
data_type: transport
|
|
description: 滤渣/固体出口
|
|
handler_key: retentateout
|
|
io_type: source
|
|
label: retentate_out
|
|
side: EAST
|
|
icon: ''
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: string
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
current_status:
|
|
type: string
|
|
current_temp:
|
|
type: number
|
|
filtered_volume:
|
|
type: number
|
|
max_stir_speed:
|
|
type: number
|
|
max_temp:
|
|
type: number
|
|
max_volume:
|
|
type: number
|
|
message:
|
|
type: string
|
|
progress:
|
|
type: number
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
- progress
|
|
- current_temp
|
|
- filtered_volume
|
|
- current_status
|
|
- message
|
|
- max_temp
|
|
- max_stir_speed
|
|
- max_volume
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_gas_source:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-is_closed:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: is_closed的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: is_closed参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-is_open:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: is_open的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: is_open参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
close:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Feedback
|
|
type: object
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
required:
|
|
- return_info
|
|
title: EmptyIn_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: EmptyIn
|
|
type: object
|
|
type: EmptyIn
|
|
open:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Feedback
|
|
type: object
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
required:
|
|
- return_info
|
|
title: EmptyIn_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: EmptyIn
|
|
type: object
|
|
type: EmptyIn
|
|
set_status:
|
|
feedback: {}
|
|
goal:
|
|
string: string
|
|
goal_default:
|
|
string: ''
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties: {}
|
|
required: []
|
|
title: StrSingleInput_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
string:
|
|
type: string
|
|
required:
|
|
- string
|
|
title: StrSingleInput_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
title: StrSingleInput_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: StrSingleInput
|
|
type: object
|
|
type: StrSingleInput
|
|
module: unilabos.devices.virtual.virtual_gas_source:VirtualGasSource
|
|
status_types:
|
|
status: str
|
|
type: python
|
|
config_info: []
|
|
description: Virtual gas source
|
|
handles:
|
|
- data_key: fluid_out
|
|
data_source: executor
|
|
data_type: fluid
|
|
description: 气源出气口
|
|
handler_key: gassource
|
|
io_type: source
|
|
label: gassource
|
|
side: SOUTH
|
|
icon: ''
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: string
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_heatchill:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
heat_chill:
|
|
feedback:
|
|
status: status
|
|
goal:
|
|
purpose: purpose
|
|
stir: stir
|
|
stir_speed: stir_speed
|
|
temp: temp
|
|
time: time
|
|
vessel: vessel
|
|
goal_default:
|
|
pressure: ''
|
|
purpose: ''
|
|
reflux_solvent: ''
|
|
stir: false
|
|
stir_speed: 0.0
|
|
temp: 0.0
|
|
temp_spec: ''
|
|
time: ''
|
|
time_spec: ''
|
|
vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
handles: []
|
|
result:
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
title: HeatChill_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
pressure:
|
|
type: string
|
|
purpose:
|
|
type: string
|
|
reflux_solvent:
|
|
type: string
|
|
stir:
|
|
type: boolean
|
|
stir_speed:
|
|
type: number
|
|
temp:
|
|
type: number
|
|
temp_spec:
|
|
type: string
|
|
time:
|
|
type: string
|
|
time_spec:
|
|
type: string
|
|
vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
required:
|
|
- vessel
|
|
- temp
|
|
- time
|
|
- temp_spec
|
|
- time_spec
|
|
- pressure
|
|
- reflux_solvent
|
|
- stir
|
|
- stir_speed
|
|
- purpose
|
|
title: HeatChill_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
message:
|
|
type: string
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
- message
|
|
- return_info
|
|
title: HeatChill_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: HeatChill
|
|
type: object
|
|
type: HeatChill
|
|
heat_chill_start:
|
|
feedback:
|
|
status: status
|
|
goal:
|
|
purpose: purpose
|
|
temp: temp
|
|
vessel: vessel
|
|
goal_default:
|
|
purpose: ''
|
|
temp: 0.0
|
|
vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
handles: []
|
|
result:
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
title: HeatChillStart_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
purpose:
|
|
type: string
|
|
temp:
|
|
type: number
|
|
vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
required:
|
|
- vessel
|
|
- temp
|
|
- purpose
|
|
title: HeatChillStart_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
title: HeatChillStart_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: HeatChillStart
|
|
type: object
|
|
type: HeatChillStart
|
|
heat_chill_stop:
|
|
feedback:
|
|
status: status
|
|
goal:
|
|
vessel: vessel
|
|
goal_default:
|
|
vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
handles: []
|
|
result:
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
title: HeatChillStop_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
required:
|
|
- vessel
|
|
title: HeatChillStop_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
title: HeatChillStop_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: HeatChillStop
|
|
type: object
|
|
type: HeatChillStop
|
|
module: unilabos.devices.virtual.virtual_heatchill:VirtualHeatChill
|
|
status_types:
|
|
is_stirring: bool
|
|
max_stir_speed: float
|
|
max_temp: float
|
|
min_temp: float
|
|
operation_mode: str
|
|
progress: float
|
|
remaining_time: float
|
|
status: str
|
|
stir_speed: float
|
|
type: python
|
|
config_info: []
|
|
description: Virtual HeatChill for HeatChillProtocol Testing
|
|
handles:
|
|
- data_key: vessel
|
|
data_source: handle
|
|
data_type: mechanical
|
|
description: 加热/冷却器的物理连接口
|
|
handler_key: heatchill
|
|
io_type: source
|
|
label: heatchill
|
|
side: NORTH
|
|
icon: Heater.webp
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: object
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
is_stirring:
|
|
type: boolean
|
|
max_stir_speed:
|
|
type: number
|
|
max_temp:
|
|
type: number
|
|
min_temp:
|
|
type: number
|
|
operation_mode:
|
|
type: string
|
|
progress:
|
|
type: number
|
|
remaining_time:
|
|
type: number
|
|
status:
|
|
type: string
|
|
stir_speed:
|
|
type: number
|
|
required:
|
|
- status
|
|
- operation_mode
|
|
- is_stirring
|
|
- stir_speed
|
|
- remaining_time
|
|
- progress
|
|
- max_temp
|
|
- min_temp
|
|
- max_stir_speed
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_multiway_valve:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-close:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: close的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: close参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-is_at_port:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
port_number: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: is_at_port的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
port_number:
|
|
type: integer
|
|
required:
|
|
- port_number
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: is_at_port参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-is_at_position:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
position: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: is_at_position的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
position:
|
|
type: integer
|
|
required:
|
|
- position
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: is_at_position参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-is_at_pump_position:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: is_at_pump_position的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: is_at_pump_position参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-open:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: open参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-reset:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: reset的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: reset参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-set_to_port:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
port_number: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: set_to_port的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
port_number:
|
|
type: integer
|
|
required:
|
|
- port_number
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: set_to_port参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-set_to_pump_position:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: set_to_pump_position的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: set_to_pump_position参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-switch_between_pump_and_port:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
port_number: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: switch_between_pump_and_port的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
port_number:
|
|
type: integer
|
|
required:
|
|
- port_number
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: switch_between_pump_and_port参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
set_position:
|
|
feedback: {}
|
|
goal:
|
|
command: command
|
|
goal_default:
|
|
command: ''
|
|
handles: []
|
|
result:
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
title: SendCmd_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
command:
|
|
type: string
|
|
required:
|
|
- command
|
|
title: SendCmd_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
title: SendCmd_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: SendCmd
|
|
type: object
|
|
type: SendCmd
|
|
set_valve_position:
|
|
feedback: {}
|
|
goal:
|
|
command: command
|
|
goal_default:
|
|
command: ''
|
|
handles: []
|
|
result:
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
title: SendCmd_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
command:
|
|
type: string
|
|
required:
|
|
- command
|
|
title: SendCmd_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
title: SendCmd_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: SendCmd
|
|
type: object
|
|
type: SendCmd
|
|
module: unilabos.devices.virtual.virtual_multiway_valve:VirtualMultiwayValve
|
|
status_types:
|
|
available_ports: dict
|
|
available_positions: list
|
|
current_port: str
|
|
current_position: int
|
|
flow_path: str
|
|
info: dict
|
|
status: str
|
|
target_position: int
|
|
valve_position: int
|
|
valve_state: str
|
|
type: python
|
|
config_info: []
|
|
description: Virtual 8-Way Valve for flow direction control
|
|
handles:
|
|
- data_key: fluid_in
|
|
data_source: handle
|
|
data_type: fluid
|
|
description: 八通阀门进液口
|
|
handler_key: transferpump
|
|
io_type: target
|
|
label: transferpump
|
|
side: NORTH
|
|
- data_key: fluid_port_1
|
|
data_source: executor
|
|
data_type: fluid
|
|
description: 八通阀门端口1
|
|
handler_key: '1'
|
|
io_type: source
|
|
label: '1'
|
|
side: NORTH
|
|
- data_key: fluid_port_2
|
|
data_source: executor
|
|
data_type: fluid
|
|
description: 八通阀门端口2
|
|
handler_key: '2'
|
|
io_type: source
|
|
label: '2'
|
|
side: EAST
|
|
- data_key: fluid_port_3
|
|
data_source: executor
|
|
data_type: fluid
|
|
description: 八通阀门端口3
|
|
handler_key: '3'
|
|
io_type: source
|
|
label: '3'
|
|
side: EAST
|
|
- data_key: fluid_port_4
|
|
data_source: executor
|
|
data_type: fluid
|
|
description: 八通阀门端口4
|
|
handler_key: '4'
|
|
io_type: source
|
|
label: '4'
|
|
side: SOUTH
|
|
- data_key: fluid_port_5
|
|
data_source: executor
|
|
data_type: fluid
|
|
description: 八通阀门端口5
|
|
handler_key: '5'
|
|
io_type: source
|
|
label: '5'
|
|
side: SOUTH
|
|
- data_key: fluid_port_6
|
|
data_source: executor
|
|
data_type: fluid
|
|
description: 八通阀门端口6
|
|
handler_key: '6'
|
|
io_type: source
|
|
label: '6'
|
|
side: WEST
|
|
- data_key: fluid_port_7
|
|
data_source: executor
|
|
data_type: fluid
|
|
description: 八通阀门端口7
|
|
handler_key: '7'
|
|
io_type: source
|
|
label: '7'
|
|
side: WEST
|
|
- data_key: fluid_port_8
|
|
data_source: executor
|
|
data_type: fluid
|
|
description: 八通阀门端口8
|
|
handler_key: '8'
|
|
io_type: source
|
|
label: '8'
|
|
side: NORTH
|
|
icon: EightPipeline.webp
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
port:
|
|
default: VIRTUAL
|
|
type: string
|
|
positions:
|
|
default: 8
|
|
type: integer
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
available_ports:
|
|
type: object
|
|
available_positions:
|
|
type: array
|
|
current_port:
|
|
type: string
|
|
current_position:
|
|
type: integer
|
|
flow_path:
|
|
type: string
|
|
info:
|
|
type: object
|
|
status:
|
|
type: string
|
|
target_position:
|
|
type: integer
|
|
valve_position:
|
|
type: integer
|
|
valve_state:
|
|
type: string
|
|
required:
|
|
- status
|
|
- valve_state
|
|
- current_position
|
|
- target_position
|
|
- current_port
|
|
- valve_position
|
|
- available_positions
|
|
- available_ports
|
|
- flow_path
|
|
- info
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_pump:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-clean_vessel:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
repeats: 1
|
|
solvent: null
|
|
temp: null
|
|
vessel: null
|
|
volume: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: clean_vessel的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
repeats:
|
|
default: 1
|
|
type: integer
|
|
solvent:
|
|
type: string
|
|
temp:
|
|
type: number
|
|
vessel:
|
|
type: string
|
|
volume:
|
|
type: number
|
|
required:
|
|
- vessel
|
|
- solvent
|
|
- volume
|
|
- temp
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: clean_vessel参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
set_valve_position:
|
|
feedback:
|
|
status: status
|
|
goal:
|
|
float_in: valve_position
|
|
goal_default:
|
|
float_in: 0.0
|
|
handles: []
|
|
result:
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties: {}
|
|
required: []
|
|
title: FloatSingleInput_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
float_in:
|
|
type: number
|
|
required:
|
|
- float_in
|
|
title: FloatSingleInput_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
title: FloatSingleInput_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: FloatSingleInput
|
|
type: object
|
|
type: FloatSingleInput
|
|
transfer:
|
|
feedback:
|
|
status: status
|
|
goal:
|
|
amount: amount
|
|
from_vessel: from_vessel
|
|
rinsing_repeats: rinsing_repeats
|
|
rinsing_solvent: rinsing_solvent
|
|
rinsing_volume: rinsing_volume
|
|
solid: solid
|
|
time: time
|
|
to_vessel: to_vessel
|
|
viscous: viscous
|
|
volume: volume
|
|
goal_default:
|
|
amount: ''
|
|
event: ''
|
|
flowrate: 0.0
|
|
from_vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
rate_spec: ''
|
|
rinsing_repeats: 0
|
|
rinsing_solvent: ''
|
|
rinsing_volume: 0.0
|
|
solid: false
|
|
through: ''
|
|
time: 0.0
|
|
to_vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
transfer_flowrate: 0.0
|
|
viscous: false
|
|
volume: 0.0
|
|
handles: []
|
|
result:
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
current_device:
|
|
type: string
|
|
status:
|
|
type: string
|
|
time_remaining:
|
|
properties:
|
|
nanosec:
|
|
maximum: 4294967295
|
|
minimum: 0
|
|
type: integer
|
|
sec:
|
|
maximum: 2147483647
|
|
minimum: -2147483648
|
|
type: integer
|
|
required:
|
|
- sec
|
|
- nanosec
|
|
title: Duration
|
|
type: object
|
|
time_spent:
|
|
properties:
|
|
nanosec:
|
|
maximum: 4294967295
|
|
minimum: 0
|
|
type: integer
|
|
sec:
|
|
maximum: 2147483647
|
|
minimum: -2147483648
|
|
type: integer
|
|
required:
|
|
- sec
|
|
- nanosec
|
|
title: Duration
|
|
type: object
|
|
required:
|
|
- status
|
|
- current_device
|
|
- time_spent
|
|
- time_remaining
|
|
title: PumpTransfer_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
amount:
|
|
type: string
|
|
event:
|
|
type: string
|
|
flowrate:
|
|
type: number
|
|
from_vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
rate_spec:
|
|
type: string
|
|
rinsing_repeats:
|
|
maximum: 2147483647
|
|
minimum: -2147483648
|
|
type: integer
|
|
rinsing_solvent:
|
|
type: string
|
|
rinsing_volume:
|
|
type: number
|
|
solid:
|
|
type: boolean
|
|
through:
|
|
type: string
|
|
time:
|
|
type: number
|
|
to_vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
transfer_flowrate:
|
|
type: number
|
|
viscous:
|
|
type: boolean
|
|
volume:
|
|
type: number
|
|
required:
|
|
- from_vessel
|
|
- to_vessel
|
|
- volume
|
|
- amount
|
|
- time
|
|
- viscous
|
|
- rinsing_solvent
|
|
- rinsing_volume
|
|
- rinsing_repeats
|
|
- solid
|
|
- flowrate
|
|
- transfer_flowrate
|
|
- rate_spec
|
|
- event
|
|
- through
|
|
title: PumpTransfer_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
title: PumpTransfer_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: PumpTransfer
|
|
type: object
|
|
type: PumpTransfer
|
|
module: unilabos.devices.virtual.virtual_pump:VirtualPump
|
|
status_types:
|
|
current_status: str
|
|
current_volume: float
|
|
from_vessel: str
|
|
max_volume: float
|
|
progress: float
|
|
status: str
|
|
to_vessel: str
|
|
transfer_rate: float
|
|
transferred_volume: float
|
|
valve_position: int
|
|
type: python
|
|
config_info: []
|
|
description: Virtual Pump for PumpTransferProtocol Testing
|
|
handles:
|
|
- data_key: fluid_in
|
|
data_source: handle
|
|
data_type: fluid
|
|
description: 泵的输出口
|
|
handler_key: pumpio
|
|
io_type: source
|
|
label: pumpio
|
|
icon: ''
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: object
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
current_status:
|
|
type: string
|
|
current_volume:
|
|
type: number
|
|
from_vessel:
|
|
type: string
|
|
max_volume:
|
|
type: number
|
|
progress:
|
|
type: number
|
|
status:
|
|
type: string
|
|
to_vessel:
|
|
type: string
|
|
transfer_rate:
|
|
type: number
|
|
transferred_volume:
|
|
type: number
|
|
valve_position:
|
|
type: integer
|
|
required:
|
|
- status
|
|
- valve_position
|
|
- current_volume
|
|
- max_volume
|
|
- transfer_rate
|
|
- from_vessel
|
|
- to_vessel
|
|
- progress
|
|
- transferred_volume
|
|
- current_status
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_rotavap:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
evaporate:
|
|
feedback:
|
|
current_device: current_device
|
|
status: status
|
|
goal:
|
|
pressure: pressure
|
|
stir_speed: stir_speed
|
|
temp: temp
|
|
time: time
|
|
vessel: vessel
|
|
goal_default:
|
|
pressure: 0.0
|
|
solvent: ''
|
|
stir_speed: 0.0
|
|
temp: 0.0
|
|
time: ''
|
|
vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
handles: []
|
|
result:
|
|
message: message
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
current_device:
|
|
type: string
|
|
status:
|
|
type: string
|
|
time_remaining:
|
|
properties:
|
|
nanosec:
|
|
maximum: 4294967295
|
|
minimum: 0
|
|
type: integer
|
|
sec:
|
|
maximum: 2147483647
|
|
minimum: -2147483648
|
|
type: integer
|
|
required:
|
|
- sec
|
|
- nanosec
|
|
title: Duration
|
|
type: object
|
|
time_spent:
|
|
properties:
|
|
nanosec:
|
|
maximum: 4294967295
|
|
minimum: 0
|
|
type: integer
|
|
sec:
|
|
maximum: 2147483647
|
|
minimum: -2147483648
|
|
type: integer
|
|
required:
|
|
- sec
|
|
- nanosec
|
|
title: Duration
|
|
type: object
|
|
required:
|
|
- status
|
|
- current_device
|
|
- time_spent
|
|
- time_remaining
|
|
title: Evaporate_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
pressure:
|
|
type: number
|
|
solvent:
|
|
type: string
|
|
stir_speed:
|
|
type: number
|
|
temp:
|
|
type: number
|
|
time:
|
|
type: string
|
|
vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
required:
|
|
- vessel
|
|
- pressure
|
|
- temp
|
|
- time
|
|
- stir_speed
|
|
- solvent
|
|
title: Evaporate_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
title: Evaporate_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: Evaporate
|
|
type: object
|
|
type: Evaporate
|
|
module: unilabos.devices.virtual.virtual_rotavap:VirtualRotavap
|
|
status_types:
|
|
current_temp: float
|
|
evaporated_volume: float
|
|
max_rotation_speed: float
|
|
max_temp: float
|
|
message: str
|
|
progress: float
|
|
remaining_time: float
|
|
rotation_speed: float
|
|
rotavap_state: str
|
|
status: str
|
|
vacuum_pressure: float
|
|
type: python
|
|
config_info: []
|
|
description: Virtual Rotary Evaporator for EvaporateProtocol Testing
|
|
handles:
|
|
- data_key: vessel_in
|
|
data_source: handle
|
|
data_type: fluid
|
|
description: 样品连接口
|
|
handler_key: samplein
|
|
io_type: target
|
|
label: sample_in
|
|
side: NORTH
|
|
- data_key: product_out
|
|
data_source: handle
|
|
data_type: fluid
|
|
description: 浓缩产物出口
|
|
handler_key: productout
|
|
io_type: source
|
|
label: product_out
|
|
side: SOUTH
|
|
- data_key: solvent_out
|
|
data_source: handle
|
|
data_type: fluid
|
|
description: 冷凝溶剂出口
|
|
handler_key: solventout
|
|
io_type: source
|
|
label: solvent_out
|
|
side: EAST
|
|
icon: Rotaryevaporator.webp
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: string
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
current_temp:
|
|
type: number
|
|
evaporated_volume:
|
|
type: number
|
|
max_rotation_speed:
|
|
type: number
|
|
max_temp:
|
|
type: number
|
|
message:
|
|
type: string
|
|
progress:
|
|
type: number
|
|
remaining_time:
|
|
type: number
|
|
rotation_speed:
|
|
type: number
|
|
rotavap_state:
|
|
type: string
|
|
status:
|
|
type: string
|
|
vacuum_pressure:
|
|
type: number
|
|
required:
|
|
- status
|
|
- rotavap_state
|
|
- current_temp
|
|
- rotation_speed
|
|
- vacuum_pressure
|
|
- evaporated_volume
|
|
- progress
|
|
- message
|
|
- max_temp
|
|
- max_rotation_speed
|
|
- remaining_time
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_separator:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
separate:
|
|
feedback:
|
|
current_status: status
|
|
progress: progress
|
|
goal:
|
|
from_vessel: from_vessel
|
|
product_phase: product_phase
|
|
purpose: purpose
|
|
repeats: repeats
|
|
separation_vessel: separation_vessel
|
|
settling_time: settling_time
|
|
solvent: solvent
|
|
solvent_volume: solvent_volume
|
|
stir_speed: stir_speed
|
|
stir_time: stir_time
|
|
through: through
|
|
to_vessel: to_vessel
|
|
waste_phase_to_vessel: waste_phase_to_vessel
|
|
goal_default:
|
|
from_vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
product_phase: ''
|
|
product_vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
purpose: ''
|
|
repeats: 0
|
|
separation_vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
settling_time: 0.0
|
|
solvent: ''
|
|
solvent_volume: ''
|
|
stir_speed: 0.0
|
|
stir_time: 0.0
|
|
through: ''
|
|
to_vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
volume: ''
|
|
waste_phase_to_vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
waste_vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
handles: []
|
|
result:
|
|
message: message
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
progress:
|
|
type: number
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
- progress
|
|
title: Separate_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
from_vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
product_phase:
|
|
type: string
|
|
product_vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
purpose:
|
|
type: string
|
|
repeats:
|
|
maximum: 2147483647
|
|
minimum: -2147483648
|
|
type: integer
|
|
separation_vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
settling_time:
|
|
type: number
|
|
solvent:
|
|
type: string
|
|
solvent_volume:
|
|
type: string
|
|
stir_speed:
|
|
type: number
|
|
stir_time:
|
|
type: number
|
|
through:
|
|
type: string
|
|
to_vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
volume:
|
|
type: string
|
|
waste_phase_to_vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
waste_vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
required:
|
|
- vessel
|
|
- purpose
|
|
- product_phase
|
|
- from_vessel
|
|
- separation_vessel
|
|
- to_vessel
|
|
- waste_phase_to_vessel
|
|
- product_vessel
|
|
- waste_vessel
|
|
- solvent
|
|
- solvent_volume
|
|
- volume
|
|
- through
|
|
- repeats
|
|
- stir_time
|
|
- stir_speed
|
|
- settling_time
|
|
title: Separate_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
message:
|
|
type: string
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
- message
|
|
- return_info
|
|
title: Separate_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: Separate
|
|
type: object
|
|
type: Separate
|
|
module: unilabos.devices.virtual.virtual_separator:VirtualSeparator
|
|
status_types:
|
|
has_phases: bool
|
|
message: str
|
|
phase_separation: bool
|
|
progress: float
|
|
separator_state: str
|
|
settling_time: float
|
|
status: str
|
|
stir_speed: float
|
|
volume: float
|
|
type: python
|
|
config_info: []
|
|
description: Virtual Separator for SeparateProtocol Testing
|
|
handles:
|
|
- data_key: from_vessel
|
|
data_source: handle
|
|
data_type: fluid
|
|
description: 需要分离的混合液体输入口
|
|
handler_key: separatorin
|
|
io_type: target
|
|
label: separator_in
|
|
side: NORTH
|
|
- data_key: bottom_outlet
|
|
data_source: executor
|
|
data_type: fluid
|
|
description: 下相(重相)液体输出口
|
|
handler_key: bottomphaseout
|
|
io_type: source
|
|
label: bottom_phase_out
|
|
side: SOUTH
|
|
- data_key: top_outlet
|
|
data_source: executor
|
|
data_type: fluid
|
|
description: 上相(轻相)液体输出口
|
|
handler_key: topphaseout
|
|
io_type: source
|
|
label: top_phase_out
|
|
side: EAST
|
|
- data_key: mechanical_port
|
|
data_source: handle
|
|
data_type: mechanical
|
|
description: 用于连接搅拌器等机械设备的接口
|
|
handler_key: bind
|
|
io_type: target
|
|
label: bind
|
|
side: WEST
|
|
icon: Separator.webp
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: string
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
has_phases:
|
|
type: boolean
|
|
message:
|
|
type: string
|
|
phase_separation:
|
|
type: boolean
|
|
progress:
|
|
type: number
|
|
separator_state:
|
|
type: string
|
|
settling_time:
|
|
type: number
|
|
status:
|
|
type: string
|
|
stir_speed:
|
|
type: number
|
|
volume:
|
|
type: number
|
|
required:
|
|
- status
|
|
- separator_state
|
|
- volume
|
|
- has_phases
|
|
- phase_separation
|
|
- stir_speed
|
|
- settling_time
|
|
- progress
|
|
- message
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_solenoid_valve:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-is_closed:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: is_closed的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: is_closed参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-reset:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: reset的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: reset参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-toggle:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: toggle的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: toggle参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
close:
|
|
feedback: {}
|
|
goal:
|
|
command: CLOSED
|
|
goal_default: {}
|
|
handles: []
|
|
result:
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Feedback
|
|
type: object
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
required:
|
|
- return_info
|
|
title: EmptyIn_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: EmptyIn
|
|
type: object
|
|
type: EmptyIn
|
|
open:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Feedback
|
|
type: object
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
required:
|
|
- return_info
|
|
title: EmptyIn_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: EmptyIn
|
|
type: object
|
|
type: EmptyIn
|
|
set_status:
|
|
feedback: {}
|
|
goal:
|
|
string: string
|
|
goal_default:
|
|
string: ''
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties: {}
|
|
required: []
|
|
title: StrSingleInput_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
string:
|
|
type: string
|
|
required:
|
|
- string
|
|
title: StrSingleInput_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
title: StrSingleInput_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: StrSingleInput
|
|
type: object
|
|
type: StrSingleInput
|
|
set_valve_position:
|
|
feedback: {}
|
|
goal:
|
|
command: command
|
|
goal_default:
|
|
command: ''
|
|
handles: []
|
|
result:
|
|
message: message
|
|
success: success
|
|
valve_position: valve_position
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
title: SendCmd_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
command:
|
|
type: string
|
|
required:
|
|
- command
|
|
title: SendCmd_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
title: SendCmd_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: SendCmd
|
|
type: object
|
|
type: SendCmd
|
|
module: unilabos.devices.virtual.virtual_solenoid_valve:VirtualSolenoidValve
|
|
status_types:
|
|
is_open: bool
|
|
state: dict
|
|
status: str
|
|
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
|
|
data_source: handle
|
|
data_type: fluid
|
|
description: 电磁阀的进液口
|
|
handler_key: in
|
|
io_type: target
|
|
label: in
|
|
side: NORTH
|
|
- data_key: fluid_port_out
|
|
data_source: handle
|
|
data_type: fluid
|
|
description: 电磁阀的出液口
|
|
handler_key: out
|
|
io_type: source
|
|
label: out
|
|
side: SOUTH
|
|
icon: ''
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: object
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
is_open:
|
|
type: boolean
|
|
state:
|
|
type: object
|
|
status:
|
|
type: string
|
|
valve_position:
|
|
type: string
|
|
valve_state:
|
|
type: string
|
|
required:
|
|
- status
|
|
- valve_state
|
|
- is_open
|
|
- valve_position
|
|
- state
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_solid_dispenser:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
add_solid:
|
|
feedback:
|
|
current_status: status
|
|
progress: progress
|
|
goal:
|
|
equiv: equiv
|
|
event: event
|
|
mass: mass
|
|
mol: mol
|
|
purpose: purpose
|
|
rate_spec: rate_spec
|
|
ratio: ratio
|
|
reagent: reagent
|
|
vessel: vessel
|
|
goal_default:
|
|
amount: ''
|
|
equiv: ''
|
|
event: ''
|
|
mass: ''
|
|
mol: ''
|
|
purpose: ''
|
|
rate_spec: ''
|
|
ratio: ''
|
|
reagent: ''
|
|
stir: false
|
|
stir_speed: 0.0
|
|
time: ''
|
|
vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
viscous: false
|
|
volume: ''
|
|
handles: []
|
|
result:
|
|
message: message
|
|
return_info: return_info
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
current_status:
|
|
type: string
|
|
progress:
|
|
type: number
|
|
required:
|
|
- progress
|
|
- current_status
|
|
title: Add_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
amount:
|
|
type: string
|
|
equiv:
|
|
type: string
|
|
event:
|
|
type: string
|
|
mass:
|
|
type: string
|
|
mol:
|
|
type: string
|
|
purpose:
|
|
type: string
|
|
rate_spec:
|
|
type: string
|
|
ratio:
|
|
type: string
|
|
reagent:
|
|
type: string
|
|
stir:
|
|
type: boolean
|
|
stir_speed:
|
|
type: number
|
|
time:
|
|
type: string
|
|
vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
viscous:
|
|
type: boolean
|
|
volume:
|
|
type: string
|
|
required:
|
|
- vessel
|
|
- reagent
|
|
- volume
|
|
- mass
|
|
- amount
|
|
- time
|
|
- stir
|
|
- stir_speed
|
|
- viscous
|
|
- purpose
|
|
- event
|
|
- mol
|
|
- rate_spec
|
|
- equiv
|
|
- ratio
|
|
title: Add_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
message:
|
|
type: string
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
- message
|
|
- return_info
|
|
title: Add_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: Add
|
|
type: object
|
|
type: Add
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-find_solid_reagent_bottle:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
reagent_name: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
reagent_name:
|
|
type: string
|
|
required:
|
|
- reagent_name
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: find_solid_reagent_bottle参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-parse_mass_string:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
mass_str: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
mass_str:
|
|
type: string
|
|
required:
|
|
- mass_str
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: parse_mass_string参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-parse_mol_string:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
mol_str: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
mol_str:
|
|
type: string
|
|
required:
|
|
- mol_str
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: parse_mol_string参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
module: unilabos.devices.virtual.virtual_solid_dispenser:VirtualSolidDispenser
|
|
status_types:
|
|
current_reagent: str
|
|
device_info: dict
|
|
dispensed_amount: float
|
|
status: str
|
|
total_operations: int
|
|
type: python
|
|
config_info: []
|
|
description: Virtual Solid Dispenser for Add Protocol Testing - supports mass and
|
|
molar additions
|
|
handles:
|
|
- data_key: solid_out
|
|
data_source: executor
|
|
data_type: resource
|
|
description: 固体试剂输出口
|
|
handler_key: SolidOut
|
|
io_type: source
|
|
label: SolidOut
|
|
side: SOUTH
|
|
- data_key: solid_in
|
|
data_source: handle
|
|
data_type: resource
|
|
description: 固体试剂输入口(连接试剂瓶)
|
|
handler_key: SolidIn
|
|
io_type: target
|
|
label: SolidIn
|
|
side: NORTH
|
|
icon: ''
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: object
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
current_reagent:
|
|
type: string
|
|
device_info:
|
|
type: object
|
|
dispensed_amount:
|
|
type: number
|
|
status:
|
|
type: string
|
|
total_operations:
|
|
type: integer
|
|
required:
|
|
- status
|
|
- current_reagent
|
|
- dispensed_amount
|
|
- total_operations
|
|
- device_info
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_stirrer:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
start_stir:
|
|
feedback:
|
|
status: status
|
|
goal:
|
|
purpose: purpose
|
|
stir_speed: stir_speed
|
|
vessel: vessel
|
|
goal_default:
|
|
purpose: ''
|
|
stir_speed: 0.0
|
|
vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
handles: []
|
|
result:
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
current_speed:
|
|
type: number
|
|
current_status:
|
|
type: string
|
|
progress:
|
|
type: number
|
|
required:
|
|
- progress
|
|
- current_speed
|
|
- current_status
|
|
title: StartStir_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
purpose:
|
|
type: string
|
|
stir_speed:
|
|
type: number
|
|
vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
required:
|
|
- vessel
|
|
- stir_speed
|
|
- purpose
|
|
title: StartStir_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
message:
|
|
type: string
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
- message
|
|
- return_info
|
|
title: StartStir_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: StartStir
|
|
type: object
|
|
type: StartStir
|
|
stir:
|
|
feedback:
|
|
status: status
|
|
goal:
|
|
settling_time: settling_time
|
|
stir_speed: stir_speed
|
|
stir_time: stir_time
|
|
goal_default:
|
|
event: ''
|
|
settling_time: ''
|
|
stir_speed: 0.0
|
|
stir_time: 0.0
|
|
time: ''
|
|
time_spec: ''
|
|
vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
handles: []
|
|
result:
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
title: Stir_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
event:
|
|
type: string
|
|
settling_time:
|
|
type: string
|
|
stir_speed:
|
|
type: number
|
|
stir_time:
|
|
type: number
|
|
time:
|
|
type: string
|
|
time_spec:
|
|
type: string
|
|
vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
required:
|
|
- vessel
|
|
- time
|
|
- event
|
|
- time_spec
|
|
- stir_time
|
|
- stir_speed
|
|
- settling_time
|
|
title: Stir_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
message:
|
|
type: string
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
- message
|
|
- return_info
|
|
title: Stir_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: Stir
|
|
type: object
|
|
type: Stir
|
|
stop_stir:
|
|
feedback:
|
|
status: status
|
|
goal:
|
|
vessel: vessel
|
|
goal_default:
|
|
vessel:
|
|
category: ''
|
|
children: []
|
|
config: ''
|
|
data: ''
|
|
id: ''
|
|
name: ''
|
|
parent: ''
|
|
pose:
|
|
orientation:
|
|
w: 1.0
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
position:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
sample_id: ''
|
|
type: ''
|
|
handles: []
|
|
result:
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
current_status:
|
|
type: string
|
|
progress:
|
|
type: number
|
|
required:
|
|
- progress
|
|
- current_status
|
|
title: StopStir_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
vessel:
|
|
properties:
|
|
category:
|
|
type: string
|
|
children:
|
|
items:
|
|
type: string
|
|
type: array
|
|
config:
|
|
type: string
|
|
data:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parent:
|
|
type: string
|
|
pose:
|
|
properties:
|
|
orientation:
|
|
properties:
|
|
w:
|
|
type: number
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
- w
|
|
title: Quaternion
|
|
type: object
|
|
position:
|
|
properties:
|
|
x:
|
|
type: number
|
|
y:
|
|
type: number
|
|
z:
|
|
type: number
|
|
required:
|
|
- x
|
|
- y
|
|
- z
|
|
title: Point
|
|
type: object
|
|
required:
|
|
- position
|
|
- orientation
|
|
title: Pose
|
|
type: object
|
|
sample_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- sample_id
|
|
- children
|
|
- parent
|
|
- type
|
|
- category
|
|
- pose
|
|
- config
|
|
- data
|
|
title: Resource
|
|
type: object
|
|
required:
|
|
- vessel
|
|
title: StopStir_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
message:
|
|
type: string
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
- message
|
|
- return_info
|
|
title: StopStir_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: StopStir
|
|
type: object
|
|
type: StopStir
|
|
module: unilabos.devices.virtual.virtual_stirrer:VirtualStirrer
|
|
status_types:
|
|
current_speed: float
|
|
current_vessel: str
|
|
device_info: dict
|
|
is_stirring: bool
|
|
max_speed: float
|
|
min_speed: float
|
|
operation_mode: str
|
|
remaining_time: float
|
|
status: str
|
|
type: python
|
|
config_info: []
|
|
description: Virtual Stirrer for StirProtocol Testing
|
|
handles:
|
|
- data_key: vessel
|
|
data_source: handle
|
|
data_type: mechanical
|
|
description: 搅拌器的机械连接口
|
|
handler_key: stirrer
|
|
io_type: source
|
|
label: stirrer
|
|
side: NORTH
|
|
icon: Stirrer.webp
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: object
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
current_speed:
|
|
type: number
|
|
current_vessel:
|
|
type: string
|
|
device_info:
|
|
type: object
|
|
is_stirring:
|
|
type: boolean
|
|
max_speed:
|
|
type: number
|
|
min_speed:
|
|
type: number
|
|
operation_mode:
|
|
type: string
|
|
remaining_time:
|
|
type: number
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
- operation_mode
|
|
- current_vessel
|
|
- current_speed
|
|
- is_stirring
|
|
- remaining_time
|
|
- max_speed
|
|
- min_speed
|
|
- device_info
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_transfer_pump:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-aspirate:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
velocity: null
|
|
volume: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: aspirate的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
velocity:
|
|
type: number
|
|
volume:
|
|
type: number
|
|
required:
|
|
- volume
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: aspirate参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-dispense:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
velocity: null
|
|
volume: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: dispense的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
velocity:
|
|
type: number
|
|
volume:
|
|
type: number
|
|
required:
|
|
- volume
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: dispense参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-empty_syringe:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
velocity: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: empty_syringe的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
velocity:
|
|
type: number
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: empty_syringe参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-fill_syringe:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
velocity: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: fill_syringe的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
velocity:
|
|
type: number
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: fill_syringe参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-is_empty:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: is_empty的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: is_empty参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-is_full:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: is_full的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: is_full参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-pull_plunger:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
velocity: null
|
|
volume: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: pull_plunger的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
velocity:
|
|
type: number
|
|
volume:
|
|
type: number
|
|
required:
|
|
- volume
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: pull_plunger参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-push_plunger:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
velocity: null
|
|
volume: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: push_plunger的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
velocity:
|
|
type: number
|
|
volume:
|
|
type: number
|
|
required:
|
|
- volume
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: push_plunger参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-set_max_velocity:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default:
|
|
velocity: null
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: set_max_velocity的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties:
|
|
velocity:
|
|
type: number
|
|
required:
|
|
- velocity
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: set_max_velocity参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-stop_operation:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: stop_operation的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: stop_operation参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
set_position:
|
|
feedback:
|
|
current_position: current_position
|
|
progress: progress
|
|
status: status
|
|
goal:
|
|
max_velocity: max_velocity
|
|
position: position
|
|
goal_default:
|
|
max_velocity: 0.0
|
|
position: 0.0
|
|
handles: []
|
|
result:
|
|
message: message
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
current_position:
|
|
type: number
|
|
progress:
|
|
type: number
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
- current_position
|
|
- progress
|
|
title: SetPumpPosition_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
max_velocity:
|
|
type: number
|
|
position:
|
|
type: number
|
|
required:
|
|
- position
|
|
- max_velocity
|
|
title: SetPumpPosition_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
message:
|
|
type: string
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
- message
|
|
title: SetPumpPosition_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: SetPumpPosition
|
|
type: object
|
|
type: SetPumpPosition
|
|
transfer:
|
|
feedback:
|
|
current_status: current_status
|
|
progress: progress
|
|
transferred_volume: transferred_volume
|
|
goal:
|
|
amount: amount
|
|
from_vessel: from_vessel
|
|
rinsing_repeats: rinsing_repeats
|
|
rinsing_solvent: rinsing_solvent
|
|
rinsing_volume: rinsing_volume
|
|
solid: solid
|
|
time: time
|
|
to_vessel: to_vessel
|
|
viscous: viscous
|
|
volume: volume
|
|
goal_default:
|
|
amount: ''
|
|
from_vessel: ''
|
|
rinsing_repeats: 0
|
|
rinsing_solvent: ''
|
|
rinsing_volume: 0.0
|
|
solid: false
|
|
time: 0.0
|
|
to_vessel: ''
|
|
viscous: false
|
|
volume: 0.0
|
|
handles: []
|
|
result:
|
|
message: message
|
|
success: success
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties:
|
|
current_status:
|
|
type: string
|
|
progress:
|
|
type: number
|
|
transferred_volume:
|
|
type: number
|
|
required:
|
|
- progress
|
|
- transferred_volume
|
|
- current_status
|
|
title: Transfer_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
amount:
|
|
type: string
|
|
from_vessel:
|
|
type: string
|
|
rinsing_repeats:
|
|
maximum: 2147483647
|
|
minimum: -2147483648
|
|
type: integer
|
|
rinsing_solvent:
|
|
type: string
|
|
rinsing_volume:
|
|
type: number
|
|
solid:
|
|
type: boolean
|
|
time:
|
|
type: number
|
|
to_vessel:
|
|
type: string
|
|
viscous:
|
|
type: boolean
|
|
volume:
|
|
type: number
|
|
required:
|
|
- from_vessel
|
|
- to_vessel
|
|
- volume
|
|
- amount
|
|
- time
|
|
- viscous
|
|
- rinsing_solvent
|
|
- rinsing_volume
|
|
- rinsing_repeats
|
|
- solid
|
|
title: Transfer_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
message:
|
|
type: string
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- success
|
|
- message
|
|
- return_info
|
|
title: Transfer_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: Transfer
|
|
type: object
|
|
type: Transfer
|
|
module: unilabos.devices.virtual.virtual_transferpump:VirtualTransferPump
|
|
status_types:
|
|
current_volume: float
|
|
max_velocity: float
|
|
position: float
|
|
pump_info: dict
|
|
remaining_capacity: float
|
|
status: str
|
|
transfer_rate: float
|
|
type: python
|
|
config_info: []
|
|
description: Virtual Transfer Pump for TransferProtocol Testing (Syringe-style)
|
|
handles:
|
|
- data_key: fluid_port
|
|
data_source: handle
|
|
data_type: fluid
|
|
description: 注射器式转移泵的连接口
|
|
handler_key: transferpump
|
|
io_type: source
|
|
label: transferpump
|
|
side: SOUTH
|
|
icon: Pump.webp
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: object
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
current_volume:
|
|
type: number
|
|
max_velocity:
|
|
type: number
|
|
position:
|
|
type: number
|
|
pump_info:
|
|
type: object
|
|
remaining_capacity:
|
|
type: number
|
|
status:
|
|
type: string
|
|
transfer_rate:
|
|
type: number
|
|
required:
|
|
- status
|
|
- position
|
|
- current_volume
|
|
- max_velocity
|
|
- transfer_rate
|
|
- remaining_capacity
|
|
- pump_info
|
|
type: object
|
|
version: 1.0.0
|
|
virtual_vacuum_pump:
|
|
category:
|
|
- virtual_device
|
|
class:
|
|
action_value_mappings:
|
|
auto-cleanup:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: cleanup的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: cleanup参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-initialize:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: initialize的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: initialize参数
|
|
type: object
|
|
type: UniLabJsonCommandAsync
|
|
auto-is_closed:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: is_closed的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: is_closed参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
auto-is_open:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: is_open的参数schema
|
|
properties:
|
|
feedback: {}
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
type: object
|
|
result: {}
|
|
required:
|
|
- goal
|
|
title: is_open参数
|
|
type: object
|
|
type: UniLabJsonCommand
|
|
close:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Feedback
|
|
type: object
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
required:
|
|
- return_info
|
|
title: EmptyIn_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: EmptyIn
|
|
type: object
|
|
type: EmptyIn
|
|
open:
|
|
feedback: {}
|
|
goal: {}
|
|
goal_default: {}
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Feedback
|
|
type: object
|
|
goal:
|
|
properties: {}
|
|
required: []
|
|
title: EmptyIn_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
required:
|
|
- return_info
|
|
title: EmptyIn_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: EmptyIn
|
|
type: object
|
|
type: EmptyIn
|
|
set_status:
|
|
feedback: {}
|
|
goal:
|
|
string: string
|
|
goal_default:
|
|
string: ''
|
|
handles: []
|
|
result: {}
|
|
schema:
|
|
description: ''
|
|
properties:
|
|
feedback:
|
|
properties: {}
|
|
required: []
|
|
title: StrSingleInput_Feedback
|
|
type: object
|
|
goal:
|
|
properties:
|
|
string:
|
|
type: string
|
|
required:
|
|
- string
|
|
title: StrSingleInput_Goal
|
|
type: object
|
|
result:
|
|
properties:
|
|
return_info:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- return_info
|
|
- success
|
|
title: StrSingleInput_Result
|
|
type: object
|
|
required:
|
|
- goal
|
|
title: StrSingleInput
|
|
type: object
|
|
type: StrSingleInput
|
|
module: unilabos.devices.virtual.virtual_vacuum_pump:VirtualVacuumPump
|
|
status_types:
|
|
status: str
|
|
type: python
|
|
config_info: []
|
|
description: Virtual vacuum pump
|
|
handles:
|
|
- data_key: fluid_in
|
|
data_source: handle
|
|
data_type: fluid
|
|
description: 真空泵进气口
|
|
handler_key: vacuumpump
|
|
io_type: source
|
|
label: vacuumpump
|
|
side: SOUTH
|
|
icon: Vacuum.webp
|
|
init_param_schema:
|
|
config:
|
|
properties:
|
|
config:
|
|
type: string
|
|
device_id:
|
|
type: string
|
|
required: []
|
|
type: object
|
|
data:
|
|
properties:
|
|
status:
|
|
type: string
|
|
required:
|
|
- status
|
|
type: object
|
|
version: 1.0.0
|