国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VAPS XT 的座艙顯示設(shè)計(jì)與實(shí)現(xiàn)

2019-04-26 05:22秦正運(yùn)葛晨程新滿
電子技術(shù)與軟件工程 2019年6期
關(guān)鍵詞:圖符圖形符號(hào)座艙

文/秦正運(yùn) 葛晨 程新滿

座艙顯示(CDS: Cockpit Display System)作為與飛行員交互的第一接口,集成了飛機(jī)系統(tǒng)狀態(tài)顯示、飛行指令引導(dǎo)、偵察告警、火力攻擊等重要功能,具有信息量大,內(nèi)容顯示復(fù)雜等特點(diǎn)。目前,國(guó)內(nèi)對(duì)座艙顯示的開發(fā)主要是采用C 語言使用OpenGL 編程實(shí)現(xiàn),具有工作量大、開發(fā)周期長(zhǎng)、開發(fā)效率低、后期維護(hù)難、顯示效果差等缺點(diǎn)。

針對(duì)如上特點(diǎn),本文引入了可視化的圖形開發(fā)工具VAPS 進(jìn)行座艙顯示設(shè)計(jì),以此來提高顯示的質(zhì)量,縮短開發(fā)周期。

1 VAPS介紹

VAPS XT 是由加拿大Presagis 公司研發(fā)的人機(jī)界面設(shè)計(jì)工具,專用于航空、車輛儀表等高性能電子設(shè)備應(yīng)用的設(shè)計(jì)開發(fā)。VAPS XT擁有良好的用戶界面,用戶可以利用其提供的控件來快速設(shè)計(jì)所需要的儀表圖形,具有快速、可視化等優(yōu)點(diǎn);并且VAPS XT 支持UDP、TCP、共享內(nèi)存等方式和外界進(jìn)行數(shù)據(jù)交互。在設(shè)計(jì)結(jié)束后,可通過代碼生成器將設(shè)計(jì)的圖形轉(zhuǎn)換成C++代碼,無需改動(dòng)即可以應(yīng)用到各個(gè)平臺(tái)上去。VAPS 已經(jīng)在NH90、F-22、V-22等多個(gè)系列的飛機(jī)座艙顯示設(shè)備。

2 架構(gòu)設(shè)計(jì)

座艙顯示(CDS)和用戶系統(tǒng)(UA)兩部分構(gòu)成了座艙顯示控制軟件,CDS 作為顯示終端,接收來自UA 的畫面數(shù)據(jù)信息,這些信息包括畫面號(hào)、各個(gè)圖符的驅(qū)動(dòng)數(shù)據(jù)等;CDS 向UA 反饋用戶的人機(jī)接口的交互指令信息,用于UA 控制畫面信息。

CDS 軟件主要分為兩個(gè)部分:畫面顯示和數(shù)據(jù)通訊。

VAPS 主要用于CDS 的顯示畫面的開發(fā)。首先VAPS 通過一系列強(qiáng)大的GUI 編輯器對(duì)顯示圖符進(jìn)行建模,形成圖符庫(kù);然后根據(jù)設(shè)計(jì)的具體需求配置圖符的屬性,添加相應(yīng)的邏輯,從而組建完整的畫面。圖符庫(kù)的使用可以提高圖符控件的標(biāo)準(zhǔn)化程度,減少開發(fā)工作量,提高開發(fā)效率。

VAPS 工程與通訊應(yīng)用的數(shù)據(jù)交互采用nCOM 進(jìn)行。為了能夠使用nCOM,必須構(gòu)建數(shù)據(jù)描述文件(DD:Data Description File),并將外部應(yīng)用的數(shù)據(jù)與之映射。座艙顯示端將總線上接收的數(shù)據(jù)按照DD 文件規(guī)定的格式進(jìn)行處理,才能被VAPS 工程所用。因此,我們需要根據(jù)顯示畫面的數(shù)據(jù)信息來制定DD 文件,導(dǎo)入VAPS 工程,并與畫面數(shù)據(jù)關(guān)聯(lián),從而驅(qū)動(dòng)畫面的動(dòng)態(tài)顯示。如圖1所示。

通過對(duì)座艙顯示軟件的功能需求分析,座艙顯示軟件主要分為3 個(gè)部分:

(1)設(shè)計(jì)圖形符號(hào)庫(kù),從中選擇相應(yīng)的圖形符號(hào)控件,設(shè)置其屬性,構(gòu)成畫面。

(2)根據(jù)畫面交互的要求,設(shè)計(jì)DD 文件。

(3)通信數(shù)據(jù)的I/O 處理。

3 系統(tǒng)實(shí)現(xiàn)

3.1 圖形符號(hào)及畫面開發(fā)

3.1.1 構(gòu)建圖形符號(hào)

