地震应急值班唤醒APP闹铃系统设计及实现

2019-12-20 08:53张文静乔艳芬
防灾减灾学报 2019年4期
关键词:闹铃服务器端短信

李 莹,张文静,修 苗,张 萌,乔艳芬

(辽宁省地震局,辽宁 沈阳 110034)

0 引言

我国是受地震影响较为严重的国家,地震发生后,需要用最快时间将地震信息及时传送到各级政府、有关部门及救援部队,迅速成立抗震救灾指挥部,建立为地震现场指挥部服务的前方指挥技术平台、中国地震局现场指挥部的指挥技术平台,同时与其他相关部门联络,实时交换信息。动员相关力量进行地震救援,尽量把灾害损失降到最低。

目前,辽宁省地震局应急行政值班室实行7×24 小时值班制度,发生地震突发事件后,地震应急值班人员除了承担上报重要情况信息外,还需要对相关负责人进行电话速报,对地震灾情进行快速收集、上报,还要负责接待来电咨询,按有关规定及时解答相关问题等工作。对于值班中产生的重要信息,基本上是通过电话、文件、传真和网络等进行传达,不但工作效率低,而且制约了信息收集的速度,大大增加了对突发应急事件的反应时间。因此,根据值班业务需求,提出由手机闹铃APP 软件代替传统打电话的方式将地震信息报告给相关人员,可以减轻值班人员的工作强度,使值班人员有更多的精力和时间投入到信息报送处理,搜集灾情信息等工作中[1-4]。

1 系统设计目的

通过地震应急值班唤醒APP 闹铃系统可以将地震信息自动发送给领导和相关人员,该软件移动端(手机APP)启动闹铃及地震信息提示,直到唤醒用户手动关闭闹铃APP 为止,服务器端可以接收到手机APP 用户反馈信息,值班员可以在客户端查看手机APP 用户的接收情况。地震应急值班唤醒闹铃系统的研发将大幅提高地震应急值班人员的工作效率、缩短应急人员的到岗时间。

2 系统总体设计

本系 统利用androidstudio3.1、SQL Server 2008 等开发环境,使用物联网、移动互联网流行的MQTT 协议,服务使用开源免费的EMQ服务,服务程序是整个系统的核心单元,使用DelphiXE2 开发,采用经典的PASCAL 语言,实现了地震应急值班唤醒APP 闹铃系统。

2.1 系统的基本功能

地震应急值班唤醒APP 闹铃系统提出使用手机APP 闹铃代替传打电话方式,并且收到信息的人员手动确定“已收到地震信息”按钮,本软件本着简洁、美观、实用的原则来设计界面和内容,主要可实现以下功能:

(1)该软件能够自动获取台网中心发送的地震三要素,并通过APP 软件发送给领导和相关人员;

(2)该软件不依赖第三方的任何推送服务,自己建立服务器。客户端脱网服务端必须在短时间内检测到(一般3 分钟之内) 以便于提醒客户端手机持有人;

(3)手机端APP 要求时时在线,断线时间最多不超过10 秒钟(手机无网络除外);

(4)APP 应用不能太耗电,几乎不影响正常使用,待机功耗小于微信待机功耗;

(5)APP 用户接收到地震信息后,必须点击接收,服务端可以查看,实现地震信息传达及时、准确、全覆盖;

(6)手机端APP 以前台服务方式启动,确保在正常情况下不退出,保持后台待命状态,随时接受消息推送。

2.2 系统运行环境

(1)服务器端

硬件环境:CPU 四核心主频1.5Hz、内存4G 及以上、硬盘200G 及以上。

软件环境:Windows 2008R2 系统及以上,sqlserver2008R2 以上。

(2)客户端

硬件环境:CPU 奔腾双核及以上、2G 内存以上,硬盘100G 及以上。

软件环境:WindowsXP 及以上。

(3)移动端

硬件环境:CPU 双核心及以上、内存2G及以上存储空间1G 及以上。

软件环境:android4.4 系统及以上。

2.3 软件触发条件

地震应急值班唤醒APP 闹铃系统的触发条件是以《国家地震应急预案》及《辽宁省地震应急预案》为依据,结合辽宁地区的实际情况而制定的,地震应急响应分为四个等级,响应等级是与地震灾害事件受灾程度相对应的,地震灾害事件分为特别重大、重大、较大、一般四个等级,对地震应急响应启动等级的判定实际就是对地震灾害事件级别的判定。该系统设定触发条件,如下:

(1)辽宁省内陆地震级M ≥2.7 级地震;

(2)辽宁省近海震级M ≥3.0 级地震;

