下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 中国民航AFTN报文解析方法探究

中国民航AFTN报文解析方法探究.doc

中国民航AFTN报文解析方法探究

独自一人舔伤口
2017-11-13 0人阅读 举报 0 0 暂无简介

简介:本文档为《中国民航AFTN报文解析方法探究doc》,可适用于综合领域

中国民航AFTN报文解析方法探究年月第期总第期内蒙古科技与经济InnerMongoliaScienceTechnologyEconomyMayNoTotaINo中国民航AFTN报文解析方法探究智俊平(民航内蒙机场集团公司,内蒙古呼和浩特)摘要对AFTN报文解析方法进行了研究,对比分析了两种报文解析方法的优劣,以为同行提供参考关键词:AFTN报文解析"卡位解析法""正则表达式解析法"中图分类号:V文献标识码:A文章编号:O()O一oO一OAFTN报文什么是AFTN报文AFTN英文全称是AeronauticalFixedTelecommunicationNetwork,译成中文是民航固定格式通信网络,因此,AFTN报文就是民航固定格式通信报文中国民航航空固定格式电报网(AFTN)承担中国民用航空局国内与国际的空中交通管理,飞行动态,航行气象及民航局有关部门业务事物处理等的信息交换,是民用航空飞行安全,正常,高效和经济运转的保障《民用航空飞行动态固定电报格式(MHOO)》是自年以来最新版的关于AFTN报文的规范文件该文件规范了AFTN报文的构成,类型等内容,是AFTN报文拍发,解析的唯一标准AFTN报文共分种,分别是:FPL(领航计划报),CHG(修订计划报),CNL(ga消领航计划报),DEP(起飞报),ARR(落地报),DLA(延误报),CPL(飞行变更报),EST(预计飞跃报),CDN(管制协调报),ACP(管制协调接收报),LAM(逻辑确认报),RQP(请求飞行计划报),RQS请求领航计划补充信息报,PL(领航计划补充信息报),ALR(告警报),RcF(无线电通信失效报)下面一段AFTN报文是FPL领航计划报,这段报文将在后面的报文解析代码中作为实验数据进行引用:(FPLCSN,ISSHDIRWPCMDMZYTX一KSPUAANDINWCDYGKRHoCBTYNZBYNOZBSJEETzBPEREGBSELHQEJOPRCHINASoUTHERNRMKACASIIEQUIPPED)AFTN报文由字符按固定格式组成,非专业人员很难读懂所以要应用AFTN报文所提供的信息,必须对AFTN报文进行"解析"所谓"解析"就收稿日期:一O是参照《民用航空飞行动态固定电报格式(MH)》标准,提取AFTN报文中每一个数据项,然后对每一个数据项进行翻译,使之变成通俗易懂的信息文章将对AFTN报文常用解析方法进行探究在此,首先对AFTN报文在《民用航空飞行动态固定电报格式(MH)》(以下简称(MH)规范)中相关规定进行简要阐释(MH)规范中规定AFTN报文由报头,报体组成报头包含拍发单位,拍发时间,接收单位,接收时间等数据项组成,报体是报文的核心内容,包含由固定格式组成的内容称之为数据项报文解析的主要工作就是:提取给定报文的数据项卡位解析法常用的一种数据项提取方法是"卡位解析法",所谓"卡位解析法"就是根据数据项在报文中特定位置这一特征来提取数据项的下面是一段用"卡位解析法"提取数据项的一段代码,以上面的FPL报文为例,代码用VB写成:DimmessageAsStringmessage一"(FPLCSN一ISMDMSHDIRWPCZYTXOOKOSPUAANDINWCDYGKRHoCBTYNZBYNOZBSJEETZBPEREGBSELHQEJoPRCHINASOUTHERNRMKACASIIEQUIPPED)"img,g,g,g,gl,g,g,gl,glAsStringmessageRight(message,Len(message))g一Left(message,)messageRight(message,Len(message)一Len(g))g一Left(message,)智俊平中国民航AFTN报文解析方法探究年第期注意上面代码段中这两行:g一Left(message,)g一Left(message,)通过调用Left()函数,将编组,编组的数据项从报文中提取出来从上面的代码不难看出,"卡位解析法"提取数据项必须依赖两个重要因素:数据项的起始位置数据项的长度"卡位解析法"代码思路清晰,易于理解,执行效率高如果报文在拍发,传输以及接收整个过程中都能保证稳定,可靠,秩序井然,那么应用"卡位解析法"非常有效,同时不失准确性但是,实际情况并非总能如人所愿,偶然因素会对报文产生影响,导致报文数据项的顺序,长度发生改变另外,有的数据项长度并不确定这时用"卡位解析法"解析报文会比较困难,甚至产生错误正则表达式解析法"正则表达式解析法"更为健壮,在不便应用"卡位解析法"进行报文解析时,"正则表达式解析法"可大显身手什么是正则表达式简而言之,一个正则表达式就是用某种模式去匹配一类字符串的一个公式在AFTN报文中,一个数据项一定有区别于另一个数据项的特征,各数据项之间有明确的界限标识,我们严格地分析出各数据项的特征,把这些特征用正则然后在报文解析时应用正则表达式去表达式表示,寻找相应数据项,达到对报文解析的目的同样以解析上面FPL报文为例,看看"正则表达式解析法"是如何提取数据项的,代码如V:DimmessageAsStringmessage一(FPLCSN一ISMDMSHDIRWPCZYTXOOKSPUAANDINWCDYGKRHCBTYNZBYNZBSJEETZBPEREGBSELHQEJPRCHINASOUTHERNRMKACASIIEQUIPPED)"DimpatternAsStringDimobjRegExpAsnewRegExpDimPatterng,PatterngAsStringDimg,gAsStringPatterng一(((FPLICHGICNLIDEPlARRIDLAICPLlESTICDNIACPILAMlRQPIRQSISPLIALRIRCF)l((FPLICHGICNLlDEPIARRlDLAICPLESTIcDNlACPlLAMlRQPlRQsISPLlALRIRCF)A,Z{,)'AZ{,)d{)A,Z{,)'AZ{,)d)"objRegExpPattern=Pattern,gIf(objRegExpTest(message)一True)ThenSetcolMatchesobjRegExpExecute(message)ForEachobjMatehIncolMatehesg一Right(objMatchValueLen(ohjMatehValue)一)NextEndifPattern,g一"Az{)d()lAZ{}d()(Qz{}))(Ad{))"objRegExpPatternPatterngIf(objRegExpTest(message)一True)ThenSetcolMatchesobjRegExpExecute(message)ForEachobjMatchIncolMatchesg一Right(objMatchValueLen(objMatchValue)一)NextEndif请注意上面代码中这两行:Patterng一"(((FPLICHGICNLIDEPlARRIDLAICPL}ESTfCDNfACPILAMJRQPlRQSIsPLIALRIRcF)I((FPLlcHGIcNLIDEPfARRfDLAfCPLfESTfCDN}ACPfLAMfRQPiRQslSPLALRIRCF)Az{,}'AZ(,)d(}EA,z(,}'AZ{,}d(})Patterng一Az(}d)『Az{)d{)(Qz{}))('Ad{))"这两行分别给出了编组,编组的正则表达式准确定义数据项的正则表达式是"正则表达式解析法"的关键从上面的代码不难看出,"正则表达式解析法"完全不同于"卡位解析法",这种解析方法不再依赖数据项在报文中的顺序,完全根据数据项的特征来提取数据项因此,即便数据项由于某种原因在原报文中出现顺序颠倒,利用"正则表达式解析法"也能够准确地将之提取出来,因而这种解析方法更为健壮但是,准确写出数据项的表达式绝非易事,这一工作成为了该解析法的灵魂结论综上所述,"卡位解析法"和"正则表达式解析法"都能够对AFTN报文进行解析,究竟采用哪一种要根据具体使用环境而定,"卡位解析法"执行效率高,但要求网络传输环境高"正则表达式解析法"比较健壮,可用于相对较差的网络传输环境,但以牺牲执行效率为代价参考文献MH民用航空飞行动态固定电报格式Es李鸿吉VisualBasic高级编程技术EM北京:科学技术出版社,(美)JeffreyEFFriedMasteringRegularExpressionsEM,O'ReillyMedia,Inc,

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/8

中国民航AFTN报文解析方法探究

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利