標(biāo)準(zhǔn)圖形符號(hào)設(shè)計(jì)為CDS 的基本圖形接口,CDS 的主題設(shè)計(jì)過程可以簡(jiǎn)單的描述為圖形符號(hào)的結(jié)構(gòu)和屬性設(shè)計(jì),這實(shí)際上是為CDS 的設(shè)計(jì)引入了開放的開發(fā)模式,即隨著圖形符號(hào)部件的配置不同,座艙顯示可以呈現(xiàn)出不同的內(nèi)容。標(biāo)準(zhǔn)圖形符號(hào)庫(kù)的構(gòu)建和使用為CDS 端畫面顯示的開發(fā)實(shí)現(xiàn)提供支持。CDS 端畫面由各種圖形符號(hào)構(gòu)成,按照相關(guān)標(biāo)準(zhǔn)設(shè)計(jì)的圖形符號(hào),使構(gòu)成的整個(gè)畫面更加規(guī)范,同時(shí)符合標(biāo)準(zhǔn)的圖符庫(kù)的構(gòu)建和圖符復(fù)用,能夠提高畫面開發(fā)效率,形成家族化的畫面顯示風(fēng)格,積累顯示系統(tǒng)開發(fā)的資產(chǎn),奠定后續(xù)開發(fā)和改進(jìn)的基礎(chǔ)。

VAPS 中包含大量圖形、字符、儀表、數(shù)據(jù)和計(jì)算控件,圖形符號(hào)設(shè)計(jì)就是通過VAPS提供的這些部件進(jìn)行HMI 的圖形化開發(fā),將這些基本圖元部件自由的組合,并通過建立圖形符號(hào)對(duì)象的輸入輸出,關(guān)聯(lián)內(nèi)部控制邏輯,形成更復(fù)雜的圖形符號(hào);設(shè)計(jì)好的圖形符號(hào)保存在圖形符號(hào)庫(kù)內(nèi),在設(shè)計(jì)畫面時(shí),將其從庫(kù)中拖拽到設(shè)計(jì)界面,設(shè)置好圖形符號(hào)的輸入輸出數(shù)據(jù),即可使用。

3.1.2 畫面布局

在VAPS XT 中建立一個(gè)Format 對(duì)象,從圖形符號(hào)庫(kù)選取所需的圖形符號(hào),根據(jù)用戶需求,合理分配圖形符號(hào)位置,配置圖形符號(hào)屬性,實(shí)現(xiàn)整個(gè)畫面布局。

3.1.3 實(shí)現(xiàn)內(nèi)部邏輯

VAPS XT 內(nèi)部邏輯是通過數(shù)據(jù)流(Data Flow)實(shí)現(xiàn)的,在數(shù)據(jù)流中可以使用數(shù)值比較、邏輯判斷等VAPS 提供的語句,對(duì)各個(gè)圖符的輸入輸出數(shù)據(jù)進(jìn)行邏輯判斷,實(shí)現(xiàn)圖符的狀態(tài)控制。

3.1.4 畫面的輸入輸出

畫面數(shù)據(jù)的輸入輸出是通過DD 文件實(shí)現(xiàn)的(設(shè)計(jì)方法見3.2 節(jié)),在設(shè)計(jì)好DD 文件之后,將其導(dǎo)入到VAPS 工程中,VAPS 工程將其視為一種數(shù)據(jù)結(jié)構(gòu)類型,通過創(chuàng)建Data Sender/Receiver 對(duì)象,各創(chuàng)建一個(gè)數(shù)據(jù)接收和發(fā)送對(duì)象,這兩個(gè)對(duì)象同時(shí)映射到同一個(gè)內(nèi)存空間,Data Sender 向其發(fā)送數(shù)據(jù),Data Receiver 從內(nèi)存接收數(shù)據(jù)。將這兩個(gè)對(duì)象加入到畫面中與畫面進(jìn)行關(guān)聯(lián),則完成用戶到畫面的接口操作。3.1.5 畫面測(cè)試

在畫面設(shè)計(jì)完成后,需要對(duì)畫面的顯示邏輯、接口通訊進(jìn)行測(cè)試。通過設(shè)置Data Sender 對(duì)象的各個(gè)元素的值,畫面便可以通過Data Receiver 對(duì)象接收到數(shù)據(jù),從而實(shí)現(xiàn)對(duì)畫面進(jìn)行測(cè)試。如圖2所示。

3.2 DD文件定義

為了使兩個(gè)或多個(gè)VAPS XT 設(shè)計(jì)的應(yīng)用能夠互相交聯(lián),或者使VAPS XT 構(gòu)建的應(yīng)用和外部應(yīng)用交聯(lián),VAPS XT 提供了nCom 接口進(jìn)行通訊。nCom 提供了DD 文件作為數(shù)據(jù)接口,通過構(gòu)建Data Sender/Receiver 對(duì)象,來實(shí)現(xiàn)應(yīng)用間的通訊。

因此,DD 文件可以作為通訊數(shù)據(jù)與畫面顯示的通道。CDS 端接收總線的通訊數(shù)據(jù),并解析處理,將解析后的數(shù)據(jù)以DD 的格式通過nCom 傳遞給構(gòu)成畫面的每個(gè)圖符模型的參數(shù),驅(qū)動(dòng)畫面中每個(gè)圖符的顯示。

