基于手持设备的电力检修作业地线挂接信息管理系统的开发

2015-12-20 06:46刘家军陶凯杨帆张甜
电网与清洁能源 2015年9期
关键词:彩信号码短信

刘家军,陶凯,杨帆,张甜

( 西安理工大学 水利水电学院, 陕西 西安 710048)

电力检修作业现场操作信息的有效利用直接关乎到接地线挂接的安全进行。 电力线路检修的安全措施采用工作票制度[1-2],人工直接参与完成挂接信息的传达和收集,因此存在和误操作信息遗漏的可能性[3-4]。 文献[5-7] 针对电力系统检修工作中挂、拆除地线存在的问题,提出了一种新型电力检修作业地线装置,用于解决目前检修作业中存在的事故隐患,可以及时将接地线的工作状态以短消息和视频图像的方式通过GPRS/GSM网络发送到调度中心,便于调度中心对现场工作进行实时监控。 文献[8-9]提出了一种接触网作业地线的信息收集装置,采用DSP处理器, 利用了GSM网络以短信通信方式收集接触网各检修作业点下位机发送的接地线挂接状态信息,同时通过RS232串口以及USB接口传送给PC端后台信息处理软件。文献[10-11]提出了一种基于铁路电力调度接触网停送电闭锁信息处理系统,该系统会根据自动监测到的地线信息,并依据规则库调度进行停送电防误闭锁, 之后生成操作票。 这些研究可实现电力检修作业挂接地线挂接状态的实时监控和可视化管理,但是现场检修工作管理人员未能直接接收电力检修作业现场发送的操作信息,存在现场检修工作管理人员不能共享信息并快速、全面地了解所有派出工作的接地线挂接状态的问题,这不利于现场作业挂接地线的安全管理。

因此,本文设计了一种基于手持设备的电力检修作业地线挂接信息管理系统。该装置选取Android系统手机为硬件平台,利用Java语言编译,调用手机短信、彩信、图片等功能,将现场作业所有设备的状态、数量、时间、GPS用短信和图像的形式呈现在手持设备上。 同时对所收到的图像和短信数据进行分析整理后转发到远端调度,方便现场检修工作管理人员和远端调度管理人员快速查询地线挂接设备的状态及工作环境,为现场检修工作管理人员了解设备工作状态,及时判断可能存在的事故隐患点提供判断依据,从而合理安排现场检修工作,避免和减少人工操作接地线所带来的不便和隐患,提高管理现场工作的效率和质量,提高电网安全生产。

1 Android操作系统的介绍

Android是Google开发的基于开源手机平台,它包括操作系统、用户界面和应用程序,而且不存在任何以往阻碍移动产业创新的专有权障碍[12]。Android系统结构如图1所示,主要分为4个部分。

图1 Android系统架构Fig. 1 System architecture of Android

从上到下分别是应用层( applications)、应用框架层( application framework)、系统库( Libraries)和系统运行时( operating environment), 最底层是Linux内核层( Linux kernel)。

①应用程序:基于Android平台的开放性,开发者可以采用Java程序语言编写应用程序。

②应用程序框架:提供了应用程序开发的各种API。 支持组件的重用和替换。

③系统库:一套C/C++库,为应用程序框架提供支撑,为开发者提供服务。

④Linux内核。 Linux内核包括各部分驱动程序,如摄像头驱动、键盘驱动等[13]。

Android系统的开放性,使得系统得到了快速发展, 与Android相关的服务层出不穷,Android系统呈现丰富的软件支持、网络使用良好、软件兼容性好,界面亲和的特点。 因此,利用Android操作系统作为电力检修作业地线挂接信息管理系统的应用平台,能够降低开发成本,丰富操作功能,便于检修工作管理人员在操作现场的使用。

2 系统框架的设计

