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

?

五性綜??梢暬D形框架開發(fā)與應用

2016-02-22 04:39:06江志煒
航空標準化與質量 2016年6期
關鍵詞:圖元畫布鼠標

江志煒

(中航工業(yè)綜合技術研究所,北京 100028)

五性綜??梢暬D形框架開發(fā)與應用

江志煒

(中航工業(yè)綜合技術研究所,北京 100028)

基于五性綜保相關的仿真建模軟件需求,參考了國外一些著名的建模軟件,借鑒了WPF(Windows Presentation Foundation,用戶界面框架)的圖形化技術,采用面向對象模式設計,實現了支持仿真平臺圖像化建模的圖形框架。

五性綜保;可視化;仿真;圖形框架;畫布;圖元

隨著科學技術的進步,現代裝備變的越來越復雜,如何提高裝備的戰(zhàn)備完好性(或者可用性),需要對裝備的全壽命周期內的可靠性、維修性、測試性、安全性、保障性(簡稱五性綜保)信息進行收集、分析和預測。

利用模型仿真方法,借助計算機技術,可以更加準確地得到五性綜保不同類型的指標分析數據,為裝備的設計、研發(fā)、使用提供正確的指導,比傳統(tǒng)的數學解析方法得到的數據更加精確有效,同時工作效率提高。

國外有很多基于語言建模的仿真工具,如使用Modelica、Altarica語言編寫代碼生成模型。它們的缺點:用戶需要具備語言編程的能力,在編程過程中大量的輸入,很容易導致語法出錯。而圖形化建模,利用計算機可視化技術,對工程中的設備進行抽象,轉化為屏幕上的圖形,使得用戶建模更加簡單、直觀、高效。

我們參與開發(fā)的五性綜保仿真工具,有很多都實現了具有可視化建模的能力,例如測試性建模與分析工具通過圖形化進行對信號流建模,效能仿真平臺使用網絡圖的建模方式進行保障任務建模;安全性仿真與分析平臺基于圖形模塊化實現Altaric建模等等。

1 總體結構

圖形框架以高效、快速、穩(wěn)定,并且能夠支持不同開發(fā)環(huán)境為開發(fā)目標??傮w劃分為3大塊,核心框架(GraphicEditor)、基于.Net4.0的圖形擴展(GraphicEditorExtension)以及圖形持久化(Serializer)。如圖1所示。

1.1 核心框架

圖形框架的核心,包含畫布、圖元,封裝了圖形框架最常用的功能,提供具有擴展功能的接口。作為一個獨立的基礎框架,通過高層編程抽象,使得開發(fā)人員在不同開發(fā)環(huán)境下都能進行快速開發(fā)。a

圖1 總體結構

1.2 圖形擴展

圖形框架,在.Net4.0的基礎上對圖形框架進行了常用擴展,實現了IPanelOwner類,豐富了多種圖元,及配套實現各個圖元的測量、繪畫、新增處理,提供基礎菜單剪切、復制、粘貼菜單,刪除功能。

1.3 圖形持久化

定義了圖和圖元的持久化接口。

1.4 畫布

畫布(DrawingPanel)作為圖形框架最重要的組成,對布局、繪畫、交互操作進行協(xié)調管理,同時通過開放接口,業(yè)務系統(tǒng)可以根據實際需求進行擴展。

1.5 圖元

作為畫布上可顯示元素,每個圖元都繼承自VisualElement(可操作圖元抽象類),VisualElement作為繪圖對象,所有的布局、繪畫、焦點、事件都是針對它來進行,同時VisualElement也是可操作的對象,如選擇、拖動、拉伸操作。

布局、繪畫、交互、事件、持久化和圖形擴展見本文后續(xù)內容。

2 核心框架分層

為了簡化和清晰圖形框架的實現邏輯,對圖形框架的內部邏輯進行歸類和劃分,圖形框架從設計上分為布局層、繪畫層、交互層,層次結構如圖2。

圖2 層次結構

2.1 布局層

在3層結構中,布局層處于最底層,當布局層接收到布局請求,通過對圖元進行測量、排列,生成布局信息,然后把布局信息通知到繪畫層進行繪制。

這一層的布局計算由布局引擎(GraphicLayout Engine)來實現,布局引擎在測量圖元的過程中通過測量工廠獲取相應的圖元測量器(IMeasure),然后根據測量器來計算圖元的尺寸,最終決定畫布的尺寸范圍。布局引擎是框架內部類,不對外公開。

