《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 中國(guó)民航AFTN電報(bào)網(wǎng)網(wǎng)關(guān)系統(tǒng)的開發(fā)

中國(guó)民航AFTN電報(bào)網(wǎng)網(wǎng)關(guān)系統(tǒng)的開發(fā)

2009-04-21
作者:張學(xué)軍 張其善

  摘 要: 網(wǎng)關(guān)系統(tǒng)是中國(guó)民航固定格式電報(bào)網(wǎng)(AFTN)的重要組成部分。介紹了網(wǎng)關(guān)系統(tǒng)的組成、結(jié)構(gòu)和功能,并著重闡述了網(wǎng)關(guān)系統(tǒng)的進(jìn)程監(jiān)護(hù)和系統(tǒng)自恢復(fù)功能的實(shí)現(xiàn)。
  關(guān)鍵詞: AFTN網(wǎng)關(guān) Win32API Get Time DLL


  中國(guó)民航航空固定格式電報(bào)網(wǎng)(AFTN)承擔(dān)中國(guó)民用航空局國(guó)內(nèi)與國(guó)際的空中交通管理,飛行動(dòng)態(tài),航行氣象及民航局有關(guān)部門業(yè)務(wù)事物處理等的信息交換,是民用航空飛行安全、正常、高效和經(jīng)濟(jì)運(yùn)轉(zhuǎn)的保障。
  AFTN電報(bào)網(wǎng)客戶端使用大量的電報(bào)字符終端和少量的智能終端。字符終端采用50波特率線路,具有收、發(fā)、打印功能,不能查詢和分板報(bào)文。智能終端是基于單臺(tái)PC機(jī)的系統(tǒng),功能比較齊全。但是在電報(bào)量大的單位,單機(jī)的智能終端處理速度慢、報(bào)文存儲(chǔ)量小,特別是不能實(shí)現(xiàn)信息的共享、多席位的分工協(xié)作。
  隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,管理局一級(jí)的單位多建立了自己的計(jì)算機(jī)局域網(wǎng)和網(wǎng)絡(luò)數(shù)據(jù)庫(kù),電報(bào)的處理、存儲(chǔ)能力得到極大的提高,于是,AFTN網(wǎng)關(guān)成為AFTN與計(jì)算機(jī)局域網(wǎng)連接的關(guān)鍵部分。
1 AFTN網(wǎng)關(guān)功能分析
  從業(yè)務(wù)角度分析,AFTN網(wǎng)關(guān)應(yīng)提供實(shí)時(shí)接收來(lái)自AFTN電報(bào)網(wǎng)的各類電報(bào)的能力;提供實(shí)時(shí)發(fā)送各類電報(bào)的能力;提供監(jiān)視平面電報(bào)網(wǎng)接口線路的工作狀態(tài)的能力。
  從技術(shù)角度分析,AFTN網(wǎng)關(guān)具備以下功能:
  ·AFTN電報(bào)網(wǎng)接口,支持雙工異步RS-232接口,傳輸速率可達(dá)300,600,1200,2400,4800,9600bps;
  ·內(nèi)部計(jì)算機(jī)網(wǎng)絡(luò)接口,采用10BASE-T連接,支持TCP/IP協(xié)議;
  ·實(shí)現(xiàn)CCITT 5位電報(bào)碼與ASCII 7位碼的相互轉(zhuǎn)換;
  ·與網(wǎng)絡(luò)數(shù)據(jù)庫(kù)連接,支持開放式數(shù)據(jù)庫(kù)接口模塊(ODBC);
  ·具備實(shí)時(shí)報(bào)文發(fā)送功能,對(duì)多地址報(bào)文進(jìn)行特殊處理;
  ·監(jiān)控串行通信口的狀態(tài),異常情況報(bào)警提示;
  ·監(jiān)控網(wǎng)絡(luò)通信狀態(tài),出現(xiàn)異常情況后接收?qǐng)?bào)文的存儲(chǔ)轉(zhuǎn)由本地?cái)?shù)據(jù)庫(kù)接口負(fù)責(zé);
  ·提供自動(dòng)恢復(fù)功能,待網(wǎng)絡(luò)恢復(fù)正常工作后,恢復(fù)與網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的連接并提交存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù)中的報(bào)文。
  ·檢查電報(bào)流水號(hào),對(duì)遺漏的電報(bào),具備從AFTN電報(bào)網(wǎng)自動(dòng)要報(bào)功能。