本系统定位于在现场电力检修作业地线装置向调度中心信息收集装置信息传送的中间环节,主要用于实时收集所有当前工作的接地线监测设备返回的状态,并显示检测设备所采集的检修作业现场图像信息, 并将检测设备返回的GPS位置信息通过百度地图支持的网络服务显示到手持设备的地图上。 所有收集到的信息在后台软件处理下整合成一条信息,从现场的手持设备上返回到远端调度的后台设备上,用于让远端调度管理人员更好地确认现场检修工作中地线的挂接状态,使调度工作人员更好地确认其在检修工作时断电或供电操作的安全性。 挂接地线手机监控系统整体结构框图如图2所示。

3 应用程序的设计与实现

本系统应用程序的设计方法采用结构化与面向对象的混合方法,在开发应用之前需要采用结构化设计的方法将对应的功能进行模块化的设计,将系统应用程序分为不同功能的模块进行编码调试。应用程序整体结构如图3所示,主要由主窗口、接地线监测设备号码设置、接地线状态监测、接地线工作环境图片信息、接地线工作位置信息、退出系统六大模块组成。

图2 挂接地线手机监控系统整体结构框图Fig. 2 The overall structure diagram of the mobile phone monitoring system

主窗类型是android.intent.category.LAUNCHER,通过Package Manager提供的各个APK的信息以菜单方式对各个功能进行调用。接地线监测设备号码设置模块用于设置所有派出工作的接地线监测设备的SIM卡号码,用来接受对应信息。 接地线状态监测分为两个子模块:状态显示模块与状态信息转发模块。 该模块通过SIM号和带有挂接标识的图片将对应地线的挂接状态反馈给现场检修作业人员和调度管理人员。 接地线工作环境图片信息模块,对彩信处理后得到对应地线的图片。 接地线工作位置信息,从短信里面提取出经纬度信息,处理以后将位置信息显示在手持设备所加载的地图模块上。 退出系统模块,本模块用于在检修工作结束以后退出整个检测系统,在退出系统的同时清除数据库的所有信息,在下次检修工作时系统不存在无用信息。

图3 应用程序整体结构Fig. 3 The overall structure of the application program

3.1 SQLite数据库的使用

SQLite数据库的使用,必须先创建数据库。Android中操作数据库的最主要的API是SQLiteOpenHelper类,要想创建必须继承这个类。 根据开发应用程序的需要,SQLiteOpenHelper类中封装了创建和更新数据库的各种逻辑和方法[14]。

本系统中数据库的建立和操作是通过SRC文件夹下的dataadapter.java文件实现的。

首先在数据库中定义出本系统中所要应用的字段信息,此信息包括:编号、SIM卡号码、线路号、支柱号、纬度信息、经度信息、地线状态信息、图片信息。 以编号字段为例下面为其定义的源代码:

public static final String KEY_ROWID = "_id"。

定义成功数据库字段以后就可以定义数据库和数据库的表名以及定义一些建立数据库的字符串命令。 本数据库是通过SQLiteOpenHelper方法建立的, 然后通过dataadapter类来继承SQLite Open Helper方法来提供接口来调用数据库中的数据。

数据库建立完毕以后,还需要给数据库建立一些数据的接口,以用来使各个模块可以通过这些接口来给数据库加入相应的内容, 这些数据接口包括:插入SIM卡号码接口、更新支柱号接口、更新经纬度信息接口、更新状态信息接口、更新图片信息接口、删除号码接口、删除数据库接口。 还必须建立一些访问数据库内容的接口,以用来使各个功能模块查询数据库中的内容,这些数据接口包括:获取SIM卡号码接口、获取所有纬度信息接口、获取所有经度信息接口、获取状态信息接口、获取图片信息接口。 SQLite数据库图表示意图如图4所示。

图4 SQLite数据库图表示意图Fig. 4 Chart diagram of SQLite

3.2 短信收取及转发模块的开发

短信息的常用编码模式有Text模式和PDU模式[15]。而在Android系统中用的是PDU模式。PDU是指通讯单元,它规定了数据中除了用户发送的信息之外,还包含另外其他的字段,而且规定字段中每个数据位为0或1所代表的意义。 PDU是通过十六进制编码的。 从终端设备发出的PDU编码包含了大量的信息, 系统通过这些信息来完成短信服务的全过程。 系统短信服务过程如图5所示。

