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

?

基于GEF的汽車(chē)電子組件設(shè)計(jì)工具

2014-02-09 07:46:34嚴(yán)永嘉鄧堯文
關(guān)鍵詞:編輯器視圖端口

嚴(yán)永嘉,晏 華,鄧堯文

(電子科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,四川成都611731)

0 引 言

為了有效管理日趨復(fù)雜的汽車(chē)電子系統(tǒng)并最大限度地降低開(kāi)發(fā)和維護(hù)成本,多家整車(chē)廠(chǎng)商和汽車(chē)電子供應(yīng)商聯(lián)合推出了AUTOSAR標(biāo)準(zhǔn),由于它的設(shè)計(jì)思想是將硬件和軟件的開(kāi)發(fā)進(jìn)行分離,使得汽車(chē)軟件的開(kāi)發(fā)具有更高的靈活性、更低的成本和更短的開(kāi)發(fā)周期[1,2]。

經(jīng)過(guò)這十年的發(fā)展,各工具供應(yīng)商陸續(xù)推出了支持AUTOSAR標(biāo)準(zhǔn)的設(shè)計(jì)工具,如美國(guó)明導(dǎo)科技發(fā)布的車(chē)載軟件開(kāi)發(fā)工具Volcano Vehicle Systems Architect和IBM公司的Rational Systems Developer,它們都能進(jìn)行AUTOSAR系統(tǒng)建模,具有基于A(yíng)UTOSAR的配置和代碼生成功能。另外在美國(guó)MathWorks公司開(kāi)發(fā)的Matlab/Simulink中既支持單個(gè)構(gòu)件的設(shè)計(jì),也支持多個(gè)構(gòu)件連接組成一個(gè)系統(tǒng)。反觀(guān)國(guó)內(nèi)的整車(chē)廠(chǎng)商,由于涉足汽車(chē)電子領(lǐng)域較晚,不僅要花高昂的費(fèi)用從國(guó)外的廠(chǎng)商購(gòu)買(mǎi)工具,還需要聘請(qǐng)國(guó)外的工程師來(lái)國(guó)內(nèi)進(jìn)行培訓(xùn)和指導(dǎo)。

為了發(fā)展本土的汽車(chē)電子行業(yè),在國(guó)家的支持下,國(guó)內(nèi)的高校和基礎(chǔ)軟件公司也開(kāi)始進(jìn)行AUTOSAR的相關(guān)研究和工具開(kāi)發(fā)。本文正是參照AUTOSAR標(biāo)準(zhǔn),采用GEF技術(shù)并結(jié)合Artop平臺(tái),開(kāi)發(fā)了面向虛擬功能總線(xiàn)的圖形化組件設(shè)計(jì)工具,它以圖形的方式直觀(guān)地顯示組件之間的關(guān)系,以列表的形式展示組件的配置信息,并能生成符合AUTOSAR規(guī)范的描述文件。

1 基本概念

1.1 GEF技術(shù)

GEF是Eclipse的一個(gè)開(kāi)源項(xiàng)目,它基于MVC(model-view-control)架構(gòu)[3],為模型提供了圖形化的編輯環(huán)境。在Eclipse平臺(tái)中,GEF框架常常用來(lái)創(chuàng)建圖形編輯器和大綱視圖,它是構(gòu)成Eclipse應(yīng)用中圖形界面的重要部分。

MVC架構(gòu)是GEF的基礎(chǔ),MVC架構(gòu)中的模型、視圖、控制器概念分別對(duì)應(yīng)GEF中的Model、Figure和Edit-Part。GEF中模型通常是用戶(hù)創(chuàng)建的在圖形編輯器中顯示的對(duì)象,它擁有自己的結(jié)構(gòu)和屬性。EditPart Viewer是GEF中定義的視圖,它不僅是模型對(duì)應(yīng)的圖形元素的容器,還要提供編輯和工具提示等功能[4]??刂破魇荕VC架構(gòu)的核心組成部分,它將模型和視圖聯(lián)系在一起[5],不僅要監(jiān)聽(tīng)模型的變化,還要把用戶(hù)請(qǐng)求的操作結(jié)果反映到視圖上。GEF中的EditPart負(fù)責(zé)管理Model與Figure映射的方式以及Figure在收到請(qǐng)求時(shí)所產(chǎn)生的行為。