2 AFTN網(wǎng)關(guān)實(shí)現(xiàn)
  AFTN網(wǎng)關(guān)的硬件平臺(tái)采用高性能PC機(jī)。操作系統(tǒng)采用Windows NT Workstation 4.0中文版。開發(fā)工具采用MS VC++6.0和MS VB 6.0。
2.1 系統(tǒng)連接結(jié)構(gòu)
  AFTN網(wǎng)關(guān)系統(tǒng)的連接結(jié)構(gòu)如圖1所示。AFTN網(wǎng)關(guān)通過(guò)以太網(wǎng)接口連接到電報(bào)處理系統(tǒng),通過(guò)串行接口連調(diào)制解調(diào)器與轉(zhuǎn)報(bào)系統(tǒng)串行端口相聯(lián),全雙工通信,傳輸速率1200bps,傳送國(guó)際五號(hào)碼(ASCII碼)。根據(jù)需要也可以使用國(guó)際二號(hào)碼(博多碼)。AFTN網(wǎng)關(guān)到轉(zhuǎn)報(bào)系統(tǒng)使用電流環(huán)接口作為備份線路。在AFTN網(wǎng)關(guān)一端采用SS-1型“電報(bào)通信線路連接器”,經(jīng)電臺(tái)碼型轉(zhuǎn)換后,通過(guò)X.25網(wǎng)接入轉(zhuǎn)報(bào)機(jī),全雙工通信,傳輸速率600bps,傳送博多碼。


2.2 程序結(jié)構(gòu)
  AFTN網(wǎng)關(guān)由三部分組成,即AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進(jìn)程、數(shù)據(jù)提交進(jìn)程、本地進(jìn)程監(jiān)控進(jìn)程,如圖2所示。


2.2.1 AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進(jìn)程
  通過(guò)串行接口與轉(zhuǎn)報(bào)機(jī)系統(tǒng)連接。接收到的AFTN報(bào)文寫到本地的Access數(shù)據(jù)庫(kù)中,同時(shí)發(fā)送本地Access數(shù)據(jù)庫(kù)中的發(fā)送電報(bào)。AFTN網(wǎng)絡(luò)數(shù)據(jù)接口與電報(bào)處理系統(tǒng)的網(wǎng)絡(luò)環(huán)境沒有任何連接,當(dāng)電報(bào)處理系統(tǒng)出現(xiàn)故障時(shí),不會(huì)影響AFTN網(wǎng)絡(luò)數(shù)據(jù)接口的正常工作。
2.2.2 數(shù)據(jù)提交進(jìn)程
  通過(guò)開放數(shù)據(jù)接口與電報(bào)處理系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)服務(wù)器相連接。把AFTN網(wǎng)絡(luò)數(shù)據(jù)接口模塊寫到本地Access數(shù)據(jù)庫(kù)中的接收電報(bào)提交到網(wǎng)絡(luò)數(shù)據(jù)庫(kù)服務(wù)器,同時(shí)將網(wǎng)絡(luò)數(shù)據(jù)庫(kù)服務(wù)器中要發(fā)送的報(bào)文寫入本地的Access數(shù)據(jù)庫(kù),提交給AFTN網(wǎng)絡(luò)數(shù)據(jù)接口發(fā)送。數(shù)據(jù)提交進(jìn)程與AFTN電報(bào)網(wǎng)沒有任何連接,當(dāng)AFTN電報(bào)網(wǎng)或轉(zhuǎn)報(bào)機(jī)系統(tǒng)出現(xiàn)故障時(shí),不會(huì)影響數(shù)據(jù)提交進(jìn)程的正常工作。
2.2.3 本地進(jìn)程監(jiān)控進(jìn)程
  監(jiān)視AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進(jìn)程和數(shù)據(jù)提交進(jìn)程的工作。正常情況下,AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進(jìn)程和數(shù)據(jù)提交進(jìn)程每隔30s向本地進(jìn)程監(jiān)控進(jìn)程發(fā)送程序狀態(tài)報(bào)告消息,如果在指定的超時(shí)范圍內(nèi),本地進(jìn)程監(jiān)控進(jìn)程仍未收到AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進(jìn)程和數(shù)據(jù)提交進(jìn)程發(fā)來(lái)的程序狀態(tài)報(bào)告消息,則鳴警笛,提醒操作員,同時(shí)在適當(dāng)?shù)臅r(shí)候重新引導(dǎo)系統(tǒng),以期恢復(fù)AFTN網(wǎng)關(guān)的正常工作。