圖形框架不提供任何滾動支持,當觸發(fā)布局,畫布尺寸發(fā)生變化,通過事件通知外部,由外部來實現滾動。

2.2 繪畫層

加載Graphic模型文件或外部操作導致Graphic模型的布局發(fā)生變化,框架通知繪畫層進行重新繪制。

繪畫層根據布局和樣式信息,將圖元繪畫到畫板上。繪畫層根據功能把繪畫劃分為3類,圖元繪畫(IRender)、選擇過程繪畫(ISelectingRender)、改變尺寸繪畫(ISizeElementRender)。

2.2.1 圖元繪畫

圖形框架定義了IRender接口,負責協(xié)調和通知圖元繪制,具體的繪畫過程由外部應用程序根據自身采用的技術來實現,比如WPF可以通過DrawingContext或者Graphics進行繪畫。圖形化建模大部分情況下都使用到矩形、橢圓、直線,在GraphicEditorExtension層中對上述3種圖元進行了繪畫封裝(RectangleRender、EllipseRender、PolyLineRender),同時業(yè)務系統(tǒng)可以進一步對其進行擴展。

Render()方法針對圖元外觀進行繪畫,其中繪畫要素包括位置、尺寸、形狀、背景色、文本、邊框、邊框寬度等等。Render()方法的接收參數為IGraphicContext(繪圖上下文)、 VisualElement(繪畫圖元),從接收參數可見圖元并非直接繪制到DrawingPanel上,而是繪制到IGraphicContext對象中。

IGraphicContext由IPanelOwner統(tǒng)一創(chuàng)建,DrawingPanel只負責管理繪制及刷新。派生類圖元可以重寫Render()方法來實現個性化繪制。

RenderSelectedAdorner()方法在圖元被選中時調用,用于繪制帶裝飾器的外觀,繪制原理與Render()方法一致。

RenderForDraging()方法用于繪制圖元拖動效果,比Render()方法多了位置參數。

2.2.2 選擇過程繪畫

選擇過程繪畫是對畫布效果的一種繪畫,而圖元選中狀態(tài)繪畫是針對圖元,兩者響應的操作行為是不一樣的。選擇過程繪畫是按住鼠標,然后框選圖元的過程,當畫布接收到LeftMouseDown事件,記錄當前鼠標位置Point1,及鼠標Down狀態(tài),接著鼠標移動,響應MouseMove事件,同時記錄鼠標移動的位置,DrawingPanel通過繪畫工廠(IRenderFactory)取到選擇繪畫器進行選擇過程效果繪畫。GraphicEditorExtension實現了ISelectingRender類,通過繪制矩形的方式把選中的圖元“框”選起來。

2.2.3 改變圖繪畫

對選中的一個或多個圖元進行拉伸,分3步進行繪制。首先遍歷所有被選中的圖元,并詢問它們的尺寸,計算選中區(qū)域的位置及尺寸,然后調用方法Render()繪制出帶有選中狀態(tài)修飾的矩形框;接著按照鼠標拖動的方向及距離,調用方法RenderSizing()來繪制選中區(qū)域的邊框;最后松開鼠標,按選中區(qū)域的縮放比例,使用RenderSizingPointElement()方法同步所有被“框”圖元的尺寸及位置。GraphicEditorExtension提供了ISizeElementRender的實現類。

2.3 交互層

交互層負責對外部各類編輯操作進行封裝,同時維護了已處理的編輯操作列表,保證所有編輯操作處理都可以進行撤銷、恢復。

在用戶與圖形框架的交互過程中,框架把用戶界面的請求轉換為對Graphic模型的操作請求,這個過程中需要在各個層次進行邏輯轉換,以完成用戶的請求操作。

在交互層中需要處理兩個問題,一是與輸入設備的交互管理,二是編輯操作的封裝。

2.3.1 輸入設備的交互管理

圖形框架允許外部模塊對框架的交互行為進行擴展,因此對于輸入設備的交互管理也必須提供必要的擴展性支持。

在圖形框架中需要處理鍵盤和鼠標的輸入事件,在處理過程中,要求當前光標或者鼠標所在的圖元都能夠有機會處理該事件,如有些圖元要求右鍵鼠標,彈出菜單,列出屬性編輯項;雙擊鼠標,進入下一層子模型。同樣,鍵盤事件在處理不同的圖元也可能有不同的要求。