1.2 AUTOSAR標(biāo)準(zhǔn)和Artop平臺(tái)

AUTOSAR是由全球汽車(chē)制造商、部件供應(yīng)商及軟硬件和電子工業(yè)等企業(yè)共同制定的標(biāo)準(zhǔn)[6]。該標(biāo)準(zhǔn)支持基于構(gòu)件的汽車(chē)電子應(yīng)用程序的開(kāi)發(fā),其基本思想為:應(yīng)用軟件通過(guò)在虛擬功能總線(xiàn)上連接預(yù)制的可信的構(gòu)件組裝而成,構(gòu)件在運(yùn)行時(shí)通過(guò)端口進(jìn)行交互[7]。

為了實(shí)現(xiàn)可重用的目標(biāo),AUTOSAR軟件的開(kāi)發(fā)是與底層硬件獨(dú)立的,這個(gè)獨(dú)立性由虛擬功能總線(xiàn)(virtual function bus,VFB)實(shí)現(xiàn)。VFB意味著一種虛擬的硬件和一種獨(dú)立的系統(tǒng)集成,它模擬了真實(shí)的通信總線(xiàn),并通過(guò)已定義好的接口進(jìn)行通信。下面對(duì)VFB中的用到的幾種組件模型進(jìn)行簡(jiǎn)單的介紹。

構(gòu)建系統(tǒng)最重要的元素就是構(gòu)件,它是電子控制單元上完成某一功能的最小代碼集合。一個(gè)構(gòu)件有預(yù)先定義好的端口,并通過(guò)這些端口和其他構(gòu)件進(jìn)行通信。構(gòu)件集合在本質(zhì)上也是構(gòu)件的一種,它不具有原子性,在構(gòu)件集合中可以包含其他構(gòu)件或者構(gòu)件集合[8]。它自身可以配置端口來(lái)進(jìn)行通信,但它沒(méi)有具體的實(shí)現(xiàn)代碼和內(nèi)部行為。端口是一個(gè)構(gòu)件和其他構(gòu)件的交互點(diǎn)。一個(gè)構(gòu)件的端口只能是供型端口或者需型端口[9],而端口的類(lèi)型由則由它所配置的接口決定。在接口中定義了提供或者需求這個(gè)接口的端口所要傳輸?shù)臄?shù)據(jù)或者可以完成的操作,構(gòu)件的每個(gè)端口都要和一個(gè)接口進(jìn)行關(guān)聯(lián)。在設(shè)計(jì)AUTOSAR系統(tǒng)的時(shí)候,端口之間的通信需要連接器來(lái)完成。連接器存在于軟件構(gòu)件的外部,并且不能單獨(dú)存在。它需要連接到兩個(gè)端口上,而且這兩個(gè)端口必須由同一個(gè)接口實(shí)例化而來(lái)。

虛擬功能總線(xiàn),如圖1所示。

圖1 虛擬功能總線(xiàn)

Artop(AUTOSAR tool platform)是AUTOSAR組織的核心成員為了推動(dòng)采用該標(biāo)準(zhǔn)的工具鏈的發(fā)展而推出的開(kāi)放性平臺(tái)[10]。它基于Eclipse技術(shù)構(gòu)建而成,為不同的工具供應(yīng)商開(kāi)發(fā)的設(shè)計(jì)工具實(shí)現(xiàn)了公共的基礎(chǔ)功能,這樣就避免了供應(yīng)商在非競(jìng)爭(zhēng)性的基礎(chǔ)平臺(tái)上進(jìn)行重復(fù)開(kāi)發(fā),為AUTOSAR軟件開(kāi)發(fā)的各階段提供了很好的測(cè)試平臺(tái)。

2 組件設(shè)計(jì)工具的實(shí)現(xiàn)

