# projectJoee

更新时间 2023-03-29

# 软件整体架构和逻辑

TODO:具体描述

# 整体架构

mainMnd

# 主程序流程图

mainflow

# 任务数据流

dataflow

# 功能模块

该项目主要分为主程序模块(包含主界面部分和控制逻辑,配置项相关逻辑),核心功能模块(检测算法实现、采集卡相机控制实现、数据库调用实现、开发工具集、外部插件接口实现、虚拟设备实现等),以及通过接口实现的外部插件功能模块(图标功能插件、串口报警器插件、相机串口控制插件、debug 控制台插件等可扩展插件)

其中主程序模块和核心功能模块(位于 core 目录下),是主程序运行所必须的部分,插件功能模块(位于 plugins 目录下) 是可以根据插件模块文件是否存在动态添加去除的。

# 主程序模块

Windalsa: 主要业务逻辑实现

子类:

  • MainWnd.cs: 主窗体,是程序的主要框架,负责主要业务逻辑和实现外部插件加载

  • Lists.cs: 自定义列表和控件数组

  • Plugins.cs: 实现插件加载和抽象接口调用

  • Utilties.cs: 扩展工具

  • CustomException.cs: 自定义异常

# 核心功能模块

DataBaseHelper:数据库功能

DefectDetection:瑕疵检测功能

Devices:硬件设备连接

LogHelper:日志记录功能

PaddleInference:Paddle 分类推理

VirtualDevices:模拟硬件采集卡设备(开发调试工具)

DefaultValues:定义默认变量和参数 (部分调用,考虑去掉)

PluginInterface:定义插件接口和相关工具实现

# 插件模块,以 Plugin 开头(PluginInterface 除外)

PluginChart:图表功能

PluginSerialDevice:串口报警器功能

PluginStatement:版权声明

PluginDebugConsole:Debug 控制台工具

PluginWndDemo:实现插件载入外部窗口的 Demo,不会被正式使用

# 主程序与插件的交互方式

主程序与插件的交互方式