图5 系统短信服务过程Fig. 5 Process of system SMS service

3.2.1 短信收取模块

短信收取模块包括两个方面的内容:短讯收取存库文件、短信显示文件。

短信收取存库文件在scr 文件夹中的SMSreceiver.java 文件中, 在进入系统APP后立即运行此后台文件, 系统开始监听Android系统是否有发出短信的广播, 短信息传入时Android系统底层开始推送,本系统拦截到此短息广播后提取出此短信的内容,与数据库中的号码相匹配成功即进入下一步操作否则丢弃此广播内容,号码匹配成功后再与相应的内容模板相匹配,匹配成功的话即提取短信内容中相应的信息并存入数据库中相应号码的位置,否则系统丢弃此短信内容。

接地线信息收集装置挂接成功的短信模板形式为“ *******号地线已挂接成功! ***号支柱”,当收到的短信内容与此内容匹配成功以后提取相应的线路号和支柱号存入数据库中相应的位置,并将此地线的状态在系统中显示为挂接。 接地线信息收集装置摘下成功的短信模板形式为“ *******号地线已成功摘下! ***号支柱”,当收到的短信内容与此内容匹配成功以后就将此地线的状态在系统中显示为摘下。 短信收取文件流程如图6所示。

图6 短信收取文件流程图Fig. 6 Flow chart of SMS collection file

短信显示文件源程序在scr 文件夹中的Activity02.java文件中。当点击“ 显示状态”按钮时,系统读取数据库中所有的号码信息和相应的状态信息,如果对应的是挂接状态及将此接地线监测装置的SIM卡号码与系统中对应的挂接图标相对应,否则就将相应的SIM卡号码与系统中对应的摘下图标相对应。 短信显示文件流程如图7所示。

图7 短信显示文件流程图Fig. 7 Flow chart of message display

3.2.2 短信转发模块

短信转发模块源程序在scr 文件夹中的Activity02.java文件中。 当点击“ 转发”按钮进入显示状态界面点击转发按钮时, 调取输入号码的对话框,点击输入条是调取出系统键盘插件,就可以输入所要收取转发状态信息的SIM卡号码, 输入完成以后点击对话框中的取消按钮时即关闭转发对话框系统不作任何处理;当点击确认按钮时,首先系统先建立一个要发送的空的短信文本,然后遍历数据库中全部监测设备的号码和状态信息,按照数据库中ID顺序先将设备号码加入短信文本内容然后进行状态判断。

如果没有接到挂接短信或者只接到摘下信息,数据库中对应的状态信息为0或者NULL, 这时在这个号码后加入“ 摘下”文字信息;如果接到了挂接成功的信息,数据库中对应的状态信息为1,这时在此号码后加入“ 挂接”文字信息。

当遍历完成以后提取对话框中的号码,将此号码加入此短信的发送目的地,最后调用Android中的发送短信方法将此文本信息发送出去。 短信转发流程如图8所示。

图8 短信转发流程图Fig. 8 Flow chart of SMS forwarding

转发短信界面的对话框是通过Android提供的Dialog Builder接口方法来实现的, 这个接口省略了我们使用继承的方法,在此我们所设计的这个对话框只在转发短信时才调用, 仅仅为这一次使用而去创造一个新的类, 对程序设计来说比较麻烦也不利于后续的开发, 对运行本系统的设备来说是资源的浪费。 下面是建立此设计对话框的程序源代码:

3.3 彩信收取模块的开发

彩信收取模块包括彩信图片监听、图片存储和图片显示三部分,源程序分别保存在scr文件夹中的MMSreceiver.java,saveImage.java 和Activity03.java 文件中。

彩信图片信息的传播方式采用存储转发机制。当有彩信传入系统中时,Android手机系统会向应用程序层发送一个有序广播Intents.WAP_PUSH_RECEIVED_ACTION, 我们需要注册一个广播接收器用来专门接收该有序广播。 优先级的高低决定应用接收到此广播的顺序。

