基于Android平台的移动航标动态监控系统的实现

2014-06-27 00:52,,,
船海工程 2014年3期
关键词:海图航标报警

,,,

(大连海事大学 航海学院,辽宁大连 116026)

目前各类航标自动监控系统大都采用台式电脑。这些监控系统基本都是在电子海图系统的基础上,连接航标动态数据库,实现航标的自动监控[1]。这种系统一般功能强大但不易移动,常年运行于监控中心的值班室等,需要值班人员轮值值守。当有航标出现异常时再联系工作船上相关人员进行维护,工作船一般很难自行发现异常的航标,一旦值班人员失误或没有值守就会造成异常航标维护的延后从而影响船舶的航行安全。基于以上问题,开发基于Android系统的移动航标动态监控系统,采用Webservice的方式实时获取航标动态数据库的信息,并将这些信息叠加显示到本地海图上,一旦有异常航标发生则及时报警提示,实现全天候的航标动态监控。本系统适宜工作船上人员随身携带,随时发现问题随时解决,同时也可以和监控中心联动,提高航标的维护效率,节省养护成本。

1 系统相关技术介绍

1.1 航标遥测监控系统

航标遥测监控系统是“长江南京至浏河口段数字航道与智能航运建设示范工程”(以下简称“示范工程”)的子系统,由航标遥测终端、航标信息处理服务器、航标信息数据库及航标监控系统组成。

航标遥测终端负责航标信息的采集并上传到服务器,每个航标上配备具有GPS定位(仅对浮标)、数据采集、航标控制和远程通信功能的专用设备(航标遥测终端),主要功能是通过多种传感器获得航标现场有关信息,发送状态和报警信息、接受并执行遥控指令[2]。

航标信息处理服务器负责接收并处理航标遥测终端上传的航标动态信息,并把处理信息存入航标信息数据库。

航标信息数据库负责航标信息的存储,为应用系统提供数据支持。

航标监控系统提供航标的监视功能,利用航标信息数据库的数据,把航标的动静态信息呈现到二维电子海图上,遇到异常航标及时报警提示管理人员,方便航道管理部门对航标进行维护管理。

目前该系统已经在南京航道局可靠稳定的运行了几年,为航道管理人员提供统计分析与辅助决策功能,极大地提高了航标的维护管理水平。本文工作是利用该系统的航标信息数据库信息建立移动航标动态监控系统。

1.2 Android技术

Android是一种以Linux为内核的自由及开放源代码的移动操作系统,主要应用在智能手机和平板电脑上,由于Android平台的开放性,使其得到迅速的普及。

Android的应用使用Java语言编写,同时还提供JNI的编程方式,为熟悉C/C++开发语言的开发者提供了便利。在开发过程中,有许多的例子程序和开源应用提供下载,并且IDE使用开源的Eclipse,集成开发环境有丰富的源代码模型,使得应用程序的开发难度大大降低,缩短了开发周期。

本监控系统选择Android作为移动航标监控系统的基础平台。

2 总体设计

移动航标动态监控系统的结构见图1。该系统主要由航标、数据库、服务器和移动航标监控终端组成。

图1 总体结构示意

系统的工作原理是通过安装在航标上的数据采集器(监控终端)采集航标工作参数,并利用GPS获得航标的经纬度数据,再通过公网GSM通信模块,按照设定传输方式将航标工作参数、航标位置等数据数字化后实时传输到航标监控中心,监控中心由高性能计算机、收发设备、GPS后差分处理器组成,监控中心负责航标数据的处理和存储。

Webservice服务器负责响应移动航标监控终端的请求,将请求的航标动态数据从数据库取出返回给终端处理。

移动航标监控终端的功能包括电子海图的显示和航标的动态监控与报警显示,终端从Webservice服务器获取航标动态信息后,将航标动态信息实时叠加显示到电子海图上,并将报警航标以醒目的提示显示给用户。

3 系统实现

