摘 要:为了提高矿山安全检查信息化水平,提出了一种基于智能移动终端的安全检查系统的设计与实现方案。该方案通过手持终端采集安全检查信息并将其保存到终端SQLite数据库中,同时利用Socket编程使终端安全检查信息通过WiFi无线通信技术传输到服务器数据库中。通过分析矿山安全检查信息来确定矿山的安全状况,从而实现对矿山的安全管理。
关键词:安全检查;智能;移动终端;Android平台;WiFi
随着电子通信技术的不断发展,特别是Android开发技术的迅猛发展,使移动终端不再仅仅是通信网络终端,而是向着多功能、智能化方向发展,越来越多的移动终端具有了智能操作系统,终端和互联网的无缝连接有着更加广阔的发展空间。面对矿山安全检查工作量大、费用高、检测复杂且耗时长等现状,本文提出了基于智能移动终端的安全检查系统,它有效地解决了上述问题,同时提高了矿山安全检查信息化水平。
目前随着国家对采矿行业安全生产的重视,采矿行业把加强企业安全生产、安全管理作为其日常管理的重点。安全检查是矿山安全管理中极其重要的组成部分,常用的方法是利用安全检查表,发现和查明各种危险和隐患,监督各项安全规章制度的实施,及时发现并制止违章行为。由于这种检查表可以事先编制并组织实施,自20世纪30年代开始应用以来已发展成为预测和预防事故发生的重要手段。矿业公司根据多年的经验总结,设计了能全面反映矿山安全状况的200多张检查表,并分为以下4大类:H1-工种日常安全检查表;H2-作业专项安全检查表;H3-设备设施专项安全检查表;H4-工艺专项安全检查表。通过定期利用检查表进行检查,并对结果进行分析,能定性地对矿山安全进行综合评价,确定其安全状态。
安全检查表有诸多优点,例如能够事先编制,可以做到系统化、科学化,不漏掉任何可能导致事故的因素,为事故树的绘制和分析做好准备;安全检查表也可以与安全生产责任制相结合,按不同的检查对象使用不同的安全检查表,易于分清责任,还可以提出改进措施,并进行检验;它建立在原有的安全检查基础和安全系统工程之上,简单易学,容易掌握,符合我国现阶段的实际情况,为安全预测和决策提供坚实的基础。尽管如此,由于安全检查表数目繁多,为定性分析带来了很多不便。目前使用安全检查表的方式是携带纸质版检查表到现场检查,然后再将结果输入到计算机中进行统计分析。这样,一方面会大大增加检查人员的负担,使得安全检查表的电子化管理难以深入,另一方面,对有问题的检查项目也不能及时报警。
为此,本项目设计了基于智能移动终端的安全检查系统,它使用手持终端设备,进行现场检查,并及时将检查结果上传服务器数据库,安全管理人员通过对检查信息进行分析,能够很好地对矿山安全进行综合评估,确定其安全状况。
1 Android平台与系统设计思想
1.1 Android平台架构介绍
Android是Google开发的基于Linux的开源手机开发平台,它包括操作系统、用户界面和应用程序,而且不存在任何以往阻碍移动产业创新的专有权障碍。Android平台自底向上由以下四层组成:Linux内核层、运行时库和其他库层、应用框架层、应用程序层[1-2]。图1所示为Android平台架构图。
1.2 系统设计思想
本系统运行在Android智能移动系统之上,采用B/S架构,实现与“安全信息管理与危险预警系统”(该系统是为某矿业公司开发的、集安全管理与预警为一体的信息系统)的无缝对接:
(1)数据存储方面:在移动终端设备上,选用嵌入式数据库系统SQLite保存一个移动数据副本,以保证系统在移动终端上的常态离线工作,其结构设计与“安全信息管理与危险预警系统”的“安全检查”模块中数据库设计基本相同(在此为区别,称为服务器数据库),从而保证了两者之间数据共享;
(2)在数据传输方面,采用Http Socket实现本系统与服务器端“安全信息管理与危险预警系统”的中心数据库交互与同步。同时,由于JSON是一个轻量级的XML数据交换模式,其操作简单、性能可靠,因此运用JSON技术组织数据,实现与服务器数据库的传输,完成服务器端相关数据的实时更新;
(3)在多移动终端同时提交数据时,服务器端采用线程池监听各数据传输端口,只要有移动终端进行数据传输,服务器端就能够从线程池中激活一个闲置线程进行数据接收,从而实现了多智能移动终端并行数据传输;
(4)在权限管理方面,采用智能感知不同矿区WiFi的方法,以显示对应矿区安全检查表,这有效地保证了检查人员只有到现场才能有权限进行安全检查,避免了检查人员直接在办公室内勾选检查表内容。
(5)安全检查人员在进行现场检查时,如果遇到不合格项,可以对不合格情况进行拍照并上传到服务器中心数据库,这样地面安全管理人员能够更加准确真实地了解地下矿井情况并及时作出反应。
2 系统总体设计
2.1 系统网络架构设计
本系统运行于无线网络基础之上,其网络拓扑结构如图2所示。其中,为了方便,本系统的Web服务器与“安全信息管理与危险预警系统”服务器运行于同一台机器上。
2.2 系统功能设计
“基于智能移动终端的安全检查系统”主要用于完成“安全信息管理与危险预警系统”中安全检查信息的采集,其功能结构图如图3所示,主要实现检查人员登录、安全检查表录入、安全检查表保存、安全检查表提交、安全检查表批量提交、安全检查表删除、安全检查表查询、异常情况摄像处理、WiFi感知处理等功能。
当用户进行安全检查时,运行本系统进入登录界面,输入相应的员工编号与密码。如果登录,则系统自动感应安全信息检查人员所在区间WiFi信号,以便显示对应的安全检查表,这使得安全检查人员必须在相应的检查矿区才能填写安全检查表,同时,检查过程中,如果有异常情况,可以直接摄像,并与检查信息一起保存并提交中心数据库。检查表填写好后,安全检查人员根据所在网络是否正常决定是否提交检查表。如果网络不正常,安全信息采集人员可以将检查表信息保存在移动终端本地,待网络正常后提交;如果网络正常,则可以直接提交中心数据库,并自动保存一个副本在移动终端本地,另外,只有具备一定权限的管理人员才可以删除检查表。运行流程如图4所示。
3 关键技术实现
3.1 Socket数据通信的实现
本系统基于Android操作系统开发。系统采用SQLite数据库保存安全检查信息,SQLiteDatabase和SQLilteOpenHelper对象封装了操作SQLite数据的各种方法,系统通过调用其方法来操作数据库以实现数据的保存、显示等功能。
当用户采集完安全检查信息进行数据提交时,系统创建一个Socket对象来建立与服务器的通信连接,通过Socket对象获取输入、输出流与服务器端进行数据交互。为了很好地组织传输数据格式,系统采用JSON技术,JSON是一种轻量级的数据交换格式,按照“名称/值对”的形式组织数据。系统通过创建一个JSON数组对象来组织要传输的数据,最后通过Socket对象将JSON数据传输到服务器端。客户端Socket创建核心代码如下所示:
Socket socket = new Socket(InetAddress,int post);
//创建Socket对象
//获取输入输出流对象
DataInputStream in = new DataInputStream
(socket.getInputStream());
DataOutputStream out = new DataOutputStream
(socket.getOutputStream ());
//创建JSON数组对象来封装传输数据
JSONArray json = new JSONArray();
//创建ContentValues对象存储“名称/值对”
ContentValues values = new ContentValues();
服务器端通过开启一个主线程来监听数据传输端口,当服务器端主线程监听到端口有客户端连接请求时,服务器端就会创建一个线程池对象,并从中提取一个闲置的线程来管理用户连接请求并与客户端数据传输交互之间的管理,这很好地实现了服务器端支持多用户并行传输数据的功能[3-5]。服务器端核心代码如下:
//创建主线程监听8070数据传输端口
new Thread(new Runnable(){
public void run(){
try{/创建一个数据接收处理对象
new Server(8070);
}catch(Exception e){……}
}
}).start();
//数据接收处理类内部核心代码:
Public Server(int port){
//创建ServerSocket对象监听数据端口
server = new ServerSocket(port);
//通过ServerSocket对象得到Socket对象
socket = server.accept();
//创建线程池,池中具有(cpu个数*50)条线程
excutorService=Executors.newFixedThreadPool
(Runtime.getRuntime().availableProcessors()*50);
//为了支持多用户并发访问,采用线程池管理每个用户的
连接请求
excutorService.execute(new SocketTask())
/*SocketTask为服务器端数据接收处理类,
根据传输数据格式来解释JSON字符串数组*/
} //数据处理类构造函数
3.2 WiFi感应技术的实现
系统为了保证安全检查人员进行现场采集安全检查信息,采用WiFi感应技术来感应不同矿区的WiFi,并通过不同矿区的WiFi绑定数据中对应矿区的安全检查表来显示对应检查表。这实现了WiFi自动感应检查表功能,从而保证了安全检查信息采集的真实性、可靠性,为后期定性分析矿山综合状况提供重要保障[3-5]。WiFi感应技术核心代码:
//通过WifiAdmin类创建一个WiFi操作对象
public WifiAdmin(Context context){
//通过调用系统服务获取一个WiFi管理对象wifiManager
wifiManager = (WifiManager)context.getSystemService
(Context.WIFI_SERVICE);
//通过wifiManager对象获取一个WiFi信息对象
wifiInfo = wifiManger.getConnectionInfo();
}
程序通过wifiManger和wifiInfo两对象的相关方法来操作终端设备WiFi,实现感应连接矿区附近WiFi。
4 系统运行与特点
安全检查是安全管理的重要内容,是识别和发现不安全因素、揭示和消除事故隐患、加强防护措施、预防事故和职业危害的重要手段。而安全检查系统是运行在智能移动终端的智能安全信息采集系统,图5是运行在智能移动终端的安全检查系统图,其中,每条检查项后面的小图标表示进行摄像处理。
本文介绍了Android智能操作系统和系统总体设计,着重分析了HttpSocket通信技术的实现。在HttpSocket通信采用JSON技术进行组织通信数据,为了支持多用户并行传输数据,服务器端采用线程池来监听数据传输端口,实现对每个用户连接的请求管理,同时讲解了WiFi感应技术的实现。使系统成为一个智能的矿山信息采集系统。随着通信技术的迅猛发展,我国将会更加重视安全检查的信息化、智能化,基于智能移动终端的安全检查系统将会为采矿行业带来巨大的经济效益和社会效益。
参考文献
[1] 陈养平,贺占庄,白军元.基于VxWorks的Zinc程序设计[J].微电子学与计算机,2003,20(增刊):32-34.
[2] Yang Fengsheng.Android application development revelation [M].Beijing:China Machine Press,2010.
[3] KOMATINENI S,HANSHIMI S.精通Android3[M].杨越,译. 北京:人民邮电出版社,2011.
[4] 郭宏志.Android应用开发详解[M].北京:电子工业出版社,2010.
[5] 李宁.Android开发权威指南[M].北京:人民邮电出版社,2011.