基于Android平台的电网设备采集工具设计与实现∗

2017-09-12 08:49:45张林魏永
计算机与数字工程 2017年8期
关键词:服务端客户端电网

张林魏永

基于Android平台的电网设备采集工具设计与实现∗

张林魏永

(国网信通产业集团安徽继远软件有限公司合肥230088)

随着电网信息化的不断深入,传统的电网设备信息的采集方式越来越难以满足信息的更新速度。对电网设备采集流程分析后,采用C/S架构并结合Android平台的定位技术、识别技术和通信技术,设计并实现了电网设备采集工具。经过在项目中的实际应用,该采集工具能够有效地提高采集效率和数据的准确性。

信息化;电网设备;Android;采集工具

Class NumberTP31

1引言

随着电网信息化的不断推进,电网设备的专业化管理需要完整的基础信息作为支撑。所以,采录电网设备的基础信息成为推进电网信息化的重点工作[1]。这些基础信息包括,电网设备的地理信息(精度、纬度、高程等)、唯一识别信息(条形码或设备ID)、名称、现场照片等。传统的采集方式是:采集人员打印管理系统中已有的信息,携带RTK等测量设备以及照相机,去现场记录相关设备的识别信息、地理信息和照片。等采集结束后,将相关数据整理成管理系统能识别的格式,然后录入管理系统。在采集过程中,我们发现很多问题影响了采集的进度以及数据的一致性和准确性。

1)资产条形码的的长度一般是22~26位,传统的采集方式是手抄,这种方式极易抄漏和抄错,影响数据的准确性[2]。

2)传统的地理信息采集设备RTX等采集设备体积较大,携带不便,采集效率低。

3)对于同一电网设备往往要采集多种类型数据,采集完后需要汇总整理,传统方式采用人工整理的方式效率低下。

可见,如果要提高电网设备的采集效率,就必须对现有的采集流程进行分析,针对其中关键的流程进行改进。

2采集流程分析

电网数据采集部分是本工具的核心部分,对于移动客户端数据采集系统的数据釆集模块的交互性关乎到现场采集人员的工作效率。移动客户端数据采集系统的釆集流程设计要求“简便、快速响应”,按照“先地理信息后业务属性”的要求进行了详细设计,并地理信息和业务属性信息的获取设计了详细具体的操作流程,图1展现了电网设备信息采集的整体流程。

图1 采集流程图

1)确定被采集设备的唯一识别信息一般为设备ID,设备ID一般由计量部门统一给出或者按照各地的生成规则产生。如果现场没有设备ID的标识,则需要从预置文件中选择一个作为该设备的唯一标识,预置文件需要提前存储到移动终端中。设备ID是该电网设备在各应用系统中的唯一识别信息。

2)采集设备的地理信息数据,根据设备的平面投影特征通常的分为三种类型,点、线和面。其中,点类型需要获取一个位置坐标点信息,线类型需要获取两个或两个以上位置点的坐标点信息,面类型需要获取三个或三个以上位置点,然后进行计算和转化[3]。

3)相关业务属性录入,业务属性数据包括普通业务属性和多媒体属性,普通业务属性有设备材质、生产日期、容量等,多媒体属性一般为设备各个角度的照片,如全貌、铭牌等。普通属性信息现场填写,照片在拍摄完成后添加描述信息。

4)当一个设备相关数据全部采集完后,可将数据通过网络立即上传到服务端,也可以先保存在本地,等采集工作完成后将整个相关数据导出,然后上传到服务端[4]。

3平台总体架构设计

根据对采集流程的分析,同时为了与供电公司数据管理系统进行对接,采集工具的总体架构设计如图2所示所示。

图2 总体架构图

采集工具的完整系统由三大部分组成,分别是移动客户端、服务端和网络客户端。其中,服务端和网络端只需要在现有的供电公司现有的数据管理系统的基础上进行功能扩展即可。移动客户端和服务端之间是采用C/S架构,同时网页客户端和服务端之间是采用B/S架构[5]。移动客户端包括数据库操作组件、定位组件和通信组件等,具备获取和存储设备地理信息、业务属性和多媒体属性数据的能力。移动客户端在完成数据采集后,可以通过各大运行商的移动通信网络立即提交或离线导出后通过网页客户端直接将数据导入远程服务端数据库,实现同步[6]。