本文研究的圖形化組件設(shè)計(jì)工具基于Eclipse開(kāi)發(fā),包含3個(gè)主要的功能模塊:圖形編輯模塊、資源管理模塊和屬性配置模塊。圖形編輯模塊負(fù)責(zé)組件模型的顯示。資源管理模塊用于統(tǒng)一組織、顯示和保存VFB組件。屬性配置模塊有兩個(gè)功能,一是負(fù)責(zé)組件的屬性信息的顯示和修改,二是配置構(gòu)件的內(nèi)部行為。圖2展示了工具的整體架構(gòu)。

圖2 系統(tǒng)架構(gòu)設(shè)計(jì)框架

2.1 圖形編輯器的設(shè)計(jì)

在圖形化組件設(shè)計(jì)工具中,圖形編輯器負(fù)責(zé)模型的顯示工作。其中模型要和標(biāo)準(zhǔn)中定義的VFB組件模型一一對(duì)應(yīng),構(gòu)件、構(gòu)件集合、端口、接口都可以采用GEF中的矩形模型來(lái)表示,而連接器可以使用連接模型來(lái)表示。其中矩形模型之間是父子兄弟的關(guān)系,連接模型則是起點(diǎn)和終點(diǎn)的關(guān)系。由于汽車(chē)系統(tǒng)的設(shè)計(jì)是以構(gòu)件和構(gòu)件集合為基礎(chǔ)進(jìn)行開(kāi)發(fā)的,并且構(gòu)件集合不具有構(gòu)件的原子性,所以需要設(shè)計(jì)兩個(gè)編輯器來(lái)完成對(duì)這兩種組件的編輯功能。

圖形編輯器是嚴(yán)格按照Eclipse的MVC模式來(lái)設(shè)計(jì)的,它分為五個(gè)子模塊,分別是控制器模塊、策略模塊、命令模塊、模型模塊和圖形模塊。控制器模塊將視圖和圖形模型進(jìn)行綁定;策略模塊提供各控制器的操作方法約束;命令模塊提供用戶(hù)界面和控制器的交互機(jī)制;模型模塊定義了編輯器所需的圖形模型;圖形模塊顯示模型的繪制形式。它們之間的關(guān)系如圖3所示。

圖3 圖形編輯器子模塊的關(guān)系

組件模型通過(guò)繼承Property AwareObject類(lèi)(項(xiàng)目中自定義的模型基類(lèi))來(lái)實(shí)現(xiàn)。圖形編輯視圖的實(shí)現(xiàn)需要繼承GEF的org.eclipse.gef.ui.parts.ScrollingGraphical Viewer。而圖形編輯所支持的鼠標(biāo)操作等繪圖命令通過(guò)繼承org.eclipse.gef.editparts.AbstractEditPart,并通過(guò)實(shí)現(xiàn)org.eclipse.gef.EditPart,org.eclipse.core.runtime.IAdaptable,org.eclipse.gef.RequestConstants等接口來(lái)完成。

2.2 項(xiàng)目管理器的實(shí)現(xiàn)

項(xiàng)目管理器(project manager,PM)是用于統(tǒng)一組織、顯示和保存VFB組件的視圖,它的主要功能分為以下3個(gè)部分:①提供VFB項(xiàng)目文件的樹(shù)形結(jié)構(gòu)化解析,組織各個(gè)組件;②將配置信息序列化存儲(chǔ)到VFB項(xiàng)目文件(項(xiàng)目中自定義的vad文件)中,并將vad文件和符合AUTOSAR標(biāo)準(zhǔn)的xml(arxml)文件進(jìn)行信息同步;③提供拖放(drag and drop,Dnd)支持,為編輯器提供設(shè)計(jì)幫助。

PM的實(shí)現(xiàn)遵循Eclipse Common Navigator Framework(CNF)規(guī)范,視圖由org.eclipse.ui.navigator.CommonNavigator類(lèi)作為主框架進(jìn)行顯示,擴(kuò)展了org.eclipse.ui.navigator.viewer插件的ActionBinding、ContentBinding、Viewer和Drag Assistant這4個(gè)子項(xiàng),以綁定各種不同類(lèi)型元素的顯示和操作。而顯示、操作功能的具體實(shí)現(xiàn)由插件org.eclipse.ui.navigator.navigatorContent提供。

