目前,对于远程的数据传送,通常采用无线发射的方式或Modem通讯方式,前者由于受到地形、天气等因素的影响,往往通讯不稳定甚至出现通信中断。相比之下,选用现有的程控电话网作为通讯媒质的Modem远程通讯方式则显得相对的稳定可靠,并且成本较低。监控主机通过RS-485总线与门禁控制器通讯,每隔一段时间,监控主机便发出查询命令,查询命令中包含所要查询的门禁控制器的地址,所有门禁控制器都能收到查询命令,但只有地址与查询命令中所带的地址一致的门禁控制器才能响应此命令。监控主机对门禁控制器上传的数据进行处理,判断是否有告警发生,通过人机界面显示门禁上传的重要数据和告警信息。并且将刷卡记录等重要数据存入数据库中相应的表单。监控主机还可以实现对门禁控制1器的远程控制,实现远程开门、修改门禁参数等功能。
软件实现监控主机的程序采用VC 610编写,数据库采用的是SYBASE11数据库系统。程序采用Windows的多线程技术,监控主机有数据采集线程和数据显示线程。数据采集线程与门禁控制器通讯,接受门禁控制器上传的数据,并将数据存储到数据库的相应表单中。数据显示线程从表单中获取数据,进行相应的显示。串口初始化在Windows环境下使用VC 编写串行通信程序一般采用两种方法:(1)采用MicrosoftWin32应用程序编程接口(API)提供的串行通信函数,用SDK思路编写。(2)使用MicrosoftVC 的通信控件(MSComm)。第一种方法使用起来比较复杂,专业化程度高;采用MSComm控件编程方便、直观。因此在设计串口通信程序时采用第二种方法。MSComm控件提供了两种控制串行口的方法:即事件驱动方式和查询方式,使用事件驱动方式时,当有新的字符到达或端口状态改变时,将会触发On-Comm事件,应用程序在捕获该事件后,通过检查MSComm控件的CommEvent属性,可以响应发生的事件。这种方法程序响应及时,可靠性高。因此,本设计采用这种方法。Modem拨号在串口初始化结束后,开始进行Modem的拨号。
实时数据采集当Modem拨号拨通以后,数据采集线程开始工作。采集线程采用轮巡的方式,在每个采集周期中,监控主机对串口下的所有设备进行一次数据采集,然后开始下一个循环的采集进程。系统结构显示监控主机通过查询数据库中的house表单、e-quipment表单和station表单以树状控件的方式进行系统结构的显示(监控主机作为根目录,串口作为子目录,设备作为文件,将树状控件展开,可以查看系统的整个配置情况,当选中某个设备时,则显示该设备对应的实时数据。实时数据显示监控主机通过查询数据库中signal表单进行实时数据显示,根据信号的特征标志,将信号划分为不同的类型,在不同的列表中进行显示。其显示的内容包括门禁的时间、刷卡的卡号及刷卡时间、门开关状态等信息。