4移动客户端各模块功能设计

根据对采集流程的分析和系统总体架构的设计,移动客户端的功能从逻辑上划分为五个功能模块:用户登录模块、应用设置模块、数据釆集模块、数据编辑模块、数据提交模块,如图3所示。

1)用户登录模块:用户登录模块的作用是在用户登录后,根据后台反馈的用户信息,确定用户的使用权限以及存储采集数据的本地数据库等信息。只有在服务端预先授权的用户,才能顺利登录并使用移动客户端[7]。

图3 移动客户端逻辑结构图

2)应用设置模块:应用设置模块的作用是让用户根据采集现场和Android设备的配置情况设置客户端的相关参数,如定位模式设置、数据传输设置,预置数据选择设置等。定位模式设置是让用户选择是使用基于GPS的定位还是基于移动运营商的基站的定位或者同时使用。数据传输设置是设置后台服务端的IP地址和端口号,为数据的上传做准备[8]。预置数据选择设置是选择用户事先拷入客户端中的数据,如现场的用电计量箱没有唯一识别信息和名称,则可以从事先预置的信息中选择一个使用。

3)数据采集模块:数据采集模块是采集现场设备的相关信息,包括地理信息采集,业务属性信息采集和多媒体信息采集。其中,地理信息采集是利用Android设备的定位服务确定当前所采集的地理信息并存储。业务属性信息采集是记录设备ID、设备材质、生产日期、生产厂商、所属用户、容量等信息。如果设备ID是条形码或者二维码则使用Android设备的摄像头扫描读取[9],减少人工抄录出现错误的机率。多媒体信息采集是使用Android设备的拍摄设备的全貌、铭牌等主要信息并保存。

4)数据编辑模块:数据采集模块是对已采集设备的相关信息进行增、删、改、查,包括地理信息编辑、业务属性信息编辑和多媒体数据编辑。

5)数据提交模块:数据提交模块是将已采集的数据提交到服务端,包括数据在线提交和数据导出。数据在线提交是通过网络,在成功连接后台服务端后,将数据在线提交[10]。考虑到采集的数据量较大,通常以单个设备的信息为单元进行传输。在网络状况不佳或数据量较大的情况下,可以使用数据导出功能,将数据从Android设备中导出,然后通过网页客户端同步到服务端。

5移动客户端各模块实现

本系统移动客户端的开发环境为JDK 1.7和 Android Studio 2.0,适配Android 2.3及更高版本。

1)用户登录模块:这个模块主要就是利用An⁃droid自带的SQLiteOpenHelper数据库帮助类来实现对SQlite数据库的操作,实现保存和读取用户信息[11]。

2)应用设置模块:对于定位模式设置,Android系统提供了GPS定位和基站定位两种方式。若要使用GPS定位,通过调用LocationManager类获取和更新地理位置信息[12]。

SBgpsLocationManager=(LocationManager)myContet.getSys⁃temService(Context.LOCATION_SERVICE);

Location SBgpsLocation=SBgpsLocationManager.getLast⁃KnownLocation(LocationManager.GPS_PROVIDER);

SBgpsLocationManager.requestLocationUpdates(SBLocation⁃Manager.GPS_PROVIDER,MINTIME,MININSTANCE,SB⁃locationListener);

使用基站定位时,调用SDK中的API(Tele⁃phonyManager)获得MCC(移动国家代码)、MNC(移动网络号码)、LAC(位置区域码)、CID等信息(基站编号,是个16位的数据),然后通过google的API获得所在位置的经纬度,最后再通过google map的API获得设备当前地理位置。