DD 文件本質(zhì)上是XML 格式文件,文件語法遵從XML,并在其基礎(chǔ)上有所簡(jiǎn)化,一個(gè)簡(jiǎn)單的DD 文件如下:

表1

圖1:座艙顯示架構(gòu)

圖2:VAPS XT 畫面設(shè)計(jì)流程

DD 文件必須以dataDescription 為根節(jié)點(diǎn),其屬性名字必須與DD 文件名一致,如上述文件為Float50.dd,文件的dataDescription 節(jié)點(diǎn)的屬性必須為Float50;field 為子節(jié)點(diǎn),每個(gè)field 子節(jié)點(diǎn)都標(biāo)示一個(gè)變量;每個(gè)field 節(jié)點(diǎn)都包換三個(gè)子節(jié)點(diǎn)name、type、cardinality,這三個(gè)子節(jié)點(diǎn)的元素分別標(biāo)示變量名、變量類型、變量維數(shù)。值得一提的是,DD 文件不支持二維數(shù)組和結(jié)構(gòu)體,如果想使用結(jié)構(gòu)體,則必須采用DD 文件嵌套的方式。

3.3 通信數(shù)據(jù)的I/O處理

CDS 端顯示的數(shù)據(jù)從根本上來說是各個(gè)航電子系統(tǒng)的數(shù)據(jù),這些數(shù)據(jù)是UA(User Application)端從總線上獲取的,然后再經(jīng)過處理通過總線或者共享內(nèi)存的方式傳輸?shù)紺DS 端。由于UA 端和CDS 端的硬件或者軟件配置的不同(例如系統(tǒng)大小端序不同、結(jié)構(gòu)體對(duì)齊方式不同等),CDS 通訊應(yīng)用需要把接收到的通訊數(shù)據(jù)再一次處理,轉(zhuǎn)換成VAPS工具中的DD 文件結(jié)構(gòu)。

在VAPS XT 中,DD 文件最終轉(zhuǎn)換為用戶I/O 緩存,可以通過DD 的名字來索引到I/O 緩存的句柄。將CDS 處理后的數(shù)據(jù)復(fù)制到I/O 緩存里,VAPS XT 便可以獲取數(shù)據(jù)到從而驅(qū)動(dòng)畫面顯示。VAPS XT 分別為C++和C 語言分別提供了索引DD 共享內(nèi)存的方式,在這里我們采用的是C++方式。

VAPS XT為我們提供了一個(gè)vxtRTUserIntegrationCallbacksI 的基類,通過設(shè)計(jì)這個(gè)基類的派生類可以完成I/O 數(shù)據(jù)緩存等用戶接口的初始化。此基類提供了4 個(gè)虛函數(shù)需要實(shí)例化,具體見表1。

4 結(jié)束語

VAPS XT 工具的使用從根本上改變了座艙顯示開發(fā)方法,使得設(shè)計(jì)工作主要集中在構(gòu)建畫面和數(shù)據(jù)接口上,省去了大量圖形的編程開發(fā)與調(diào)試工作,也可以很方便的將設(shè)計(jì)過程中的文件移植到不同的環(huán)境中去。VAPS XT工具的使用使得需求和設(shè)計(jì)緊密結(jié)合,快速高效迭代,從而優(yōu)化了設(shè)計(jì)過程,降低開發(fā)成本。

猜你喜歡
圖符圖形符號(hào)座艙
開放式數(shù)字座艙軟件平臺(tái)IndiGO
NDT推出面向下一代智能座艙應(yīng)用的壓感觸控解決方案
GB/T《流體傳動(dòng)系統(tǒng)及元件 圖形符號(hào)和回路圖 第1部分:圖形符號(hào)》征求意見
未來民機(jī)座艙顯示控制系統(tǒng)初探
川鄂鹽道白菜柱頭圖形符號(hào)意義分析
中國(guó)傳統(tǒng)圖形符號(hào)與現(xiàn)代標(biāo)志設(shè)計(jì)的融合
手機(jī)界面中圖形符號(hào)的發(fā)展趨向
論“坡芽歌書”符號(hào)形象的審美意蘊(yùn)
計(jì)算機(jī)輔助飛機(jī)制造協(xié)調(diào)路線圖設(shè)計(jì)研究
壓力容器法蘭的參數(shù)化繪制方法
贵南县| 绥阳县| 思茅市| 纳雍县| 吉首市| 新密市| 清河县| 兴安县| 张北县| 武穴市| 隆林| 兰西县| 保山市| 南开区| 浮山县| 涞水县| 额尔古纳市| 延庆县| 左云县| 浦江县| 林西县| 英超| 天峻县| 昂仁县| 晴隆县| 金乡县| 广德县| 嫩江县| 志丹县| 涟水县| 奉节县| 开鲁县| 利津县| 观塘区| 沁阳市| 南木林县| 运城市| 定襄县| 南开区| 静乐县| 丰原市|