APP下载

管制员操作记录与交互式回放系统

2014-12-23贾云飞吴仁彪

计算机工程与设计 2014年8期
关键词:管制员空管系统

贾云飞,樊 乐,徐 晖,吴仁彪

(中国民航大学 智能信号与图像处理天津市重点实验室,天津300300)

0 引 言

数据记录回放分为非交互式回放和交互式回放这2种[1]。非交互式回放模式下,用户只能被动地观看回放视频,无法对回放画面进行任何操作。而在交互式回放模式下,用户可以干预回放画面,进行交互操作。回放过程的交互操作包括航迹过滤、实时测距和屏幕缩放[2]等。若只能被动地观看回放视频,用户想要看到的某些航迹信息、电子进程单信息或其它重要信息,可能会被隐藏或遮挡,不利于航空事故的分析。其次,交互式回放能让管制学员亲自参与回放时的管制过程,具有更好的培训和学习效果。再者,交互式回放能为模拟演练系统提供更好的服务[3]。因此,交互式回放不可或缺。

国外空管自动化系统发展较早,技术先进,如美国Raytheon公司的 “Auto Trac”和 “Guardian”自动化系统和法国Thales公司的THALES自动化系统等。国内各区管中心广泛使用的EUROCAT-X系统提供了友好的交互式回放功能[4]。但是,进口系统价格昂贵,在后续维护上存在先天劣势,因此迫切需要研制具有我国自主知识产权的空管自动化系统。目前,国产空管自动化系统能实现管制员操作记录回放的系统非常少[5]。文献 [6]提到了Unix平台上ATC系统的操作记录与回放,记录的是完整的X 协议请求序列,数据量非常大,对记录数据的压缩和解压需要复杂的算法,且不支持交互式回放。本文致力于实现对管制员操作的交互式回放。

1 记录回放的实现方法

EUROCAT-X是一套较完善的空管自动化系统,系统提供了专门的回放处理器ASPB (air situation play-back),即空域情况重放。但在实际工作中,EUROCAT-X 提供的回放功能存在一定缺陷,比如,重放过程等待时间较长;CPU 占用率过大;重放只能在TRU64 平台上使用等。因此,国产空管自动化系统需要采用自主研发的回放技术。为了实现空管自动化系统的运行过程和用户操作的记录与回放,可以采用如表1所示的几种方法。

表1 几种记录回放方法的实现原理

经测试,在相同的硬件环境下,上述5 种方法的特点和性能对比见表2。

表2 几种记录回放方法的性能对比

由表1和表2可知,由于录屏软件的开启和连续高频率地画面截屏抢占系统资源,录制屏幕和记录屏幕画面这2种方式在记录过程中CPU 使用率都高达80%以上,同时记录数据量非常大,需要复杂的数据压缩和较高的硬件支持[7]。为保证回放的精度,记录屏幕画面时必须进行连续高频率的截屏,导致在短时间内产生太多的图片,存储开销过大。回放时,由于需要频繁读硬盘,往往会导致回放画面卡顿。运用Windows钩子机制的记录与回放方法虽然系统开销较小,但钩子截获的是鼠标和键盘操作的位置信息,而不是被操作的窗体信息[8,9],其回放会因活动窗体的不同而发生错乱,例如,回放过程中目标窗体位置发生变化时,对窗体的相关回放操作将失效。采用记录Xwindow协议数据来回放屏幕显示内容,该方法只能从记录之初开始回放,不能自由选择回放开始时间,且回放时无法进行交互操作。Xwindow是一套在Unix机器上运行优良的视窗系统,它包括X客户端、X服务器和X 协议3部分。Xwindow系统客户端通过X协议实现与Xserver的交互,Xserver对客户端的需求做出回答[6]。该方法只适用基于Unix开发的软件,而国产空管自动化系统大多基于Windows平台设计。

针对以上几种记录回放实现方法的不足,并结合空管自动化系统的设计需求,本文采用记录原始操作数据的方法,实现对管制员操作的交互式回放。该方法是针对程序的数据结构、I/O 交互特性编写的程序代码,这种记录回放方式有其专门性,其实现过程与被记录软件的耦合性强,但它能实现交互式回放和定点回放,磁盘利用率高,占用系统资源少,且该方法适用于所有系统平台。

2 方案设计与实现

2.1 操作记录