TelephonyManager SBTelNet=(TelephonyManager)getSys⁃temService(Context.TELEPHONY_SERVICE;

GsmCellLocation SBlocation=(GsmCellLocation)SBTelNet. getCellLocation();

if(SBlocation==null){throw new Exception(“error,can not getany infomation”);}

String SBoperator=SBTelNet.getNetworkOperator();

int SBmcc=Integer.parseInt(SBoperator.substring(0,3));int SBmnc=Integer.parseInt(SBoperator.substring(3));int SBcid=SBlocation.getCid();

int SBlac=SBlocation.getLac();

对于数据传输设置,主要是设置根据服务端的部署环境,设置服务端的IP地址和端口,将设置完的信息保存是利用Android系统的SharedPreferenc⁃es类。SharedPreferences类是一个轻量级的存储类,特别适合保存软件的配置参数。如果要获取信息,可以直接读取文件。如要修改和存储信息,则要先用edit()函数将文件变为编辑状态。

存储数据信息:

SharedPreferences SBsharedPreferences=getSharedPrefer⁃ences(“configuration”,0);//打开

SharedPreferences.Editor Conneditor=SBsharedPreferences. edit();//设置文件为编辑状态

Conneditor.putString(“ip”,“默认IP”);//存入ip Conneditor. putString(“port”,“默认端口”);//存入端口Conneditor.com⁃mit();//提交数据。读取数据信息:

SharedPreferences SBsharedPreferences=getSharedPrefer⁃ences(“configuration”,0);//打开

String Servip=SBsharedPreferences.getString(“ip”,“192.168.0.1”);//读取ip

String Servport=SBsharedPreferences.getString(“port”,“8081”);//读取端口

对于预置数据选择设置和数据编辑模块主要是SQLite数据库进行导入和编辑操作。以excel文件为例,使用Workbook工具类读取excel文件的内容,然后使SQLiteOpenHelper将数据写入SQLite数据库中。

InputStream SBis=context.getAssets().open(“prefer_informa⁃tion.xls”);

Workbook SBbook=Workbook.getWorkbook(SBis);SBbook. getNumberOfSheets();

Sheet SBsheet=SBbook.getSheet(0);//获得第一个设备工作表对象intSBRows=SBsheet.getRows();

for(inti=1;i<SBRows;++i){//读取设备信息

String SBname=(SBsheet.getCell(0,i)).getContents();

String SBID=(SBsheet.getCell(1,i)).getContents();

String SBaddress=(SBsheet.getCell(2,i)).getContents();}

写入数据库使用insert()函数。

SQLiteDatabase mydb=myDBHelper.getWritableDatabase();try{ContentValues SBvalues=new ContentValues();

SBvalues.put(“SBname”,SBinfo.getContent());

SBvalues.put(“SBID”,SBinfo.getPhonetic());

SBvalues.put(“SBaddress”,SBinfo.getProperty());mydb.insert(myDBHelper.TABLE_SB_INFO,null,val⁃ues);}catch(SQLiteException e){Log.e(“error”,EXCEP⁃TION,e);

}catch(Exception e){Log.e(“error”,EXCEPTION,e);}

finally{if(mydb!=null){mydb.close();}}

对于SQLite数据库的数据删除使用delete()方法,查询使用query()方法,修改使用update()方法。

3)数据采集模块:对于地理信息的采集可以根据定位模式设置的选项调用相应的API获得地理坐标并保存。

业务属性的采集中,对于设备唯一标识是条形码或者二维码的情况,可以使用ZXing类库,ZXing是一个开源Java类库用于解析多种格式的条形码和二维码[13]。以图4扫描条形码为例,主要是利用MultiFormatReader类读取条形码信息。

String SBimgPath=“content://SBmedia/image/SBimg01.jpg/”;ZxingEAN13DecoderHandler SBinfohandler=new ZxingE⁃AN13DecoderHandler();

String decodeContent=SBinfohandler.decode(SBimgPath);

图4 移动客户端扫描条形码示例

对于多媒体信息的采集,直接调用系统默认相机,在触发事件后添startActivityForResult(new In⁃tent(MediaStore.ACTION_IMAGE_CAPTURE),1);其中参数MediaStore.ACTION_IMAGE_CAPTURE是调用系统相机用的,而后面的1则是请求的Ac⁃tivity的标志,用来处理返回结果。拍完照后,利用设备的唯一标识为照片命名。

