中国民航AFTN电报网网关系统的开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国民航AFTN电报网网关系统的开发
中国民航AFTN电报网网关系统的开发
摘要:网关系统是中国民航固定格式电报网(AFTN)的重要组成部分。
介绍了网关系统的组成、结构和功能,并着重阐述了网关系统的进程监护和系统自恢复功能的实现。
关键词:AFTN网关Win32API Get Time DLL
中国民航航空固定格式电报网(AFTN)承担中国民用航空局国内与国际的空中交通管理,飞行动态,航行气象及民航局有关部门业务事物处理等的信息交换,是民用航空飞行安全、正常、高效和经济运转的保障。
AFTN电报网客户端使用大量的电报字符终端和少量的智能终端。
字符终端采用50波特率线路,具有收、发、打印功能,不能查询和分板报文。
智能终端是基于单台PC机的系统,功能比较齐全。
但是在电报量大的单位,单机的智能终端处理速度慢、报文存储量小,特别是不能实现信息的共享、多席位的分工协作。
随着计算机网络技术的发展,管理局一级的单位多建立了自己的计算机局域网和网络数据库,电报的处理、存储能力得到极大的提高,于是,AFTN网关成为AFTN与计算机局域网连接的关键部分。
1AFTN网关功能分析从业务角度分析,AFTN网关应提供实时接收来自AFTN电报网的各类电报的能力;提供实时发送各类电报的能力;提供监视平面电报网接口线路的工作状态的能力。
从技术角度分析,AFTN网关具备以下功能:·AFTN电报网接口,支持双工异步RS-232接口,传输速率可达300,600,1200,2400,4800,
9600bps;·内部计算机网络接口,采用10BASE-T连接,支持TCP/IP协议;·实现CCITT5位电报码与ASCII7位码的相互转换;·与网络数据库连接,支持开放式数据库接口模块(ODBC);·具备实时报文发送功能,对多地址报文进行特殊处理;·监控串行通信口的状态,异常情况报警提示;·监控网络通信状态,出现异常情况后接收报文的存储转由本地数据库接口负责;·提供自动恢复功能,待网络恢复正常工作后,恢复与网络数据库的连接并提交存储在本地数据库中的报文。
·检查电报流水号,对遗漏的电报,具备从AFTN电报网自动要报功能。
2AFTN网关实现AFTN网关的硬件平台采用高性能PC机。
操作系统采用Windows NT Workstation4.0中文版。
开发工具采用MS VC++6.0和MS VB6.0。
2.1系统连接结构AFTN网关系统的连接结构。
AFTN网关通过以太网接口连接到电报处理系统,通过串行接口连调制解调器与转报系统串行端口相联,全双工通信,传输速率1200bps,传送国际五号码(ASCII码)。
根据需要也可以使用国际二号码(博多码)。
AFTN网关到转报系统使用电流环接口作为备份线路。
在AFTN网关一端采用SS-1型“电报通信线路连接器”,经电台码型转换后,通过X.25网接入转报机,全双工通信,传输速率600bps,传送博多码。
2.2程序结构AFTN网关由三部分组成,即AFTN网络数据接口进程、数据提交进程、本地进程监控进程,。
2.2.1AFTN网络数据接口进程通过串行接口与转报机系统连接。
接收到的AFTN报文写到本地的Access数据库中,同时发送本地Access数据库中的发送电报。
AFTN网络数据接口与电报处理系统的网络环境没有
任何连接,当电报处理系统出现故障时,不会影响AFTN网络数据接口的正常工作。
2.2.2数据提交进程通过开放数据接口与电报处理系统的网络数据库服务器相连接。
把AFTN网络数据接口模块写到本地Access 数据库中的接收电报提交到网络数据库服务器,同时将网络数据库服务器中要发送的报文写入本地的Access数据库,提交给AFTN网络数据接口发送。
数据提交进程与AFTN电报网没有任何连接,当AFTN电报网或转报机系统出现故障时,不会影响数据提交进程的正常工作。
2.2.3本地进程监控进程监视AFTN网络数据接口进程和数据提交进程的工作。
正常情况下,AFTN网络数据接口进程和数据提交进程每隔30s向本地进程监控进程发送程序状态报告消息,如果在指定的超时范围内,本地进程监控进程仍未收到AFTN网络数据接口进程和数据提交进程发来的程序状态报告消息,则鸣警笛,提醒操作员,同时在适当的时候重新引导系统,以期恢复AFTN网关的正常工作。
2.3进程监控及自恢复功能的实现2.3.1进程监控系统初始化时生成了状态配置设置文件State.ini,其中与进程监控相关的项目如下所示:[watdog]Destination=″GDO_Monitor″FepHeartBeat=881218824DTHeartBeat=881218832AFTN网络接口进程和数据提交进程每隔30s分别更新FepHearBeat和DTHearBeat的数据,数据含义是更新时间与1970年1月1日0时的差值,单位为秒。
本地进程监控程序通过检查FepHeartBeat 和DTHeartBeat的数据,监测其他两个进程的状态。
VB程序中没有函数可以计算某一时间与1970年1月1日0时的差距,而VC++中的Time()函数可以实现。
使用VC++制作包含Time()函数功能,符合
Win32API的动态连接库GetTime.DLL,在VB中对其调用即可实现此功能。
以下为制作动态连接库的部分源代码,包括GetLongTiome.c和GetLongTiome.def。
GetLongTiome.c文件:#include<windows.h>#include<time.h>long WINAPI GetLongTime();long WINAPI GetLongTime() {time_tt;time(&t);return(long)t;} GetLongTime.def文件:LIBRARY GetTime DESCRIPTION'Get Long Time'VERSION 1.0CODE READ SHARED EXECUTE DATA READ WRITE HEAPSIZE0x100000x1000EXPORTS GetLong Time@1在VB程序中调用Win32API时先要在全局模块中做如下定义:Declare Function GetLongTime Lib″GetTime″() As Long在程序中以以下方式调用:LongDate=GetTime()2.3.2系统自恢复在指定的超时范围内,本地进程监控进程仍未检测到AFTN网络数据接口进程和数据提交进程对配置设置文件State.ini的更新,则在适当的时候重新引导系统,以期恢复AFTN网关的正常工作。
本地进程监控进程首先填写系统日志文件,记录错误时间及可能原因;保留当前参数设定,准备重新引导系统后恢复正常工作。
最后调用以下函数,重新引导系统:ExitWindowsEx (EWX_FORCE|EWX_REBOOT,0);综上所述,AFTN电报网网关以基于中心网络数据库服务器的客户机/服务器模式工作,提供电报信息处理系统所有客户机一种接收和发送电文的方法。
三个应用程序进程之间既相
互独立,又相互联系的机制保证了AFTN电报网网关的正常运行。
该AFTN电报网网关在中国民用航空总局总调度室运行了2年,系统稳定可靠,并通过技术鉴定,获得了入网证书。