本文采用记录原始操作数据的方法实现交互式回放,操作记录以操作复用为目的,需要收集键盘事件、鼠标事件及其作用的UI(user interface)对象[10,11],本文中的具体记录信息为:操作时间、操作类型、操作所作用的界面元素和操作内容。

(1)操作时间。操作时间是指产生该操作的系统时间。操作时间影响操作的时序,只有准确无误地记录好每一个操作的时间,才能保证回放时操作的正确性和连续性。

(2)操作类型。操作类型是指鼠标和键盘对所有界面元素的所有操作类型,比如窗口控件操作、航迹操作和电子进程单操作等。

(3)操作所作用的界面元素。操作所作用的界面元素是指操作所实施的对象,比如被操作控件及其父窗口ID号、航迹索引号等。

(4)操作内容。操作内容并非每个控件都有,本文只记录了文本编辑框被操作后的内容,并且只记录有效的操作内容。本文的方案只记录操作结果,不记录操作过程,在不影响回放效果的前提下,大大减少了记录数据量。

将上述记录信息封装在用户自定义的结构体内,根据不同的操作类型,定义不同类型的结构体。本文的记录对象是基于自主研发的通航空管自动化系统综合数据显示终端 (SDD)的席位操作,所记录的管制员操作类型见表3。

记录时先在每条记录数据前添加一个时间戳,然后将数据类型对应的结构体存储到文件。由于需要记录大量的系统状态和用户操作数据,为了提高文件读写的效率,本文采用格式相对简单的二进制文件进行记录[12]。记录文件过大会增加文件加载和恢复的时间开销,影响回放效率。本文采用分段记录的方法,通过定时器限定每个文件只能存储15min的记录数据,分段记录的方式还有利于回放时软件全局状态的恢复。对于软件全局状态,本文采取增量式更新记录,在每个记录文件之初记录下整个软件所有变量的状态,在后续记录过程中,只对有状态更新的变量进行记录,记录速度快、记录数据量小。数据记录流程如图1所示。

表3 管制员操作类型及其记录内容

图1 数据记录流程

2.2 快进回放和定点回放

为了实现回放时各消息之间的时间间隔和记录时一致,必须有控制回放速度的时间机制。本文通过定时器控制回放函数的执行,每回放完一条消息,就将定时器的时间间隔调整为相邻两条数据信息的时间戳之差。这就保证了回放时各个操作之间的时间间隔和消息产生时一样,更好地实现了操作再现。在此基础上,可以通过等比例调整定时器的时间间隔实现任意倍数的快进回放。由于每条记录信息前都有时间戳,这就允许任意输入回放起止时间,通过比较回放起止时间和读取的记录信息时间戳的大小,限定何时开始回放何时结束回放,实现了定点回放。快进回放和定点回放能更有针对性地查看固定时间段内的回放信息,减少回放过程的等待时间。

2.3 交互式回放及其容错机制

回放过程中,逐条读取记录文件信息,根据读取到的数据类型将其分发到相应的回放处理单元进行处理和显示。由于记录的是窗口和控件的原始操作数据,而不是鼠标和键盘的动作过程[13],因此在回放过程中,用户看不到操作过程,只能看到操作后的结果,这样就保证了回放过程中鼠标和键盘都可以自由操作,实现了回放过程的交互性,回放时能响应暂停、快进和快退等各种回放控制命令。

考虑到交互式回放的特点,回放过程中用户可以对回放内容进行主动干预,而这种人为干扰可能会造成回放过程中的软件中断,因此交互式回放必须设计容错机制。针对上述问题,本文在回放每个操作之前,都会主动判断该操作所作用的界面元素是否存在,若已被人为销毁,则重新创建该操作对象,再实施回放处理,保证正常回放所有操作。数据回放流程如图2所示。

图2 数据回放流程

2.4 同步回放

空管自动化系统要求数据记录回放子系统记录雷达数据、话音数据和管制员操作数据,并实现以上3种数据的同步回放。为防止某航迹还未出现或已经消失,却有作用在该航迹上的某些操作的回放,必须保证雷达数据和管制员操作数据在回放过程中的严格同步。本文所述方案中,雷达数据和操作数据采取同步记录和保存在同一个文件的方法,以实现回放画面的同步和连续。