4)数据编辑模块主要是对SQLite数据库的操作,参考预置数据选择设置。

5)数据提交模块对于在线数据提交主要是利用HTTP协议传输数据,采用Java接口HttpURL⁃Connection的post方法实现与服务端交互,实现数据同步。

String usname=EdTxt_usname.getText().toString();String pwd=EdTxt_pwd.getText().toString();

Map<String,String>info=new HashMap<String,String>();//编辑登录信息。

info.put(“usname”,usname);info.put(“pwd”,pwd);//设置提交数据的方式。

httpURLConnection.setRequestMethod(“POST”);//设置不使用缓存。

httpURLConnection.setUseCaches(false);

//设置链接请求的类型和长度。

httpURLConnection.setRequestProperty(“Content-Type”,“application/x-www-form-urlencoded”);httpURLConnec⁃tion.setRequestProperty(“Content-Length”,String.valueOf(SBdata.length));

//解析信息数据

byte[]Conndata=getRequestData(info,encode).toString(). getBytes();

//获得输出流,像服务端传输数据。

OutputStream outputStream=httpURLConnection.getOutput⁃Stream();

outputStream.write(Conndata);

对于数据导出则是在SQLite数据库中查到需要导出的数据,然后使用Workbook工具类的createSheet方法新建一个文件,然后写入数据并保存[14],如图5是一个导出结果示例。

图5 采集数据导出示例

6结语

电网设备采集工具在研发完成后,先后在辽宁、安徽、甘肃等省的地市供电公司营销和运检营配贯通项目中进行了广泛的推广和使用。通过与之前使用传统采集方式相比,采集效率提高了约30%,同时数据的准确性都有很明显的提高,达到了设计的目标[15]。同时,在实际的使用中,也有收到一些改进建议,如增加预置数据模板种类等,将应用在下一步的优化工作中改进。

[1]曹旋,李国兵.营配调贯通低压数据采录探讨[J].大众用电,2016(3):17-18.

CAO Xuan,LI Guobing.Discussion on Acquisition and Distribution of Low Pressure Data in through the camp[J]. Popular Utilization of Electricity,2016(3):17-18.

[2]黄小英.基于图象的条形码识别的算法研究及设计[J].电子技术,2011(5):21-22.

HUANG Xiaoying.The Study and Design of Barcode Rec⁃ognition Algorithm Based on Image[J].Electronic Tech⁃nology,2011(5):21-22.

[3]黄继生.GPS技术在土地面积测绘中的应用研究[J].科技资讯,2014(8):45.

HUANG Jisheng.Application of GPS Technology in Land Surveying and Mapping[J].Science&Technology Infor⁃mation,2014(8):45.

[4]杨竣辉,黄婵.基于B/S的数据上传技术的实现[J].计算机时代,2008(6):61,63.

YANG Junhui,HUANG Chan.Implementation of Data Up⁃load Technology Based on B/S[J].Computer Era,2008(6):61,63.

[5]陈旭清.基于Web服务的数据上传[J].山西青年管理干部学院学报,2005(4):76-78.

CHEN Xuqing.Data Upload Based on Web Services[J]. Journal of Shanxi College For Youth Administrators,2005(4):76-78.

[6]李姝慧.EXCEL在测试数据上传中的应用[J].信息系统工程,2014(12):76.

LI Shuhui.The Application of EXCEL in Test Data Up⁃load[J].China CIO News,2014(12):76.

[7]诸姣,李宏伟,彭鑫,等.安卓应用系统的功能与权限相关性研究[J].计算机应用与软件,2014(10):27-33.

ZHU Jiao,LI Hongwei,PENG Xin,et al.Research on the Relationship between the Function and Authority of An⁃droid Application System[J].Computer Applications and Software,2014(10):27-33.

[8]马昭征.基于HTTP的安卓与服务器交互方法的实现[J].无线互联技,2015(3):92-96,114.

MA Zhaozheng.Implementation of Interactive Method be⁃tween Android and Server Based on HTTP[J].Wireless Internet Technology,2015(3):92-96,114.

