西安火车站北广场系统集成(2020.10-至今)
技术方案:
VUE+SpringCloud+mybatis+mysql+niginx+VC++
项目描述:
系统统一集成视频监控系统、火灾报警系统、电气火灾监控、防火门监控系统、消防电源监控、门禁控制系统、车位引导系统、能耗管理系统、建筑设备管理系统、信息发布系统、入侵报警系统、背景广播系统、巡更管理系统、智能疏散系统、智能照明系统、停车场管理系统,在集成系统中监控所有子系统
责任描述:
1.负责系统整体架构、技术方案、开发管理;
2.进行原型设计、需求设计、开发设计及指导开发人员进行开发;
技术描述:
1.VC++数据采集器开发;
2.SpringCloud+mybatis+mysql后台开发;
3.VUE前台组态页面;
4.使用niginx进行负载平衡。
解决技术难点
a) VC编写底层设备的上传数据的解析功能
由于现场安装设备的厂家、型号多样化,所以对设备厂家、型号抽象为模块,定义统一的遥测、遥信、遥调、遥控点和协议解析dll,项目实施人员可以不同项目的灵活配置;
由于现场测点多大几百万个,并且要求对实时数据的快速响应,首先对现场设备按照厂站、通道、设备、测点进行分级管理,并且使用CMapStringToPtr类进行Map缓存,当底层数据变化时,可快速检索到对应测点进行数据更新;每个通道使用单独的线程进行数据解析,避免各个通道数据的相互影响,这样可以达到百万数据毫秒级的要求。
b) VUE编写前端展示界面,前端采用组态化方式对前台界面进行组装,以满足不同用户的界面需求。尤其对echart和视频组件开发。echart组件多样化,并且可自定义各种颜色(背景、渐变、透明度)、表现方式(柱体、线条、圆环、叠加等)、后台接口;视频组件通过rtsp进行转码适应各种厂家、型号的摄像机。对各种组件用脚本控制其操作动作(放大、缩小、全屏、隐藏、变色等),使用对各种组件的拖拽就可以实现前台界面的构建。
c) 服务器后端采用SpringCloud分布式框架框架实现,其中包含数据采集微服务、数据处理微服务、Feign负载均衡Api。
系统运行时由于前台对后台大量的数据访问,导致系统响应过慢,一是采用分布式部署,二是对耗时比较大数据访问接口在yaml文件中配置二级访问缓存,系统单独开启一个线程,使用反射技术执行这些接口,达到数据的实时性。
数据采集微服务通过配置方式,以implements方式适配各种协议类型(TCP、UDP)、适配各种数据的解析,避免开发过程中对已成型协议解析的破坏。
niginx通过对upstream的配置实现访问后台接口的负载均衡;进行rtmp的配置实现rtmp视频流转http流,并对流进行控制。