基于上述要求,對輸入事件進行封裝,分別為鼠標左鍵單擊操作、鼠標右鍵單擊操作、鼠標雙擊操作、鼠標移動操作進行封裝,如圖3所示。

圖3 鼠標交互接口

2.3.2 圖元增加處理

處理鼠標點擊畫布添加圖元的處理行為,包括MouseDown、MouseUp行為處理(業(yè)務應用系統(tǒng)可以在此進行個性化處理邏輯,如添加圖元的合法性校驗),通過CreateElement返回新建圖元。GraphicEditorExtension實現部分常用圖元添加處理。

2.3.3 編輯操作的封裝

作為可視化建模的圖形控件,必須具備基本的圖形編輯操作功能,包括添加、刪除、位置移動、尺寸拉伸,并且支持多個圖元一并操作,同時還需要支持對操作的撤銷、恢復功能。

在業(yè)務系統(tǒng)的開發(fā)過程中,不提倡開發(fā)人員直接對Graphic模型(Children子圖元)進行操作,同時圖形框架本身也需要操作Graphic模型完成界面編輯功能,兩者的要求和操作方法是一致的,因此可對編輯操作進行封裝,形成統(tǒng)一對外接口。GraphicEditor提供的實現如圖4。

為保證對Graphic模型的編輯可進行撤銷、恢復,圖形框架引入Undo與Redo機制,建立編輯操作管理類OperationManager,其內部維護兩個操作堆棧,分別是Execute堆棧和UnExecute堆棧。編輯操作執(zhí)行時,調用操作管理類的方法ExecuteOperation()將編輯操作壓入到Execute堆棧中,并執(zhí)行Redo方法;如果用戶需要撤銷這次操作,則從Execute堆棧中彈出棧頂元素(編輯操作)并執(zhí)行Undo方法,同時把編輯操作壓入到UnExecute堆棧中;同樣如用戶要恢復此操作時,則取出UnExecute堆棧中的棧頂操作并執(zhí)行Execute方法,同時把編輯操作壓入到Execute堆棧中。

圖4 操作類的類圖

3 其它功能

3.1 縮放

縮放用于縮小和放大顯示,DrawingPanel提供Scale屬性設置,當Scale被設置之后,畫布上所有圖元都按比例進行布局調整并重繪。Scale初始值為1,如果設置為大于1,即放大,設置為小于1,即縮小,如Scale=1.2,即放大1.2倍。

3.2 持久化

Graphic Designer定義圖的持久化器(IGraphic Serializer)并實現XML的持久化類。序列化過程通過遍歷子圖元,并調用圖元持久化器進行單點序列化;反序列逆過程,根據XML節(jié)點標簽找圖元持久化器進行反序列化。

4 圖形框架應用

圖形框架已經應用到我們的開發(fā)項目中,比如測試性建模與分析工具、效能仿真平臺、安全性仿真與分析平臺、IETM的工作流實現。其中,測試性建模與分析工具是一款基于信號流建模,通過利用模塊化推理方法,為用戶提供測試性、診斷性的解決方案,要求能夠對信號流進行可視化建模,同時要求通過可視化方式提供測試性、診斷性的解決方案;效能仿真平臺借助計算機模擬技術進行裝備保障性綜合試驗,對裝備的戰(zhàn)備完好性及任務持續(xù)性進行分析,為保障方案評價及驗證提供技術手段,要求平臺具備對保障任務的可視化建模;事故動態(tài)推演仿真平臺基于功能的系統(tǒng)安全性分析,要求把Altarica建模方法通過簡便易用的圖形化建模方式來實現。下面介紹安全性仿真與分析平臺對圖形框架的應用。

4.1 安全性仿真與分析平臺需求

安全性仿真與分析平臺主要用于輔助SAE ARP4754《高度集成或復雜飛機系統(tǒng)適航審定考慮》標準流程的安全性工作,開展需求分析與功能分解、安全性分析、評估與驗證工作等工作,將安全性工作與系統(tǒng)研制過程相結合,增加安全性工作結果的一致性和正確性,并提高安全性工作迭代的效率,及時為研制過程提供反饋。

安全性仿真與分析平臺以Altarica模型為核心,基于Altarica模型自動進行安全性和可靠性仿真分析。用戶通過模型設計功能來創(chuàng)建Altarica模型,模型設計模塊包含增加模型元素、編輯模塊屬性、刪除模型元素、連接模型元素、模型復制和粘貼、創(chuàng)建模型層級、撤銷和恢復等功能。