Android手机每次收到彩信时,Android源码均会向应用程序层发送一个彩信的有序广播Intent.WAP_PUSH_RECEIVED_ACTION,此广播用来向应用程序通知有新彩信的到达。 系统接到彩信有序广播的data中获取彩信的消息头信息, 这些系统收到彩信的消息头信息必须应用相应的PDU工具来解析。 获取到相应彩信附件的下载地址以后,利用系统中HTTP协议的get方法从彩信服务中心下载此彩信信息中的所有附件信息,此时得到的彩信附件信息是一个byte数组, 使用PDU解析工具对彩信附件的byte数组进行解析就能得到彩信附件的具体信息。 彩信收取流程如图9所示。

3.4 位置显示模块的开发

位置显示模块源程序在scr文件夹中的Activity 04.java文件中。当点击显示位置按钮时,系统调用百度地图API文件, 如果是首次进入显示界面系统会通过网络更新现有的地图信息,如果在之前已使用过此界面那么地图信息已保存在此API文件中可以直接显示。 当地图信息加载完成以后系统自动打开数据库查询所有SIM卡号码后的经纬度信息, 将每个号码所对应的经纬度信息提取出来以后调用addOverlay方法将经纬度信息加入百度地图的API文件中,然后添加坐标图片在地图的相应位置覆盖出此时设备的位置点,当一次地图标定工作完成以后系统有自动返回数据库中提取下一个号码的经纬度然后进行标定,直到数据库中的号码信息为空时系统停止查询数据库中经纬度信息,从而地图显示功能也就得到实现[16]。

图9 彩信收取流程图Fig. 9 Flow chart for MMS

位置信息的短信模板形式为“ *******时间:**时** 分** 秒 纬 度:**.*******,N 经 度:***.*******,E” 当系统收到的短信内容与此条短信内容匹配成功时, 系统将提取出此短信的SIM卡号码和相应的经纬度信息, 在数据库中以相应的SIM卡号码为标志的对应位置存储此设备的经纬度信息,处理以后将其在地图中的相应位置上标示出来。 图10为位置显示流程图。

图10 位置显示流程图Fig. 10 Flow chart of position display

4 结语

本文综合考虑了在电力线路检修作业挂接地线的安线的安全要求及实用推广性,并结合检修现场管理人员的各种实时需求等多种因素,使用了目前手持设备市场占有率最高的Android平台开发了这套系统。 解决了地线挂接整个工作流程中现场信息实时管理与挂接地线可靠监控的问题,以现代移动通信网络技术为基础,实现了工作现场对接地线作业状态的可视化图像检测和信息管理,从而在整个工作流程上保障电力线路检修挂接地线作业的安全,并可杜绝挂接地线误送电事故的发生,从而大大降低作业人员伤亡的风险。

[1] 杨建. 电力线路检修过程中的危险因素及对策[J]. 安全、健康和环境, 2003( 6): 15.YANG Jian. Risk factors and countermeasures in the process of electric power line maintenance[J]. Safety,Health and Environment, 2003( 6): 15( in Chinese).

[2] 黄乃成. 线路检修时的工作许可问题[J]. 电力安全技术,2003( 10): 24.HUANG Naicheng. Work permit for line maintenance[J].Electrical Safety Technology, 2003( 10): 24( in Chinese).

[3] 贵州电力中心调度所. 一次带地线合刀闸引起的系统性事故[J]. 电网技术, 1985( 4): 8-11.Guizhou Power Center. A systematic accident caused by the ground wire and the brake at the time[J]. Grid Technology, 1985( 4): 8-11( in Chinese).

[4] 李生霞. 一起严重的带地刀闸送电误操作事故[J]. 电力安全技术, 2008( 6): 36.LI Shengxia. A serious accident of the power of the ground knife gate[J]. Electrical Safety Technology, 2008( 6): 36( in Chinese).