由图1可见,本系统是C/S结构,由客户端和服务器端组成,服务器端由Webservice服务器实现,接受客户端的请求,返回航标动态信息到客户端;客户端就是航标移动监控终端,负责请求和接收航标动态信息,并实时将航标动态信息叠加显示到本地电子海图上,实现航标的动态监控。

3.1 电子海图显示

电子海图显示是航标监控系统的基础,可以很好地为航标提供定位背景,Android平台上的电子海图显示是以Java语言实现,通过解析符合IHO S-57标准的电子海图数据获取各个物标的空间及特征属性,通过投影与坐标转换,将这些物标以IHO S-52标准要求的方式绘制到屏幕上,形成电子海图的显示。

图2 电子海图显示

利用电子海图就可以对航标进行准确的定位和标绘,本系统采用在自主开发的基于Android系统的S-57电子海图显示平台上叠加显示航标动态信息,将航标的动态信息,如漂移、欠压、无法定位等动态信息实时显示到电子海图上,同时还可以实时给出报警信息,实现航标的动态监控。

3.2 利用Webservice进行数据发布

在服务器的数据库中存有航标的状态或属性,包括航标名称、终端ID、航标类别、基准纬度、基准经度、接收时间、工作状态、管理状态、GPS定位是否有效、GPS是否正常、EPROM是否正常、AD是否正常、串口芯片是否正常、电量测量芯片是否正常、灯器控制器是否正常、充电状态是否正常、灯质测量是否正常、电源是否过压、电源是否欠压、灯质是否正常、是否被撞击、当前纬度、当前经度、位移门限等。这些信息有的是静态的,如航标名称、ID等;有的是动态的,是经过终端上报的短信息解析入库形成的,如当前经纬度、灯器状态等。

本系统的服务器端采用Webservice的方式部署。当有客户端请求某个或全部航标信息的时候,通过Webservice获取客户端的请求参数,根据参数从数据库获取请求航标的状态和属性,处理后的结果以XML形式返回来给客户端;客户端程序解析这些XML数据,然后进行显示或报警。

3.3 航标信息获取与更新

在监控系统中,电子海图的绘制和刷新会占用很多的系统的开销,而通过网络不断地更新航标动态信息在网络不是太畅通的情况下也会占用大量的资源,如果将两者放在同一线程来做,就很容易影响电子海图的绘制与刷新,造成系统反应迟钝,影响用户的使用感受。

为解决这个问题,系统采用Android的Service组件,Service运行在后台新的线程,也可以设定开启新的进程,利用Service可以实现不间断的网络访问进行数据的动态更新而不影响前台的操作。

Service后端的数据最终还是要呈现在前端Activity(显示电子海图及航标)之上的,在启动Service时,系统会重新开启一个新的进程,这就涉及到不同进程间通信的问题,有两种方法可以实现:一是通过AIDL(Android Interface Definition Language ,即Android接口定义语言);二是通过Android的广播机制来完成。本系统采用第二种方式,在后台Service获取到一个航标动态信息后通过sendBroadcast(Intent)方法将该信息广播出去,然后通过在前端Activity中注册的BroadcastReceiver接收该广播消息,获取航标动态信息,然后更新显示。

3.4 触控操作

不同于台式设备有鼠标和键盘来进行人机交互,移动智能设备主要靠触摸的方式来完成各个功能的操作。就本系统而言,触控操作分为两部分:电子海图的操作,包括漫游和缩放以及航标的选定操作。

触控操作通过重写电子海图的主显示窗口MainChartView类的onTouchEvent (MotionEvent event)方法来实现,当触摸事件发生的时候会触发该函数,通过参数event及ACTION_MASK可以区分单点及多点触摸事件,进而对事件进行处理。

电子海图操作的实现主要通过Matrix来完成。在拖动和缩放过程中,通过移动及缩放的距离来修改Matrix参数,通过屏幕的刷新使得内存电子海图图像进行相应的移动和缩放;在移动或缩放动作结束的时候,再根据最终的移动或缩放参数来重绘电子海图形成新的内存图像显示出来。这样就实现了电子海图的漫游和缩放操作。