PM需要對(duì)組件進(jìn)行管理,為此專(zhuān)門(mén)定義了一種PM模型,它在PM中顯示為樹(shù)狀結(jié)構(gòu)的子節(jié)點(diǎn),并和圖形模型進(jìn)行綁定。新建項(xiàng)目之后,在管理器視圖的樹(shù)形節(jié)點(diǎn)中會(huì)有兩個(gè)一級(jí)節(jié)點(diǎn),分別顯示vad文件和arxml文件,在vad節(jié)點(diǎn)下有一個(gè)Package節(jié)點(diǎn),用戶(hù)新建的組件都將顯示在這個(gè)Package節(jié)點(diǎn)之下。PM的節(jié)點(diǎn)組織如圖4所示。

圖4 PM節(jié)點(diǎn)組織

其中Package、Application Software Component和Composition這3種組件可以在PM中直接創(chuàng)建,其他類(lèi)型的組件需要在圖形編輯器中進(jìn)行創(chuàng)建。

2.3 模型的創(chuàng)建和綁定

組件設(shè)計(jì)工具在編輯器中創(chuàng)建的是GEF模型,在資源管理器中創(chuàng)建的是PM模型,而需要輸出的目標(biāo)文件是arxml文件,這就需要通過(guò)Artop工具平臺(tái)提供的函數(shù)生成AUTOSAR模型。

這3種模型是相互獨(dú)立的,為了達(dá)到模型之間數(shù)據(jù)同步的目的(如當(dāng)在PM中刪除一個(gè)構(gòu)件時(shí),編輯器對(duì)應(yīng)的GEF模型和arxml文件中對(duì)應(yīng)的AUTOSAR模型都要同時(shí)刪除),需要將這3種模型進(jìn)行綁定。

在這3種模型中,PM模型是核心,它負(fù)責(zé)將另外兩種模型串聯(lián)起來(lái)。在創(chuàng)建一個(gè)PM模型的時(shí)候,會(huì)在構(gòu)造函數(shù)中調(diào)用Artop中提供的Autosar3x Factory類(lèi)創(chuàng)建對(duì)應(yīng)的AUTOSAR模型,然后將PM模型中的ARObject變量賦值成該AUTOSAR模型完成綁定操作。此時(shí)PM模型對(duì)應(yīng)的GEF模型還沒(méi)有生成,而是在打開(kāi)組件對(duì)應(yīng)的編輯器時(shí)才進(jìn)行創(chuàng)建和綁定的工作。這時(shí)會(huì)把GEF模型賦值為PM模型中的一個(gè)可序列化(Serializable)變量,在完成綁定操作的同時(shí),也可以在保存時(shí)對(duì)GEF模型進(jìn)行序列化操作,將模型的所有屬性(包括位置、大小、顏色等)保存在vad文件中。

本文在2.2小節(jié)中提到,只有Package、Application Software Component和Composition這3種組件可以在PM中直接創(chuàng)建,所以在新建Port或Interface等組件時(shí),會(huì)在生成GEF模型的同時(shí)去創(chuàng)建對(duì)應(yīng)的PM模型,之后的綁定過(guò)程已在上一段進(jìn)行了描述,這里就不再贅述。

2.4 組件屬性的顯示和內(nèi)部行為的配置

每一個(gè)AUTOSAR組件都有自身的屬性,包括名字、時(shí)間戳、UUID等。每一個(gè)構(gòu)件都有一個(gè)內(nèi)部行為,內(nèi)部行為用來(lái)描述包含它的構(gòu)件采用的通信機(jī)制。

組件屬性顯示模塊支持構(gòu)件、構(gòu)件集合、端口、接口等組件的基本屬性顯示及編輯功能,內(nèi)部行為配置模塊支持以列表的形式編輯構(gòu)件的內(nèi)部行為。