2.3 進(jìn)程監(jiān)控及自恢復(fù)功能的實(shí)現(xiàn)
2.3.1 進(jìn)程監(jiān)控

  系統(tǒng)初始化時(shí)生成了狀態(tài)配置設(shè)置文件State.ini,其中與進(jìn)程監(jiān)控相關(guān)的項(xiàng)目如下所示:
  [watdog]
  Destination=″GDO_Monitor″
  FepHeartBeat=881218824
  DTHeartBeat=881218832
  AFTN網(wǎng)絡(luò)接口進(jìn)程和數(shù)據(jù)提交進(jìn)程每隔30s分別更新FepHearBeat和DTHearBeat的數(shù)據(jù),數(shù)據(jù)含義是更新時(shí)間與1970年1月1日0時(shí)的差值,單位為秒。本地進(jìn)程監(jiān)控程序通過(guò)檢查FepHeartBeat和DTHeartBeat的數(shù)據(jù),監(jiān)測(cè)其他兩個(gè)進(jìn)程的狀態(tài)。
  VB程序中沒有函數(shù)可以計(jì)算某一時(shí)間與1970年1 月1日0時(shí)的差距,而VC++中的Time()函數(shù)可以實(shí)現(xiàn)。使用VC++制作包含Time()函數(shù)功能,符合Win32API的動(dòng)態(tài)連接庫(kù)GetTime.DLL,在VB中對(duì)其調(diào)用即可實(shí)現(xiàn)此功能。以下為制作動(dòng)態(tài)連接庫(kù)的部分源代碼,包括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.0
  CODE        READ SHARED EXECUTE
  DATA         READ WRITE
  HEAPSIZE      0x10000 0x1000
  EXPORTS
  GetLong Time   ?。?
  在VB程序中調(diào)用Win32API時(shí)先要在全局模塊中做如下定義:
  Declare Function GetLongTime Lib ″GetTime″ () As Long
  在程序中以以下方式調(diào)用:
  LongDate=GetTime()
2.3.2 系統(tǒng)自恢復(fù)
  在指定的超時(shí)范圍內(nèi),本地進(jìn)程監(jiān)控進(jìn)程仍未檢測(cè)到AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進(jìn)程和數(shù)據(jù)提交進(jìn)程對(duì)配置設(shè)置文件State.ini的更新,則在適當(dāng)?shù)臅r(shí)候重新引導(dǎo)系統(tǒng),以期恢復(fù)AFTN網(wǎng)關(guān)的正常工作。
  本地進(jìn)程監(jiān)控進(jìn)程首先填寫系統(tǒng)日志文件,記錄錯(cuò)誤時(shí)間及可能原因;保留當(dāng)前參數(shù)設(shè)定,準(zhǔn)備重新引導(dǎo)系統(tǒng)后恢復(fù)正常工作。最后調(diào)用以下函數(shù),重新引導(dǎo)系統(tǒng):
  ExitWindowsEx
  (EWX_FORCE|EWX_REBOOT,0);
  綜上所述,AFTN電報(bào)網(wǎng)網(wǎng)關(guān)以基于中心網(wǎng)絡(luò)數(shù)據(jù)庫(kù)服務(wù)器的客戶機(jī)/服務(wù)器模式工作,提供電報(bào)信息處理系統(tǒng)所有客戶機(jī)一種接收和發(fā)送電文的方法。三個(gè)應(yīng)用程序進(jìn)程之間既相互獨(dú)立,又相互聯(lián)系的機(jī)制保證了AFTN電報(bào)網(wǎng)網(wǎng)關(guān)的正常運(yùn)行。
  該AFTN電報(bào)網(wǎng)網(wǎng)關(guān)在中國(guó)民用航空總局總調(diào)度室運(yùn)行了2年,系統(tǒng)穩(wěn)定可靠,并通過(guò)技術(shù)鑒定,獲得了入網(wǎng)證書。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。