[5] 刘家军, 缪俊. 新型电力检修作业地线装置的研究[J].电力系统保护与控制, 2009( 23): 119-120.LIU Jiajun, MIAO Jun. Research on new type of electric power overhaul grounding line device[J]. Power System Protection and Control, 2009( 23): 119-120( in Chinese).

[6] 刘家军, 缪俊, 姚李孝, 等. 电力线路作业挂接地线可视化监测装置[J]. 电力自动化设备, 2010( 7): 134-136.LIU Jiajun, MIAO Jun, YAO Lixiao, et al. Visualized monitoring of grounding wire connection equipment[J].Electric Power Automation Equipment, 2010( 7): 134-136( in Chinese).

[7] 刘家军, 姚李孝, 王勇科, 等. 电力线检修作业挂接地线挂接信息监视装置及监视方法[Z]. 中国, 发明,201110101469.0, 2011.

[8] 刘家军, 刘博, 徐新, 等. 电力线路作业地线的信息收集装置的研究[J]. 电力系统保护与控制,2011( 5):139-143.LIU Jiajun, LIU Bo, XU Xin, et al. Research on the grounding line information-gathering device of catenary operation[J]. Power System Protection and Control, 2011( 5): 139-143( in Chinese).

[9] 刘家军, 姚李孝, 刘博, 等. 接触网检修作业中挂接地线信息收集装置[Z]. 中国, 实用新型,201522776,2010.

[10] 刘家军, 巨轩同, 王勇科. 基于铁路电力调度电力线路停送电闭锁信息处理系统[J]. 电网与清洁能源, 2014( 9): 26-30.LIU Jiajun, JU Xuantong,WANG Yongke. The contact line power cut and power transmission licked-in information management system based on railway power dispatching[J].Power System and Clean Energy, 2014( 9): 26-30( in Chinese).

[11] 刘家军, 白志国, 刘博, 等. 接触网人工检修作业信息化管理系统[Z]. 中国, 实用新型,201120490797.6,2011.

[12] 詹成国, 朱伟, 徐敏, 等. 基于Android的测控装置人机界面的设计与开发[J]. 电力自动化设备,2012( 1):119-122.ZHAN Chengguo, ZHU Wei, XU Min, et al. Design and development of human computer interface based on Android[J]. Electric Power Automation Equipment, 2012( 1): 119-122( in Chinese).

[13] 孔令来, 王倩, 季红, 等. 基于Android系统平台设计和实现电子书的阅读应用[J]. 电子制作, 2013( 24): 50-55.KONG Linglai, WANG Qian, JI Hong, et al. The design and implementation of electronic books based on Android system[J]. Electronic Production, 2013( 24): 50-55( in Chinese).

[14] 马获蕾, 汤海凤. Android系统中SQLite数据库的研究[J].电脑知识与技术, 2013( 28): 6243-6245.MA Huolei, TANG Haifeng. Research on SQLite database in Android system[J]. Computer Knowledge and Technology, 2013( 28): 6243-6245( in Chinese).

[15] 吴准, 于剑飞, 孙靖. Android智能手机彩信业务分析与测试[J]. 电信网技术, 2013, 10( 10): 63-68.WU Zhun, YU Jianfei, SUN Jing. Analysis and testing of Android intelligent mobile phone MMS[J]. Telecommunication Network Technology, 2013, 10( 10): 63-68( in Chinese).

[16] 张波, 赵双明. 基于Android平台的百度地图开发研究[J].软件导刊, 2015( 7): 96-98.ZHANG Bo, ZHAO Shuangming. Research on Baidu map development based on Android[J]. Software Guide, 2015( 7): 96-98( in Chinese).

猜你喜欢
彩信号码短信
说号码 知颜色
一个号码,一个故事
猜出新号码
道歉短信
代发短信
彩信的巅峰与陨落
这个号码很吉祥
一种基于IP的彩信收发模块设计
山东省气象彩信平台本地化设计与实现
“八一”节日短信之一