為了實(shí)現(xiàn)組件屬性顯示模塊,首先需要通過(guò)Eclipse插件開(kāi)發(fā)中的org.eclipse.ui.views擴(kuò)展點(diǎn)來(lái)實(shí)現(xiàn)各組件基本屬性列表的框架。Eclipse中屬性視圖PropertySheet的實(shí)現(xiàn)涉及到3個(gè)接口:IPropertySourceProvider、IProperty-Source、IPropertyDescriptor。而模型對(duì)象如果要和PropertySheet進(jìn)行交互,則必須實(shí)現(xiàn)IPropertySource接口。E-clipse能夠自動(dòng)地通過(guò)IPropertySourceProvider取得實(shí)現(xiàn)了IPropertySource的模型對(duì)象,并讓屬性視圖對(duì)其進(jìn)行調(diào)用。PM模型實(shí)現(xiàn)了IPropertySource接口,這樣屬性視圖就和資源管理器的樹(shù)狀結(jié)構(gòu)進(jìn)行了綁定。而在2.3節(jié)中提到PM模型和GEF模型也進(jìn)行了綁定,所以GEF模型可以通過(guò)PM模型間接綁定到屬性視圖上。完成以上的工作,屬性視圖就能顯示組件的屬性項(xiàng)和屬性值了。

內(nèi)部行為的編輯框架是使用基于Eclipse的SWT/JFace技術(shù)來(lái)實(shí)現(xiàn)的,通過(guò)這個(gè)編輯框架,用戶(hù)可以用列表的形式方便地創(chuàng)建和更改內(nèi)部行為包含的內(nèi)容。該框架是一個(gè)多選項(xiàng)頁(yè)的編輯頁(yè)面,為了實(shí)現(xiàn)多選項(xiàng)頁(yè),它繼承了SWT提供的基類(lèi)——FormEditor,并重載基類(lèi)的addpages()方法來(lái)添加選項(xiàng)頁(yè)的具體內(nèi)容。由于編輯頁(yè)面的內(nèi)容很多,在部分選項(xiàng)頁(yè)內(nèi)還需要加入子頁(yè)面(SectionPage)。它們的關(guān)系如圖5所示。

3 系統(tǒng)運(yùn)行實(shí)例

圖6展示了構(gòu)件實(shí)例的效果,圖7展示了構(gòu)件集合實(shí)例的效果,圖8展示了內(nèi)部行為配置頁(yè)面的效果,圖9展示了資源管理器的效果。

圖5 編輯頁(yè)面組成關(guān)系

圖6 構(gòu)件實(shí)例效果

圖7 構(gòu)件集合實(shí)例效果

4 結(jié)束語(yǔ)

結(jié)合Artop平臺(tái)來(lái)實(shí)現(xiàn)面向虛擬功能總線(xiàn)的圖形化組件設(shè)計(jì)工具,使其具有較好的通用性和擴(kuò)展性,在A(yíng)UTOSAR標(biāo)準(zhǔn)不斷修訂和完善的前提下能夠快速、便捷地對(duì)工具進(jìn)行修改,可重用性高。

但是本工具僅僅是一個(gè)原型系統(tǒng),并沒(méi)有包含AUTOSAR標(biāo)準(zhǔn)中的所有組件,為了使該工具具有更廣的應(yīng)用范圍,下一步可以將組件類(lèi)型進(jìn)行完善,并和硬件拓?fù)湓O(shè)計(jì)工具、網(wǎng)絡(luò)映射工具、ECU配置工具等進(jìn)行集成,形成按照AUTOSAR流程進(jìn)行軟件系統(tǒng)開(kāi)發(fā)的一整套的工具鏈。

圖8 內(nèi)部行為配置頁(yè)面效果

圖9 資源管理器效果

[1]YIN Xiaofeng,LIU Wudong.AUTOSAR-A new standard of software development for automotive electronics systems[J].Journal of Xihua University(Natural Science),2010,29(2):102-10(in Chinese).[陰曉峰,劉武東.汽車(chē)電子系統(tǒng)軟件開(kāi)發(fā)新標(biāo)準(zhǔn)AUTOSAR[J].西華大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,29(2):102-104.]

