APP下载

基于设计模式的ADS-B终端软件设计与实现

2016-01-23童卫勇朱佳丽中国船舶重工集团公司第七二四研究所南京211153

雷达与对抗 2015年2期
关键词:设计模式

童卫勇,朱佳丽,薛 锋(中国船舶重工集团公司第七二四研究所,南京211153)



基于设计模式的ADS-B终端软件设计与实现

童卫勇,朱佳丽,薛锋
(中国船舶重工集团公司第七二四研究所,南京211153)

摘要:简介了广播式自动相关监视系统(ADS-B)的工作原理、数据格式等,设计并实现了ADS-B地面站的显示终端软件,利用设计模式实现了软件模块间的解耦,提高了软件复用度。软件人机界面友好、操作简单,在相关领域具有较好的应用价值。

关键词:ADS-B;终端软件;设计模式

0 引言

随着航空事业的飞速发展,民众对空域资源的需求与日俱增,这就急需空中交通管制系统解决安全、容量和效率不足的问题。空管系统需要对管制空域内飞机的飞行动态进行实时监视,以往应用的方法主要是雷达监视,受制于雷达固有的局限性,如探测盲区,无法覆盖海洋、荒漠以及较低数据更新率等。单纯地依靠传统的雷达监视系统很难应对空中交通流量的持续增长和民航空域资源的严重缺乏[1]。由国际民航组织(ICAO)的未来空中航行系统专门委员会推荐采用的ADS-B(Automatic Dependent Surveillance-Broadcast:广播式自动相关监视)是基于卫星定位和地/空数据链通信的航空器运行监视技术,是为越洋飞行的航空器在无法进行雷达监视的情况下希望利用卫星实施监视所提出的解决方案,近些年来取得了逐步的推广,日渐成为一种主流的空中交通监视手段[2]。

ADS-B系统的机载设备获得民航机实时的位置信息和速度信息及其他信息,通过机载收发机将上述信息等向空中和地面进行广播,供其他民航机和地面接收设备接收和显示[3-4]。本文将主要讨论ADS-B地面站终端软件的设计。

1 ADS-B终端软件设计

1.1软件组成

ADS-B终端软件主要由3个模块组成:数据处理模块、显示模块、控制模块。软件数据处理模块接收地面站硬件设备发送的网络数据报文,通过对报文类型的分析解算出所需的民航目标的位置、状态等信息,生成并维护一个ADS目标链表,民航目标的信息更新、超时删除、界面显示都基于链表的操作;显示模块将ADS目标链表进行不同类型的显示,显示模块主要由3个界面组成: PPI显示(距离方位显示)、距离高度显示和目标表页显示;控制命令则通过控制模块向显示模块发送。ADS-B终端软件组成图1所示。

图1 ADS-B终端软件基本组成

1.2数据处理模块

1.2.1报文类型

ADS-B数据报文主要由5类组成[5]:唯一标识飞机的24位ICAO地址的标识号、WGS-84坐标系下的位置信息(经纬度、高度等)和速度信息等状态矢量、状态和意图信息、分类号及其他信息。在本软件中,主要处理的数据报文有目标位置报文、目标速度报文以及目标航班信息。数据报文主要由报文头、报文类型、ICAO标识号、报文发送时间及具体报文数据组成。位置报文、速度报文及航班报文由报文类型确定,通过匹配ICAO标识号对具体报文数据进行处理。

1.2.2数据处理流程

数据处理模块对ADS目标的操作置入ADS目标链表处理。目标链表主要负责目标节点的插入、目标数据的更新以及超时目标节点的删除。链表节点的匹配利用唯一标识的ICAO码,新节点插入则基于位置信息,而速度报文和航班信息只更新或添加目标链表中匹配目标的相应信息。当新的数据报文到来时,目标链表处理步骤如下:

(1)判别报文类型,若是位置报文则下一步处理,若是速度报文则转到步骤5,若是速度报文则步骤6进行处理;

(2)对目标链表进行ICAO匹配,若匹配则下一步处理,若不匹配则转到步骤4;

(3)判断是否是新的位置信息,若是则更新目标节点的位置信息,反之则只更新节点时间信息;

(4)此时目标的ICAO与链表所有节点都不匹配,则认为当前目标是新的节点,插入目标链表;

(5)若是速度报文,在链表中进行ICAO匹配,若匹配则判断是否是新的速度信息决定更新匹配节点的速度信息还是时间信息,不匹配则不处理;

