在展開正文之前,先說明一下,此文介紹的解析ODX數(shù)據(jù)庫的目的所在。
針對涉及診斷功能類(如DTC等)測試的項(xiàng)目,實(shí)現(xiàn)過程大致為兩步:先通過CANoe-CAPL完成通用的診斷功能測試腳本的開發(fā);當(dāng)針對具體ECU實(shí)施測試時(shí),依據(jù)該ECU的診斷數(shù)據(jù)表,完成上述通用腳本的參數(shù)配置,可以手動(dòng)配置(效率較低)或通過解析診斷數(shù)據(jù)表完成自動(dòng)配置。過往項(xiàng)目中,診斷數(shù)據(jù)表既有Excel表格也有ODX格式。
為此,北匯開發(fā)了診斷數(shù)據(jù)表的解析模塊(支持Excel和ODX格式),實(shí)現(xiàn)對測試腳本參數(shù)的自動(dòng)配置,從而提高效率。
01 ODX實(shí)現(xiàn)方式
ODX使用統(tǒng)一建模語言UML類圖來描述的,ODX數(shù)據(jù)又是通過XML文件格式來儲(chǔ)存的。我們知道類包含屬性和方法,同時(shí)具有封裝、繼承、多態(tài)等特點(diǎn)。那么如何將UML映射為XML呢?ISO22901-1規(guī)范做出如下規(guī)定:
規(guī) 定
將UML類映射為XML的元素; 如果UML中類的屬性有《attr》標(biāo)記,則將該屬性映射為XML元素的屬性;如果UML中類的屬性無《attr》標(biāo)記,則映射為XML元素的子元素。如果UML屬性有《content》標(biāo)記,則映射為XML元素的內(nèi)容;
如果類B通過Aggregation和composition和類A建立聯(lián)系,則類B映射為XML 類A元素的子元素;
如果類B通過association和類A產(chǎn)生關(guān)聯(lián),則在XML中通常以引用的方式實(shí)現(xiàn),如《snref》,《snpathref》或《odxlink》;
UML類圖中的繼承關(guān)系,在XML中以
注:Aggregation、composition和association為UML類圖之間的關(guān)系,在這里不做詳細(xì)介紹。
圖1和圖2就是根據(jù)以上規(guī)則,將UML轉(zhuǎn)化為XML的例子。
圖1
圖2
02 ODX繼承-值繼承
值繼承屬于ODX中的核心概念,面向?qū)ο罄^承的概念用于診斷數(shù)據(jù)模型具有如下優(yōu)點(diǎn):
多個(gè)ECU變體對診斷數(shù)據(jù)的復(fù)用;
對于ECU應(yīng)用于多個(gè)項(xiàng)目的情況,可以提取公共數(shù)據(jù),ECU變體中只保留不同的數(shù)據(jù),從而減少數(shù)據(jù)冗余;
提供了數(shù)據(jù)安全和可集成性。
在上一期我們簡單介紹了下ODX繼承,為了避免數(shù)據(jù)的重復(fù)冗余,ODX將診斷層分為了5個(gè)層級(jí)。如圖3所示,其中,Protocol具有一般性,ECU Variant具有特殊性,ECU Shared Data類似一個(gè)library,可以為其他層提供數(shù)據(jù)和服務(wù)。
圖3 我們知道,ODX中的繼承關(guān)系,在XML中以
從圖4的例子中可以看出,該ECU不支持level3和level4解鎖等級(jí)。
圖4
03 ODX解析思路簡介
當(dāng)我們拿到一份ODX或者PDX(PDX是將一系列ODX文件打包)時(shí),如何開展解析工作呢?
首先找到ECU的Base Variant文件。
在Base Variant中查找繼承關(guān)系。
在Base Variant文件中查找對應(yīng)的ECU變體即ECU Variant。
在ECU Variant文件中查找對應(yīng)的診斷服務(wù)和數(shù)據(jù)。
圖5
04 ODX解析實(shí)踐
根據(jù)章節(jié)3的ODX解析思路,獲得的解析結(jié)果見圖6、7和8。其中ECU Shared Data作為library,提供了通用的診斷服務(wù),見圖6;而ECU變體BCM 88890251 A除了繼承Base Variant的通用診斷服務(wù),還增加了多個(gè)DID、RID、IO Control,同時(shí)去除了19 15、27 05和27 06這些不適用的服務(wù)。圖8展示了ODX中包含的多種數(shù)據(jù)類型,這里不再詳細(xì)介紹。
圖6
圖7
圖8
05 總結(jié)
相較于傳統(tǒng)的Excel格式的診斷數(shù)據(jù)交換的不便性,ODX統(tǒng)一了診斷文件的格式,在研發(fā)、測試、生產(chǎn)和售后等部門傳遞交換時(shí),不需要進(jìn)行格式轉(zhuǎn)換,因此,很多OEM開始使用ODX。
審核編輯:劉清
-
XML
+關(guān)注
關(guān)注
0文章
188瀏覽量
34187 -
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3978瀏覽量
67416 -
UML
+關(guān)注
關(guān)注
0文章
122瀏覽量
31401 -
DTC控制
+關(guān)注
關(guān)注
0文章
19瀏覽量
1338
原文標(biāo)題:基于ODX診斷測試開發(fā)(2): ODX數(shù)據(jù)庫解析
文章出處:【微信號(hào):QCDZSJ,微信公眾號(hào):汽車電子設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—服務(wù)器異常斷電導(dǎo)致Oracle數(shù)據(jù)庫故障的數(shù)據(jù)恢復(fù)案例

三款主流國產(chǎn)數(shù)據(jù)庫的技術(shù)特點(diǎn)
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫文件丟失的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫被加密如何恢復(fù)數(shù)據(jù)?

MySQL數(shù)據(jù)庫是什么
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫文件拷貝后服務(wù)無法啟動(dòng)的數(shù)據(jù)恢復(fù)

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server附加數(shù)據(jù)庫提示“錯(cuò)誤 823”的數(shù)據(jù)恢復(fù)案例

買云數(shù)據(jù)庫要購買服務(wù)器嗎?答案在這里
MySQL數(shù)據(jù)庫的安裝

云數(shù)據(jù)庫是哪種數(shù)據(jù)庫類型?
ODX診斷數(shù)據(jù)庫轉(zhuǎn)換工具 - DDC

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復(fù)流程

數(shù)據(jù)庫事件觸發(fā)的設(shè)置和應(yīng)用
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—通過拼接數(shù)據(jù)庫碎片恢復(fù)SQLserver數(shù)據(jù)庫

評(píng)論