張 貞,茅 坪
(海軍研究院,上海 200436)
電子飛行包是飛行人員的一種飛行輔助工具[1],是在駕駛艙使用的電子顯示系統(tǒng),可以進(jìn)行各個(gè)飛行階段的計(jì)算和檢查工作,如瀏覽電子航圖、查詢氣象資料、顯示情報(bào)信息、執(zhí)行油量計(jì)算等[2-3]。近年來,美國空軍已經(jīng)為C-5、C-17、C-130、KC-10、KC-135等多個(gè)型號的大約1160架戰(zhàn)機(jī)和16000多名機(jī)組人員提供了基于iPad的電子飛行包服務(wù),從而極大地提升了飛行安全性和工作效率[4]。
目前,我國軍機(jī)飛行員大多仍舊使用紙質(zhì)飛行圖囊,部分運(yùn)輸機(jī)上會(huì)使用平板電腦進(jìn)行一些數(shù)據(jù)航圖資料的查詢,但不具備飛行計(jì)劃制定、飛行數(shù)據(jù)計(jì)算等功能,因此急需裝備軍用電子飛行包以減輕飛行員工作負(fù)擔(dān),提高工作效率。在高速飛行狀態(tài)下,飛行員通常是通過周邊鍵方式同軍用機(jī)載設(shè)備進(jìn)行人機(jī)交互,以保證機(jī)載設(shè)備響應(yīng)快捷,可靠性高,從而提升機(jī)載設(shè)備的使用效能。本文即是圍繞軍用電子飛行包的周邊鍵進(jìn)行設(shè)計(jì)和驗(yàn)證[5-7]。
周邊鍵是飛行員與電子飛行包進(jìn)行交互的樞紐,是電子飛行包至關(guān)重要的組成部分[8]。本文采用物理按鍵和虛擬按鍵相結(jié)合的設(shè)計(jì)方式,使用按鍵功能復(fù)用的設(shè)計(jì)思想,利用串口數(shù)據(jù)通信和C++面向?qū)ο蟪绦蛟O(shè)計(jì)語言,設(shè)計(jì)并開發(fā)出了支持多級按鍵相關(guān)聯(lián)的菜單式周邊鍵,系統(tǒng)總體工作流程如圖1所示,系統(tǒng)外觀如圖2所示。
圖1 周邊鍵總體工作流程Fig.1 Overall workflow of peripheral key
圖2 周邊鍵硬件設(shè)備及按鍵編號Fig.2 Peripheral hardware and key number
具體步驟如下:
(1)數(shù)字電路板與顯示計(jì)算機(jī)通過USB接口連接,并利用該接口進(jìn)行數(shù)據(jù)傳輸和供電。
(2)按鍵信號采集程序采用線程循環(huán)方式,實(shí)時(shí)監(jiān)測數(shù)字電路板上物理按鍵的狀態(tài)。
(3)當(dāng)物理按鍵被按下時(shí),信號采集程序?qū)⑽锢戆存I觸發(fā)的數(shù)字信號傳遞到按鍵功能識別算法中,該算法通過按鍵的等級和按鍵被按下的先后次序,計(jì)算出需要執(zhí)行的功能。
(4)顯示界面調(diào)用程序接收按鍵功能識別算法計(jì)算的結(jié)果,從待顯示界面中,調(diào)用當(dāng)前需要的界面,在顯示器與物理按鍵相對應(yīng)的位置,顯示虛擬按鍵。
(5)由于顯示屏是觸摸屏,當(dāng)點(diǎn)擊虛擬按鍵時(shí),虛擬按鍵產(chǎn)生的數(shù)字信號和其對應(yīng)的物理按鍵產(chǎn)生的數(shù)字信號一樣,此時(shí)系統(tǒng)跳轉(zhuǎn)到步驟(2)中。
(6)待顯示界面采用隊(duì)列的方式,對多個(gè)界面進(jìn)行顯示和隱藏狀態(tài)的管理。
通過上述設(shè)計(jì),無論飛行員按壓的是物理按鍵還是虛擬按鍵,系統(tǒng)都執(zhí)行同樣的功能,從而達(dá)到虛實(shí)結(jié)合的效果。實(shí)際飛行中飛行員主要操作物理按鍵,虛擬按鍵主要通過文字或符號提示飛行員當(dāng)前按鍵對應(yīng)的功能,避免戰(zhàn)機(jī)抖動(dòng)時(shí)的無效操作或誤操作。
電子飛行包周邊鍵由32個(gè)按鍵組成,每個(gè)按鍵與電路板上的觸發(fā)按鈕相連接,并采用高強(qiáng)度材料進(jìn)行封裝,周邊鍵包圍的區(qū)域,是一臺觸摸屏電腦,可使用Surface、iPad、華為Pad等便攜式觸摸屏電腦。周邊鍵通過RS-485通信接口與顯示主機(jī)的USB接口相連,采用全雙工方式與電腦設(shè)備進(jìn)行數(shù)據(jù)傳輸。為方便描述,為每個(gè)按鍵進(jìn)行了命名,命名規(guī)則為從上到下、從左到右,以單詞Key的首字母K開頭,如圖2所示。當(dāng)某一按鍵被按下時(shí),硬件設(shè)備會(huì)產(chǎn)生一個(gè)數(shù)字信號,每個(gè)按鍵的編號及產(chǎn)生的數(shù)字信號值如表1所示。
表1 按鍵所產(chǎn)生的數(shù)字信號值Tab.1 The value of the digital signal generated by the keystroke
該程序主要負(fù)責(zé)采集硬件設(shè)備觸發(fā)的數(shù)字信號,并將采集到的數(shù)字信號以Socket網(wǎng)絡(luò)通信的方式發(fā)送到按鍵功能識別算法中。該程序的工作流程為:軟件啟動(dòng)后將開辟一個(gè)線程,該線程實(shí)時(shí)監(jiān)控與硬件設(shè)備所連接的串口,當(dāng)按鍵狀態(tài)發(fā)生變化產(chǎn)生數(shù)據(jù)時(shí)讀取該數(shù)據(jù),并采用UDP協(xié)議將采集到的數(shù)據(jù)發(fā)送到按鍵功能識別算法中,僅當(dāng)采集到數(shù)據(jù)時(shí)才執(zhí)行網(wǎng)絡(luò)發(fā)送命令,沒有采集到數(shù)據(jù)時(shí)不進(jìn)行發(fā)送。
該算法實(shí)現(xiàn)按鍵所觸發(fā)的數(shù)字信號值與待調(diào)用軟件具體功能的匹配,其難點(diǎn)在于周邊鍵功能的復(fù)用。該算法借鑒軟件菜單的設(shè)計(jì)思想,使用按鍵分級和功能分級策略,采用樹狀結(jié)構(gòu),將按鍵分為一級、二級、三級按鍵;將軟件功能分為一級、二級、三級功能,其中每一級按鍵對應(yīng)每一級功能。按鍵分級策略為:一級按鍵,包括頂部按鍵6個(gè),底部按鍵6個(gè),按鍵編號區(qū)間為[k01,k12],這些按鍵在軟件的整個(gè)生命期都有效;任意時(shí)刻,有且只有一個(gè)按鍵生效,生效按鍵為一級按鍵的當(dāng)前按鍵,其他按鍵為一級按鍵的未生效按鍵;系統(tǒng)啟動(dòng)時(shí),默認(rèn)編號K01的按鍵為當(dāng)前按鍵。一級按鍵可以擁有多個(gè)子鍵(二級按鍵),在K01鍵生效時(shí),二級按鍵都是它的子鍵。二級及三級按鍵的策略同一級按鍵,按鍵分級關(guān)系如圖3所示。
圖3 按鍵分級及關(guān)系Fig.3 Keystroke grading and relationship
采用按鍵分級之后,三個(gè)級別的按鍵最多具有12×10×10=1200種組合,若每個(gè)組合對應(yīng)一種功能,則可對應(yīng)1200種功能,能夠滿足電子飛行包功能設(shè)計(jì)的需要。
對應(yīng)于按鍵分級,按鍵功能響應(yīng)策略為:一級功能,該級功能對應(yīng)于待調(diào)用軟件模塊級別的功能,是系統(tǒng)的頂級功能。當(dāng)某個(gè)一級功能被激活時(shí),系統(tǒng)的界面切換到該功能對應(yīng)的模塊。任意時(shí)刻,有且只有一個(gè)一級功能被激活,激活的功能為一級功能的當(dāng)前功能,其他功能為一級功能的未激活功能;一級功能可以包含多個(gè)子功能(二級功能)。二級和三級功能的響應(yīng)策略同一級功能。整個(gè)軟件系統(tǒng)的功能及與按鍵的關(guān)聯(lián)如表2所示,用戶可以根據(jù)實(shí)際情況對功能及按鍵進(jìn)行擴(kuò)展和調(diào)整。
該程序負(fù)責(zé)顯示器中可視化界面管理和切換。程序啟動(dòng)后,將系統(tǒng)需要使用的所有軟件都打開,并將軟件的窗口設(shè)置為隱藏狀態(tài)。當(dāng)程序接收到某條命令后,找到該命令對應(yīng)的窗口,將該窗口置頂,設(shè)置為顯示狀態(tài),同時(shí)將其他窗口設(shè)置為隱藏狀態(tài)。該程序也負(fù)責(zé)周邊鍵文字提示窗口的管理,同一周邊鍵在不同時(shí)刻所對應(yīng)的功能不一樣,系統(tǒng)需要根據(jù)周邊鍵的當(dāng)前功能動(dòng)態(tài)更新周邊鍵的文字提示。系統(tǒng)為表2中的每一種功能都創(chuàng)建了文字提示窗口,并將窗口背景設(shè)置為半透明,通過移動(dòng)窗口位置的方式確保其顯示位置與物理周邊鍵相對應(yīng),待調(diào)用的功能軟件界面顯示在該半透明提示符號的下層。周邊鍵功能改變時(shí),實(shí)現(xiàn)文字提示的動(dòng)態(tài)切換。生效周邊鍵的文字提示窗口背景為紅色,未生效周邊鍵的文字提示背景為藍(lán)色,以示區(qū)分。
表2 軟件功能與周邊鍵的對應(yīng)關(guān)系(限于篇幅,僅列出部分對應(yīng)關(guān)系)Tab.2 Corresponding relationship between software functions and peripheral keys
由于電子飛行包設(shè)備只有單個(gè)屏幕,而飛行員在各個(gè)飛行階段需要調(diào)取的數(shù)據(jù)和資源并不一致,使用的軟件功能也各不相同,因此需要對這些軟件的界面進(jìn)行統(tǒng)一管理,并將其歸類為待顯示界面,本系統(tǒng)所設(shè)計(jì)的待顯示界面包括二維航圖、三維視景、多屏顯示、文件管理、高度計(jì)算、領(lǐng)航計(jì)算、轟炸計(jì)算、靶場計(jì)算、飛行計(jì)劃、桌面鍵盤、系統(tǒng)設(shè)置、退出系統(tǒng)等12個(gè)窗口,每個(gè)窗口分別與一級周邊鍵相對應(yīng)。
采用本文的思路和方法,設(shè)計(jì)出電子飛行包系統(tǒng)的周邊鍵,并對其進(jìn)行試驗(yàn),試驗(yàn)參數(shù)分別為:(1)硬件設(shè)備:自制周邊鍵設(shè)備、RS485數(shù)據(jù)線、Surface Pro4;(2)操作系統(tǒng):Windows10 64位,版本號1903;(3)CPU及內(nèi)存:Intel酷睿i7 6650U,16G DDR4內(nèi)存;(4)顯卡:Intel GMA Iris 540;(5)波特率:115200;(6)待顯示界面:二維航圖、三維視景、多屏顯示、文件管理、高度計(jì)算、領(lǐng)航計(jì)算等12個(gè)界面。
圖4為電子飛行包系統(tǒng)的二維航圖功能顯示效果,該功能為電子飛行包系統(tǒng)的一級功能,對應(yīng)一級周邊鍵K01,該周邊鍵對應(yīng)的文字提示為紅色,說明當(dāng)前該周邊鍵生效。按下其他周邊鍵,對應(yīng)顯示相應(yīng)功能。
圖4 二維航圖界面Fig.4 Two-dimensional aerial map interface
試驗(yàn)步驟如下:
(1)開發(fā)出相關(guān)的待顯示軟件,并安裝在Surface Pro4中,構(gòu)建出電子飛行包設(shè)備。
(2)使用RS485數(shù)據(jù)線實(shí)現(xiàn)周邊鍵和電子飛行包設(shè)備的連接。
(3)啟用周邊鍵運(yùn)行所需要的按鍵采集程序、顯示界面調(diào)用程序和待顯示界面程序。
(4)按照前期設(shè)定按鍵與功能對應(yīng)關(guān)系,依次按下指定的實(shí)體按鍵或虛擬按鍵。
(5)查看顯示結(jié)果與前期設(shè)置的是否一致。
本文將物理周邊鍵和虛擬周邊鍵有機(jī)結(jié)合,結(jié)合按鍵可重復(fù)使用設(shè)計(jì)思路,設(shè)計(jì)出了滿足軍用電子飛行包需求的周邊鍵設(shè)備,并通過試驗(yàn)驗(yàn)證了周邊鍵的有效性和可靠性,設(shè)備具有結(jié)構(gòu)簡單、使用方便、易于擴(kuò)展的特點(diǎn),可擴(kuò)展應(yīng)用到其他便攜式穿戴設(shè)備中。