1仪器监控系统实现流程及整体架构和功能
若为非法操作,即不刷卡先开机则触发警报,客户端语音提示使用人刷卡,并摄像头取照,然后将仪器ID、报警信息及报警照片发往服务器,如果这时补刷,则客户端将卡号发往服务器做记录。使用人用完仪器,成功下机后,客户端将记录下该用户的下机时间并显示在屏幕上供下一个用户查看,同时发送该仪器ID和使用人的下机信息给服务器,服务器更新数据。因为生物实验室的贵重仪器短时间内是不允许反复使用的,记录下上一个人的下机时间也是方便后面的人规范使用仪器。系统客户端还设置每天定时往服务器发送其本地刷卡记录,以防止有人刷卡的时候因为网络异常导致刷卡信息没有发往服务器,服务器查询其发来的本地刷卡记录,根据筛选更新后台数据库。系统客户端还设置定时往服务器发送数据更新请求,如果服务器上有人员信息变动,则在客户端请求时将最新的人员信息发送给客户端,若没有,则不予理会。仪器监控系统的整体架构如图1所示:1.1总体设计思路和功能模块开发分为客户终端和服务器两个方面,客户终端通过霍尔电流传感器检测仪器设备的使用电流,根据初次试运行时检测到的临界阈值判断仪器当前状态是待机还是使用中。搭载有IC读卡器用于使用前刷卡,以及针孔摄像头和小音箱,可用于未刷卡上机时的照片摄取和报警语言,3.5寸触屏可以进行简单的操作以及刷卡人界面信息显示。因为考虑到生物实验室贵重仪器不能频繁的通断电,所以仅仅是作为一个监控系统来开发,也就是说和强制刷卡才能使用的上机系统来比,监控系统并不会根据是否刷卡来限制仪器的使用而仅仅是记录并提醒。服务器通过与客户终端建立的TCP连接接收数据,实时更新后台SQLServer数据库,同时设计Asp.NetWebform满足用户从网页上浏览数据的需求。客户端功能模块,主要包括与IC读卡器的串口通信,AD转换模块,以及和服务器的通信模块,另外还有摄像头模块、语音提示模块等。服务器功能模块,主要包括与客户终端的通信模块和仪器监控数据网上查询显示模块。
2关键技术与开发流程
这里主要介绍服务器方面的开发流程,在系统实现过程中,主要需要解决的关键技术就是之前提到的两个功能模块:与客户终端的通信模块和仪器监控数据网上查询显示模块。2.1与客户终端的通信模块服务器与客户端的通信模块要实现的是:一台PC机作服务器开启服务端套接字监听网络,等待客户端套接字主动连接,一旦接收到客户端套接字的连接请求,就建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了,而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。服务器端与客户端的数据交互由每次新建的线程来实现,比如客户端发往服务器端使用人门卡号、报警照片、本地刷卡记录以及一些状态信息,或者是服务器发往客户端最新的人员信息。同时考虑到网络不稳定的因素,设计为客户端不用时刻与服务器保持连接,只需要在发信息的时候建立连接,并且在发完信息后确定不必要再从服务器接收信息,就可以自行关闭套接字连接,并且服务器也及时结束对应接收线程。2.2.1服务器端套接字监听并建立连接服务器端套接字监听并建立连接服务器绑定自己的IP地址和8008端口后,设置采用TCP连接,然后开启监听。一旦有客户端套接字主动连接服务器,服务器端套接字调用Accept方法返回一个专门的套接字clientSocket用于服务器与该客户端的套接字通信,并且新建一个线程调用ReceiveData方法处理数据。随后服务器继续监听等待别的客户端的连接。2.2.2服务器端消息接收与发送我们针对客户终端发往服务器的消息设计了固定的内容格式,以方便通讯。第一种是心跳检测包,我们设计心跳检测机制是,客户端定时30s发送一次信息,格式是“仪器ID,heartbeat”,通过心跳检测服务器判断与客户端之间是否还保持正常通讯。第二种是有关正常上机或正常下机的信息,我们设计格式是“仪器ID,门卡号open”和“仪器ID,门卡号close”。服务器获取相应仪器ID和使用人门卡号,然后进行相应数据库操作。第三种是有关非法操作开始和结束的信息,格式是“仪器ID,warningbegin”和“仪器ID,warningshutdown”,一般来说,关机和补刷卡都会结束非法操作。服务器获取相应仪器ID,然后进行相应数据库操作。第四种是有关客户终端定时将本地刷卡记录发往服务器进行数据更新的消息,以免因为网络故障导致服务器刷卡记录不全的问题,消息格式为“仪器ID,update”,服务器一接收到对应消息,就准备接收客户端发送的本地刷卡记录,然后将接收到的刷卡记录以文本方式存储在服务器上,再根据仪器ID进行后台数据库操作。第五种是有关客户端请求服务器进行数据更新的消息,格式是“仪器ID,request”,因为考虑到客户端数量众多,设计时采取让客户端定时请求数据而服务器有更新再发送数据的方式。第六种是有关客户端往服务器发送报警照片,格式“仪器ID,pho-to”,之前说过客户端报警的同时会传输报警照片,服务器接收到对应消息后,就准备接收对应的报警照片并且存到本地,以便随时查看。最后一种信息是用来让服务器及时结束接收线程的,内容是“socketshutdown”。如果网络异常导致服务器没有收到这条信息,那么同样有异常判断,能够让该线程及时结束。总的来说,客户端会向服务器发七种信息,服务器根据不同情况做出不同处理。服务器处理客户端信息流程如图2。
3仪器监控数据网上查询显示模块
该模块的主要功能是实现在网页上直接查看当前监控仪器的状态,以及查询相关仪器的使用情况统计和监控报警照片。3.1设计便于查询的仪器监控列表我们设计了一个仪器实时监控列表,可以根据具体需求进行查询,采用定时刷新方式,每一分钟刷新一次,如图3示意图。仪器监控列表显示监控仪器的仪器ID、仪器名、当前使用人门卡号、当前使用人姓名、仪器楼层位置以及仪器当前使用状态,并且可以查看仪器使用情况表,适用于各种要求的查询。3.2针对监控仪器生成统计图表针对仪器的使用情况汇总成表,以方便平时的仪器维护。我们使用的是微软的MSChart控件来生成简单的统计图表。例如图4是我们针对某台仪器9、10月份测试时的使用情况的折线统计图。处理成统计图表显示主要是为了方便日常的仪器维护,算是仪器监控的辅助功能。
4结束语
基于终端监控的仪器监控系统,利用终端的电流监控,服务器可以准确无误的获取当前监控仪器的使用状况,并做出相应的反馈与记录,允许用户在网页上进行查看,无论是通过地图服务还是只有文字图片的监控列表,都能准确查看当前联机监控的仪器状态,同时能处理仪器的所有使用情况绘制成图表,方便日常维护。开发了这套系统,可以安全可靠地管理实验设备,并为仪器管理员提供了仪器的详细使用情况和统计数据,规范了仪器管理工作,减少了大量人力、物力和时间的投入,保证了中心实验室的利益。
作者:李亮亮 李小玲 林一奇 杨志伟 闵小平 葛胜祥 单位:厦门大学公共卫生学院预防医学系 厦门大学国家传染病疫苗与诊断试剂研究工程中心 厦门大学信息科学与技术学院计算机科学系
相关专题:电商对传统商业的影响 个性影响因素主要有