(3)吉林省、黑龙江省震级M ≥4.5 级地震,其他邻省距我省边界200 km 范围内的的震级M ≥4.5 级地震;

(4)国内震级M ≥6.0 级地震;

(5)国际震级M ≥7.0 级地震。

3 系统开发流程

3.1 设计流程

地震应急值班唤醒APP 闹铃基于移动端(手机闹铃APP)、服务器端和客户端的整体架构,满足应急值班工作的业务需求,实现了地震应急值班唤醒闹铃软件,通过各个平台的功能服务实现了地震信息获取、信息处理与信息服务。

服务器端能够启动各个服务程序,短信接收设备接收地震台网中心发布的地震短信,程序获取地震短信息后,服务器将台网发送的短信内容保存到数据库备查,程序能够从短信内容中分析出发生地震的经度、纬度以及震级等地震要素信息。软件服务器端将经度、纬度及震级信息发送到GIS 系统中分析地震震中的位置,自动生成需要通知接收人的电话,接收人通过手机端APP 系统进行登录并接受信息,服务程序将消息送到MQTT 推送服务器进行推送的过程可在值班客户端体现。手机APP 端接收到闹钟之后发出警报,直到点击我已收到闹铃停止,显示已经阅读的状态,完成整个业务的闭环,图1 为软件设计流程图。

图1 软件设计流程图Fig.1 Flow chart of software design

3.2 各个模块说明

3.2.1 服务器端设计

(1)DTU 短信接收设备

采用西门子TC35 芯片,此芯片性能稳定可靠,接收短信息不丢失。短信接收机使用一张SIM 卡,用于接收来自台网中心12322 发送的短信,采用USB 接口与服务器相连接,忽略“自动测定”字样的短信,保留“测定”和“正式测定”短信,确保发送出去的短信准确。

(2)GIS 系统

本系统使用mapinfo7.0 软件,编制程序用于接收经、纬度、震级以及判定接受短信的响应人。

(3)MQTT 推送服务

使用物联网、移动互联网流行的MQTT 协议,服务使用开源免费的EMQ 服务,它具有以下特征:基于高并发的Erlang/OTP 语言平台设计,支持百万级连接和分布式集群,发布订阅模式的开源MQTT 消息服务器,完整支持MQTT V3.1/V3.1.1 协 议 规 范, 扩 展 支 持WebSocket、Stomp、CoAP、MQTT-SN 或私有TCP 协议,主要特点如下:

①完全开放源码,基于Apache Version 2.0开源协议;

②百万级并发连接,单节点100 万并发MQTT 连接峰值负载;

③完整MQTT 协议支持MQTT V3.1.1 协议规范QoS0/1/2 消息支持;

④简便安装部署跨平台部署在Linux、FreeBSD、Mac OS X 或Windows 服务器;

⑤分布式集群或桥接,双节点负载均衡或多节点分布式集群;

⑥扩展模块与插件 LDAP, MySQL,PostgreSQL,Redis,MongoDB 扩展插件集成。

(4)数据库

软件数据库是基于SQL Server 2008 智能数据平台构建而成,SQL Server 2008 R2 提供了大量新的改进,可以高效的调整规模,提高IT 效率并实现管理完善的自助BI。此版本中包含应用程序和多服务器管理、复杂事件处理、主数据服务及最终用户报告等方面的新功能和增强功能。

(5)服务程序

服务程序是整个系统的核心单元,使用DelphiXE2 开发,采用经典的PASCAL 语言,适合于快速搭建服务平台,主要的功能有:与短信接收设备使用串口DTU 指令进行通讯、接收的短信保存到数据库备查、实现了MQTTClient将信息发布到推送服务器、提供整个系统状态查询服务。服务端可以显示内容,如图2 所示。

图2 服务器端显示内容界面Fig.2 Server-side display content interface

通过服务器端显示内容界面可以直观反应出信息接收人的在线状态,以及最后在线的时间,超过5 分钟不在线自动进行颜色标识,能够显示出消息是否推送成功、是否已经点击接受、各个服务的状态以及手机卡是否有信号等信息。

主要代码截取如下:

begin

//处理 消息回执

//更新 列表接收状态

//{"MessageID":"1","ClientID":"aaa","MsgState":"1"}

//MsgState :1.已经接收消息 2.已经确认消息

DM.Log.WriteLog (' 收 到 消 息 回 执:'+payload) ;

try

json := SO (payload) ;

except

on e:Exception do

begin DM.Log.WriteLog ('解析消息回执失败:'+e.Message) ;

Exit;

end;

end;

try

m_MessageID := json.I ['Messageid'] ;

