【开源】插件式开发平台QCPFrame应用案例

一、概述

        QCPFrame 全称Qt-based Commonly-used Plugin Framework。它是一个开源的基于Qt的跨平台插件开发框架,旨在提高基于PC及Linux平台下工控软件设计的通用性,重用性,高效性,可裁剪性,松耦合性。在QCPFrame中,您可以基于控制台或者服务来运行最小插件系统,也可以通过view editor(也是一个插件)来编辑带有UI的桌面程序。在QCPFrame中,一切皆插件,甚至一个后台功能,菜单项,工具栏项,状态栏项,dock片都可以是一个插件。插件在编辑和配置插件,包括它自己,这一切就像是在搭积木,使得模块开发人员只用专注于本模块的开发,而无需过多关注软件系统最终的集成。

【开源】基于Qt的跨平台插件开发框架QCPFrame

二、应用案例

       本章节所述案例都是在QCPFrame的基础上进行二次开发,增加业务层,这包括业务层模型和业务层插件,业务层模型(Model)是业务层其他模块与QCPFrame的Core和View通讯的中介,它使QCPFrame所有特性为该业务方向服务。

1. 航空自动测试系统

       自动测试系统具有自动化测试程度高,量产效率高等特征,被广泛应用于测试测量系统中,该案例用于航空自动化测试系统。

     1.1原生模块:

QCPF_Model,QCPF_ViewModel,QCPF_HostView,QCPF_PluginManager,QCPF_SystemManager,QCPF_UserManager,QCPF_ViewEditor。

    1.2 二次开发模块:

           ATSModel(自动测试业务层模型),Information(信息输出插件),FileExplore(文件浏览器插件),Logger(日志输出插件),UI-3500(某UUT测试序列插件),Self-Check(系统自检插件),Report(测试报告预览、打印插件)。

    1.3 说明

           在完成二次开发后,QCPFrame摇身一变成为“插件式自动测试开发平台”,即开发者在QCPFrame框架下基于ATSModel业务开发“自动测试序列插件”,每多使能一个“自动测试序列插件”在下图左侧“测试程序”下拉框就会多一个可选项。ATSModel用于控制测试程序的开始,停止,暂停,测试序列管理,测试信息输入,测试项管理等一系列业务。它是测试序列与QCPFrame沟通的桥梁。

         另外,在该项目中,FileExplore(文件浏览器插件),Logger(日志输出插件)两个模块被设计成与业务无关,他们基于QCPF_Model的通用特性,使得其能够被后续其他业务方向的平台二次开发所重用。

图1. 基于QCPFrame的航空自动测试平台

                                                                    图2. 航空自动测试平台系统管理器

                                               

                                                                     图3. 航空自动测试平台测试序列插件管理器

 

                                                                         图4. 航空自动测试平台UI编辑器 

2.  无人机监控系统

        无人机监控系统用于地面站系统对无人机进行监视,控制,飞行任务下发,数据下载等功能。

     2.1原生模块:

QCPF_Model,QCPF_ViewModel,QCPF_HostView,QCPF_PluginManager,QCPF_SystemManager,QCPF_UserManager,QCPF_ViewEditor。

    2.2 二次开发模块:

           UAVModel(无人机监控系统业务层模型),无线电数传插件,数据采集插件,数据分析插件,图像处理插件,地理位置插件,路径规划插件,机载计算机管理插件,mqtt通讯插件,系统自检插件,日志输出插件,测试报告预览、打印插件等。

    2.3 说明

           在完成二次开发后,QCPFrame变为“插件式无人机监控开发平台”,即开发者在QCPFrame框架下基于UAVModel业务开发“地面站业务相关插件”。UAVModel是地面站业务层与QCPFrame沟通的桥梁。

          图5. 基于QCPFrame的地面站平台

3.  分布式机床数据采集系统

        用于实时采集机床温度,声音及震动信号,通过Mqtt协议分发数据到订阅端。

     3.1原生模块:

QCPF_Model,QCPF_ViewModel,QCPF_HostView,QCPF_PluginManager,QCPF_SystemManager,QCPF_UserManager,QCPF_ViewEditor,QCPF_Mqtt。

    3.2 二次开发模块:

           MachineAcqModel(机床数据采集业务层模型),图表显示插件QCPF_CustomPlot,QCPF_Mqtt。在实际设计过程中,尽量向着通用,松耦合方式开发,便于后期重用。

    3.3 说明

           该项目通过Mqtt将采集到得数据发布给多个Web订阅端,用于分布式远程教学。在完成二次开发后,QCPFrame变为“分布式机床数据采集系统”,即开发者在QCPFrame框架下基于MachineAcqModel业务开发“数据采集业务相关插件”。MachineAcqModel是采集系统业务层与QCPFrame沟通的桥梁。

           

 图6. 基于QCPFrame的分布式数据采集系统

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jamie.T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值