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

中國民航AFTN電報網(wǎng)網(wǎng)關系統(tǒng)的開發(fā)

2009-04-21
作者:張學軍 張其善

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


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


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


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

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

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