易子淳
【摘 要】隨著現(xiàn)代民用航空的快速發(fā)展,駕駛艙的集成度和復雜度變得越來越高。ARINC 661[1]標準為民用飛機駕駛艙設計提供了統(tǒng)一的用戶接口、通信協(xié)議和管理方式,極大提高了各個子系統(tǒng)之間的兼容性與平臺可擴展性。而部署于A661服務器端的定義文件(Definition File)包含了所有顯示元素和信息,結(jié)構(gòu)相當復雜。本文嘗試通過對DF文件進行解析,實現(xiàn)對特定屬性、特定元素的批量處理,并形成自動化工具,縮短迭代開發(fā)周期。
【關鍵詞】DF;ARINC 661;自動修改
0 引言
ARINC 661規(guī)范是針對飛機駕駛艙顯示系統(tǒng)的開發(fā)設計的一份指導性文件,由于波音,空客等公司的支持,并且該標準自身也在不斷地修訂和完善,這份指導性的文件已經(jīng)逐漸成為了駕駛艙顯示系統(tǒng)的行業(yè)標準。ARINC 661中,針對顯示系統(tǒng)中可能用到的基本顯示組件,定義了一個Widget Library,這個Library中,包含了42個基本的Widget,8個Widget Expansion Supplement 1類型,7個Widget Expansion Supplement 2類型,8個Widget Expansion Supplement 3類型,3個Widget Expansion Supplement 4類型。對于每個Widget,又明確定義了States,StyleSet,Position,Size等詳細屬性以及Widget之間可能的關系。
在實際的駕駛艙軟件開發(fā)過程中,往往通過建模軟件,自動化構(gòu)建生成符合ARINC 661規(guī)范的DF圖形模型文件,大大簡化了顯示系統(tǒng)的設計工作。以法國Esterel公司生產(chǎn)的SCADE Display工具為例,通過進行可視化的圖形建模,可以自動生成XML格式的DF文件。
1 方案概述
在軟件開發(fā)過程中經(jīng)常會遇到這樣的問題:由于頂層POP的變化和調(diào)整,圖形文件的通用屬性都需要進行大量的修改,例如字體、顏色、線型。每一次的變更都會帶來繁瑣的重復勞動和引入人為錯誤,影響了顯示軟件的研制效率。
而基于ARINC 661的顯示子系統(tǒng)一般采用MBD模式進行開發(fā),其圖形模型使用工具進行搭建,而其工程文件是符合語法規(guī)范的XML文件。所有的圖形組件,包括其屬性,都以符合XML語法規(guī)范的格式進行定義。那么,是否可以通過解析圖形文件,當頂層POP輸入變更的時候,快速實現(xiàn)通用組件屬性的調(diào)整和修改?本論文正是基于這個出發(fā)點,通過整理和分析開發(fā)過程中遇到的實際問題,應用軟件工程方法,最終完成對于該工具軟件的實現(xiàn)
2 工具需求分析
圖1 軟件用例圖
提供一個文件選擇器,能夠?qū)肽繕藞D形文件。基于SCADE Display的圖形文件以sgfx為擴展名稱的,但其本質(zhì)是XML文件,導入該圖形文件以后,可以按照標準XML格式進行解析;能夠讀取并且分析XML文件,按照固有格式進行解析,將原有的樹形結(jié)構(gòu)的文件轉(zhuǎn)化為二維平面格式,并且在軟件中進行顯示;能夠?qū)λ械腤idget按照特定的屬性進行排序;能夠?qū)D形文件中所有的字體字號進行批量修改;能夠?qū)D形文件中所有的顏色進行批量修改;能夠?qū)D形文件中的流線寬度進行批量修改;能夠?qū)λ械腤idgetID進行批量修改,這個功能主要是考慮到后期的系統(tǒng)集成時的需要;對上述需求繪制如圖1的軟件用例圖。
通過對上述用例的繼續(xù)細化,形成以下的詳細功能點:
●功能1:系統(tǒng)應提供一個文件選擇器,該選擇器可以定位到磁盤中的任何位置,指定目標文件之后,獲取文件句柄。其前置條件為磁盤未被讀保護,后置條件為工具獲得文件句柄和文件名稱;
●功能2:通過獲得的文件句柄,系統(tǒng)能夠?qū)ξ募M行讀取操作。以XML文件為例,工具能夠獲得根節(jié)點信息,根節(jié)點信息本質(zhì)上是一個文件指針,當其不為空時,可以依次操作連續(xù)的地址空間;
●功能3:應按照XML Schema定義的過程依次讀取所有子節(jié)點信息,Schema中定義了樹形的具體結(jié)構(gòu),并且都是統(tǒng)一的;
●功能4:能夠?qū)⑺凶x取到的Widget和Widget屬性信息顯示在界面當中,顯示界面應該是二維表格形式的,表格行首顯示屬性名稱,列首顯示W(wǎng)idget名稱,其他部分顯示具體屬性值;
●功能5:點擊屬性按鈕之后,能夠?qū)傩灾颠M行分類排序;
●功能6:對所有圖形中出現(xiàn)的文字進行批量字號修改。這是出于CUI一致性的考慮,在軟件研制過程中,不可避免要進行整體風格的變更,對所有字號進行統(tǒng)一批量修改。這就降低了可能出錯的概率;
●功能7:對所有的組件顏色屬性進行修改。為了保證全機顯示風格的一致性,對于特定顏色,比如說綠色,有一個定義好的RGB值,或者是一個Index值;
●功能8:批量修改WidgetID。這個功能是非常有必要的,主要是在后期系統(tǒng)集成的時候,由于在開始初始,每個子系統(tǒng)都單獨成文件,編號未進行全系統(tǒng)的統(tǒng)一分配。在系統(tǒng)集成的過程中就需要進行矢量增益,該功能可以解決這個問題;
●功能9:對所有其他屬性進行批量修改,可以以下拉框和屬性設置文本區(qū)域的方法來實現(xiàn)。
3 工具概要設計
上述的圖2為系統(tǒng)類圖,類圖描述了系統(tǒng)的軟件方面的靜態(tài)結(jié)構(gòu),主要是定義每一個軟件組件之間的調(diào)用關系,包含關系和層級。在這一階段可以給出大致的類的屬性和方法,但不需要對操作進行太具體的定義和分析。
4 總結(jié)
該工具軟件實現(xiàn)了對于圖形模型的解析,將樹形的圖形組件結(jié)構(gòu)轉(zhuǎn)化為二維的表格形式,方便對于圖形模型的評審;提供了自動分析功能,快速發(fā)現(xiàn)模型中的錯誤和缺陷;提供了對于通用組件屬性的批量修改功能;記錄了所有的變更歷史,方便進行錯誤跟蹤和版本控制。通過該工具,實現(xiàn)了每一個版本的快速迭代,并且極大減少了人為引入錯誤的概率。
【參考文獻】
[1]COCKPIT DISPLAY SYSTEM INTERFACES TOUSER SYSTEMS ARINC SPECIFICIATION 661-4[S].2010:396.
[責任編輯:田吉捷]