亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VAPS 的代碼控件在機載顯控軟件的應用

        2023-05-17 03:16:18余正風張燕平秦正運
        電子技術與軟件工程 2023年5期
        關鍵詞:圖符圖形符號控件

        余正風 張燕平 秦正運

        (中國直升機設計研究所 江西省景德鎮(zhèn)市 333000)

        在如今航空技術突飛猛進的發(fā)展下,航空電子系統愈加復雜,綜合顯示控制系統的多功能顯示器作為顯示儀表的迭代品,不僅需要實時給飛行員提供導航、飛行參數和其他關鍵信息的顯示,還需要將復雜的飛行信息用規(guī)范的可視化圖表集成顯示,有助于飛行員在人機交互中快速獲取信息,從而有效的操縱整個系統。

        VAPS 作為常用于航空飛行器顯示端輔助開發(fā)的圖形界面設計工具,通過強大的GUI 編輯器對需設計的顯示圖符進行建模作為一個個控件,形成圖符庫;然后根據具體需求配置圖符控件的屬性,添加相應的邏輯,從而組建出完整的畫面。但在使用過程中,因為對顯示要求的不斷提升,基礎圖符控件已然捉襟見肘,需要通過增加代碼控制的方式對基礎圖符進行二次開發(fā),使圖符控件的功能滿足設計的顯示需求,也使圖符庫使用起來更加高效、便捷,減少開發(fā)工作量。

        1 VAPS XT介紹

        VAPS XT 是由加拿大Presagis 公司研發(fā)的一款圖形界面設計工具,廣泛應用于航空、車輛儀表等高性能電子設備應用的設計開發(fā)。VAPS XT 擁有良好的圖形用戶界面,用戶可以利用工具提供的控件以及設定行為來快速設計儀器儀表圖形,且提供了自定義控件的能力,具有便捷、靈活、可視化等優(yōu)點;并且VAPS XT 支持UDP、TCP、共享內存等數據通道機制與外界進行數據交互。在設計結束后,可通過代碼生成器將設計的圖形轉換成C++代碼,無需改動即可以應用到不同平臺上去。VAPS 已經在F-22、NH90 等機型以及國內多型號直升機的座艙顯示設備中應用。

        2 代碼控件在機載顯控軟件的應用

        2.1 架構設計與系統實現

        如圖1 所示,機載顯控軟件分為用戶系統(User Application, UA)和座艙顯示系統(Cockpit Display System,CDS),UA 作為控制端,用于控制畫面顯示,接收CDS 反饋的人機交互指令,CDS 作為顯示終端,接收來自UA 包括畫面ID、圖符驅動數據等信息,二者通過總線或共享內存的方式進行交互。其中CDS 分為數據通訊和畫面顯示兩部分,數據通訊負責數據收發(fā)和處理,VAPS 主要用于畫面顯示部分的開發(fā),并且采用nCOM 交互數據,在使用時通過構建數據描述文件(Data Description File, DD)將接收的通訊數據按照VAPS 規(guī)定的使用格式進行處理,從而在VAPS 工程中關聯畫面數據來驅動畫面的動態(tài)顯示。

        圖1: 機載顯控軟件架構

        VAPS 進行畫面開發(fā)分為3 個步驟。

        2.1.1 構建圖形符號形成圖形符號庫

        使用VAPS 中包含的圖形、字符、儀表、數據和計算控件進行HMI 的圖形化開發(fā),將這些基本圖元部件按需求組合,通過建立圖形符號對象的輸入輸出,關聯內部控制邏輯,形成更復雜的圖形符號;設計好的圖形符號保存在圖形符號庫內,為畫面顯示的開發(fā)實現提供支持,使構成的整個畫面更加規(guī)范。

        2.1.2 實現畫面布局和內部邏輯

        在VAPS XT 中新建一個Format 對象,根據設計需求,從圖形符號庫選取合適的圖形符號,合理對圖形符號分配位置和配置屬性,完成整個畫面布局,通過數據流(Data Flow)中使用數值比較、邏輯判斷等VAPS 提供的語句,對各個圖符的輸入輸出數據進行處理,實現畫面中圖符的狀態(tài)控制。

        2.1.3 通信數據的I/O 處理

        由于UA 端和CDS 端的硬件或者軟件配置的不同(例如系統大小端序不同、結構體對齊方式不同等),nCom 提供DD 文件作為數據接口,通過構建Data Sender/Receiver 對象,實現應用間的通訊。CDS 端接收通訊數據并解析處理,解析后的數據以DD 的格式通過nCom 傳遞給構成畫面的每個圖符模型的參數,驅動畫面中每個圖符的顯示。

        2.2 代碼控件實現和應用

        2.2.1 代碼控件實現

        如表1 所示,在VAPS XT 中依次點擊“File”、“NEW...”出 現 彈 窗,點 擊 第 三 欄“Advanced Objects”,選擇“Class”,設置名稱“Name”和路徑“Location”,點擊“確定”,從而創(chuàng)建類,此時出現類定義窗口,根據要實現的需求選擇基類,然后保存。

        表1: 基類列表

        在“Project View”中找到此工程,右鍵選擇生成代碼,生成框架代碼,根據建立Class 工程時選擇的路徑,找到其make 文件下的sln 文件,使用Visual Studio 2010 開發(fā)工具打開。在目錄中會生成三種分別以vxtCls*Plugin,vxtBaseCls*,vxtCls*命名的3 個類的文件,vxtCls*Plugin 為VAPS 圖形設計界面上使用,在初始化、構建VAPS 屬性設置欄等功能上需要調用其他2種類,vxtBaseCls*和vxtCls*類是設計界面和最終執(zhí)行文件中需要的,其中vxtBaseCls*為vxtCls*的基類,主要進行獲取屬性信息、創(chuàng)建對象等一些操作。

        我們需要在派生類vxtCls*中的各個函數中按需求編寫相應功能,從而實現代碼控件。如Calculator 類只需要在派生類vxtCls*中的函數s_vCalculate 中添加我們實現功能的代碼,并在vUpdate 函數進行調用此函數即可;GrObject 類則需要在vDraw、pGetSelectObjet、vCalculateExtent 等函數中添加代碼。

        由于VAPS 沒提供文本控件的相關的設計界面,如果設計文本類的代碼控件,需要我們手動添加相關的類,因此創(chuàng)建GrObject 類,刪除工程文件中生成的vxtBaseCls*和vxtCls*類文件,手動添加sqx*類和vxtCls*Plugin 類文件。如圖2 所示。

        圖2: 文本控件工程目錄

        在實現文本控件的功能時,VAPS 底層開放了部分源碼,并提供了文本編輯類sqxTextCommon 可以進行使用,它可編輯繪圖的基本屬性,如顏色、大小、對齊方式等等,我們可以通過從此類派生出子類,在子類中實現我們想要的功能,以供vxtCls*Plugin 類使用。下面以Calculator 類的文本控件“WideTextOut 控件”為例,實現一個計算輸入字符串數據長度的功能,在vCalculateExtent 中加入計算文本的寬度和高度的代碼,然后在vUpdateTextExtent 中調用vCalculateExtent,實現代碼如下所示:

        編寫完文件后保存。我們需要分別編譯StaticOGL、release 兩個配置。StaticOGL 會編譯出.lib文件,給window 下的工程文件鏈接使用;release 會編譯出.dll 文件,供VAPS 設計界面使用,給開發(fā)人員在設計時提供預覽功能。編譯需要新建bat 文件并運行,bat 文件內容如下所示:

        編譯生成的控件“WideTextOut”相比VAPS 自帶的基礎控件“WideText”,復用其全部屬性并多生成兩個Float 類型的輸出屬性,分別為文本寬度(TextWidth)和文本高度(TextHeight),在使用VAPS 繪制特定場景下不定長的顯示文本時,便可應用該代碼控件,實現對文本長度和寬度的控制,達到預期的顯示效果。如表2 所示。

        表2: WideTextOut 控件屬性列表

        2.2.2 代碼控件應用

        基于代碼控件的實現,我們可以在開發(fā)過程中實現更多的功能。在這里以一個示例進行闡述:需要在畫面中設計一個滾動標語進行循環(huán)滾動顯示UA 端發(fā)送的提示信息。在VAPS 的基礎控件不具備獲取傳入變長字符串長度的情況下,無法控制滾動標語的勻速運行,從而影響觀感,因此需要運用前面描述的文本控件,將UA端傳輸至CDS 端的字符串數據的長度獲取,作為一個輸出值供設計滾動標語的控件使用。

        在VAPS XT 中依次點擊“File”、“NEW...”,選擇第一欄“Objects”中的“Graphical Object”,生成一個未添加任何屬性的“滾動標語控件(Rolltitles 控件)”,在“Properties”界面根據設計需求添加屬性如表3 所示。

        表3: Rolltitles 控件屬性列表

        設置好屬性后,在“Implementation View”窗口依次拖入VAPS 工具自帶的對象“RectWidthHeight”、“StencilGroup”、“SignalGenerator”、“sliderHoriz”以及剛剛生成的控件“WideTextOut”。了解它們的作用:“RectWidthHeight”設置文本顯示的窗口大小并提供給“StencilGroup”,“StencilGroup”將超出窗口大小的顯示內容剪切掉,“sliderHoriz”控制整個文本在設置的窗口內進行滾動,“SignalGenerator”用于計算和控制每次文本滾動的運動頻率,“WideTextOut”負責給“SignalGenerator”輸入文本長寬。如圖3 所示。

        圖3: 模型視圖

        設置數據流(Data Flow)關聯以上各個對象,然后“Rolltitles 控件”將設置的字符大小屬性和UA 端發(fā)送的字符串傳入WideTextOut 控件,WideTextOut 控件通過代碼實現字符串長度的獲取,結合字符大小計算出整個標語的長度,再作為TextHeight 屬性通過數據流(Data Flow)關聯給Rolltitles 控件,如此便可以將其用于SignalGenerator 的value 值計算,控制滾動的速率保持穩(wěn)定。如圖4 所示。

        圖4: 數據流控制

        完成全部數據流(Data Flow)的設置,Rolltitles 控件至此就完成了設計,可以拖動到畫面需要顯示的位置,通過關聯外部DD 數據或者直接輸入字符串進行使用,點擊“play”能夠預覽運行效果。如圖5 所示。

        圖5: Rolltitles 控件的使用

        3 結束語

        代碼控件在機載顯控軟件開發(fā)的應用,已得到充分的驗證,其“基于模型”和“基于代碼”的組合使用,使得生成的代碼控件較之基礎控件可以更全能的應用于圖符圖表設計,降低了開發(fā)難度和維護成本,提升了功能實現的便捷性,同時也給自定義圖符圖表控件增加了擴展性,可以用更直觀更全面的方式呈現畫面,進而提高飛行員的工作效率和飛行安全性。

        猜你喜歡
        圖符圖形符號控件
        GB/T《流體傳動系統及元件 圖形符號和回路圖 第1部分:圖形符號》征求意見
        液壓與氣動(2020年2期)2020-02-18 12:13:13
        川鄂鹽道白菜柱頭圖形符號意義分析
        關于.net控件數組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        手機界面中圖形符號的發(fā)展趨向
        新聞傳播(2015年11期)2015-07-18 11:15:04
        計算機輔助飛機制造協調路線圖設計研究
        CAXA用戶圖庫在沖壓模具設計中的應用
        符號數獨
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        壓力容器法蘭的參數化繪制方法
        電子圖板的圖庫技術在化工設備設計中的應用
        日本一本久道| 久久精品夜色噜噜亚洲a∨| 巨人精品福利官方导航| 成人免费视频在线观看| 2021年性爱喷水视频| 日本一区二区三区精品免费| 亚洲国产一二三精品无码 | 少妇高潮惨叫久久久久久| 国内精品视频成人一区二区| 国产成人亚洲系列毛片| 亚洲国产aⅴ成人精品无吗| 中文亚洲av片在线观看不卡| 亚洲男人在线无码视频| 可以直接在线看国产在线片网址 | 偷窥偷拍一区二区三区| 免费人成小说在线观看网站| 三上悠亚久久精品| 99亚洲乱人伦精品| 久久久熟女一区二区三区| 精品国产青草久久久久福利| 亚洲av无码成人精品区天堂 | av黄片免费在线观看| 在线视频色系中文字幕| 午夜性无码专区| 国产成人精品日本亚洲语音1| 精品国产精品久久一区免费| 亚洲人成网站在线播放2019| 越南女子杂交内射bbwbbw| 午夜无码片在线观看影院y| 羞羞色院99精品全部免| 99国产精品久久久蜜芽| 久草午夜视频| 日本午夜a级理论片在线播放| 精品久久久久久无码中文野结衣 | 久久久精品少妇—二区| 亚洲中文字幕无码天然素人在线| 久久精品国产亚洲av成人| 免费的黄网站精品久久| 亚洲国产成人极品综合| 理论片午午伦夜理片影院| 无码三级国产三级在线电影|