目前空管领域比较多的是雷达数据记录设备和语音记录设备是2套独立的设备,进行独立回放。如果不能同时同地回放画面和语音,会给事故分析和管制培训造成不便,因此必须保证画面信息和语音信息严格同步回放。本文中将雷达数据、操作数据和话音数据都以数据包的形式同时发送给数字话音记录仪,保证话音数据的时标和雷达及操作数据的时标始终保持一致,并提供与记录仪同步回放接口,实现3种数据的同步回放。

3 方案实测

3.1 开发及测试

本文所提出的交互式记录回放方法是基于自主研发的通航空管自动化系统SDD 实现的。开发平台为Windows操作系统,编程语言使用标准C++。本文所提出的交互式回放方法在上述平台成功通过试验。经测试,记录SDD 席位操作时长1min35s,记录操作步数为75,几种记录方法的记录文件大小对比如图3和图4所示。

图3 2种方法记录文件大小对比Ⅰ

图4 2种方法记录文件大小对比Ⅱ

由测试数据可知,连续截屏和用录屏软件记录的方法,文件大小都是以MB 为计量单位,长时间记录会导致文件过大,增加保存难度,数据传输过程中也会占用更大的传输带宽,且回放画面清晰度不高。运用Windows钩子机制的记录方法,虽然记录文件较小,但从图3 可以看出,它相对于记录原始数据的方法其记录文件还是很大,而且在整个回放过程中,鼠标和键盘都被回放钩子所占用,回放画面不可控,不具备交互性。空管自动化系统记录文件要求保存1年,所以必须采用产生记录文件很小的记录方法,由图中对比可知,本文所采用的记录原始操作数据的方法记录文件最小,对硬盘要求最低,文件上传下载过程中占用带宽也最小,提升了系统运行效率。

本方案实现了雷达数据和管制员操作数据的同步回放,并将其与数字话音记录仪相结合,实现了语音数据、雷达数据和操作数据三者的同步回放。数据记录回放子系统数据流如图5所示。

图5 数据记录回放子系统数据流

由实验可知,该系统可以在远程终端对记录仪进行回放控制,回放过程具有良好的交互性,用户可以实施屏幕缩放,测距和在线绘图等交互操作,回放画面清晰,回放过程可控,可以在交互式回放和非交互式回放2种模式之间自由切换。记录仪和回放席位都采用双网架构,保证数据传输可靠稳定,能够7×24小时无间断记录与空中交通管制相关的所有数据,记录线程不影响系统的正常运行,记录文件小,便于长期保存。因此,本文所提出的方法具有可靠性和高效性,能够长时间稳定运行,符合空管自动化系统的设计需求。

3.2 交互式回放的优势

由实验可知,本文所提出的交互式回放技术具有如下优点:

(1)只记录操作结果。只记录鼠标和键盘的操作结果,回放时没有鼠标和键盘的任何动作过程,可以对回放画面进行各类操作,具有良好的交互式回放效果。

(2)记录数据量小。程序开发过程中进行选择性记录,对于一些不必要记录的没有意义的操作不予记录,记录数据量大大减少。

(3)实现定点回放。只要相应的记录文件存在,可以任意选取回放起止时间,减少回放等待时间。

(4)回放过程可控。回放过程中,能实现快进、后退、暂停、继续、终止等各种回放控制。

(5)磁盘空间利用率高。记录文件以二进制文件的格式保存,长时间记录不会造成记录文件过大,对硬件设备的要求不高。

(6)较高的容错性。管制员操作数据和雷达数据都以数据包的形式存放,且前后时序也被记录。回放时,数据到达回放终端的时序与操作发生的时序保持严格一致。回放操作前有判断操作对象是否存在的容错机制,避免回放过程的软件中断。

4 结束语

本文提出了一种基于原始操作数据的交互式记录回放方法,对空管管制员的席位操作进行了记录与回放,并在自主研发的通航空管自动化系统运行通过,测试结果表明,该方案实现了回放过程中的人机界面交互,并实现了雷达数据、操作数据和话音数据的同步回放,满足空管自动化系统的需求。本文提出的方案也可用于其它需要交互式回放的系统,对类似的工程应用有一定参考价值。该实现方法与被记录软件对象的耦合性较强,下一步研究目标是实现数据记录回放子系统的模块化。

[1]CHEN Dongying.Discussions on ATC record replay system[J].Air Traffic Management,2010 (2):35-37 (in Chinese).[陈冬莹.空管记录回放系统的探讨 [J].空中交通管理,2010 (2):35-37.]