以反應堆泵水系統(tǒng)為例進行介紹,用Altarica語言進行模型描述如圖5。

泵水系統(tǒng)由蓄水池、水泵和反應堆組成,腳本描述的功能很簡單,蓄水池有水,水泵就能正常工作,把水抽到反應堆。在圖形建模中,蓄水池、水泵、反應堆等實體對象使用模塊來表達,實體間的傳遞關系通過連接線來體現,如圖6。

4.2 Altarica模型設計功能實現

4.2.1 圖元擴展

Altarica的模型元素相對來說比較簡單,包括模塊(Brick Element)、端口(Connector Element)以及連接鏈(Connection Element)3種,分別繼承矩形(Rectangle Element)、橢圓(Ellipse Element)、直線(DirectionConnectionElement)。這些圖元不單只是可視化元素,而且還是Altarica數據的載體,除了具備VisualElement行為之外,還持有相應的模型實體。

圖5 泵水系統(tǒng)的Altarica描述

圖6 泵水系統(tǒng)的圖形建模

4.2.2 繪畫擴展

在業(yè)務處理中,模塊被抽象為具有數據傳遞行為的塊狀元素,在繪畫的時候,需要把輸入輸出端繪制出來。而端口分輸入、輸出,以便在展現上能更好區(qū)分,需要用不同背景顏色進行繪制。連接線與一把直線差異不大,簡單擴展即可。

4.2.3 添加處理擴展

添加處理擴展更多體現在業(yè)務行為的處理上。添加模塊需要默認生成一系列的數據,比如端口、狀態(tài)、邏輯關系、事件轉移等等。連接兩個端口,需要進行合法性校驗。

4.2.4 鼠標輸入事件擴展

雙擊模塊、端口彈出屬性編輯界面。

5 結束語

本文從五性綜保的一些建模軟件需求出發(fā),提出了使用可視化方式來實現模型構建的方案,基于創(chuàng)新技術實現的圖形框架,為五性綜保的建模軟件提供了基礎控件。

對圖形框架的設計實現,以及安全性仿真與分析平臺的應用介紹,總結得出圖形框架能簡便、快速地支持五性綜保業(yè)務系統(tǒng)的應用開發(fā)。

圖形框架支持WinForm、WPF、Silverlight等.Net開發(fā)環(huán)境,對于Java平臺目前不能直接使用,需要轉義框架代碼,將在今后繼續(xù)完善。

[1]Antoine B.Rauzy.AltaRica Data-Flow Language Specifcation -Version 2.1[R].Ecole Polytechnique,2013.

[2]MacDonald,Matthew.Pro WPF in C# 2010:Windows Presentation Foundation in .NET 4[M].3rd ed.Apress.2010.

(編輯:勞邊)

V240.2

C

1003-6660(2016)06-0041-05

10.13237/j.cnki.asq.2016.06.010

猜你喜歡
圖元畫布鼠標
商業(yè)模式畫布
商界評論(2022年12期)2022-03-06 16:43:01
一種組態(tài)控件技術在電力監(jiān)控系統(tǒng)中的運用
電視技術(2021年11期)2022-01-07 12:52:28
學術出版物插圖的編排要求(一):圖注
聯鎖表自動生成軟件的設計與實現
Progress in Neural NLP: Modeling, Learning, and Reasoning
Engineering(2020年3期)2020-09-14 03:42:00
為什么要在畫布上割一刀?
藝術品鑒(2019年9期)2019-10-16 08:57:44
讓鮮花在畫布上盛開
基于Qt繪圖系統(tǒng)的圖形應用優(yōu)化研究與實現
軟件(2016年12期)2016-02-13 05:58:14
大師的畫布
45歲的鼠標
少年科學(2009年1期)2009-01-20 03:25:10
公安县| 民乐县| 明溪县| 嘉善县| 谷城县| 漳州市| 离岛区| 兖州市| 宿迁市| 永平县| 淮南市| 裕民县| 海丰县| 垣曲县| 西峡县| 巫山县| 托里县| 沽源县| 隆化县| 克什克腾旗| 富平县| 新宾| 巴楚县| 仪陇县| 定日县| 延安市| 固始县| 石台县| 屯门区| 厦门市| 盐津县| 罗田县| 汾阳市| 苍溪县| 勃利县| 富源县| 南丰县| 和田市| 大安市| 新民市| 五常市|