在公司内部提供一个大而全的硬件平台,当某个项目使用时,可通选择不同的硬件设备进行导出。导出特定项目的设备集合,导入到硬件网关中进行硬件更新,并在网关中配置上位机系统接收地址和当前项目的相关信息,并添加实际的硬件信息,包括通信方式,地址,定时任务等信息。完成配置后可将设备提交至上位机,供上位机控制使用。硬件网关还可对添加的硬件信息进行测试,判断网关是否能正常控制或获取下位机信息。如果一旦出错,硬件网关应有自检机制,并有日志,可定位到出错的特定代码行。
硬件管理平台应该是一个windows系统服务,并嵌套的WebApi,可直接暴露接口供上位机使用。
(资料图片)
硬件平台使用反射机制完成硬件设备开发,并与硬件网关制定统一的设备类型代码和硬件功能码,因此需要创建一个公共的Utils类,其中需要包含硬件约定的相关数据信息。
项目应以硬件进行分类,不同硬件各占用一个唯一标识,用于识别硬件类型,通过硬件类型判断硬件功能,对于相同硬件类型不同功能的,取并集,不支持的功能告知上位机硬件不支持。
使用日志类,硬件网关应有独立的自启程序,保证在操作系统正常但网关宕机时可迅速重启。
加入调度任务,时间可配。
使用适配器模式,统一一个出口和入口,通过调用内部不同的适配器进行适配。
使用C#为开发语言。
因硬件网关要求稳定,也没有逻辑处理,目前暂未接入数据库。对于简单的数据目前是存到了缓存中或通过Thrift45的客户端进行保存。
UtilClassLibrary
:底层依赖包,所有的依赖都放在该处,后期会将该包进行拆解,按照模块使用进行划分,不然将会非常非常的臃肿
HardwareGatewayConfig
: 现场配置和调试硬件网关的配置程序,功能包含:更新硬件类型合集,配置硬件网关信息,对硬件信息进行增删改及调度任务的时间设置,最后需要能对网关进行功能测试。
HardwareGatewayProductization
:硬件管理平台,所以硬件集合,可通过选择进行导出。
HardwareGatewayPlugin
网关组件,核心模块,用于初始化硬件类型集合,调用及任务调度。
HardwareGatewayRestful
: 已弃用,原来使用restful与上位机交互,后改为了WebApi
HardwareGatewayService
:硬件网关的主启动服务,启动后触发HardwareGatewayWebApi。
HardwareGatewayWebApi
: web框架,调用HardwareGatewayRestful。
HardwaeGatewaySetup
:打包程序
作为非硬件的硬件网关,可起到中间件的作用。目前物联网已经逐渐成熟,硬件协议方式,类型,交互方式都有不同,可通过硬件网关进行统一的出和入。
现场实施方便,无需过多的关注硬件部分,只需要添加现场实际硬件信息即可。
本项目如果只考虑window是系统,HardwareGatewayService
和HardwareGatewayWebApi
可作为公共项目使用,作为系统服务的web平台。
标签: