文章目录
opentcs开源项目如何新增一个驱动commAdapter?
opentcs是什么?
openTCS 是一款独立于供应商且可灵活使用的控制系统软件,适用于自动导引车系统 (AGVS) 和其他非连续输送机,如电动单轨输送机和移动装配平台。它最初是在一个公共资助的项目中开发的。现在,代码库正在由德国多特蒙德的弗劳恩霍夫物料流和物流研究所(IML)维护和开发。
https://www.opentcs.org/en/index.html
opentcs基本模块介绍
opentcs主要由Kernel、KernelControlCenter和PlantOverview三部分构成,CommAdapter是AGV与opentcs通信的重要组件,一般将其称为驱动。源码中实现了一个默认回环驱动LoopbackAdapter。
基于LoopbackAdapter创建一个TestAdapter
本文基于4.17.release版本
1、 复制openTCS-CommAdapter-Loopback 模块命名为openTCS-CommAdapter-Koobot
可以发现新复制的Adapter-Test模块还没有被gradle识别为项目里的一个Module
修改根目录下settings.gradle,在文件最后一行添加新增模块:
include ‘openTCS-CommAdapter-Test’
reload项目,Module成功被识别
2、修改包名和目录下Loopback前缀的文件名
修改包名为testvehicle
TestAdapter包名不可与LoopbackAdapter包名冲突,否则Kernel可能会找不到TestAdapter
refactor包名时,需要注意仅修改当前模块的包名
修改目录下所有文件名及文件内容Loopback改为Test
主要修改guiceConfig和main目录下的.java文件和.properties文件
LoopbackAdapterConstants可保留其原名
3、Kernel模块添加新驱动的依赖
在build.gradle中添加
compile project(':openTCS-CommAdapter-Test')
4、测试
按顺序启动kernel、kernelControlCenter和PlantOverview
可以发现此时虽然有了两个驱动,但是名称却相同
修复名称问题
读取驱动配置文件的名称时,它的包名和原loopback是相同的,所以读取错了,修改此包名和I18nTestCommAdapter.java中的路径名即可
成功得到新创建的驱动Test Adapter
结语
至此,你应该已经可以得到自己创建的新驱动,如果没能成功在界面显示你创建的驱动,那么大概率是有文件名没有修改好,建议重新建一个干净的分支,细心操作