移动通信基站巡查中路线回放功能的设计与实现

2014-08-08 14:34王小平黄博
无线互联科技 2014年6期
关键词:巡查路线基站

王小平 黄博

摘要:基站天线的工程参数影响着基站的覆盖范围,是网络优化的关键参数。对基站进行定期巡查是维护基站工程参数正常的必要举措,但从代维公司反馈的作业计划中发现有存在谎报巡查站点的情况。针对这一问题,本文基于Android系统,利用智能手机终端,在基站天线工程参数测量系统中,设计和实现了当前GPS定位信息展示,行走方位角度指示,巡查位置坐标实时记录,以及利用地图进行巡查路线回放等功能。在方便巡查人员出行的同时,管理人员可以通过路线回放来判断代维巡查人员是否到站,从而可以有效避免谎报巡查站点的行为。该功能经测试效果良好,为基站天线维护工作提供了有力的帮助。

关键词:基站天线;路线记录;Android;GPS定位Design and Implementation

of the route-replay function in base-station inspect

Wang XiaopingWang JianyongYang Xun(Chongqing City Management College,401331)

Abstract:The common engineering parameters of base stations antenna are important in network optimization and they impact the coverage of the base stations. It is very necessary to inspect the base stations periodically for maintain the normal condition, but it was found some non-reported acts of patrol stations from the feedback work. Concerning this issue, we designed some function in the base station system based Android to help us see the location of us, indicate the azimuth angles, real-time recording the location and show the trails by maps. In this way, inspection staff can have a more convenient patrol, and on the other hand, the administrator can judge whether the patrol works have reached the station though their route, thus it can prevent non-reported acts of patrol efficiently. The function has achieved the expected effect, and it can provide a powerful help for the maintenance work of base stations.

Key words:base stations antenna;route-recording;Android;GPS location1引言

基站天线的工程參数包括经纬度、海拔高度、挂高、方位角、机械下倾角等等,这些都是基站维护、网络优化中的重要参数。在运营商集团加强了对资源资产的管理后,对天线相关工程参数的要求更加严格。代维日常工作的一部分内容就是对天线的工程参数进行采集和记录,一般要求代维管理每个月必须完成一定数量的基站巡查,现有的检测方法是代维管理人员上站抽查并与巡查记录进行比对,发现问题后上报,由于这种方式工作量大,效率极低,导致从代维公司反馈的作业计划中经常会发现存在谎报巡查站点的情况,进而无法及时掌握基站天线实测参数等诸多问题,非常不利于基站的管理维护工作。

针对上述问题,迫切需要一种集成度高、便于携带的基站信息管理软件,使维护人员从繁杂、重复的工作中解放出来,不仅能完成基站工程参数的测量,还能够对自身的工作进行有效地监督。Android智能手机终端的出现为这一问题的解决提供了契机。Android智能终端设备中有内置GPS模块,利用第三方的定位接口中与位置service相关的类,就可以用利用这些服务获得定位API[1~3],方便获取到移动终端的位置信息(如经纬度数据、海拔高度),获得经纬度数据后在地图上直接标注,就可以实现基站巡检的路线回放,清楚直观地重现代维人员的巡查路线的历史记录,从而判断出代维工作人员在规定时间里是否真正到站。同时,Android传感器接口可以获得移动终端的方位信息(如方位角、旋转角、下倾角),利用这一功能实现的指南针功能也为巡查人员的出行提供了便利[3]。

2研究基础

2.1 Android系统平台研究

Android平台由操作系统、中间件、用户界面和应用软件组成,平台的核心是Linux内核,它负责设备驱动程序、资源访问、电源管理和完成其他操作系统的职责。提供的设备驱动程序包括显示器、照相器、键盘、WiFi、闪存、音频和IPC(Inter-Process Communication,进程间通信)[4,5]。Android java API的主要库包括电话、资源、位置、UI、ContentProvider(数据)和包管理器(安装、安全等)。程序员使用此Java API开发最终用户应用程序。

