董 勇(东海航海保障中心福州航标处 福建福州 350005)
基于安卓系统航标巡检现场核查APP研究
董 勇
(东海航海保障中心福州航标处 福建福州 350005)
摘要:针对航标遥测终端生产厂家之间的设备通信方式不同,通信链路不同,数据格式以及传输协议不同等问题,通过运用数据库技术,融合网络通信不同类型数据,结合“互联网+航标”的方向,设计一套基于安卓操作系统的手机APP应用,为基层一线航标工作人员能够及时查看当前最新航标遥测终端的运行状况提供便捷,同时较大程度提高工作效率。
关键词:航标 巡检 遥测 安卓 APP
近年来,随着IALA标准的航标AIS ATON设备、北斗航标及GSM/GPRS遥测设备的安装部署,给航标远程监管提供了极大便利。但由于不同航标遥测终端生产厂商之间的设备通信方式不同、通信链路不同,数据格式以及传输协议不同等问题,特别是在海上现场巡检受气象条件、工作时间等因素制约的影响,给航标遥测终端的现场巡检核查带来诸多不便。针对这些问题,从航标巡检一线人员实际需求出发,结合当前智能手机应用普及和“互联网+航标”的理念,设计了一套基于安卓系统的航标巡检现场核查APP系统,拟通过手机APP客户端,对灯塔、灯桩、灯浮、灯器、蓄电池电流电压、航标遥测终端、航标AIS终端等运行状况进行现场核实和检查,从而避免了现有航标巡检维护时,因更换或检测每台终端设备时都必须通过值班人员在系统平台上核查确认反馈信息的现状,且大大缩短了现场等待时间,弥补了航标巡检现场没有可验证的工具和手段,减轻了一线航标人员的工作量,有效提高了工作效率,有力推进了航标信息化、科学化的进程,具有较高的现实性和应用价值。
航标是航行标志的简称,指标示航道方向、界限与碍航物的标志,包括过河标、沿岸标、导标、过渡导标、首尾导标、侧面标、左右通航标、示位标、泛滥标和桥涵标等,是帮助引导船舶航行、定位和标示碍航物与表示警告的人工标志。
航标远程遥测设备主要包括了:AIS航标、北斗航标、公共网络遥测航标等所有具备发射功能的无线信号终端。其中AIS航标的主要目的是促进和加强船舶航行的安全,它所能提供的助航服务主要有:标示航道、障碍物和水中建筑物等,监控航标的实时位置和运行状态,为过往船舶提供气象、潮汐和海洋状况数据等;北斗航标主要是通过北斗卫星提供船舶在海洋上的定位信息;公共网络遥测遥控航标主要功能是通过国内三大公众网络运营商提供的通信链路,将航标采集数据汇总到航标监控指挥中心的数据库中。
几种遥测终端各有优劣,AIS航标采用广播方式,在能见度较低的天气条件下,可以为周围船舶提供准确的航标信息,但AIS航标受困于AIS基站覆盖,通常通信距离较近,只适合安装于港区范围内的航标上;北斗航标采用卫星通信,信号覆盖范围广,但只能寻址通信且功耗较大,仅适合安装于供电稳定的远海灯塔供指挥中心监测使用;遥控遥测终端使用移动数据运营商网络,也仅为寻址通信,优点为只要有手机信号的海域都可用于遥测使用且功耗很低,同时可以通过短信方式召测,设置设备通信参数,应用灵活方便。
多种通信模式终端的结合使用,使得航标远程监管达到各自发挥优势,互相弥补缺点的合理水平,方便航标管理部门指挥中心远程监管。
这款APP的设计采用了当前安卓智能手机主流的C/S模型架构,即客户端(Client)和服务器端(Server)。本系统程序设计中,安卓手机APP为客户端,航标监控指挥中心服务器上运行的后台程序为服务器端。该系统主要运用的技术包括:采用TCP/IP Scoket协议结合、Webservice数据融合的通信方式,并对各种类型遥测航标上传的数据进行分类处理和数据解析,实现数据入库,来实现手机客户端和服务器之间的数据通信。
2.1系统架构设计结构
图1 本程序架构设计方式
本系统在架构设计开发方式上采用的是MVC(Model View Controller)设计架构来设计本款APP。其中MVC分别是模型(model)-视图(view)-控制器(controller)的缩写。在本次设计中,数据库为模型层,后台的服务器程序为视图层,安卓手机的客户端程序为控制器。关于MVC的设计方式,大致描述如上图1所示。
2.2系统技术特点
服务器多类型数据融合数据处理,AIS航标、北斗航标、遥测遥控航标及AIS基站等所有遥测航标数据的综合数据处理、解码及入库;
具体涉及现实网络机房部署中的系统网络结构组成,如下图2所示:
图2 航标巡检现场核查系统服务器网络结构图
服务器多种数据通信方式,采用TCP/IP协议、Webservice服务、Scoket、串口等多种数据通信接口,融合短信、套接字、xml语句等多种类型数据格式。
手机实时监控及历史数据分析,手机APP通过Webservice方式请求服务器推送所需要的实时及历史数据,在手机端进行分析,并用图形直观表示。
开发平台: 服务器端开发平台Visual Studio 2012、开发语言C++;手机APP端开发平台Eclipse,开发语言java;采用TCP/IP Scoket协议结合Webservic数据融合的通信方式;AIS数据为国际电信联盟ITU颁布的1371号协议,标准NMEA-0183语句,采用TCP/IP通信方式,需要专属用户名和密码验证;遥测数据服务器为自定义的协议语句,采用开放式TCP/IP通信方式和Webservice连接方式相结合。
2.3APP功能介绍
安卓手机APP端主要功能包括:基础信息、新标搜索、数据升级和实时查询等四个功能模块:
基础信息功能模块主要内置了航标基础信息,包括航标编号、航标名称、基础位置、灯质等,主要方便航标管理部门对航标基础信息的快速查询。
实时查询模块为该APP关键部分,主要是第一时间实时查询到当前航标遥测终端上报的信息,核实上报时间、航标位置、电流电压的时效性和准确性,并可以查询近期历史数据记录,位置偏移情况和电流电压变化曲线图,功能示意如下图3所示:
图3 航标巡检现场核查实时查询功能示意图
新标搜索模块主要为基础信息没有更新的新设立航标遥测终端提供快速查询接口。
数据升级模块会在APP启动前检查当前APP程序版本号,提示用户是否升级程序并更新航标基础信息。
3.1网络通信技术
网络通信部分,服务器端我们采用了TCP/IP协议、Webservice服务、Scoket、串口等多种数据通信接口,融合短信、套接字、xml语句等多种类型数据格式。为实现服务器端的正常工作和满足设计的需求,开发者专门开发了一款使服务器端程序,能够对各种类型遥测航标上传的数据进行分类处理和数据解析,并实现数据库入库。服务器端程序如下图4所示:
图4 航标巡检现场核查系统服务器端程序
此服务器端程序有专门的AIS通道、北斗通道、航标遥测通道和短信通道。服务器端程序将不同通道中的数据进行如上所说的数据处理,解析和入库操作。安卓手机APP端,通过WebService方式请求服务器推送所需的实时及历史数据,并在手机端进行分析和显示的工作。
3.2数据库操作技术
在数据库技术中,主要是通过对数据库进行查询,分类搜索等数据库的操作功能来得到历史数据,并运用安卓程序开发的技术将得到的数据进行图形化的直观显示,在安卓客户端中进行数据分析,解析和绘制,参见上图4,App端的历史数据查询功能界面如下图5所示:
基于安卓系统航标巡检现场核查App的设计中,多种数据的通信和融合是一个难点。其中,AIS数据协议为国际标准的NMEA-0183语句;航标遥测终端大多数各厂商为自定义的协议语句,采用开放式TCP/IP通信方式或Webservice连接方式;同时该APP软件兼容北斗航标的通信接口,北斗数据需要接入总参北斗卫星导航系统地面站的数据服务中心,使用北斗系统国家标准。
本系统服务器端程序预留多路接口,可以提供明码格式语句供其它系统使用,同时本系统服务器端预留长期存储的数据库接口以及基于手机APP电子海图接口,为后期的应用扩展提供数据支持。
图5 航标巡检现场核查APP部分功能图
参考文献
[1]许健,余琳.航标遥测遥控系统在航道维护管理中的应用[J].水运管理,2011,33( 9) :34-35.
[2]李子福,彭国均,黄鹏飞.航标遥测遥控系统的优化[J].集美大学学报: 自然科学版,2010,15(5):358-363.
[3]翟大昆.Android项目开发详解[M].北京:机械工业出版社,2012.
[4]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2006.
[5]柯元旦.Android内部剖析[M].北京:电子工业出版社,2011.