在航标的选定操作上,为了查看屏幕上一个报警航标的详细信息,首先要选定该航标,为了和电子海图的漫游操作相区别,航标的选定操作通过单点触控的“长按”事件来完成,具体实现过程如下。

1)当屏幕触摸发生,即启动一个计时器。

2)在计时器结束之前,如果有移动或者缩放操作的发生,则放弃该计时器;否则在计时器结束的时候开始航标的搜索操作。

3)将触控点的屏幕坐标转换为地理坐标。

4)遍历航标动态列表,搜索与该地理坐标距离在设定范围内的航标;如果找到则弹出该航标的详细信息框,见图3。

3.5 航标监控与报警

航标监控系统重点监测航标灯的充电电流、充电电压、工作电流、运行灯质以及航标位置、航标的意外碰撞等信息。通过定时轮询的方式可以获取这些重要物理参数或信息,航标遥测终端收到轮询指令后,这些重要的物理参数、指标等通过专业电子元件、传感器和GPS设备实时测量,然后按设定好的编码方式通过GPRS/GSM模块以短信的形式发送到监控中心,监控中心将这些动态信息解析后存入数据库以备后用[3]。

在网络条件正常的情况下,移动终端以一定的时间频率动态请求航标信息,同时根据获取的信息实时分析航标的工作状态。本系统中对航标的异常情况根据严重程度分为三级:一级报警是距离报警;二级报警有超时、电压欠压、灯质错误、GPS定位无效和GPS异常等;其它情况为三级报警。其中一级和二级报警是需要监控人员及时处理的异常,在电子海图上航标符号以警戒色闪烁提示报警。另外还可以通过统计页面查看所有的三级报警的航标数量及报警的详细信息。

图3 航标定位查询

3.6 系统运行效果

本系统的显示效果见图3、4。图3是航标的动态标绘与详细信息查询界面,通过“长按”事件来选定航标,某个航标被选定后会弹出如图3所示的详细信息,并且航标的异常信息会以红色标注提示用户,十分醒目。在航标的详细信息界面点击“定位”按钮,会将该航标居中显示在电子海图界面中,方便查看航标的方位。

图4 航标报警统计

图4为航标的报警统计与查询界面。通过该界面可详细查看各级报警航标的数量,同时还可以通过航标名称模糊查询某个航标。在列表中点击某个航标可以显示该航标的详细信息,同样通过定位按钮可以将选定的航标居中显示在电子海图上。

4 结论

以Android移动平台为依托,实现了电子海图的显示,利用Webservice技术以及Android的Service组件和广播机制实现了航标动态信息的获取与更新显示。本文所实现的系统界面美观,操作方便,可以为航标维护人员提供极大的便利,同时提高航标的维护效率。耗电量大是本系统的不足之处,监控状态下,屏幕长亮及持续的网络访问会耗费很多的电力,这些问题还有待于在实践中进一步探索,继续研究。

[1] 茅志兵,孙玉龙,钱苏芬,等.桥区航标灯同步闪及监控管理系统设计[J].交通与计算机,2007,25(2):87-89.

[2] 陈 宏,彭国均.航标遥测遥控系统的设计与实现[J].船海工程,2007,36(2):126-128.

[3] 艾廷华,王 洪.电子航道图与航标遥测监控系统[J].武汉大学学报,2008,33(4):347-352.

猜你喜欢
海图航标报警
IALA航标工作船员培训示范课程研究
浅谈虚拟AIS航标及北斗遥测遥控在沿海航标配布中的应用
纸海图AI小改正制作模式探讨
探究如何加强航标管理提升航标服务
少林功夫拳(三)
民用海图编绘中数据一致性分析和改进
关于电子海图单元叠盖拼接问题的探讨
2015款奔驰E180车安全气囊报警
2014款奥迪Q5车发动机OBD灯报警
死于密室的租住者