2功能简介 (1)监控硬件是通过写计算机的并行端口来实现,vb通过调用dll向并行端口写入8bit的定位信息,本系统采用四个通道并行监控控制点,各通道互不影响。由后端硬件电路根据这8bit的定位信息判断哪个端口的哪个摄像机(监控点)被选中,现场电视监控系统服务器接通被选中的摄像机所对应的门电路。同时在监控中心实时的反映出来。 (2)系统提供了手动控制和自动控制二种方式。 ①自动控制:实现对各个摄像机(监控点)的循环监控。对正在监控摄像机(监控点)进行计时,达到此摄像机(监控点)预定时间时,去调用自动切换子程序完成切换功能,从而使系统按照监控中心人员预先设定的监控顺序自动循环切换。监控中心人员可选择监控的摄像机序列,在自动监控状态下加载后,可以动态的增加、删除摄像机,改变播出时间和顺序。 ②手动控制:实现对各个摄像机(监控点)的手动监控。由于工作需要,有时需要固定在某个摄像机(监控点)长时间不间断地监控,本系统提供了手动控制很好的满足了这个需要。当系统处于手动状态时,监控中心人员可以通过主窗口的手动按钮,或使用键盘数字键选择哪个通道监控哪一台摄像机。选中后,该通道就固定监控此摄像机(监控点),直到手动选择另一个摄像机(监控点)时,才调用手动切换子程序完成切换功能。 (3)系统界面采用vb6.0中的listview控件,此控件具有smallicon、largeicon、list、report四种显示方式,从而达到用户界面友好的效果。图2是在report显示方式下的监控中心主界面。
图2 现场电视监控系统
3.系统的实现 3.1vb访问低层硬件的实现 支持低层硬件访问的dll文件和activex控 件,通过它们可读写存储器单元、端口,甚至控制硬件中断。本系统利用dll实现访问低层,详见图3所示。
图4低层硬件访问示意图
3.2系统中对播放序列存储的实现 由于本系统涉及的摄像机为16台,数量不算太多,可不采用数据库存储,而巧妙地选用随机文件(*.dat)的方式进行存储,可大大提高响应的速度。 表1随机文件格式表
域名用途长度(byte) name 存储摄像机名称 10 id 存储摄像机编号(唯一) 2 time 存储摄像机播放时间 53.3写并行端口的程序实现 id域为16×4个摄像机各自唯一的编号,按编号控制门电路的接通与断开。 表2 8bit定位信息取值与通道对照表
通道高位(hex)低位(hex) a 0 0---a b 1 0---a c 2 0---a d 3 0---a表2中通道列中的a、b、c、d分别对应a、b、c、d四个通道,高位(hex)列只要用二进制的低六位即可完成控制功能。编写函数writetoport向并口中写入8位的二进制数,部分关键源程序如下: public sub writetoport(addr as string, valport as string) '' cw as checkbox) dim nomw as integer, datw as integer '' if cw.value = checked then ''nomw = hextoint(addr.text) nomw = hextoint(addr) datw = hextoint(valport) '' write one byte to the port call setportbyte(hw32, nomw, datw) '' end if end sub