王凱悅,李昊昱,周 斌,郭玉潔,馬 浩
(中國航空工業集團公司西安航空計算技術研究所,陜西 西安 710068)
利用飛機直接向云中播撒催化劑實現人工影響天氣的手段具有機動性強、載量大、作業范圍廣等優點。在增雨機任務系統中,空地通信子系統主要負責作業人員與地面指揮中心的短消息視頻聯系以及作業信息、大氣探測信息、飛機狀態信息等和相關文件的傳輸[1-3]。通過以太網與海事衛星通信系統交聯,實現基于用戶數據報協議(User Datagram Protocol,UDP)的數據傳輸和視頻通信;通過RS422總線與北斗衛星通信系統交聯,借助北斗短報文完成作業信息下傳和短消息通信[4-8]。本文提出了一種機載多路數據空地通信軟件設計方法,并采用多重備份結構,實現了空中作業過程中穩定可靠的信息傳輸[9]。與此同時,為提高用戶使用體驗,方便對傳輸信息進行選擇和設置,增加了可視化的圖形用戶界面[10]。
空地通信軟件應能與地面指揮中心進行通信,實現圖片、文件、文本短信的上下傳輸,具備地面和空中的實時視頻通話功能,能夠選擇下傳數據種類傳輸間隔,實現數據傳輸控制。空地通信軟件界面如圖1所示,主要包括北斗通信、海事衛星通信、數據傳輸控制3部分。

圖1 軟件界面
北斗、海事通信界面均由通信錄和實時通信界面兩部分組成。通信錄可在消息提示和聯系人列表間自由切換,選擇列表中的聯系人即可在實時通信界面查看與該聯系人所有聊天信息,在對話框輸入短信并發送。海事通信界面還設置有文件傳輸、視頻通話等按鈕,可在選擇聯系人后傳輸文件或進行視頻通話。數據傳輸控制界面用于管理相關機載信息,并通過海事衛星實現機載信息的發送功能。可對復選框內容進行勾選,實現相關數據的手動發送和停止,可在設置維護頁面統一調整所有下傳信息的傳輸頻率。數據優先級規則:作業數據包的優先級最高,視頻通話優先級次之,音頻通話第三,短信數據包第四,最后再是文件傳輸。數據互傳時手動優于自動,手動包括作業方案、截圖和視頻;作業信息優于大氣探測信息。空地通信系統上下傳數據見下表1。

表1 空地通信信息傳輸數據表
增雨機任務系統由大氣探測系統、催化作業系統以及空地通信系統集成。其中,空地通信子系統由兩臺顯控計算機、機載通信綜合控制設備、北斗接收機以及海事衛星通信系統組成,各部分通過以太網、串口進行通信,如圖2所示。

圖2 系統組成
顯控計算機通過1路10 M/100 M自適應以太網接口與機載千兆網絡交換機交聯,向通信控制設備發送大氣探測信息、作業信息、圖片、設備狀態、作業方案以及短報文等;通過RS422總線與機載北斗交聯,發送短報文和作業信息。同時通信控制設備與衛通交聯,將從顯控收到的相關信息發至地面指揮中心,并向顯控提供地面上傳的作業方案、圖片、視頻信息以及短報文等。通信控制設備與顯控之間采用基于UDP的數據包傳輸,并在UDP標準協議基礎上增加握手機制,以保證數據通信的可靠性。基于文件傳輸協議(File Transfer Protocol,FTP)進行文件傳輸,通信控制設備作為FTP服務器,機上設備作為FTP客戶端,實現文件的上下傳輸。
整個系統中,左、右顯控互為備份。同時北斗采用兩路RS422總線分別與顯控、通信控制設備交互數據,以直接與顯控交聯的路徑為主,以第二路北斗經通信控制設備至顯控的路徑為輔,當顯控判斷第一路通信失效后才采用第二路進行數據互傳,這種多重備份系統保證了系統運行的可靠性。
按照機載多路數據空地通信軟件需求,將其分為主線程、界面操作顯示線程、網絡數據處理線程、串口數據處理線程以及視頻通話線程,采用多線程編程的方法設計如圖3所示的軟件架構。

圖3 軟件架構
程序啟動后,主線程讀取配置文件并創建其他子線程,建立信號和槽的連接。界面顯示線程主要負責用戶界面的顯示,通過界面相關按鈕和文本框等控制實現人機交互,收到不同類型的消息進行彈窗提示,并將解析后的信息顯示在聊天界面。網絡數據處理線程主要進行UDP數據的處理,包括數據接收、解析以及組包發送。在初始化配置好網絡地址端口號后,與其他設備建立連接并判斷其狀態。接收大氣探測軟件發來的探測信息進行組包后,以10 s為默認周期向通信控制設備發送探測信息,同時接收通信控制設備發送的海事短信進行解析。此外,還需將短消息和作業信息進行編碼,發送至地面。串口數據處理線程負責處理機載北斗系統的RS422數據,主要包括北斗定位信息和短報文的解析,同時按照不同的包頭封裝作業信息或北斗短消息向地面發送。視頻通信線程主要負責接收地面推送的實時傳輸協議(Real-time Transport Protocol,RTP)視頻流,并進行獨立顯示。在顯示界面中,由按鍵控制機上發起視頻請求或接收地面傳輸的視頻請求,應答后拉取地面推送的RTP視頻流并顯示,通話結束后在通信界面顯示通話時長等信息。
Qt是一個跨平臺的C++圖形用戶界面應用程序開發框架,包含了網絡通信、文件操作等多種功能,本文空地通信軟件使用Qt進行開發。軟件啟動后首先初始化相關通信端口,從配置文件中讀取配置項進行設置,確定主從關系,加載通訊錄聯系人;其次與通信控制設備進行Socket通信,根據主從關系判斷是否從該側顯控計算機周期下發相關探測信息,同時確定由主顯控與機載北斗通過RS422總線進行通信;再次通過監聽Socket和串口收到的數據進行解析,判斷收到的指令內容,在UI界面進行相應的消息類型提示和短信顯示;最后用戶可以通過界面上的按鈕進行聯系人增添、編輯和刪除操作,選擇不同聯系人進行短息發送、文件傳輸以及視頻通話等。
由于空地通信功能是增雨飛機任務系統集成中至關重要的一部分,因此設計了一種機載多路數據空地通信軟件設計,實現了短報文、探測信息和作業信息的實時傳輸、視頻通信以及文件傳輸等功能。通過北斗衛星通信系統和海事衛星通信系統組成的雙衛星系統,結合雙顯控計算機等多重冗余備份設計,提高了系統的可靠性。