專利名稱:基于autosar標準的ecu參數(shù)配置界面生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于AUT0SAR標準的E⑶參數(shù)配置界面生成方法。
背景技術(shù):
AUTOSAR(AUTomotive Open System Architecture)是一個標準化的開放式汽車 軟件架構(gòu)。本發(fā)明所參照的AUTOSAR標準為3. 0. 1版本。E⑶配置是AUTOSAR系統(tǒng)開發(fā)流程中重要的一個環(huán)節(jié),AUTOSAR標準提供了 一個名 為AUTOSAR EcucParamDef. arxml的文件,詳細地定義了 E⑶配置參數(shù)項。E⑶配置工具根 據(jù)這些參數(shù)的定義,提供對應(yīng)的配置界面,由用戶在界面上進行相關(guān)ECU參數(shù)的配置,配置 信息通過ml文件再提供給后續(xù)的可執(zhí)行代碼生成階段,生成相應(yīng)的C代碼。ECU參數(shù)定義結(jié)構(gòu)見圖1,各數(shù)據(jù)項的隸屬關(guān)系呈樹狀結(jié)構(gòu),樹中的子節(jié)點為父 節(jié)點的數(shù)據(jù)成員。E⑶參數(shù)定義中頂層為包,下一層是模塊,如Os,Rte,Com等。模塊下 一層是容器,容器包含了基本數(shù)據(jù)類型和子容器,容器定義是可以嵌套的。以O(shè)s模塊 定義為例,它包含了 OsAlarm, OsApplication, OsAppMode, OsCounter, OsEvent, OsIsr, OsOs, OsResource, OschduleTable, OsTask等10個容器的定義。這10個容器定義又可 以展開,如 OsCounter 容器的定義,它包含 OsCounterMaxAllower, OsCounterMinCycle, OsCounterTicksPerBase 等 6 項基本類型禾口 OsDriver,OsTimeConstant 兩個子容器。AUTOSAR標準對于ECU參數(shù)的詳細定義,大大方便了配置信息的表示和處理,在開 發(fā)E⑶配置工具的時候,可以根據(jù)其參數(shù)定義生成工具的參數(shù)配置界面。但是,AUTOSAR標 準中要配置的ECU參數(shù)量很大,包括了 50個模塊,449個容器和1465個基本類型的數(shù)據(jù)項, 至少要生成200個以上的配置界面和3000個以上的界面控件才能完成配置工作。如果采 用傳統(tǒng)的方法用手工寫這些配置界面代碼的話,其弊端是顯而易見的1.開發(fā)效率低,幾百個界面和數(shù)以千計的控件生成需要大量的時間去完成。2.可擴展性差,如果添加了新配置項或配置項修改了,原代碼就無法正常運行,要 重寫。3.可維護性差,界面代碼有bug或需要改進,往往要把所有的界面都要修改一遍。4.手工代碼往往有差異,界面風(fēng)格不容易統(tǒng)一,給用戶操作帶來不便,視覺效果也 受影響。
發(fā)明內(nèi)容
為克服現(xiàn)有技術(shù)的開發(fā)效率低,可擴展性差,可維護性差,用戶操作不便的缺點, 本發(fā)明提供了一種開發(fā)效率高,可擴展性好,可維護性好,用戶操作方便的基于AUTOSAR標 準的E⑶參數(shù)配置界面生成方法?;贏UTOSAR標準的E⑶參數(shù)配置界面生成方法,包括以下步驟1)、生成與AUTOSAR標準中的E⑶配置參數(shù)項一一對應(yīng)的類模型,設(shè)置界面控件屬 性,使界面控件與類模型一一對應(yīng);
2)、生成界面時,獲取當(dāng)前的配置參數(shù)項,確定與當(dāng)前的配置參數(shù)項對應(yīng)的類模 型;解析所述的類模型,獲取類模型信息;3)、根據(jù)類模型信息,生成相應(yīng)的界面控件。進一步,步驟1)中,生成類模型和界面控件包括以下步驟1. 1)、建立與AUT0SAR標準中的E⑶非基本數(shù)據(jù)類型的參數(shù)類別一一對應(yīng)、能通過 解析各ECU配置參數(shù)項生成與所述的配置參數(shù)項對應(yīng)的類模型的生成模塊;1. 2)、讀取AUT0SAR的E⑶參數(shù)定義文件,通過生成模塊解析各E⑶配置參數(shù)項、 生成對應(yīng)的類模型,所述的類模型作為配置工具源代碼的一部分被編譯入配置工具中;所 述的類模型將與其對應(yīng)的參數(shù)項的屬性、所述的參數(shù)項的數(shù)據(jù)成員和所述的數(shù)據(jù)成員的屬 性信息作為類模型信息,所述的類模型信息與界面控件對應(yīng)。進一步,步驟1. 2)中,生成類模型包括以下步驟1.2. 1)、每個參數(shù)項均對應(yīng)生成一個類模型,類模型名稱為對應(yīng)參數(shù)項的 SHORT-NAME屬性,參數(shù)項的數(shù)據(jù)成員作為該類模型的模型成員;1. 2. 2)、分別標明類模型的類型和屬性;1. 2. 3)、判斷數(shù)據(jù)成員類型是否基本數(shù)據(jù)類型若數(shù)據(jù)成員類型是引用型的基本 數(shù)據(jù)類型,或者 UPPER—MULTIPLICITY > 1 或者,MULTIPLE_C0NFIGURATI0N_C0NTAINER 為 true時,則用List <成員類型>來表示對應(yīng)的模型成員的類型;若數(shù)據(jù)成員類型為Module,則用其定義中的SHORT-NAME屬性來表示模型成員的 類型;若數(shù)據(jù)成員類型為Container的,則判斷該Container是否CH0ICEC0NTAINERDEF、 且子容器是多選一;若是,則在生成的類模型添中加一個整型的數(shù)據(jù)成員index,表示配置 的時候選擇了哪個子容器;若否,則用其SHORT-NAME屬性來表示模型成員的類型;1. 2. 4),若數(shù)據(jù)成員類型不是基本數(shù)據(jù)類型,則調(diào)用與數(shù)據(jù)成員對應(yīng)的類模型。本發(fā)明的技術(shù)構(gòu)思是生成模塊的類別與AUT0SAR標準中的ECU非基本數(shù)據(jù)類型 的參數(shù)類別一一對應(yīng),每一種類的生成模塊負責(zé)生成與之對應(yīng)類別的參數(shù)項的類模型。如 在AUT0SAR 3.0. 1標準中,參數(shù)項在層次關(guān)系上分為3種(不包括基本數(shù)據(jù)類型),從上到 下分別是Package,Module和Container。生成模塊也相應(yīng)地也分為3種Package生成模 塊,Module生成模塊和Container生成模塊。通過解析獲取配置參數(shù)項所對應(yīng)的類模型,再解析出其類模型信息,最后根據(jù)類 模型信息調(diào)用相應(yīng)的界面控件生成器,生成參數(shù)配置界面。本發(fā)明根據(jù)AUT0SAR標準種的ECU參數(shù)定義的類別來分類和設(shè)計界面控件,界面 控件的生成方式與數(shù)據(jù)類型對應(yīng)。本發(fā)明有以下優(yōu)點1.開發(fā)效率高,不管有多少個配置界面,只需寫一遍代碼。2.可擴展性好,如果添加了新配置參數(shù)項或修改了現(xiàn)有配置參數(shù)項,只需把該類 模型重新生成一遍即可,無需重新編寫代碼。3.可維護性好,界面代碼有bug或需要改進,只要統(tǒng)一改幾處代碼即可,而不像手 工生成方法,每個界面都要去改。4.由于界面是用同一方法自動生成,容易做到風(fēng)格一致,便于用戶操作。
5、用類模型保存參數(shù)定義,類模型被編譯入配置工具,無需在參數(shù)配置過程中讀 取參數(shù)定義文件,提高了配置工具的運行速度。
圖IECU參數(shù)定義結(jié)構(gòu)圖
圖2E⑶配置工具系統(tǒng)結(jié)構(gòu)圖
圖3生成Package類模型的流程圖
圖4生成Module類模型流程圖
圖5生成Container類模型流程圖
圖6生成界面控件基類的流程圖
圖7生成Parameter控件的流程圖
圖8生成Container控件的流程圖
圖9生成Module控件的流程圖
圖10生成SubContainer控件流程圖
圖11生成ChoiceContainer控件的流程圖
圖12生成Reference控件流程圖
圖13E⑶參數(shù)配置界面截圖
具體實施例方式參照附圖,進一步說明本發(fā)明基于AUT0SAR標準的E⑶參數(shù)配置界面生成方法,包括以下步驟1、生成與AUT0SAR標準中的E⑶配置參數(shù)項一一對應(yīng)的類模型,設(shè)置界面控件屬 性,使界面控件與類模型一一對應(yīng);2、生成界面時,獲取當(dāng)前的配置參數(shù)項,確定與當(dāng)前的配置參數(shù)項對應(yīng)的類模型; 解析所述的類模型,獲取類模型信息;3、根據(jù)類模型信息,生成相應(yīng)的界面控件。步驟1)中,生成類模型和界面控件包括以下步驟1. 1)、建立與AUT0SAR標準中的E⑶非基本數(shù)據(jù)類型的參數(shù)類別一一對應(yīng)、能通過 解析各ECU配置參數(shù)項生成與所述的配置參數(shù)項對應(yīng)的類模型的生成模塊;1. 2)、讀取AUT0SAR的E⑶參數(shù)定義文件,通過生成模塊解析各E⑶配置參數(shù)項、 生成對應(yīng)的類模型,所述的類模型作為配置工具源代碼的一部分被編譯入配置工具中;所 述的類模型將與其對應(yīng)的參數(shù)項的屬性、所述的參數(shù)項的數(shù)據(jù)成員和所述的數(shù)據(jù)成員的屬 性信息作為類模型信息,所述的類模型信息與界面控件對應(yīng)。步驟1. 2)中,生成類模型包括以下步驟1.2. 1)、每個參數(shù)項均對應(yīng)生成一個類模型,類模型名稱為對應(yīng)參數(shù)項的 SHORT-NAME屬性,參數(shù)項的數(shù)據(jù)成員作為該類模型的模型成員;1. 2. 2)、分別標明類模型的類型和屬性;1. 2. 3)、判斷數(shù)據(jù)成員類型是否基本數(shù)據(jù)類型若數(shù)據(jù)成員類型是引用型的基本 數(shù)據(jù)類型,或者 UPPER—MULTIPLICITY > 1 或者,MULTIPLE_C0NFIGURATI0N_C0NTAINER 為true時,則用List <成員類型>來表示對應(yīng)的模型成員的類型;若數(shù)據(jù)成員類型為Module,則用其定義中的SHORT-NAME屬性來表示模型成員的 類型;若數(shù)據(jù)成員類型為Container的,則判斷該Container是否CH0ICEC0NTAINERDEF、 且子容器是多選一;若是,則在生成的類模型添中加一個整型的數(shù)據(jù)成員index,表示配置 的時候選擇了哪個子容器;若否,則用其SHORT-NAME屬性來表示模型成員的類型;1.2. 4),若數(shù)據(jù)成員類型不是基本數(shù)據(jù)類型,則調(diào)用與數(shù)據(jù)成員對應(yīng)的類模型。本發(fā)明的技術(shù)構(gòu)思是生成模塊的類別與AUT0SAR標準中的ECU非基本數(shù)據(jù)類型 的參數(shù)類別一一對應(yīng),每一種類的生成模塊負責(zé)生成與之對應(yīng)類別的參數(shù)項的類模型。如 在AUT0SAR 3.0. 1標準中,參數(shù)項在層次關(guān)系上分為3種(不包括基本數(shù)據(jù)類型),從上到 下分別是Package,Module和Container。生成模塊也相應(yīng)地也分為3種Package生成模 塊,Module生成模塊和Container生成模塊。通過解析獲取配置參數(shù)項所對應(yīng)的類模型,再解析出其類模型信息,最后根據(jù)類 模型信息調(diào)用相應(yīng)的界面控件生成器,生成參數(shù)配置界面。本發(fā)明根據(jù)AUT0SAR標準種的ECU參數(shù)定義的類別來分類和設(shè)計界面控件,界面 控件的生成方式與數(shù)據(jù)類型對應(yīng)。本發(fā)明采用Java語言編寫,一個類模型就是一個Java類,通過Java語言的反射 機制確定當(dāng)前配置參數(shù)項所對應(yīng)的類模型,運用Java語言的注釋機制解析類模型信息。AUT0SAR 3. 0. 1的ECU參數(shù)非基本數(shù)據(jù)類型包括Package (包),Module (模塊), Container (容器),需轉(zhuǎn)換成對應(yīng)的類模型;基本數(shù)據(jù)類型則轉(zhuǎn)換成相應(yīng)Java語言基本數(shù) 據(jù)類型如整型,浮點型,布爾型等。Package和Module的定義只有一種,Container的定義 有兩種PARAMC0NFC0NTAINERDEF和CH0ICEC0NTAINERDEF,基本數(shù)據(jù)類型的定義分為兩類共 17種具體的數(shù)據(jù)類型第一類為一般的基本數(shù)據(jù)類型定義INTEGERPARAMDEFDERIVEDINTEGERPARAMDEFENUMERATI0NPARAMDEFDERIVEDENUMERATI0NPARAMDEFFLOATPARAMDEF, DERIVEDFL0ATPARAMDEFB00LEANPARAMDEFDERIVEDB00LEANPARAMDEFFUNCTI0NNAMEDEFSTRINGPARAMDEFDERIVEDSTRINGPARAMDEFLINKERSYMB0LDEF,共 12 種。第二類為引用型的基本數(shù)據(jù)類型定義,包括REFERENCEPARAMDEFCHOICEREFERENCEPARAMDEF
INSTANCEREFERENCEPARAMDEFFOREIGNREFERENCEPARAMDEFSYMBOLICNAMEREFERENCEPARAMDEF,共 5 種。圖7是對一個Boolean參數(shù)生成控件的流程。創(chuàng)建Boolean控件先進行初始化 Boolean控件參數(shù),初始化失敗則直接退出。成功則開始創(chuàng)建Boolean控件。創(chuàng)建一個label 用來顯示參數(shù)名,創(chuàng)建一個表示Button按鈕,用來標識Boolean控件,創(chuàng)建一個default按 鈕,用來恢復(fù)標記Button按鈕為默認值。為標記Button按鈕創(chuàng)建監(jiān)聽事件,當(dāng)標記Button 按鈕被選中時,表示Boolean值為true ;未選中時,表示Boolean值為false,同時進行相應(yīng) 的參數(shù)賦值處理。其他基本數(shù)據(jù)類型控件生成過程類似。圖8是生成Container控件的過程首先是Container控件的初始化。初始化 失敗,則退出。初始化成功則進入具體的Container控件的創(chuàng)建。在AUT0SAR的E⑶配置 參數(shù)定義文件中,對于一個Module內(nèi)部的某個Container的個數(shù)上限定義為1或大于1。 因此,具體Container控件在創(chuàng)建的時候需要考慮到該Container的上限。在這里我們 進行了不同處理當(dāng)上限為1的時候,先創(chuàng)建一個CTabltem,然后創(chuàng)建一個composite容 器,最后返回該composite容器。Composite容器用于顯示Container內(nèi)部的參數(shù)定義、 SubContainer和引用定義等。當(dāng)Container的上限大于1時,先創(chuàng)建一個CTabltem,然后 創(chuàng)建一個composite,用于整體布局,創(chuàng)建一個ViewForm,用于內(nèi)部布局。創(chuàng)建一個label 用于顯示該Container的名字,創(chuàng)建一個TableViewer,通過該TableViewer可以創(chuàng)建多個 該Container的實例。圖9是生成Module控件的過程首先要初始化Module控件信息,若初始化失敗, 則直接退出。初始化成功則進入下一步。然后獲取FormToolkit,通過FormToolkit取得 form,從form取得一個容器。然后就是對容器進行布局,插入分隔符,創(chuàng)建兩個label。最 后是創(chuàng)建一個CTabFolder,并把創(chuàng)建的CTabFolder返回。CTabFolder主要用于包含Module 的若干個Container。圖10是生成SubContainer子容器界面控件的過程。子容器和容器是相對而言的, 當(dāng)一個容器以其他容器的子成員出現(xiàn)在界面上時,它表現(xiàn)為子容器。其流程與Container 控件生成相似,不同的是當(dāng)其個數(shù)上限為1時,不創(chuàng)建CTabltem,而是創(chuàng)建Section,然 后創(chuàng)建composite容器,并調(diào)用基類檢查該SubContainer的個數(shù)下限是否為0,最后解 析SubContainer的元素并顯示在該composite容器中。當(dāng)個數(shù)上限大于1的時候,創(chuàng)建 CTabltem、創(chuàng)建composite、創(chuàng)建TableViewer,然后TableViewer相應(yīng)的內(nèi)容器、標簽器、修 改器禾口 ActionGroup 對象,由于 SubContainer 就是一個 Container,因此 SubContainer 的 內(nèi)容器、標簽器、修改器和ActionGroup可以直接復(fù)用Container的,這里就不在重復(fù)介紹。 最后SubContainer需要創(chuàng)建HyperLink控件,因為SubContainer是作為Container的內(nèi)部 元素出現(xiàn)的,為了顯示出Container和SubContainer的嵌套關(guān)系,故需要在Container內(nèi) 部把SubContainer作為元素標記出來。通過點擊該元素可以Link到該SubContainer的 CTabltem顯示該SubContainer的配置界面。圖11是生成ChoiceContainer控件的過程,ChoiceContainer是一種選擇性 的Container,即需要對Container的類型進行選擇。ChoiceContainer控件生成過程與SubContainer控件的不同之處在于,需要額外創(chuàng)建一個Combo控件來進行容器類型的選擇。圖12是生成Reference控件的過程其與生成ChoiceContainer控件的不同之處 在于=Reference配置不需要編輯按鈕,因為只是對其他Container的引用。圖13是完成的配置界面截圖。如需測試該界面是否正常,只需在Os模塊中添加 一個任務(wù),使該任務(wù)能被每秒一次的周期執(zhí)行。把配置好的結(jié)果輸入到Os配置代碼生成工 具,輸出os_cfg. h,app_cfg. h,app_cfg. c三個C代碼文件。在app_cfg. c文件中添加使 HCS12板塊1號LED燈亮滅交替變換的代碼。把SmartOSEK OS 3. 5的內(nèi)核代碼和這三個C 代碼文件導(dǎo)入CodeWarrior 3. 1進行編譯并燒寫入HCS12板,運行后1號LED燈每隔1秒 鐘由亮變滅或由滅變亮,則認為界面控件正常。本說明書實施例所述的內(nèi)容僅僅是對發(fā)明構(gòu)思的實現(xiàn)形式的列舉,本發(fā)明的保護 范圍不應(yīng)當(dāng)被視為僅限于實施例所陳述的具體形式,本發(fā)明的保護范圍也及于本領(lǐng)域技術(shù) 人員根據(jù)本發(fā)明構(gòu)思所能夠想到的等同技術(shù)手段。
權(quán)利要求
基于AUTOSAR標準的ECU參數(shù)配置界面生成方法,包括以下步驟1)、生成與AUTOSAR標準中的ECU配置參數(shù)項一一對應(yīng)的類模型,設(shè)置界面控件屬性,使界面控件與類模型一一對應(yīng);2)、生成界面時,獲取當(dāng)前的配置參數(shù)項,確定與當(dāng)前的配置參數(shù)項對應(yīng)的類模型;解析所述的類模型,獲取類模型信息;3)、根據(jù)類模型信息,生成相應(yīng)的界面控件。
2.如權(quán)利要求1所述的基于AUT0SAR標準的ECU參數(shù)配置界面生成方法,其特征在于 步驟1)中,生成類模型和界面控件包括以下步驟(1. 1)、建立與AUT0SAR標準中的E⑶非基本數(shù)據(jù)類型的參數(shù)類別一一對應(yīng)、能通過解析 各ECU配置參數(shù)項生成與所述的配置參數(shù)項對應(yīng)的類模型的生成模塊;(1.2)、讀取AUT0SAR的E⑶參數(shù)定義文件,通過生成模塊解析各E⑶配置參數(shù)項、生成 對應(yīng)的類模型,所述的類模型作為配置工具源代碼的一部分被編譯入配置工具中;所述的 類模型將與其對應(yīng)的參數(shù)項的屬性、所述的參數(shù)項的數(shù)據(jù)成員和所述的數(shù)據(jù)成員的屬性信 息作為類模型信息,所述的類模型信息與界面控件對應(yīng)。
3.如權(quán)利要求2所述的基于AUT0SAR標準的ECU參數(shù)配置界面生成方法,其特征在于 步驟1)中,生成類模型包括以下步驟92.1)、每個參數(shù)項均對應(yīng)生成一個類模型,類模型名稱為對應(yīng)參數(shù)項的SHORT-NAME屬 性,參數(shù)項的數(shù)據(jù)成員作為該類模型的模型成員;(2. 2)、分別標明類模型的類型和屬性;(2. 3)、判斷數(shù)據(jù)成員類型是否基本數(shù)據(jù)類型若數(shù)據(jù)成員類型是引用型的基本數(shù)據(jù)類 型,或者 UPPER_MULTIPLICITY > 1 或者,MULTIPLE_C0NFIGURATI0N_C0NTAINER 為 true 時, 則用List <成員類型>來表示對應(yīng)的模型成員的類型;若數(shù)據(jù)成員類型為Module,則用其定義中的SHORT-NAME屬性來表示模型成員的類型;若數(shù)據(jù)成員類型為Container的,則判斷該Container是否CH0ICEC0NTAINERDEF、且子 容器是多選一;若是,則在生成的類模型添中加一個整型的數(shù)據(jù)成員index,表示配置的時 候選擇了哪個子容器;若否,則用其SHORT-NAME屬性來表示模型成員的類型;(2. 4),若數(shù)據(jù)成員類型不是基本數(shù)據(jù)類型,則調(diào)用與數(shù)據(jù)成員對應(yīng)的類模型。
全文摘要
基于AUTOSAR標準的ECU參數(shù)配置界面生成方法,包括以下步驟生成與AUTOSAR標準中的ECU配置參數(shù)項一一對應(yīng)的類模型,設(shè)置界面控件屬性,使界面控件與類模型一一對應(yīng);生成界面時,獲取當(dāng)前的配置參數(shù)項,確定與當(dāng)前的配置參數(shù)項對應(yīng)的類模型;解析所述的類模型,獲取類模型信息;根據(jù)類模型信息,生成相應(yīng)的界面控件。本發(fā)明具有開發(fā)效率高,可擴展性好,可維護性好,用戶操作方便的優(yōu)點。
文檔編號G06F9/44GK101901148SQ20101010633
公開日2010年12月1日 申請日期2010年1月28日 優(yōu)先權(quán)日2010年1月28日
發(fā)明者孫征, 李楠, 李紅, 楊國青, 鐘曉峰, 鮑威 申請人:浙江大學(xué)