(6)当收到的是航班报文时,由于航班号和ICAO码是唯一对应的,若节点的无航班号信息则添加航班号,反之则更新节点的时间信息即可。

由于ADS-B的位置信息采用的是GPS给出的大地坐标系的经度、纬度、高度三维信息,通过坐标转换将目标的经纬度、高度信息转换为空间坐标系中的XYZ坐标,再将空间坐标变换到相对地面站位置的距离方位仰角的极坐标系下,从而方便ADS目标的显示监视。ADS目标链表的节点插入和数据更新流程如图2所示。

数据处理模块定时轮询目标链表。当目标节点的时间字段与轮询当前时间超过一定的时间间隔,则认定此目标节点超时,目标链表删除节点。

1.3显示与控制模块组成

图2 ADS目标链表处理流程

软件显示模块主要基于GDI +技术绘制。GDI +技术可以方便地实现显示模块的地图勾勒、偏心、缩放等功能。根据民航目标的特点,模块主要由3个界面组成: PPI显示、距离高度显示、目标表页显示。PPI界面主要显示目标的航班号、距离、方位、航迹等位置信息,距离高度界面关注的是目标的距离和高度的变化,而表页界面则将目标较为详细的信息如ICAO码、航班号、距离、方位、高度、仰角、航向、航速、经纬度以及时间等以列表的形式展示。

对应显示模块的3个界面控制模块生成PPI显示控制、距离高度显示控制、表页显示控制选项。PPI显示选项主要控制距标环、方位线、刻度线、叠加地图显示、缩放偏心、ADS目标的航班号、航迹显示等;距离高度显示选项控制距标线、等高线、缩放偏心、航班号、目标距离投影线等参数;表页选项操作目标众多参数的列表显示与否。

2 软件模块的信息交互

本软件中,数据处理模块的ADS目标链表节点更新信息或删除时需要通知不同的显示界面更新显示。操作人员的操控命令需要通知相应的显示界面相应。当某个显示界面通过鼠标选择重点关注某个目标时,需要通知其他的显示界面也做出联动的选中动作等。这些频繁的操作都构成了软件模块间的信息交互。在面向对象软件设计领域,设计模式是一套被反复使用、经过分类编目的、代码设计经验的总结。许多面向对象软件的设计通过引入设计模式,使得面向对象的设计更加灵活、优雅的同时获得更好的软件的复用性。设计模式按照其目的可分为创建型、结构型、行为型。创建型模式与对象的创建有关,结构型模式处理类或对象的组合,行为型模式对类或对象怎样交互和怎样分配职责进行描述[6]。因此,行为型模式适用于本软件中模块间的交互。

通过使用行为型模式中的观察者模式(Observer)解决由于维护更新的数据一致性而造成的数据处理模块与显示界面间的紧密耦合,实现数据与显示的分离。为了避免显示界面与控制模块以及显示界面之间相互的显示引用,引入中介者(Mediator)模式,使其充当一个控制和协调模块间的交互的中介,从而信息交互的接口只有中介者,减少了互相连接的数目,降低了模块之间的耦合度。ADS-B终端软件模块间的交互如图3所示。

图3 基于行为型模式的ADS-B软件模块间交互

2.1观察者模式的应用

ADS目标数据和显示界面间存在着一对多的依赖关系,当目标更新或删除时所有依赖于它的显示界面都将得到通知并自动更新。观察者模式描述了如何建立这种关系,其关键对象是目标(Subject)和观察者(Observer)。观察者模式的UML结构图[6]如图4所示。

目标和观察者基类定义了通用的接口。目标类主要完成观察者的添加(Attach)、删除(Detach)、通知(Notify)操作,观察者类为目标发生改变时需要获得通知的对象定义了一个更新接口(Update)。数据处理模块中ADS目标链表作为具体目标将目标更新、删除的状态保持存(SetState),当状态发生变化时向各具体观察者发出通知(Notify)。显示界面模块的3个显示界面作为具体观察者对象各自维护一个指向具体目标对象的引用,完成对观察者更新接口的实现。当接收到状态改变的通知时,调用更新接口(Update)以获得具体目标对象的状态改变(GetState)。

观察着模式实现了目标和观察者间的抽象耦合。ADS目标链表所知道的仅仅是它有一系列显示界面观察者,显示界面者都符合抽象的观察者类的简单接口。所以,ADS目标链表不知道任何一个具体观察者属于哪一个具体的类,因此目标和观察者之间的耦合是最小的。

