首页 > 其他分享 >硬件管理平台(一)

硬件管理平台(一)

时间:2023-07-29 23:55:24浏览次数:247  
标签:网关 管理 平台 硬件 上位 使用 进行

硬件管理平台 - 引言(一)

它是什么

需求

  1. 平台需要集成很多协议不同或者调用方式不同的硬件设备,平台作为上位机与下位机的中间网关进行通信,原则上硬件管理平台不应该有逻辑只遵循数据数据交互即可。
  2. 需作为产品/系统发布并部署,现场只需要简单调试就可使用,已集成的硬件设备无需再次开发调试。对于新接入设备,尽可能在公司开发完成,减少驻场时间,减少开发成本。
  3. 待系统完善后,可进行傻瓜式部署,仅需要配置硬件设备即可完成调试和部署。
  4. 统一平台,便于升级和管理。
  5. 平台遵循统一标准,新设备接入时只需要遵循接口统一规范平台就可接入。
  6. 由于大部分硬件的SDK或协议都已C++/C或C#为主,应优先选择支持性好,且易上手的语言。
  7. 目前服务器已windows为主或有中间机,需开机自启,且使用Http协议对外暴露接口。
  8. 遇到需下位机主要上报数据的,硬件管理平台需配置上位机接收数据接口,无需每个硬件单独配置。
  9. 硬件管理平台需要有定时任务,且任务时间可配。

想法

在公司内部提供一个大而全的硬件平台,当某个项目使用时,可通选择不同的硬件设备进行导出。导出特定项目的设备集合,导入到硬件网关中进行硬件更新,并在网关中配置上位机系统接收地址和当前项目的相关信息,并添加实际的硬件信息,包括通信方式,地址,定时任务等信息。完成配置后可将设备提交至上位机,供上位机控制使用。硬件网关还可对添加的硬件信息进行测试,判断网关是否能正常控制或获取下位机信息。如果一旦出错,硬件网关应有自检机制,并有日志,可定位到出错的特定代码行。

求解思路

  1. 硬件管理平台应该是一个windows系统服务,并嵌套的WebApi,可直接暴露接口供上位机使用。

  2. 硬件平台使用反射机制完成硬件设备开发,并与硬件网关制定统一的设备类型代码和硬件功能码,因此需要创建一个公共的Utils类,其中需要包含硬件约定的相关数据信息。

  3. 项目应以硬件进行分类,不同硬件各占用一个唯一标识,用于识别硬件类型,通过硬件类型判断硬件功能,对于相同硬件类型不同功能的,取并集,不支持的功能告知上位机硬件不支持。

  4. 使用日志类,硬件网关应有独立的自启程序,保证在操作系统正常但网关宕机时可迅速重启。

  5. 加入调度任务,时间可配。

  6. 使用适配器模式,统一一个出口和入口,通过调用内部不同的适配器进行适配。

  7. 使用C#为开发语言。

本项目可能涉及的技术

  1. Topshelf: windows服务,比自带服务有优势的是可直接在命令行窗体安装/开启/关闭,不需要使用额外的应用程序进行注册。
  2. Nancy: 轻量级的Web框架,使用owin标准协议。
  3. Newtonsoft.Json:Json数据解析包
  4. log4Net:之前在做项目时使用的是log4j,因此使用了log4Net作为日志包工具。
  5. Thrift45:网关宕机检测工具,开发周期短,不需要关注底层,只需要实现即可
    • 创建一个Thrift45的客户端,对硬件网关进行心跳和部分数据的采集
    • 该服务可远程网关重启,可对网关目前的内存使用情况进行监控
    • 支持多语言,上位机的Thrift45客户端使用java开发。
  6. ICSharpCode.SharpZipLib:压缩包类,硬件平台导出的硬件集合需进行压缩,防止文件丢失。
  7. Quartz:调度任务
  8. Xml和INI操作类

因硬件网关要求稳定,也没有逻辑处理,目前暂未接入数据库。对于简单的数据目前是存到了缓存中或通过Thrift45的客户端进行保存。

项目暂定分布

UtilClassLibrary:底层依赖包,所有的依赖都放在该处,后期会将该包进行拆解,按照模块使用进行划分,不然将会非常非常的臃肿

HardwareGatewayConfig: 现场配置和调试硬件网关的配置程序,功能包含:更新硬件类型合集,配置硬件网关信息,对硬件信息进行增删改及调度任务的时间设置,最后需要能对网关进行功能测试。

HardwareGatewayProductization:硬件管理平台,所以硬件集合,可通过选择进行导出。

HardwareGatewayPlugin 网关组件,核心模块,用于初始化硬件类型集合,调用及任务调度。

