上位机架构
上位机使用C#、WPF技术开发。软件并不是一个exe了事,这样维护和协作都很难去做。
整个系统主要包括以下模块:
主程序
|
EQMSClient
|
负责将各模块组装在一起
|
基础类库
|
EQMS.DAL
|
部分数据访问层,实现访问数据库的功能
|
EQMS.Model
|
各种结构体的定义
|
EQMS.ProtocolInterface
|
通讯协议和模块的接口
|
EQMS.Services
|
系统流程
|
EQMS.Tools
|
各种辅助方法
|
通讯协议
|
WQMSClassLib
|
水质设备通讯协议
|
AQMSClassLib
|
空气设备通讯协议
|
EQMSClassLib
|
其他设备通讯协议
|
模块库
|
EQMS.Module.DeviceConfig
|
设备配置模块
|
EQMS.Module.Licence
|
软件认证模块
|
EQMS.Module.Platform
|
平台功能模块
|
EQMS.Module.WaterQuery
|
水质报表模块
|
EQMS.Module.FlowMap
|
流程图模块
|
动态模块
|
EQMS.Module.ImportData
|
导入数据模块
|
EQMS.Module.QualityControl
|
运行模式模块
|
EQMS.Module.SMS
|
短信发送模块
|
各部分间的逻辑关系如下图所示:

上位机是分层设计的,但并不严格按照书本上定义的层去做。EQMS.Module下面的都是一些包含界面的模块,这些模块可能是固定加载的,也可能是动态加载的,以适应不同的站点需要不同的功能的需要。在内存里的数据是核心数据,包括设备数据和平台数据。这些数据会经采集系统进行更新,经传输系统发送到平台。同时,数据会定时保存到数据库,经过DAL层,可能保存到SQL Server,也可能保存到SQLite。
上位机最核心的是EQMS.Services、EQMS.ProtocolInterface和各种设备协议。EQMS.Services控制整个站点的流程运行,什么时候做采集,什么时候做传输,都有它去完成。EQMS.ProtocolInterface里都是一些虚类、基类,定义了流程类需要调用的函数。而各种设备协议类则完成采集和传输的拼装和解析工作。
|