图4 观察者模式UML结构图

2.2中介者模式的应用

终端软件的每个显示界面都有不同的显示特性和显示参数需要相应的控制模块操控,而显示界面间也需要选中操作的联动。中介者模式通过一个中介对象来封装一系列的对象交互。中介者模式的UML结构图[6]如图5所示。

图5 中介者模式UML结构图

中介类定义一个接口用于和各同事类通信,具体中介者对象了解并维护各个同事,通过协调各同事对象实现交互。而同事类都知道它的中介者对象,当每个同事对象需要与其他同事通信时直接和中介者对象通信即可。

当控制模块发出控制命令时,控制命令中介者作为具体中介者对象协调各同事对象的交互,即显示界面与控制选项的交互。如当PPI显示选项向控制命令中介发送出允许偏心操作命令,中介收到命令并判断为来自PPI显示选项,则向PPI显示界面转发请求以实现PPI界面的偏心操作。当PPI显示界面选择一个ADS目标重点观察时,如果另两个界面相应PPI界面的选中操作则会能从多种显示形式观察目标的参数,此时显示命令中介者作为具体中介者对象协调各同事对象——显示界面间的交互,显示命令中介收到其中一个界面发出的选中命令后,及时地向另两个界面转发选中观察请求,从而完成目标选中的联动操作。

中介者模式将对象间交互的转为同事对象与中介类的交互,从而减少了相互连接的数目,使各对象不需要显式地相互引用,这样对象间的松耦合使得轻松、独立的改变和复用各同事类和中介类。

3 ADS-B终端软件的实现

本软件采用C + +语言编写,编译环境为Visual Studio 2010,运行在Windows XP 32位平台。ADS-B终端软件显示界面如图6所示。

图6 ADS-B终端软件显示界面

4 结束语

本文介绍了ADS-B系统的基本原理,通过接收地面站接收设备传传输的ADS数据报文,设计实现了基于ADS-B地面站的终端软件。通过采用行为型设计模式,很好地实现了软件模块间的解耦,降低了后期软

件升级维护的难度,并提供了良好的复用性。目前,ADS-B终端软件已在实际工作中得到应用,并取得了较好的效果。

参考文献:

[1]邵帅.ADS-B航迹处理及显示技术研究[D].哈尔滨工程大学硕士学位论文,2013.

[2]戴超成.广播式自动相关监视(ADS-B)关键技术及仿真研究[D].上海交通大学硕士学位论文,2011.

[3]Nick King.ADS-B Regulation[S].Civil Aviation Safety Authority Australian,2006.

[4]卢伯英.新型自动相关监视系统ADS-B[J].空中交通管理,1999.

[4]张军.现代空中交通管理[M].北京航空航天大学出版社,2005.

[6]Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides.设计模式:可复用面向对象软件的基础[M].北京:机械工业出版社,2000.

Design and implementation of ADS-B terminal software based on design pattern

TONG Wei-yong,ZHU Jia-li,XUE Feng
(No.724 Research Institute of CSIC,Nanjing 211153)

Abstract:The working principle and data formats of the Automatic Dependent Surveillance-Broadcast(ADS-B)are briefly introduced,and the terminal display software is designed and realized for ADS-B ground stations.The design pattern is used to realize the decoupling between the software modules and improve the software reusability.The software features friendly man-machine interface and easy operation and can bring preferable application value to related fields.

Keywords:ADS-B; terminal software; design pattern

作者简介:童卫勇(1981-),男,工程师,硕士,研究方向:数据处理及显示技术;朱佳丽(1986-),女,工程师,硕士,研究方向:数据处理及显示技术;薛锋(1978-),男,工程师,研究方向:雷达总体及显示技术。

收稿日期:2015-01-20;修回日期:2015-03-03

文章编号:1009-0401(2015)02-0056-04

文献标志码:A

中图分类号:TP3111

猜你喜欢

设计模式
设计模式识别的特征信息分类研究
“1+1”作业设计模式的实践探索
智慧图书馆环境下的融贯式服务设计模式研究
三维协同设计模式下的航天项目管理实践与展望
注入间接线索的设计模式变体分类检测
信息化教学模式构建研究
设计模式检测工具有效性评估策略*
设计模式对软件可维护性影响的定量研究
基于面向对象的组态软件实时数据库的设计
基于生产者/消费者设计模式的连续音频信号采集系统