HardwareGatewayRestful: 已弃用,原来使用restful与上位机交互,后改为了WebApi

HardwareGatewayService:硬件网关的主启动服务,启动后触发HardwareGatewayWebApi。

HardwareGatewayWebApi: web框架,调用HardwareGatewayRestful。

HardwaeGatewaySetup:打包程序

它能干什么

用途

作为非硬件的硬件网关,可起到中间件的作用。目前物联网已经逐渐成熟,硬件协议方式,类型,交互方式都有不同,可通过硬件网关进行统一的出和入。

现场实施方便,无需过多的关注硬件部分,只需要添加现场实际硬件信息即可。

项目可扩展

本项目如果只考虑window是系统,HardwareGatewayServiceHardwareGatewayWebApi可作为公共项目使用,作为系统服务的web平台。

标签:网关,管理,平台,硬件,上位,使用,进行
From: https://www.cnblogs.com/wanghun315/p/17590840.html

相关文章

  • 使用python基于boto3和tkintrer模块-编写一个AWS-EC2的管理器界面
    当我们管理自己AWS账号下的EC2资源时,一般都是登录到Console界面进行管理笔者自己的AWS经常是用于做一些实验时,才会去创建EC2,部署一些环境等,为了不用登录Console操作于是使用python,tkinter模块写了一个GUI的管理工具,先看一下整体界面如下:这个小工具,有创建EC2,查询EC2,删除指......
  • C++实现工资管理中的随机教师信息生成功能
    使用C++实现工资管理中的随机教师信息生成功能,想要做一个教师工资管理系统,就必须得准备好数据,但是这些数据如果用手一行一行地敲,那么工作量是非常大的,因此,我就产生了用C语言实现直接生成大量的教师基本信息的想法,需要的朋友可以参考下。教师的基本信息typedefstructteacher{......
  • 手写Nacos基本原理——服务注册 配置管理
    手写Nacos基本原理一、背景介绍二、思路方案三、过程nacosService代码pom文件配置文件具体类nacosSDK代码pom文件配置类具体类serviceA代码pom文件配置文件具体类serviceB代码pom文件配置文件具体类实现效果四、总结五、升华一、背景介绍之前在项目开发的过程中,对于Nacos的理解......
  • EF 管理数据库架构
    本章会主要了解EF提供的独立迁移项目,用独立迁移项目自动创建dgml设计关系图和sql脚本。迁移项目通常也叫(CodeFirst代码优先),在EF中迁移项目是在,在代码中设计数据库,每次对数据库的设计都将被保留记录。这种模式只会向前修改,不会向后修改。因为一旦数据已经存在,不易删除改变结构,只能......
  • 医院HIS信息管理系统源码 his系统源码
    HIS(HospitalInformationSystem)是覆盖医院所有业务和业务全过程的信息管理系统。HIS系统以财务信息、病人信息和物资信息为主线,通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为医院领导及各部门管理人员提供全面、准确的各种数据。主要功能模块1、......
  • 基于JAVA的小区智能停车位管理系统
    随着小区自动化和信息化程度的不断提升,停车位管理受到越来越多小区的重视,为了方便小区停车位管理难的问题,小区物业急需一套小区智能停车位管理系统。智能停车位管理系统可以通过对出入小区的车辆进行注册登记、收费管理等活动,进而实现小区信息化建设的提升。面对信息高速发展的机遇......
  • 基于微信小程序的点餐平台设计与实现
    智能手机现在已经进入千家万户,利用微信小程序进行购物消费已经成为大众非常喜欢的生活方式。作为传统热门行业的餐饮业,为了更好的服务消费者,拥有一款适合自己特色的微信小程序成为必要的手段之一。本文通过对当前市场的微信小程序点餐软件进行需求调研,笔者准备以快捷方便作为目标,......
  • 第十三节 ArrayList&学生管理系统
    1.ArrayList集合和数组的优势对比:长度可变添加数据的时候不需要考虑索引,默认将数据添加到末尾1.1ArrayList类概述什么是集合​ 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变ArrayList集合的特点​ 长度可以变化,只能存储引用数据类型。泛型的使用......
  • 将resources和testresources交给maven管理
    就两个标签和分别管理对应模块配置文件和测试配置文件,举例说明<build><resources><resource><directory>${project.basedir}/src/main/resources</directory><filtering>true</filtering></resource></resources&g......
  • 基于java实现的会展中心管理系统
    完整资料进入【数字空间】查看——搜索"writebug"1系统设计1.1设计目标在学习了数据库原理和SQLServer2008数据库管理系统后,采用Java编程语言开发工具,设计并实现会展中心管理系统。本课程的目的是培养学生数据库技术的综合应用能力,通过设计开发一个小型的数据库管理系统,将原理与......