2.2 Android传感器划分

Android设备通常内置了硬件传感器,Android也提供了一个框架来使用这些传感器,传

感器将来自真实世界的数据提供给应用程序。用户可以通过传感器数据来实现控制游戏进度或者开发出供于真实世界的有用工具等。Android设备中可能出现的一些传感器类型包括:光线传感器、温度传感器、陀螺仪传感器、方向传感器、重力传感器等等。本文中方位指示(指南针)功能的实现即利用了Sensor Manager中与方位传感器有关的函数方法来实现。

2.3 高德地图接口开发

高德地图Android API是一套简单的地图应用开发调用接口,可支持地图显示与操作,兴趣点搜索,地理编码,离线地图等功能;开发者可以轻松地将其嵌入自己的应用程序,而且提供稳定的位置及地图应用程序,稳定性也是本文使用高德地图而不是Google Maps进行开发的一个主要原因。目前Android应用市场中很多基于位置的服务(Location Based Service,LBS)是利用Google Maps接口开发[6]。在获取高德地图服务时,需要开发者注册AMap账户,获取API KEY。

3功能架构

完整的Android终端的基站管理系统的设计主要分为五个子模块:方位指示功能模块,巡查路线记录和回放功能模块,基站基本工程参数测量模块,发送数据子模块,天气预报等辅助功能模块。本文在这里主要探讨和研究与代维巡查相关的方位指示和路线记录回放功能的实现。指南针模块与巡查路线回放功能的层次结构图如图1所示。

指南针模块是通过对Android手机底层硬件接口,从传感器探头上获得数据包,将这些数据进行处理后用来控制指南针图片的旋转以达到方位指示的效果。巡检路线模块主要包括后台运行模块、文件分级展示模块和地图显示模块,这三个模块的功能分别是记录位置点、位置点文件的分级显示和路线在地图的显示。

4功能实现

4.1 指南针功能

在Android的SDK文档中显示系统可以支持多种传感器。要实现指南针的功能,需要使用到方位传感器(AK8973 orientation sensor)。Android提供的API对于不同传感器使用是同一个接口,这样有利于功能的开发。注册传感器的方法代码为:mSensorManager.registerListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_GAME)。其中,第一個参数表示监听的对象(this),第二个参数设置感应事件,第三个参数设置设置感应事件的频率,有四种频率模式可选,每个频率相差0.04s。注册完传感器之后,利用onSensorChanged来读取传感器的具体数据。利用方位传感器可以获取到极方位角(azimuth),倾斜角(pitch)以及旋转角(roll)。程序中指南针的功能只需要利用SensorEvent获取极方位角数据,然后当极方位角发生偏移,让对应的图片向相反的转过同样的角度就能实现指南针图形移动的效果。

4.2 位置点记录

要实现代维巡查路线的回放功能,需要对代维人员的行走位置进行记录。本文利用的是高德地图的定位API来实现坐标记录功能。首先需要通过getInstance()方法获得实例化LocationManagerProxy对象并注册位置更新。注册位置更新的方法代码为:mAMapLocManager.requestLocationUpdates(LocationManagerProxy.GPS_PROVIDER,10000,0,this)。其中第一个参数表示选着的定位方式,不同的枚举值对应不同的定位方式。第二个参数是时间(单位为毫秒,设置的值不能少于5000),第三个是参数是距离(单位为米),第四个是监听的对象。高德地图提供了几种定位方式,包括GPS、WiFi、基站定位等几种定位方式,表1列出了两种定位方式的差异(数据来源于实际测试)。

表1两种定位方式的比较

GPS定位 网络定位

定位精/m 10~100 200~1500

定位用时/min 0.5~3 0.3~1

耗电情况 比较耗电 一般

定位局限 室内无法定位 室内室外均可

