连载:基于安卓平台的电子飞行包(五)完
说明:
本文是北京航空航天大学 盖玉杰 硕士的2015年的毕业论文,经许可在公众号发表。本文著作权归作者盖玉杰先生,如需转载请联系本站或作者本人。
该项目是与民航研究院一同开展,对国内电子飞行包的研究发展起了重要的补充,但很遗憾的是目前该项目已经中止。
基于Android平台的
电子飞行包(EFB)
设计与实现
Design and Implementation of Electronic Flight Bag (EFB)Based On Android Platform
作者:盖玉杰
指导教授:龙翔
前文回顾:
摘要
绪论
电子飞行包简介
电子飞行包的含义
电子飞行包的功能分析
研究的背景和意义
研究目标及内容
本文的组织结构
电子飞行包的对比分析
Jeppesen Mobile FliteDeck
FlyQ EFB
GlobalNavSource EFB
Avplan EFB
Android平台上EFB功能分析
小结
从导航数据库的制作流程等方面介绍导航数据库的设计与实现。
连载以上
接下来一起学习:
3.7.1 导航数据导入和对比设计
导航数据库系统需要将民航已经有的最新的数据导入数据库,制作成Golden库, 然后对获得的新的机场数据与导航数据库中的数据进行对比并展示,然后会以人工的方 式对对比结果进行校验确定到底需不需要对有差别的数据更新到数据库。
本文的导航数据库的设计将分为导航数据导入数据库和导航数据的对比。
由于数据量大,民航希望能够使用停泊窗口来实现功能,这样就可以实现将停泊窗 口拖放到单独的一个显示器里更加方便的查看导航数据。民航得到的导航数据是csv文 件或者xls文件,此文件里面包含了所有机场的机场、跑道、离场、进场、导航台、NDB台、航路点和等待数据。首先应将机场名组织成树形列表并且可以快速检索机场,将某 一个机场的导航数据展示之后,可以选择离场程序名、进场程序名和进近程序名来确定 在此机场中,需要导入数据库的那些数据,如图33所示。
导航数据的对比,需要将数据库导航数据和文件数据展示并且将对比结果展示,为了节省查看对比结果的时间,可以将每个机场的机场、跑道、离场、进场、导航台、NDB 台、航路点和等待的数据总的对比结果,比如是否增加了数据,是否有不同的数据等,在机场名的树形结构中用字母展示出来,如R表示Right,即文件中的导航数据和数据 库中的导航数据是一样的,为了具体查看导航数据库的对比结果,需要一个单独的导航 数据库对比结果界面展示数据。
由于机场中的每个数据表的数据比较多,为了方便查看有差异的行和单元格,将按 照如下展示规则展示对比结果:单元格中用红色背景表示数据库中与外部文件中的数据 不同;在对比结果窗口中,如果一行中有不同的数据,将用红色的边框将此行框起来;对于离场、进近和进场表,SeqNo的值以10开始,逐行加10,直到出现一个新的10, 它包含了一个跑道的所有数据,为了方便用户查阅数据,将相邻两条跑道的数据行分别 用灰色和白色背景区分开。如图34所示。
数据的编辑只能在标准库内容这个停泊窗口中操作,并且可以将编辑好的数据入库。
3.7.2 导航数据导入和对比功能实现
为了实现导航数据库制作和导航数据对比的功能,在本文的导航数据库系统设计与 实现系统中,将采用WPF框架和MVVM设计模式对系统进行实现。
WPF (Windows Presentation Foundation)是基于.NET 的新一代界面开发平台,它实现了桌面应用程序和互联网应用程序的统一编程DM,实现了程序员长期梦想的数据驱动用户界面,融合了动画多媒体的功能,跨越了图形和控件、控件和排版等技术上的界限,在很短的时期内实现并超越了 Flash和PDF的相关功能。WPF通过数据绑定机制,将两个相同类型或者可以相互转换的类型的数据粘连在一起,可以达到被动数据 跟随主动数据变换的目的。这种机制,使得程序开发活动可以从大量的数据监管工作中 解脱出来。为了方便功能操作,本文导航数据库设计与实现中将采用专门为WPF开 发的Ribbon控件,来实现目前Office风格的界面。同时为了实现多窗口操作,使用开 源的 AvalonDock 停泊窗口。为了美观还使用 V S2010Theme、Metro The me AeroTheme 和ExpressionLightTheme四种主题的界面,可以方便的进行切换。
MVVM模式是由MVC模式演变而来,是微软针对现代用户界面开发平台WPF (Windows Presentation Foundation)和Silverlight打造的模式。运用数据绑定和命令相 结合的方法将显示层和业务逻辑层完全分离,具有非常良好的可扩展性MS。标准MVVM 模式分为三层即Model层、View层和ViewModel层。
在机场数据对比结果字母B、0、N、R展示中,使用了 MVVM设计模式,在对比结束 后,在对比机场中将对这四项用不同的颜色展示。以B为例,首先需要在机场的视图模 型中设置变量public string ColorForBoth,在模型中设置好get和set,最后需要在XAML文件中设置好字母B的界面,将它的背景颜色数据绑定到ColorForBoth的值,使 用IValueConverter根据ColorForBoth的值可以进行值到颜色的转换。如表10所示。
这样,当对比结束的时候,只要修改模型里面ColorForBoth的值,因为视图模型与UI 之间进行了数据绑定,那么UI的背景颜色会随之改变。它们之间的关系如图35所示。
在对比结果展示功能界面,为了能满足结果显示的要求,使用了多重数据绑定,将UI绑定到多个数据,来实现不同颜色的显示功能,它的原理与单数据绑定是一样的。在导航数据库系统设计与实现过程中,出现了内存溢出和显示不正确的问题,根本 原因是没有正确的使用数据绑定。
第三章系统设计与实现
3.8 本章小结
本章先介绍了电子飞行包各个功能模块的设计与实现,主要包括航空图表快速查阅 的设计与实现,性能计算的设计与实现,机场飞机滑跑导航的设计与实现,飞行计划导 航的设计与实现,数据维护和增量更新的设计与实现,全国航路图展示的设计与实现和 导航数据的导入和对比功能。
第四章电子飞行包功能性测试
本章将以飞机从北京首都机场起飞到九寨黄龙机场降落为例,首先介绍了测试数据 的准备和测试环境的部署工作,然后对电子飞行包的各个模块进行了功能性测试。
4.1 测试数据准备和测试环境部署
本节介绍基于Android平台的电子飞行包测试环境,包括测试数据的准备和测试环境部署。
4.1.1 测试数据准备
本次测试分别以北京首都机场和九寨黄龙机场为起飞机场和目的机场,需要的测试 数据有北京首都机场和九寨黄龙机场的两期航空图表和AIP、两个机场的机场图、全国 航路图、北京首都机场的起飞性能数据库、全国航路图切图.mbtiles文件和飞行计划的 PDF文档和信息数据库。
4.1.2 测试环境部署
测试环境移动端使用的是三星GT-8000平板电脑,在三星平板电脑上安装有基于 Android平台电子飞行包应用程序。在地面支持系统中,选用32位Windows 7操作系统 作为服务器系统,使用了 Visual SVN Server和Tortoise SVN进行数据的维护。需要使 用TortoiseSVN将测试数裕土传到Visual SVN Server的数据仓库中。
4.2 电子飞行包测试
本次电子飞行包的测试将会从数据准备开始,以北京首都机场为起飞机场,九寨黄 龙机场为降落机场,对电子飞行包系统进行功能性测试。
4.2.1 起飞前电子飞行包数据准备
电子飞行包系统的数据准备包括两期机场航图数据的准备、公司资料的准备、飞行计划数据的准备、性能计算数据库的准备、全国航路图数据库的准备。其中性能计算数据库主要是起飞性能计算数据库,全国航路图quanguohanglutu.mbtiles数据库文件,它们都是直接传输到三星平板上的,而两期机场航图数据、公司资料、飞行计划数据则是需要上传到 Visual SVN Server上,通过 Tortoise SVN 将数据上传到 Visual SVN Server 上,然后通过无线网络将上述数据资料传输到Android设备上。VisualSVN Server数据仓库如图36所示。
在局域网内或者使用3G/4G网络、蓝牙通信等将数据传输到三星平板电脑上。将数据传输到三星平板电脑之后,飞机起飞前需要查看并选择需要的航图版本,接着可以进行飞行计划的数据接收,数据的接收和更新需要用户名和密码的验证,如图37所示。
接着就可以进入系统了,可以查看北京首都机场的各种航空图表,还可以查看航空 公司的各种运行手册、规章标准和机型手册等,同时可以进行起飞性能的计算,最后需 要进行检查单的检查,需要逐项依次检查,检查单的查询如图38所示。
通过重量等参数可以查询到温度、速度和限定条件,如图39所示。
接着可以查看全国航路图,全国航路图展示了全国各个航路点和航线,如图40所示
4.2.2 飞机起飞电子飞行包测试
飞机起飞过程中主要是使用电子飞行包的机场飞机滑跑导航功能,如图41所示。机场需要滑跑的路线K5、Q5已经在地图上用绿色的线绘制出来,电子飞行包系统会将飞机的位置显示在地图上,这样在飞机滑跑的过程中,飞行员就可以知道飞机是否已经 偏离、是否需要进行方向的修正。飞机机场导航功能能帮助飞行员在恶劣天气比如大雾, 大雨等天气的时候,清楚的看到飞机所在的位置,减小滑跑到其他跑道的几率。
4.2.3 飞行中电子飞行包测试
飞行过程中主要是飞行计划的导航测试。在飞行过程中可以查看航班的信息,检索航行通告并且跳转到相应的页面,如图42所示。
同时当飞机飞行到某一航路点,如NUGLA的时候,就可以点击航路点标记,查看在此航路点的油耗等信息,当飞行到某个情报区,比如ZLXY时,点击情报区,则会跳 转到飞行计划ZLXY情报区的页,查看情报区的详细信息。基于上下文查看航路点信息如图43所示。
4.2.4 飞机降落电子飞行包测试
飞机降落过过程中也需要进行机场航图的查看和飞机机场导航。出了可以在进场页 面查看到机场图、进场图、进近图和AIP之外,还可以在资料界面检索到目的机场的详 细航图信息,如图44所示。
4.3 本章小结
本章以从北京首都机场起飞到九寨黄龙机场降落为例,对基于Android平台的电子 飞行包(EFB)系统进行了功能性测试。主要包括文档查阅测试、起飞性能计算测试、 切图测试、飞机滑跑功能测试、飞行计划导航功能测试和检查单检查测试。通过测试, 程序运行流畅无误,响应比较快;功能准确,用户使用方便友好。
总结与展望
工作与研究总结
当前,电子飞行包是航空业界的一个研究热点,目前的电子飞行包系统大部分都是 基于IOS平台开发的。随着Android系统的迅猛发展,越来越多的第三方功能模块和控 件可以在Android平台上使用,大大方便了 Android应用开发者进行应用程序的开发。Android设备种类也比较多,对于电子飞行包的运行设备有更多的选择,同时跟IOS设 备相比,Android设备会便宜许多,所以开发基于Android平台的电子飞行包是目前航 空业界开发商很好的选择。
本文调研分析了国内外很多公司比如JEPPESEN公司的电子飞行包的设计,分析了 各个公司的电子飞行包的使用流程、功能和运行平台,深入研究了开发基于Android平 台的电子飞行包的设计与实现的可行性,对基于Android平台的电子飞行包的各个功能 模块将要选用的技术方案进行了对比分析,通过对各个技术方案的对比分析,确定了各 个模块实现的可行性和最终的模块实现方式。对多个公司的电子飞行包的功能进行了分 析总结,发现大部分的电子飞行包系统采用了根据航图类型来组织安排航图列表并展示, 通过跟飞行员的交流,发现飞行员更希望根据飞行的不同阶段对航图资料进行合理的展 示。同时,大部分的电子飞行包系统中的导航部分,都是将航线和航路进行了展示,当 需要查看航路点或者情报区商e吴信息的时候,还是需要去查看飞行计划等文档。本文 还针对目前大部分电子飞行包中缺少的飞行计划导航问题,提出并实现了飞行计划导航 功能。
飞行计划导航功能主要是采用将飞行计划信息与SuperMap GIS结合,基于飞机 的位置以图形的方式对驾驶员进行飞行导航。本文最终设计实现了基于Android平台的 能够进行资料电子化、资料的增量更新、飞行信息数据与移动GIS结合导航、电子化检 查单检查、机场滑跑定位导航和数据资料快速查阅的电子飞行包,同时还提供了导航数 据导入和对比系统作为地面支持系统。
本文具体的研究成果包括:
(1)本设计根据飞行阶段将航图数据进行合理的组织安排,在Android平台上进 行UI的自定义,使用ExpandableListView控件实现了航图的快速查阅。
(2)在地面系统中使用Visual SVN Server服务器和Tortoise SVN客户端,在电子 飞行包移动端使用开源的SVN客户端软件OASVN,实现了航图、公司资料的增量更新。同时飞行计划等数据的传输也通过此SVN系统实现。
(3)使用SuperMap iMobile移动GIS平台实现了机场导航的功能,同时还实现了 基于上下文的飞行计划导航功能,将飞行计划的信息进行提取并且与SuperMap iMobile 结合展示航路点和情报区的信息。
(4)使用WPF框架和MVVM设计模式实现了导航数据的导入和对比功能,通过 使用数据绑定和多重数据绑定,实现了系统界面的友好操作和展示。
(5)最后以从北京首都机场起飞到九寨黄龙机场降落为例,对电子飞行包系统进 行了功能性测试。测试表明:功能设计比较合理,贴近用户需求。
对未来工作的展望
首先,搭载Android系统的设备占有的市场份额越来越多,Android设备的增加, 使得Android开发者的数量和Android平台上的应用程序的数量都大大增加,有了广大 开发者的支持和广大设备厂商的支持,在Android平台上开发应用程序,会有更多可选 的控件或者库,它能够极大提高程序的开发效率和程序的安全性。
其次,电子飞行包系统的开发已经是电子化航空公司的必备条件,基于现在IOS设备比较贵以及现在基于Android平台的电子飞行包(EFB)系统匮乏的现状,开发基于 Android平台的电子飞行包系统是非常有前景的。电子飞行包系统可以改变航空公司传 统的工作方式,将很多工作都设计到电子飞行包系统中。
随着中国民航科学技术研究院 ADS-B设备的推广,完全可成大现像FlyQ EFB中“空-空”与“地-空”相关监视。借助中国民航科学技术研究院自主研发的可以与北斗卫星通信的设备,用本文设计的电子飞行系统通过蓝牙与此设备连接,间接的与北斗卫星通信,可以实现获取地面命令信息并文本语音合成(TTS)等功能。
电子飞行包系统离不开地面支持系统,地面支持系统 的创建和完善也是不可或缺的一部分,所以在将来在丰富电子飞行包系统的功能的同时, 也会不断完善地面支持系统,开发出更多具有自主知识产权的产品。
(完)
感谢大家的支持,后续继续为大家带来高质量的文章。
配图 | 网络
编辑 | 小玉
校准 | 采虹兔
投稿 | 1644134@qq.com