共聚焦软件采集部分架构导图

来源:共聚焦软件采集部分架构导图.xmind,XMind 格式,共 80 个节点。 这是项目早期的软件架构梳理文档,用于清点采集部分涉及的所有自定义库和外部依赖库。

一、整体结构

导图分为 5 个一级分支:

  1. 自定义库 — 项目自研的动态链接库/DLL(60+ 个,最核心)
  2. 外部库 — 第三方依赖库(9 个)
  3. 自定义库与外部库 — 对比/分类维度(待展开)
  4. 调用层级关系 — 架构调用层次(待展开)
  5. 理清楚都有什么库 — 待办/备注

说明:后三个分支在导图中只有标题,没有展开子节点,属于待补充的工作项。

二、自定义库(60+ 个)

按功能模块归类如下:

2.1 硬件驱动与设备控制

库名说明
ADLinkDAQ9814采集卡库(ADLINK PCIe-9814)
LSCMDevDriverLSCM 设备驱动核心
D2ControllerInterfaceD2 控制器接口
CoboltSkyraCobolt Skyra 激光器驱动(标注”?“,待确认)
MadCityLabsNanoDriveMad City Labs 纳米位移台驱动
szleadtechSMC104A雷赛 SMC104A 运动控制卡
PriorSlideLoaderPrior 载玻片加载器
TUCAMTucam 相机 SDK 封装
NexcopeNexcope(宁波舜宇)相关设备封装
Camera相机类抽象

2.2 通信协议

库名说明
CANFDServicePrividerCAN FD 通信服务(CAN 通信类之一)
ZlgCANFDServicePrivider周立功 CAN FD 服务提供方
libmodbusModbus 协议库
SerialCom串口通信基础库
SerialMsger串口消息封装
ProtocolSerialDev协议串口设备(出现两次,可能为重名或不同版本)
ScanCtrlCenterModbus扫描控制中心 Modbus 协议
JoystickInterface摇杆/手柄接口
JCMultiAxis多轴控制接口

2.3 数据采集与管理

库名说明
DAQManager数据采集管理器
LSCMImageAcquisitionLSCM 图像采集模块(出现两次)
LSCMEmulatorLSCM 仿真器
MemDB内存数据库
SettingDB设置数据库
FCSDBFCS(荧光相关光谱)数据库
FCSGateFCS 门控
QtKeyValueReaderQt 键值读取器
QtFileSaverQt 文件保存模块

2.4 图像处理

库名说明
ImageProcessor图像处理器
SignalFilter信号滤波
Interpolation1D一维插值
CudaDataMultiChannelOversampleCUDA 多通道过采样(外部库类别中也出现)
OpenCVDemoOpenCV 演示/封装

2.5 图像显示与 UI

库名说明
ImageViewer图像查看器核心
ImageViewerExtend图像查看器扩展
QtImageScrolledViewerQt 滚动图像查看器
LSCMUILSCM 主 UI
LSCMUIInterfaceLSCM UI 接口
LSCMViewLSCM 视图
LCSMDocksLSCM 停靠窗口
CoboltSkyraUICobolt Skyra 激光器 UI 动态链接库
ScannerControlUI扫描器控制 UI
MultiAxisUIWidget多轴 UI 控件
GeneralDeviceUI通用设备 UI
UILibExtendUI 库扩展(出现两次)
WidgetExtend控件扩展(出现三次)
LoggerView日志视图
UsrDefineLog用户自定义日志

2.6 基础框架与扩展

库名说明
GeneralDevice通用设备基类
GeneralExtend通用扩展
DeviceExtend设备扩展
DevSetting设备设置
StdExtendLib标准扩展库
spoiler(名称不明,待确认)

三、外部库(9 个)

库名类型来源/路径用途
WD-Dask64采集卡驱动库ADLINK\WD-DASK\libADLINK PCIe-9814 采集卡驱动
opencv_world401计算机视觉库Qt 类(备注有误,应为 OpenCV 4.0.1)图像处理
CudaDataMultiChannelOversampleCUDA 加速库—GPU 多通道数据过采样
gsl数学库—GNU Scientific Library,科学计算
gslcblasBLAS 库—GSL 的 BLAS 接口
WinmmWindows 多媒体 API—Windows 系统库,多媒体定时等
Ws2_32Windows Socket—Windows 网络通信
pthreadVC2线程库—POSIX Threads Win32 版
zlgcanCAN 卡驱动库—周立功 CAN 卡驱动

四、架构分析

4.1 技术栈判断

  • GUI 框架:Qt(从大量 QtXxx 命名推断)
  • 编程语言:C++(从命名风格和 Qt 绑定推断)
  • 平台:Windows(Winmm、Ws2_32、pthreadVC2 均为 Windows 平台库)
  • 硬件接口:PCIe 采集卡(ADLINK)、CAN FD(周立功)、串口、Modbus、USB 相机
  • 并行计算:CUDA(GPU 加速图像处理)

4.2 模块分层(推测)

┌─────────────────────────────────────────────────┐
│                  UI 层                          │
│  LSCMUI / ImageViewer / ScannerControlUI 等    │
├─────────────────────────────────────────────────┤
│                业务逻辑层                       │
│  DAQManager / ImageProcessor / FCSGate 等      │
├─────────────────────────────────────────────────┤
│              设备抽象层                         │
│  GeneralDevice / LSCMDevDriver / Camera 等     │
├─────────────────────────────────────────────────┤
│            硬件驱动/协议层                      │
│  ADLinkDAQ9814 / zlgcan / libmodbus 等         │
├─────────────────────────────────────────────────┤
│             第三方基础库                        │
│  Qt / OpenCV / CUDA / GSL 等                   │
└─────────────────────────────────────────────────┘

4.3 问题与待确认项

  1. CoboltSkyra 库标注”?“——功能待确认
  2. ProtocolSerialDev 出现两次——是否为重名或不同版本?
  3. WidgetExtend 出现三次、UILibExtend 出现两次、LSCMImageAcquisition 出现两次——可能是导图中的重复节点或不同实现
  4. spoiler 库名称不明,功能待确认
  5. Nexcope 库具体封装的设备待确认
  6. 导图中”调用层级关系”和”自定义库与外部库”分支未展开——架构梳理未完成

五、与其他文档的关联

六、价值评估

  • 价值等级:中等
  • 知识密度:低(主要是库名清单,缺少调用关系和详细设计)
  • 历史意义:高——这是项目早期架构梳理的产物,能反映出系统设计的初始思路和模块划分方式
  • 适用场景:作为项目历史参考,与其他架构文档(Visio 流程图、需求文档)对照阅读