[2]ZHU Jun,ZHOU Luhua.Discussions on function of recording and replaying in the emergency system of Hefei ATC and advice[J].Air Traffic Management,2009 (5):27-28 (in Chinese).[朱军,周禄华.浅谈合肥自动化应急系统的记录回放功能及建议 [J].空中交通管理,2009 (5):27-28.]

[3]WANG Yang,FAN Zhihua.Research on earthquake rescue drilling simulation system [J].Computer Si-mulation,2013,30 (1):404-408 (in Chinese).[王杨,范植华.地震救援演练仿真系统的研究 [J].计算机仿真,2013,30 (1):404-408.]

[4]LIU Yansheng.Technical studies on accident investig-ation collection system based on EUROCAT-X [J].Air Traffic Management,2009 (9):14-16 (in Chinese). [刘燕生.基于EUROCAT-X的事故调查采集系统技术研究 [J].空中交通管理,2009 (9):14-16.]

[5]WANG Shuang,ZHOU Luhua.Technologies of sync-hronous record and reproducing of radar image and voice[J].Air Traffic Management,2010 (4):15-20 (in Chinese). [王霜,周禄华.雷达图像和语音的同步记录与回放技术 [J].空中交通管理,2010 (4):15-20.]

[6]ZENG Jing.Design and realization of a high-reliabil-ity radar data record and playback subsystem of ATC [D].Chengdu:University of Electronic Science and Technology of China,2011(in Chinese).[曾竞.一种高可靠性空管雷达数据记录回放系统的设计与实现 [D].成都:电子科技大学,2011.]

[7]HAN Wei,ZHAI Zhengjun,JIANG Hongmei,et al.Design and realization of on-aero integration d-ata collection and analysis system [J].Computer Engineering and Design,2007,28(17):4195-4197 (in Chinese). [韩玮,翟正军,姜红梅,等.飞行数据综合记录与分析系统的设计与实现 [J].计算机工程与设计,2007,28 (17):4195-4197.]

[8]WANG Jia,JIANG Xi.Design and implementation of software record/playback system based on wind-ows hook [J].Science Technology and Engineering,2012,12 (10):2450-2453 (in Chinese).[王甲,姜希.基于Windows Hook的软件录制回放系统的设计和实现 [J].科学技术与工程,2012,12 (10):2450-2453.]

[9]Qin Zuze,Qin Shigang,Liu Jianxun.A novel meth-odfor capturing healthy image data in hospital legacy systems [C]//Computer and Information Technology,2011:1-5.

[10]CHEN Dejian,SUN Yanchun,HUANG Gang,et al.Operation remote synchronization based onrecord and replay for remote education platform [J].Computer Engineering and Applications,2013,49 (6):65-71 (in Chinese). [陈德健,孙艳春,黄罡,等.基于操作记录与回放技术的远程同步教学工具 [J].计算机工程与应用,2013,49 (6):65-71.]

[11]ZHANG Nuyun.Research on action-based programming process reuse [D].Beijing:Beijing University,2010 (in Chinese).[张弩云.基于动作的编程过程复用方法与技术研究[D].北京:北京大学,2010.]

[12]WU Xinhui,WANG Yongbin,LIU Hongbo.Implementation of record and replay module for telegraph training system[J].Computer Engineering and Design,2009,30 (23):5538-5540 (in Chinese).[吴鑫辉,王永斌,刘宏波.报务训练系统的记录回放模块研究 [J].计算机工程与设计,2009,30 (23):5538-5540.]

[13]CHEN Ce,GUO Jiuwu,ZHAO Chunxia.Common logging and replay system for military command system [J].Computer Engineering and Design,2010,31 (21):4693-4696 (in Chinese).[陈策,郭久武,赵春霞.面向指挥系统的通用记录与复演技术研究 [J].计算机工程与设计,2010,31(21):4693-4696.]

猜你喜欢

管制员空管系统
Smartflower POP 一体式光伏系统
新放单管制员值守EC席与PLC席的管制能力评价
智慧空管技术的进展
WJ-700无人机系统
民航空中交通安全管理问题探析
品“助读系统”之妙
直扩系统中的窄带干扰抑制
直扩系统中的窄带干扰抑制
乙醇蒸气放空管设置室内引发爆炸
空中交通管制员的情境意识与航空安全