[9]汪永松.安卓手机APP开发之基于位置的信息分享终端[J].电脑编程技巧与维护,2014(7):32-39.

WANG Yongsong.Android mobile phone APP develop⁃mentbased on the location ofinformation-sharing terminal[J].Computer Programming Skills&Maintenance,2014(7):32-39.

[10]马明建.数据采集与处理技术[M].西安:西安交通大学出版社,2005.

MA Mingjian.Data acquisition and Processing Technolo⁃gy[M].Xi'an:Xi'an Jiao Tong University Press,2005.

[11]王冠宇,关永,赵冬生.JAVA在SQLite嵌入式数据库中的应用[J].微计算机信息,2006(2):94-95,226.

WANG Guanyu,GUAN Yong,ZHAO Dongsheng.The Application of JAVA in SQLite Embedded Database[J]. MicrocomputerInformation,2006(2):94-95,226.

[12]黄艺,胡善岳,何芊,等.基于Android平台的移动通讯设备的GPS定位研究[J].激光杂志,2014(3):42-44.

HUANG Yi,HU Shanyue,HE Qian,et al.Research on GPS Location of Mobile Communication Equipment Based on Android Platform[J].Laser Journal,2014(3):42-44.

[13]闵孝忠,朱林立,习海旭,等.基于QR码签章技术的研究与设计[J].控制工程,2015(6):1171-1174.

MIN Xiaozhong,ZHU Linli,XI Haixu,et al.Research and Design of Signature Technology Based on QR Code[J].Control Engineering of China,2015(6):1171-1174.

[14]陈书堂,王祥,石志峰,等.JAVA如何读取EXCEL文件[J].科技情报开发与经济,2004(1):186-188.

CHEN Shutang,WANG Xiang,SHI Zhifeng,et al.How to read EXCEL file using JAVA[J].Sci-Tech Informa⁃tion Development&Economy,2004(1):186-188.

[15]梁波,宋全义,张健康.营销GIS建设对营配贯通的有益实践[J].国网技术学院学报,2016(2):19-23.

LIANG Bo,SONG Quanyi,ZHANG Jiankang.The Bene⁃ficial Practice of Marketing GIS on Marketing and Pro⁃duction System[J].Journalof State Grid Technology Col⁃lege,2016(2):19-23.

Design and Implementation of Power Grid Equipment Acquisition ToolBased on Android Platform

ZHANG Lin WEI Yong
(SGITG Anhui Ji Yuan Software Co.,Ltd,Hefei 230088)

With the continuous development of the informatization of the power grid,the traditional way of acquiring equip⁃ment information is more and more difficult to meet the update speed.The power grid equipment acquisition tool are designed and implemented using C/S architecture and positioning technology,identification technology and communication technology based on Android platform after analyzing the process of power grid equipment acquisition.Through the practical application in the project,the acquisition toolcan effectively improve the collection efficiency and accuracy ofdata.

informatization,powergrid equipment,Android,acquisition tool

TP31

10.3969/j.issn.1672-9722.2017.08.047

2017年2月8日,

2017年3月30日

张林,男,硕士,助理工程师,研究方向:电网信息化、数据处理与分析、Android平台应用软件。魏永,男,硕士研究生,助理工程师,研究方向:信息化应用。

猜你喜欢
服务端客户端电网
穿越电网
云存储中基于相似性的客户-服务端双端数据去重方法
县级台在突发事件报道中如何应用手机客户端
传媒评论(2018年4期)2018-06-27 08:20:24
孵化垂直频道:新闻客户端新策略
传媒评论(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客户端的设计与实现
电子测试(2018年10期)2018-06-26 05:53:34
新时期《移动Web服务端开发》课程教学改革的研究
消费导刊(2018年8期)2018-05-25 13:19:48
在Windows Server 2008上创建应用
电网也有春天
河南电力(2016年5期)2016-02-06 02:11:32
一个电网人的环保路
河南电力(2015年5期)2015-06-08 06:01:46
电网环保知多少
河南电力(2015年5期)2015-06-08 06:01:46