当前,高校使用的主要的监控系统是硬盘录像机(简称DVR),这种监控系统一般使用ARM架框、Linux系统的嵌入式设备,因为它具有很强大的视频/图像保存、截取及网络管理功能,并且可以进行二次开发。但是,此类设备没有统一的API接口,不同的厂商,甚至同一厂商不同型号的设备二次开发接口也不相同。
因此,在设计可视化设备管理系统的访问监控系统设备的轻量级框架(以下简称SDCS)时,尽可能地降低对设备开发接口的依赖,以低耦合的方式联接各种DVR设备。框架本身不包含任何与DVR设备应用程序接口有关的应用端的逻辑,通过高度抽象,提供了一组对外通用的API统一接口。通过框架屏蔽了不同类型的DVR设备在使用上的差异性,以插件的方式来动态加载和运行DVR设备的驱动,用来获取DVR的实时图像。
设备管理系统的SDCS框架的结构如图1,由框架内核、DVR API接口和DVR驱动插件三部分组成。

图1 基于监控系统的可视化设备管理系统的SDCS框架的结构图
1.1 监控系统基础的可视化设备管理系统的内核
SDCS的内核是设备管理系统的SDCS的核心和基础,主要实现读取各DVR配置的基本信息、抓取图片的时间段以及时间间隔的设置、利用反射加载插件运行、定时查询DVR设备抓取图片、将抓取的图片保存为本地文件或者上传到指定网络路径、异常管理、日志管理等功能。
反射服务是当框架运行DVR设备驱动插件时提供的服务支持,提供的功能主要有:得到导入的程序集字段、属性、方法及特性等信息,检查插件的数字签名,检查被反射的类及方法是否正确,动态实例化对象及调用方法等。设备管理系统的SDCS框架的配置文件使用的都是XML格式文件,因为XML格式文件方便扩展、容易理解、跨平台、便于存储和传输,并且很多语言和工具都支持。框架的外部配置文件通过框架配置文件管理器进行统一的验证及读写。框架配置文件管理器的核心部分是XML文件读取器、DTD正确性验证和配置内容解析器。在内核启动之前,解析设备管理系统的SDCS框架的配置文件,将内核配置信息保存在全局数据结构中,根据配置信息完成内核的启动。
插件管理器是对DVR进行动态管理,支持热插拔技术,即不需要重新启动设备管理系统的SDCS系统就可以增加、修改或删除要访问的DVR设备。当增加一个要获取图像的DVR设备时,插件管理和对象加载器联合使用,对象加载器利用反射服务加载此设置的插件的唯一实例,并将此实例加入插件管理容器中,以便定时查询服务调用。插件管理容器本质上就是一个HashTable,用来保存对象的信息。当删除一个插件时,插件管理器以事件的方式通知定时查询服务,停止调用此插件对应的DVR设备,然后在插件管理容器中去除此插件。
定时查询服务是内核启动后最后一个运行的服务,它根据插件管理器配置的DVR插件信息和框架配置文件管理器读取的启动这些DVR的时间段和时间间隔信息,启动一个定时器,轮流访问这些DVR设备。通过调用DVR统一API接口异步获取DVR的图像。
内核中还有其他的一些通用服务,如:日志服务跟踪并记录程序的运行状态,通过配置可将日志保存到数据库、外部文件和Windows的事件管理器中,以方便开发人员的查看。资源服务提供软件内的字符串、图像、图标等资源的读取,通过此服务,可以提供换肤、本地化。全局错误捕获服务可以获取在系统中未处理的异常信息,并通过日志服务进行保存。
1.2 监控系统的可视化设备管理系统的DVR API统一接口
DVR API的统一接口是设备管理系统的SDCS系统和外部直接访问DVR设备的插件唯一联系的地方,是为了屏蔽不同DVR设备不同的二次开发接口而设置的中间接口。
接口主要提供了DVR插件要完成的基本功能,访问DVR的高级功能是由插件内部完成的。DVRAPI的统一接口必须被设备管理系统的SDCS和DVR插件共同引用。
定时查询服务根据配置信息到插件管理容器中找到DVR驱动插件的唯一实例并进行初始化,调用NetDVRLogin方法连接DVR设备。连接成功后,调用CaptureIMG方法读取DVR当前图像。如果当前DVR设置为同步工作方式,则直接返回捕获的图像,如果是异步工作方式,则通过事件DVRImage返回图像。图像获取后,调用NetDVRLogout方法关闭连接。
了解更多相关信息,请点击设备管理系统,或拨打 进行咨询。