[2]FENG Jiangbo,LIU Yajun.Code generation technology with Matlab/Simulink compliant with AUTOSAR[J].Journal of Jiamusi University(Natural Science),2011,29(6):833-837(in Chinese).[馮江波,劉亞軍.與AUTOSAR兼容的Matlab/Simulink自動(dòng)代碼生成技術(shù)[J].佳木斯大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,29(6):833-837.]

[3]ZHANG Peng,JIANG Hao,XU Li.Study notes for Eclipse plug-in development[M].Beijing:Electronic Industry Press,2008:528-537(in Chinese).[張鵬,姜昊,許力.Eclipse插件開(kāi)發(fā)學(xué)習(xí)筆記[M].北京:電子工業(yè)出版社,2008:528-537.]

[4]LIU Xubin,WANG Liang,YAN Youpeng.Application studies on command pattern of Eclipse GEF[J].Computer Technology and Develepment,2010,20(8):100-103(in Chinese).[劉緒斌,王良,閆有朋.Eclipse GEF框架中命令模式的應(yīng)用研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(8):100-103.]

[5]HOU Ruichun,HU Qingxia,DING Xiangqian,et al.Design and implementation of business model graphics editor based on GEF[J].Modern Electronics Technique,2012,35(20):31-34(in Chinese).[侯瑞春,胡青霞,丁香乾,等.基于GEF的業(yè)務(wù)模式圖形編輯器的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(20):31-34.]

[6]GAO Huanji.Embedded software development for vehicle electronic control system based on AUTOSAR[J].Auto Electric Parts,2010(5):11-14(in Chinese).[高煥吉.基于A(yíng)UTOSAR的汽車(chē)電子控制系統(tǒng)嵌入式軟件開(kāi)發(fā)[J].汽車(chē)電器,2010(5):11-14.]

[7]AUTOSAR GbR.AUTOSAR technical overview[S].AUTOSAR,2008:17-18.

[8]AUTOSAR Gb R.AUTOSAR SWS VFB[S].AUTOSAR,2008:12-29.

[9]XU Xinpeng,WANG Xiang,LU Jianghua,et al.Application component configuration based on AUTOSAR methodology[J].Computer Engineering,2010,36(18):240-242(in Chinese).[徐鑫朋,王翔,陸建華,等.基于A(yíng)UTOSAR方法論的應(yīng)用組件配置[J].計(jì)算機(jī)工程,2010,36(18):240-242.]

[10]WANG Jinbo.SmartSAR SWA-design and implementation of software architecture based on Artop[D].Hangzhou:Zhejiang University,2012(in Chinese).[汪金波.SmartSAR SWA-基于A(yíng)rtop的汽車(chē)電子軟件架構(gòu)工具的設(shè)計(jì)與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2012.]

猜你喜歡
編輯器視圖端口
一種端口故障的解決方案
你距離微信創(chuàng)作達(dá)人還有多遠(yuǎn)?
車(chē)輛段收發(fā)車(chē)運(yùn)行圖編輯器的設(shè)計(jì)與實(shí)現(xiàn)
端口阻塞與優(yōu)先級(jí)
5.3 視圖與投影
視圖
Y—20重型運(yùn)輸機(jī)多視圖
SA2型76毫米車(chē)載高炮多視圖
初識(shí)電腦端口
電腦迷(2015年6期)2015-05-30 08:52:42
生成樹(shù)協(xié)議實(shí)例探討
淮南市| 隆德县| 凌源市| 泰和县| 侯马市| 白玉县| 平邑县| 格尔木市| 永顺县| 林周县| 阜城县| 德惠市| 海口市| 彰化市| 宁国市| 于都县| 泗水县| 金溪县| 绩溪县| 襄樊市| 尼木县| 余江县| 城市| 兴宁市| 柏乡县| 类乌齐县| 天全县| 武宁县| 宜川县| 菏泽市| 阿克苏市| 台江县| 辽阳县| 沐川县| 新晃| 乐亭县| 尚志市| 宝丰县| 扎赉特旗| 巴里| 温宿县|