智能消防设备管理系统采用B/C/S架构。采用JSP+Javabean+Java Servlet技术编制基于WEB页面的管理系统,数据库系统选择SQL Server 2005,服务器为Windows 2003 server。
1 RFID手持设备
智能消防设备管理系统所用的RFID手持设备采用深圳市成为信息技术有限公司生产的HDT-3000。这是一款是集条码、标签、非接触智能卡、ID卡等功能的智能手持终端,通过二次开发的应用程序,可以使它应用在很多领域和行业。HDT-3000提供了上百个标准的C语言函数,用户利用这些函数,可定制终端的显示界面,功能菜单,数据读写功能,文件管理和系统参数设置等功能。
2 数据采集
对应每个具体设备的RFID标签,需要通过专门的写卡设备,连接计算机的串口,写入该设备的基本信息。智能消防设备管理系统所采用RFID标签是无线智能卡芯片Mifare- MF1 IC S50(ISO/IEC 14443A),工作频率156MHz,1K 字节,可写100,000 次。根据智能消防设备管理系统要写入的信息,可计算得到每张标签可保存32条设备的巡检记录。手持设备HDT-3000可方便读出每个RFID标签内的信息,更为重要的是,HDT-3000每巡检一次,就会保存相关设备的巡检数据到一个临时文件中,当所有设备巡检结束后,通过文件上传功能,在任何一台计算机终端上,把巡检信息上传到某个文本文件中,上传完毕,就删除手持设备中的巡检记录。设备管理系统再把文本文件中的数据通过局域网上传到数据库中。
为了实现上述RFID标签的数据采集功能,需要在设备管理系统中编程实现WEB页面的数据输入输出和串口通信等功能。智能消防设备管理系统采用ActiveX控件技术,编写后缀名为.ocx的ActiveX控件,这是一种有交互界面的WEB页面中所用的可视化控件,它定义了控件的属性和方法,以及控件可引发的事件的响应。执行控件相应功能所需要的函数需要调用专门编制的动态链接库文件。任何一种可视化编程软件都可以编写这2种文件。智能消防设备管理系统是采用Delphi可视化编程软件实现上述功能。图4是给编号为0901007的消防斧写标签的界面。

图4 智能消防设备管理系统中写RFID标签Fig.4 Writing RFID label
3 自动编号
智能消防设备管理系统中每一笔设备信息都是基于票据的模式进行管理,这样系统中有2类编号,一类是设备的编号,一类是票据的编号。在一个实用的智能设备管理系统中,所有编号必须具有自动编号的功能。
这里以票据编号为例,说明如何在JSP中实现自动编号功能。
设备入库单是设备入库必备的票据,其票据单号的组成是"RK+年月日+流水号"。这里的流水号为三位,在不足三位的流水号在号码前补0。例如,2011年7月28号第1笔入库单的单号就是"RK20110728001"。下面就是JSP中实现自动编号的程序代码。
int ID;
String maxId=null,nowdate=calendar.
getDateString();
String sql1="select max(rkdh) as rkdh from rkd
where rkrq='"+nowdate+"'";
ResultSet rs1=stmt.executeQuery(sql1);
if(rs1.next())
maxId=rs1.getString(1);
if(maxId==null)
maxId="RK"+nowdate+"001";
else
{
maxId=maxId.trim();
ID=Integer.parseInt(maxId.substring(maxId.length()-3));
maxId=maxId.substring(0,maxId.length()-3)+String.format("%03d",ID+1);
}
stmt.closeConnection();
4 购物车技术
在智能消防设备管理系统的设备出库、设备维修等功能中,经常要进行设备的选择操作。目前,实现这种选择管理设备功能最高效的技术就是"购物车"。顾名思义,它就是具有与超市中购物车相同功能的模块,能够实现购买商品、查看购物车、移除商品、清空购物车的功能。智能消防设备管理系统运用JSP+Javabean+Servlet技术模式,实现了最大程度的接近和模仿电子商务中的购物车。