由表1可知,GPS定位适合精度要求比较高的情况下使用,不适合在室内使用,而相较与GPS定位,网络定位定位速度比较快,但是精度比较差,适合对定位精度要求不太高的情况下使用。而本文中由于需要准备记录代维人员的行程,故对精度有较高的要求,选用GPS定位方式。巡检位置点的记录简单流程如图2所示。

由如图1的流程图可以看出,整个位置记录是在后台Service中实现,这是考虑到位置记录是一个比较耗时的过程,如果在Activity中记录数据,虽然可以使用保持屏幕长亮来避免因系统休眠使Acitivity终止导致路线记录终止,但是这样又会带来耗电性更加严重的问题,而利用Service能很好解决这个问题,后台定位是否开启标志service_start_flag用来控制Service的状态。在开启定位Service之前,如果SD卡正常,会在SD卡中创建相应的存储目录,如StationData/lineFiles目录用来存储记录的路线信息文件。开始定位后,记录下开始的时间,用来在结束定位的时候生成以该时间命名的文件名并将该时间值插入SqLite数据库。由于经实际测试requestLocationUpdates方法中第二个参数(时间参数)并不一定有效,即定时机制不起作用,所以本文中利用了开启子线程并利用handler.postDelayed()方法来实现坐标的定时记录,同时利用Handler更新TextView控件信息,这些控件用来显示当前的出行速度,位置点更新的时间以及当前的经纬度坐标等信息。获得经纬度数据之后,利用高德地图API中的Geocoder.getFromLocation()方法经过逆地理编码可以由获得用户所在的位置的详细信息。结束定位时,在最开始创建的目录下生成路线记录文件(txt文本格式),将ArrayList(PositionPoint是JavaBean对象,有经纬度和时间三个属性)集合中的数据写入文件中,从而实现了巡检路线坐标点的记录。

4.3 路线回放功能的实现

4.3.1 路线数据的分级列表

在实际的巡查过程中,必然会存在多个时间段多个位置点记录数据文件,为获得较好的用户体验,需要能够对这些不同维度的数据进行分级展示。本文是采用了ExpandableListView(类似于可扩展的ListView)组件对SD卡中已有的路线文件进行分级展示,ExpandableListView可以显示两个条目,采取的做法是在一级条目中显示哪一天的记录,二级条目显示对应这一天的所有时刻的已记录文件。实现过程如流程图3所示。

如图3所示,在跳转到路线显示的Activity之后,首先会利用Cursor对数据表CREAT_TIME进行遍历,该表存储了所有的已记录的路线文件对应创建的时间,并将该表中的数据存入定义的容器my_dateList数据集中。由于一天中可能有多条记录,如my_dateList可能存在2013-08-26 13:49:32、2013-08-27 16:27:30、2013-08-27 09:59:45和2013-08-27 12:06:55时刻的数据文件,在需要获取到有哪些天的数据时,需要对数据进行去重,从而能够得到2013-08-26和2013-08-27这两天有数据记录的信息,并将这些数据存在自定义的容器数据集中item_dayList中,item_dayList中的数据将作为ExpandableListView的一级条目的数据。通过两层嵌套循环遍历(外层item_dayList,内层my_dateList)可以得到每个一级条目对应的二级条目的数据。采用通过继承BaseExpandableListAdapter实现的自定义ExpandAdper将数据填充到ExpandableListView组件中,并分别为一级条目和二级条目生成一个View,最终实现了路线文件的分级显示的效果。

4.3.2 路线回放与地图视图截取