m_ClientID := json.s ['ClientID'] ;

m_MessageState := json.I ['MsgState'] ;

except

on e:Exception do end;

3.2.2 手机闹铃APP 设计

手机闹铃APP 端使用androidstudio 3.1 开发,该软件提供了系统登录(图3)、联网状态显示(图4)、历史地震信息查询(图5)、系统设置,包括自动更新、断网自动提醒及记录运行日志等功能(图6)。

(1)软件进入登陆界面以后,需注意用户名真实有效确认无误,密码确保正确否则将出现密码不正确或者用户名有误等提示,用户登录该系统时请再三确认准确性。操作人员若操作失误或者无法确定用户名或密码导致登录的失败,系统将会自动弹出错误提示框,需要重新输入用户名和密码进行重新登录。如若忘记密码请及时联系数据管理员进行找回,系统登录如图3 所示。

(2)用户在系统使用前需要对网络状态进行检查,为了便于用户的便捷操作及状态检查设置联网状态显示页面,通过该页面可了解系统网络运行的状态及相关数据,便于用户了解进行下一步的操作联网状态,显示界面如图4所示。

(3)用户可以查询所有符合响应条件的地震信息情况,设置历史地震信息查询界面,地震信息短信界面如图5 所示。

(4)系统设置界面是使用过程中根据实际需求进行系统操作,包括自动更新、断网自动提醒、记录运行日志等功能,系统设置界面如图6 所示。主要代码摘取如下

图3 系统登录界面Fig.3 System login interface

图4 联网状态显示界面Fig.4 Networking status display interface

图5 地震信息短信界面Fig.5 Earthquake information SMS interface

图6 系统设置界面Fig.6 System settings interface

private void CheckAccount (String Account,String PassWord)

{

String Url = " http://" + PubData.serverAddress + " :" + PubData.HTTPPort + "/CheckLeaderAccount?Account=%s&Password=%s" ;

Url = String.format ( Url, Account,PassWord) ;

OkHttpClient okHttpClient = new OkHttpClient () ;

final Request request = new Request.Builder ()

.url (Url)

.get () //默认就是GET 请求,可以不写

.build () ;

Call call = okHttpClient.newCall(request) ;

call.enqueue (new Callback () {

@Override

public void onFailure ( Call call,IOException e) {

Log.d (TAG, " onFailure: ") ;

Message msg = new Message () ;

Bundle bundle = new Bundle () ;

bundle.putString (" ErrText" , "连接网络异常") ;

msg.setData (bundle) ;msg.what = 1;

LoginActivity.this.UIhandler.send Message(msg) ;

}

3.2.3 值班室客户端设计

闹铃系统值班室客户端首先要由应急值班人员登录,登录系统是权限管理的重要组成部分,系统登录要提供正确的用户名和密码,才可以启动软件,进入登录界面,如图7 所示。

图7 地震应急值班闹铃软件值班室查询系统Fig.7 Earthquake emergency alarm software duty roominquiry system

值班人员在系统的使用过程中,根据实际需求进行系统操作,可以通过该查询系统查看手机APP 用户的在线状态、是否正常接收短信、是否已经点击“我已知道”地震发生按钮。还可以查询数据服务是否正常、短信设备是否工作正常、推送服务运行是否正常,如图8 所示。

图8 软件操作日志界面Fig.8 Software operation log interface

4 结论

地震应急值班唤醒APP 闹铃系统充分考虑到地震值班人员在地震等一系列突发事件来临时的紧急情况,从而进行设计与软件实现,并在地震应急演练中多次进行了测试,试运行情况基本达到了设计要求。目前该手机闹铃APP系统运行稳定,服务器端及客户端系统软件运行良好。

(1)考虑到值班人员的紧迫性与信息的时效性,全自动定义软件的信息,由于之前采用人工收集编辑信息,存在手工编辑困难、发送速度缓慢、发送对象难以管理、发送优先级无法调整等问题,软件全自动发送地震信息,避免人为干预而造成的信息发送错误,同时减轻值班人员的工作强度,提高工作效率。

(2)本软件将外部数据及文档系统无缝集成,在软件管理系统可以清楚的看到相关人员的短信接收情况,推送给哪些人员,并保留短信接受记录和推送记录,最大程度保证地震信息通知的覆盖率。

猜你喜欢
闹铃服务器端短信
日出
Linux环境下基于Socket的数据传输软件设计
开闹钟的老人
道歉短信
开闹钟的老人
浅析异步通信层的架构在ASP.NET 程序中的应用
代发短信
基于Qt的安全即时通讯软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
“八一”节日短信之一