时间:2024-07-29
费春国,王 帅,胡江瑜
(中国民航大学电子信息与自动化学院,天津 300300)
基于Android的机场车辆监控系统设计
费春国,王 帅,胡江瑜
(中国民航大学电子信息与自动化学院,天津 300300)
针对目前机场内停靠飞机数量爆发式增长,所需车辆数量越来越多,管理难度越来越大,人工管理任务繁重且管理混乱的现状,提出基于Android的机场车辆监控终端系统的设计与解决方案。该终端系统用于对机场地面特种车辆的实时监控,采集特种车辆的工作状态信息及路径位置信息,并将采集到的数据通过无线局域网络回传到监控中心,进行数据的储存和处理,阐述基于Android的机场车辆监控系统的设计思想、开发模型、主要功能模块及核心技术的设计,并完成系统的硬件设计、软件架构设计、GIS平台二次开发及GPS数据获取算法等任务,测试结果表明系统设计合理、稳定、可靠。
Android平台;机场车辆;实时监控;硬件设计;软件架构设计;GPS数据获取
近年来,随着中国航空事业的快速发展,各机场的年吞吐量逐年增加,而客机对于地面保障和服务需求也愈来愈高。随着飞机的起降越来越频繁,所需地面保障车辆的数量随之大大增加,车辆工作频率也大幅提高。
目前机场内停靠飞机数量的爆发式增长,所需的车辆数量越来越多,管理难度越来越大,靠人工管理任务繁重且管理混乱,而现存的机场车辆监控系统功能较为局限,还有很大的扩展空间。国外,美国风河系统公司与Clarion携手开发新一代Android车载设备[1],技术日趋成熟。国内,北京博维航空设施管理有限公司开发了一套车辆监控系统,并已应用于首都机场,但现存的系统仅将普通车辆监控系统移植应用到机场车辆上,没有考虑到机场车辆工作性质的特殊性,需要扩展传感器模块进行数据采集,现有车载系统无法对传感器信息进行采集,不能完全满足机场日常运行工作需要[2-5]。
本设计拟对基于Android机场车辆监控系统提出解决方案,用以对机场车辆的实时监控,采集车辆的工作状态信息。通过实现这套设计方案,可节省人力物力,提高车辆的工作效率,加强机场对车辆的监控、管理力度,从而显著提升机场整体的运行效率。通过车载终端记录地面车辆的工作状态信息和位置信息,经无线通信模块回传到监控中心,保存到本地数据库,提高记录信息的准确性,节省人力物力。
2.1 终端系统平台Android的选择
由于本设计的监控终端系统最终应用到机场车辆上,并对其进行实时监控及信息采集,这些属性要求选择的平台更倾向于便携性较好的嵌入式平台。Android是一种基于Linux的开放源代码的操作系统,主要应用于移动操作平台的开发。该平台包括操作系统、中间件、用户界面和应用软件。该系统采用软件叠层架构,如图1所示。其最底层为Linux内核层,通过C语言进行开发,是硬件和软件之间通信的桥梁,通过隐藏具体硬件细节来为其上层提供统一服务。通过Android核心库,用户可以使用Java编程语言核心类库。Dalvik虚拟机经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux进程执行[6]。
图1 Android系统框架Fig.1 Android system framework
2.2 机场车辆监控系统结构
本文的机场车辆监控系统分为以下几部分,如图2所示。
1)客户端 用于向服务器端发送机场车辆信息,如位置信息、工作状态信息等。本系统以Android终端作为客户端,固定在机场车辆上,终端通过无线局域网络(WLAN,wireless local area networks)连接到服务器端,与其互相通信,传递数据。
2)无线网络 用于实现移动终端和服务器的实时通信、发送和接受数据。无线网络是连接客户端和服务器的通道,发送和接受数据。目前,机场采用的无线网络技术通常包括:WLAN、无线传感器网络(WSN,wireless sensor network)、GPRS网络等。本系统采用WLAN无线局域网络,这是一种利用射频(RF,radio frequency)技术进行数据传输的系统。
图2 机场车辆监控系统结构Fig.2 Structure of airport vehicle monitoring system
3)服务器端 用于接收并处理客户端发送的请求和信息,包括服务器和数据库两部分。通过开启监听线程,当有客户端的请求进来时,服务器会立即分配一个连接端口给客户端并建立一个线程与其进行交互通信。当用户在客户端界面发出操作指令,如上传车辆位置信息和状态信息时,服务器会建立一个新的线程来接收数据信息并存储到本地数据库[7]。
3.1 硬件设计
基于Android系统的机场车辆监控终端系统由处理及显示、信号采集、无线传输、定位等部分组成。系统终端硬件整体结构如图3所示[8]。
图3 监控终端系统硬件整体结构Fig.3 Overall structure of monitoring terminal system hardware
处理及显示部分主要由基于ARM的处理器和LCD显示屏组成,本系统处理器采用的是Freescale Cortex-A9 i.MX6Q平台,Flash程序存储器为只读存储器,系统程序在这里运行并存放处理器发出的所有指令。SD RAM数据存储器为可随机读写存储器,用于存放程序运行的临时数据,可随程序运行而随时写入或读出数据存储器的内容。
信号采集部分由传感器模块和身份识别模块组成。根据所需采集并监控的机场地面车辆的状态信息,选择对应的传感器模块。传感器模块把采集到的模拟信号(电压信号、电流信号等)转换成数字信号,通过RS232串口传输到核心处理器进行信号处理,如图4所示。
图4 传感器模块与终端CPU连接结构Fig.4 Sensor module and terminal CPU connection structure
身份识别模块采用USB接口的IC读卡器将操作员无源RFID工作证扫描并传输至处理器,处理器根据此数据信息确认用户身份。
无线通信部分主要由无线通信模块(系统采用WLAN无线局域网络)组成并实现监控信息的无线接收和发送功能。核心处理器将传感器模块采集的机场车辆的状态信息进行分析处理并由无线通信模块通过机场的无线网络回传到监控中心。
定位部分主要实现GPS数据采集工作,由GPS接收机和协处理器组成,并通过RS232串行接口与处理器连接,数据传送采用异步串行传送方式,GPS定位数据通过串口将数据送入数据接收缓冲区,协处理器每隔一段时间查看一次数据接收缓冲区,并对符合要求的数据进行处理,然后将数据传送到处理器进行解析处理,传输到无线通信模块,经无线网络回传到监控中心,并把定位数据存储到地图数据库[9-10]。
3.2 传输协议设计
传感器模块中单片机每隔1 s向终端CPU发送数据包,终端CPU接收完一组数据包会向单片机端发送一个ACK包,单片机接收到ACK包后继续发送下一个数据包。如果没有接收到ACK包,单片机会继续发送当前数据包到终端CPU,连续3次无ACK包回应,则关闭发送,其通讯流程如图5所示。
为了提高数据包的传输效率,基于上述通讯流程关系,设计传感器信号采集数据帧格式如表1所示[11]。
图5 通讯流程Fig.5 Communication flow
表1 数据帧格式Tab.1 Data frame format
SD代表头标志,设定为字符“$”,占用1 Byte。CTS代表控制位,占用1 Byte,由FR、CNT、LEN组成,其中FR代表数据类型,占用2 bit,设计规定:00代表数据;01代表重发数据;10代表ACK帧;11保留。CNT为发送次数,占用2 bit,代表数据第CNT次发送。LEN代表后面DATA及CRC字段的长度,占用4 bit。DATA代表数据帧,占8 Bytes。CRC代表差错校验位,占2 Bytes,保证数据传输的正确性和完整性。
4.1 软件架构
基于Android的机场车辆监控终端系统的软件架构设计包括:Android程序逻辑设计和主线程与子线程调用关系设计。Android程序逻辑流程如图6所示[12]。
Android程序逻辑设计在功能菜单界面下分成任务模块、应急模块及工具模块等3部分。任务模块由工作任务、导航页面及查看车况等3部分组成,其中工作任务包括历史任务和当前任务,当前任务显示在导航页面的任务导航上。当用户查看车况发现有异常情况出现,可通过应急模块里的手动报警或自动报警告知用户。应急模块由报警和系统通知两部分组成,其中报警分为手动报警和自动报警,其作用是系统出现异常情况时,及时报警告知用户。系统通知栏里包含所有当前的紧急任务,点开紧急任务里面是即时任务的详细流程。工具模块由帮助界面、地图界面及系统设置组成,其中地图界面里可以查看车辆信息、飞机位置信息以及地面车辆运行轨迹等。
Android程序主线程根据需要启动串口监测子线程和心跳子线程,主线程与子线程的调用关系如图7所示[13-15]。
图6 Android程序逻辑流程图Fig.6 Android program logic flow
图7 各线程调用关系图Fig.7 Each thread calling relationship
Android程序开始运行时,会单独启动一个进程(Process),Process下可根据需要有多个线程(Thread),本程序设计主要包括1个主线程和2个子线程,其中串口通信子线程用于实现模块间的数据传输,启动心跳子线程会按照一定频率获取GPS采集的位置坐标信息,并将坐标信息传送到GIS接口,最终在地图上显示车辆运行轨迹信息。
本文设计的UI Thread,在Android程序运行时就被创建,是一个Process当中的主线程Main Thread,主要负责控制UI界面的显示、更新、控件交互以及与服务器通信。通过创建一个主线程的Handler物件,当做Listener让子线程能将讯息Push到主线程的Message Quene里,以便触发主线程的handlerMessage()函数,让主线程知道子线程的状态,并在主线程更新UI。主线程启动界面,获取服务器任务数据,存储于本地SQL库,处理数据并上传结果到服务器,然后实现系统UI更新。启动串口通信子线程,串口开始读取数据,根据串口协议将数据明文,然后解析数据并进行数据分析,判断数据有无异常,若无异常返回继续读取串口数据,若有异常则将数据存储到本地SQL库。启动心跳子线程,获取实时的时钟数据,将GPS获取的位置坐标信息传送到GIS接口,在地图上完成显示更新,然后进入下一次心跳,按一定频率进行循环更新显示,在地图上实现车辆运行轨迹的打点显示。
4.2 GIS平台选择及开发
本设计GIS开发平台采用UCMap开发平台,属于基于Android中间件的组件式开发平台。基于Android平台架构的Framework框架进行API接口式二次开发,采用Java语言和调用API接口进行实现,组成Android客户端+GIS服务器端模式,其结构如图 8所示[16-20]。
图8 Android客户端与GIS服务器结构图Fig.8 Android client and GIS server architecture
用户通过Android客户端进入地图界面,发出操作请求,后台线程根据协议处理解析数据向GIS服务器端的地理信息服务层发送地图数据请求,地理信息服务层依照OGC WMTS、WFS-G、WPF等国际标准的地理信息服务根据需要从空间数据集调用基础地理数据、街景全景数据及地图瓦片数据,转换成JSON(JavaScript object notation)数据,后台线程根据协议处理解析数据,把结果数据传回地图界面,根据得到的结果数据更新地图界面。
4.3 GPS信息获取算法
终端在天津滨海国际机场进行试验测试,地图选取天津滨海国际机场停机坪(包括各个廊桥位置和远机位停机坪),获取的GPS数据包括无效数据和有效数据[21],如:
$GNGGA,023843.55,,,,,0,00,99.99,,,,,,*76代表一个无效数据,GPS芯片未搜索到卫星定位信号,输出的数据不完整,绝大多数“,”与“,”之间数据为空。
$GNGGA,054235.00,3913.64195,N,1734.82879,E,1,03,3.05,4.2,M,-5.1,M,,*56代表一个有效数据,GPS芯片搜索到卫星定位信号,“,”与“,”之间均为有效数据。每个数据条的起始符都是“$”,而之后的数据以“,”分开。根据GPS数据输出特点,设计一个获取GPS有效数据的逻辑方法,如图9所示。
图9 GPS数据获取流程图Fig.9 GPS data acquisition process
系统每触发一次心跳线程将会执行一次GPS数据获取操作,纬度str等于数据条第2个“,”与第3个“,”之间的内容,方向等于数据条第3个“,”与第4个“,”之间的内容;经度str等于数据条第4个“,”与第5个“,”之间的内容,方向等于数据条第5个“,”与第6个“,”之间的内容。以天津滨海国际机场测试的GPS数据为例,纬度str=3 913.641 95,方向=N;经度str= 11 734.828 79,方向=E。第3个“,”前的十位数据代表纬度,小数点前的4位为度和分,各占2位,小数点后的5位单位是分;第4个“,”之前的字母代表纬度方向,“N”为北纬、“S”为南纬;后面数据代表经度,读取方法与纬度数据相同,上述数据定位在北纬39°13.641 95′,东经117°34.828 79′。
4.4 本地数据库
系统中的本地数据库使用的是MySyl数据库,存储了地图数据以及属性数据。地图数据包括机场跑道与停机坪分布图和机场区域划分图两项数据。机场跑道与停机坪分布图由横坐标、纵坐标组成,机场区域划分图则由区域名、横坐标范围、纵坐标范围构成。属性数据则包括用户列表与权限列表,其中用户列表包括所有机场车辆操作人员的用户名和对应的密码,权限列表将所有用户划分等级,分为高级管理员和一般用户。高级管理员负责对这2个数据库的查询和维护工作,保证本地数据库正常运行[22]。
本系统只有在本地数据库存储的账户信息才能登陆,用户分为普通账号和管理员账号,一般机场的员工使用普通账号,维护人员可使用管理员账号来应对突发问题,确保系统安全运行,如图10所示。
图10 系统界面图Fig.10 System interface
账号登录成功后,默认主界面实时显示所有行驶中的车辆状态信息,包括车辆编号、终端号、车辆位置信息。点击终端屏幕左下角显示的所有车辆,选择需要查看的车辆编号,系统会显示此车辆的状态信息,如车速、油耗、水温、发动机转速等。地图上面的状态栏里有状态显示、车辆跟踪、飞机位置、车辆运行轨迹、告警通信等功能,用户可根据需要自由切换,全面掌握终端车辆的状态信息。测试和初步试用效果表明:该系统设计合理、便捷、界面操作简单、数据信息准确可靠,初步应用中的稳定性和准确性较好,满足机场车辆管理需求。
本文对基于Android平台的机场车辆监控系统进行了详细的需求分析与设计,重点研究设计了车载终端系统的软件架构设计,并对终端系统进行了实验测试与数据分析。测试与分析结果表明:系统能满足日常机场地面车辆监控与调度工作,具有开发便利、成本较低、扩展性强的优点,说明系统设计的合理性,为机场管理部门对机场地面车辆管理工作提供支持和保障。
[1]美国风河系统公司北京办事处.风河与Clarion携手开发新一代Android车载设备[J].工业控制计算机,2011,12(3):122.
[2]商庆瑞,吴 晴,徐 喆,等.车载导航系统现状及GPS/DR定位系统车载实验[J].现代电子技术,2006(9):113-115.
[3]王媛媛,陈文杰,王军利.智能车载导航系统在道路交通管理中的应用[J].中国人民公安大学学报(自然科学版),2008(3):78-81.
[4]张存保,刘独华,林世究,等.车辆监控调度系统的设计与开发[J].交通与计算,2002,20(3):17-19.
[5]黄 帅.嵌入式车载导航的设计和实现[J].微计算机信息,2008(28): 284-285,279.
[6]马 越.Android的架构与应用[D].北京:中国地质大学,2008.
[7]李 洋,殷云鹏,赵 勇.基于Android的网络数据存储与访问[J].中国科技信息,2013(8):92-93.
[8]江俊辉.基于ARM的嵌入式系统硬件设计[J].微计算机信息,2005 (7):120-122.
[9]刘 正,陈 强.基于Android的GPS应用中的研究与开发[J].中国西部科技,2010(32):15-17.
[10]马俊海,黄 明.车辆监控系统中GPS,GIS,GSM的应用[J].测绘通报,2002(10):34-36.
[11]王 丽,彭继慎,初宪武.RS-232C与CAN总线通信协议转换单元设计[J].测控技术,2003(4):42-44,51.
[12]赵 亮,张 维.基于Android技术的界面设计与研究[J].电脑知识与技术,2009(29):8183-8185.
[13]Android Architecture[EB/OL].[2016-09-01].http://developer.android.com/about/versions/.
[14]PRESSM,GOODWIND,FLORESRA.PALASS:APortableApplication for a Location-aware Social System[C]//OTM Confederated International Conferences.Berlin,Heidelberg:Springer,2008,5333:499-508.
[15]ANDROID.Discover Android[EB/OL].[2016-08-29].http://www.andro id.com/about/.
[16]刘纪政.基于Android操作系统的GIS软件开发与研究[J].计算机光盘软件与应用,2013(1):234,238.
[17]ESTRA G,LIGUORI G.MyTravel:A Geo-referenced Social-oriented Web 2.0 Application[C]//ICCSA′11 Proceeding of the 2011 International Conference on Computational Science and Its Applications.Berlin,Heidelberg:Springer,2011.
[18]ESRImobileSDK[EB/OL].[2016-07-22].http://www.esri.com/software/arcgis/smartphones/index.html.
[19]SUPERMAP.移动GIS平台[EB/OL].[2016-08-14].http://www.supermap.com.cn/html/Sofewarebig_55.html.
[20]OPENGIS.AndroidQGIS[EB/OL].[2016-08-02].http//www.opengis.ch/category/gis/qgis/android-qgis/.
[21]KAPLANED.UnderstandingGPSPrincipleandApplications[M].Boston, London:Artech House,1996.
[22]萨师煊,王 珊.数据库系统概论[M].北京:高等教育出版社,2000.
(责任编辑:黄 月)
Design of airport vehicle monitoring system based on Android
FEI Chunguo,WANG Shuai,HU Jiangyu
(College of Electronic Information and Automation,CAUC,Tianjin 300300,China)
Along with the explosive growth of docking aircrafts,required vehicles increases a lot,resulting in more difficulties for airport management,manual management tasks are getting arduous and chaotic.Android-based vehicle monitoring terminal of airport is presented with solutions to current problems.This data terminal system is used for airport ground real-time monitoring of special vehicles,collecting their working state information and route position,and giving feedback to monitoring center through a wireless local area network for storage and processing of data.Main function modules and core technology design of the current system are elaborated.Meanwhile,the design of hardware system and software architecture,GIS platform secondary development and GPS data acquisition algorithms and other tasks are completed.Test result shows that the system design is reasonable,stable and reliable.
Android platform;airport vehicles;real-time monitoring;hardware design;software architecture design;GPS data acquisition
V35;TP334.1
A
1674-5590(2017)02-0035-06
2016-09-01;
2016-10-13
国家自然科学基金项目(61403395)
费春国(1974—),男,浙江慈溪人,副教授,博士,研究方向为神经网络优化算法、机场车辆调度优化算法、电力系统负载优化和工业控制等.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!