实现了记录文件信息的分级显示之后,要实现路线回放功能,需要能够读取出每个ExpandableListView中二级条目对应文件中的位置点数据,并在地图上加以展示。本文采用的做法是利用方法onChildClick()对ExpandableListView子条目进行点击事件监听,在按钮的监听方法中实现路线数据的删除、路线数据的读取以及路线数据在地图上的展示功能。点击子条目以后,可以选择对应的操作。删除操作是在用户选择“删除”功能后,从数据库CREAT_TIME表中删除该子条目对应的时刻以及SD卡中的该时刻对应的文本文件;路线数据的提取是读取出SD卡中的路线数据后,在ListView中显示该文本文件中所有的位置记录点;路线的回放功能是利用高德地图提供的API实现,具体做法是采用高德提供的AMap类来展示地图的视图,利用PolyLineOptions描绘路线线段,描绘的过程即由点连成线的过程,这些点即路线记录文件中的位置点,通过Timer类的定时间机制来实现动态连线的效果,绘制完成后,通过AMap.addPolyline()方法将描绘的线段添加在地图上,AMap.moveCamera()方法中传入当前路线线段的中间点坐标,就能够实现当路线线段添加到地图中之后,当前地图视图显示描绘的路线。

地图视图的截取功能是利用onMapPrint()方法获取当前屏幕视图,并进行截图保存,图片保存在SD目录StationData/MapFiles之中,以当前的时刻命名,方便用户以后浏览查看。

5功能展示

在如上所述的环境、设计和开发方法实现的基站巡检路线回放以及指南针功能,其功能实现描述如下所述。

⑴基于Android終端传感器开发的指南针功能的实现,如图4所示。界面中的指南针图片随着角度的变化会旋转,图片上的TextView组件显示当前的方位信息。

⑵位置信息显示,如图4中白线下方的组件所示。显示当前行走速度、定位精度、定位时间以及用户所在经纬度。红色字体的显示的详细位置信息是采用逆地理编码而得到的。

⑶所有时刻记录的路线列表,如果5所示。由图2可以看到由2013-08-24到2013-09-02天所记录的路线,并显示出了每天的记录条数以及展开信息。

⑷路线记录文件中的位置点信息,如图6所示。该图展示了从SD卡目录文件中记录的路线文件中的位置点坐标以及每一点所记录的时间。

⑸基站巡检路线回放功能即利用高德地图进行路线展示的实现如图7所示。地图中灰色的粗线表示的即为行走的路线,采用的是卫星视图的效果来显示。

6结论

基站的管理和维护工作对提升网络指标意义重大,定期对基站设备进行巡检是维护基站设备的正常运转的必要举措,因此有效的避免巡检工作中的谎报行为十分重要。本文设计和实现的基站巡检路线回放功能能够对基站人员的行走位置点进行记录、显示和地图展示,从而使管理人员通过路线就可以判断代维人员曾经是否真正到站,这样可以避免很多工作上的懈怠行为,同时简单的指南针功能也为工作人员的出行带来了诸多便利。在越来越追求集团管理完善的今天以及智能手机终端的越来越快速地普及和推广,这些功能的实现对运营商的运营有着非常实际的意义。

[参考文献]

[1]徐光侠,封雷,涂演,等.基于Android和Google Maps的生活辅助系统的设计和实现[J].重庆邮电大学学报(自然科学版),2012(2):244.

[2]农丽萍,王力虎,黄一平.Android在嵌入式车载导航系统的应用研究[J].计算机工程与设计,2011,31(11):2474-2475.

[3]刘畅.一种基于Android平台的EPG实现及优化[J].电视技术2013,37(21):74-75.

[4]杨越(译).精通Android3[M].北京:人民邮电出版社,2011:715-716.

[5]E2EClou工作室深入浅出Google Android[M].北京人民邮电出版社, 2009:102-137.

[6]杨丰盛.Android应用开发揭秘[J].北京:机械工业出版社,2010:4-10.

[7]廖军,郭达.移动互联网应用趋势——基于Web的终端平[J].信息通信技术,2004,19(2):420-423.

[8]刘正,陈强.基于Android的GPS应用中的研究与开发.中国西部科技,2011,09(32):15-16.

猜你喜欢
巡查路线基站
最优路线
『原路返回』找路线
高速公路机电设备巡查模型探讨
昼夜巡查不间断
画路线
可恶的“伪基站”
找路线
自治区安委会巡查组分赴各市开展巡查工作
基于GSM基站ID的高速公路路径识别系统
小基站助力“提速降费”