架构文档 (qeframework_arch.md)
1. 工程概述
本项目是基于Qt框架开发的EPICS QT Framework,旨在为EPICS(实验物理和工业控制系统)提供一套丰富的Qt控件和工具。主要功能包括:
- 提供与EPICS CA(Channel Access)和PVA(PV Access)的集成支持。
- 支持多种Qt版本(Qt 4、Qt 5、Qt 6)。
- 提供丰富的UI控件,如数据可视化、图表、表单等。
2. 模块划分
2.1 QEFramework
- 路径:
qeframeworkSup/project - 功能: 核心框架库,提供基础控件和EPICS集成功能。
- 关键模块:
adaptation_parameters: 适配参数管理。common: 公共工具和基础类。protocol: 协议支持模块。widgets: 各类UI控件(如QEWidget、QEPlot等)。archive: 归档系统支持模块。data: 数据处理和管理模块。threads: 线程管理模块
2.2 QEPlugin
- 路径:
qepluginApp/project - 功能: Qt Designer插件,用于在Qt Designer中集成QEFramework控件。
- 关键模块:
QEComment: 注释控件插件。QEMenuButton: 菜单按钮控件插件。QEPeriodic: 周期性任务控件插件。
archapplDataSup
- 路径:
archapplDataSup - 功能: 提供对Archiver Appliance的支持,处理Google Protocol Buffers数据。
3 核心架构设计
3.1 数据层
EPICS QT Framework通过QCaObject类与EPICS系统进行通信。该类封装了Channel Access和PV Access协议,提供了统一的接口来处理EPICS变量的读写操作。
3.2 协议层
框架支持多种协议:
- Channel Access (CA): 传统的EPICS通信协议
- PV Access (PVA): 新一代EPICS通信协议
协议层通过QEBaseClient抽象类提供统一接口,具体实现包括QECaClient和QEPvaClient。
3.3 控件层
控件层基于Qt Widget构建,所有控件都继承自QEWidget或QEAbstractWidget。这些控件通过数据层与EPICS变量进行绑定,实现数据的自动更新和显示。
3.4 归档层
框架提供了对归档系统的支持,包括传统的Channel Archiver和新的Archiver Appliance。通过QEArchiveInterface抽象类提供统一接口,具体实现包括QEChannelArchiveInterface和QEArchapplInterface。
4. 依赖关系
4.1 外部依赖
- Qt: 核心UI框架(支持Qt 4/5/6)。
- EPICS: 提供CA和PVA支持。
- QWT: 用于数据可视化(如绘图控件)。
- FFmpeg: 可选支持,用于MPEG流媒体播放。
- Protocol Buffers: 用于Archiver Appliance数据处理。
4.2 环境变量
EPICS_BASE: EPICS基础路径。EPICS_HOST_ARCH: 目标架构(如win32-x86-mingw)。QE_TARGET_DIR: 安装目标路径。QWT_ROOT: QWT库路径。ACAI: ACAI库路径。
5. 构建配置
5.1 关键配置
- Qt版本: 通过
QT_MAJOR_VERSION指定(4/5/6)。 - PV Access支持: 通过
QE_PVACCESS_SUPPORT启用。 - MPEG支持: 通过
QE_FFMPEG启用。 - Archiver Appliance支持: 通过
QE_ARCHAPPL_SUPPORT启用。
5.2 构建步骤
- 确保所有依赖环境变量已设置。
- 运行
qmake生成Makefile。 - 执行
make构建项目。 - 运行
make install安装库和头文件。

最低0.47元/天 解锁文章

933

被折叠的 条评论
为什么被折叠?



