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