关于
UCS 应用框架前身是1862 CK项目应用框架。 CK项目中插件框架使用的是 CTK , 在CK项目中遇到了CTK框架如下一些缺点:
插件加载及卸载、以及插件之间的依赖、启动和停止顺序需开发者自己代码实现,随着插件数量及其之间依赖关系变得更复杂后,不易管理;
CTK插件框架包含大量代码及多项子服务, 导致插件框架臃肿, 难以定制和维护, 而我们只需要其中的部分功能;
遇到CTK 框架本身存在的bug, 定位和修复比较困难;
CTK框架基于QT开发, 因此间接性要求所有插件都需要依赖QT进行开发, 这导致插件框架的依赖性变强, 对开发者模块化分工及开发和测试环境的要求变高;
基于以上原因, 在1862现有CK项目基础上, 将其插件框架替换为 OSP 插件框架, 并提供如下多种可选通信方式, 替换原来基于CTK EventAdmin的通信方式:
说明
基于以上背景可以看到, 目前UCS相对于CK来说, 只是替换了插件框架和提供了更多插件之间和应用之间的通信方式, 在功能架构和业务层面仍是沿用CK的设计.
插件化开发是一种开发模式, 它通过将业务逻辑封装在插件中, 实现业务逻辑的解耦和复用, 从而提高开发效率和代码质量, 方便分工 合作, 测试和维护. 同时, 插件化开发也使得应用的扩展性更强, 能够根据需求动态添加和删除插件, 从而实现应用的灵活性和可定制性.
本文档主要介绍UCS的插件化开发模式, 不涉及无人操控系统本身的功能模块划分、架构、协议规范和业务逻辑等.