0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

詳細介紹下如何解析ODX數(shù)據(jù)庫

汽車電子設計 ? 來源:北匯信息 ? 2023-02-17 10:27 ? 次閱讀

在展開正文之前,先說明一下,此文介紹的解析ODX數(shù)據(jù)庫的目的所在。

針對涉及診斷功能類(如DTC等)測試的項目,實現(xiàn)過程大致為兩步:先通過CANoe-CAPL完成通用的診斷功能測試腳本的開發(fā);當針對具體ECU實施測試時,依據(jù)該ECU的診斷數(shù)據(jù)表,完成上述通用腳本的參數(shù)配置,可以手動配置(效率較低)或通過解析診斷數(shù)據(jù)表完成自動配置。過往項目中,診斷數(shù)據(jù)表既有Excel表格也有ODX格式。

為此,北匯開發(fā)了診斷數(shù)據(jù)表的解析模塊(支持Excel和ODX格式),實現(xiàn)對測試腳本參數(shù)的自動配置,從而提高效率。

01 ODX實現(xiàn)方式

ODX使用統(tǒng)一建模語言UML類圖來描述的,ODX數(shù)據(jù)又是通過XML文件格式來儲存的。我們知道類包含屬性和方法,同時具有封裝、繼承、多態(tài)等特點。那么如何將UML映射為XML呢?ISO22901-1規(guī)范做出如下規(guī)定:

規(guī) 定

將UML類映射為XML的元素; 如果UML中類的屬性有《attr》標記,則將該屬性映射為XML元素的屬性;如果UML中類的屬性無《attr》標記,則映射為XML元素的子元素。如果UML屬性有《content》標記,則映射為XML元素的內(nèi)容;

如果類B通過Aggregation和composition和類A建立聯(lián)系,則類B映射為XML 類A元素的子元素;

如果類B通過association和類A產(chǎn)生關聯(lián),則在XML中通常以引用的方式實現(xiàn),如《snref》,《snpathref》或《odxlink》;

UML類圖中的繼承關系,在XML中以的方式實現(xiàn);

注:Aggregation、composition和association為UML類圖之間的關系,在這里不做詳細介紹。

圖1和圖2就是根據(jù)以上規(guī)則,將UML轉化為XML的例子。

9f9d2512-ae57-11ed-bfe3-dac502259ad0.png

圖1

9fcf95d8-ae57-11ed-bfe3-dac502259ad0.png

圖2

02 ODX繼承-值繼承

值繼承屬于ODX中的核心概念,面向對象繼承的概念用于診斷數(shù)據(jù)模型具有如下優(yōu)點:

多個ECU變體對診斷數(shù)據(jù)的復用;

對于ECU應用于多個項目的情況,可以提取公共數(shù)據(jù),ECU變體中只保留不同的數(shù)據(jù),從而減少數(shù)據(jù)冗余;

提供了數(shù)據(jù)安全和可集成性。

在上一期我們簡單介紹了下ODX繼承,為了避免數(shù)據(jù)的重復冗余,ODX將診斷層分為了5個層級。如圖3所示,其中,Protocol具有一般性,ECU Variant具有特殊性,ECU Shared Data類似一個library,可以為其他層提供數(shù)據(jù)和服務。

9ffbde9a-ae57-11ed-bfe3-dac502259ad0.png

圖3 我們知道,ODX中的繼承關系,在XML中以的方式實現(xiàn)的,如果繼承的數(shù)據(jù)中有部分數(shù)據(jù)不適用,可以通過去除不適用的數(shù)據(jù)。

從圖4的例子中可以看出,該ECU不支持level3和level4解鎖等級。

a042c562-ae57-11ed-bfe3-dac502259ad0.png

圖4

03 ODX解析思路簡介

當我們拿到一份ODX或者PDX(PDX是將一系列ODX文件打包)時,如何開展解析工作呢?

首先找到ECU的Base Variant文件。

在Base Variant中查找繼承關系。

在Base Variant文件中查找對應的ECU變體即ECU Variant。

在ECU Variant文件中查找對應的診斷服務和數(shù)據(jù)。

a0683ec8-ae57-11ed-bfe3-dac502259ad0.png

圖5

04 ODX解析實踐

根據(jù)章節(jié)3的ODX解析思路,獲得的解析結果見圖6、7和8。其中ECU Shared Data作為library,提供了通用的診斷服務,見圖6;而ECU變體BCM 88890251 A除了繼承Base Variant的通用診斷服務,還增加了多個DID、RID、IO Control,同時去除了19 15、27 05和27 06這些不適用的服務。圖8展示了ODX中包含的多種數(shù)據(jù)類型,這里不再詳細介紹。

a08e6f58-ae57-11ed-bfe3-dac502259ad0.png

圖6

a0e05372-ae57-11ed-bfe3-dac502259ad0.png

圖7

a1745f40-ae57-11ed-bfe3-dac502259ad0.png

圖8

05 總結

相較于傳統(tǒng)的Excel格式的診斷數(shù)據(jù)交換的不便性,ODX統(tǒng)一了診斷文件的格式,在研發(fā)、測試、生產(chǎn)和售后等部門傳遞交換時,不需要進行格式轉換,因此,很多OEM開始使用ODX。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • XML
    XML
    +關注

    關注

    0

    文章

    186

    瀏覽量

    33013
  • 數(shù)據(jù)庫

    關注

    7

    文章

    3737

    瀏覽量

    64173
  • UML
    UML
    +關注

    關注

    0

    文章

    122

    瀏覽量

    30837
  • DTC控制
    +關注

    關注

    0

    文章

    18

    瀏覽量

    1158

原文標題:基于ODX診斷測試開發(fā)(2): ODX數(shù)據(jù)庫解析

文章出處:【微信號:QCDZSJ,微信公眾號:汽車電子設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    科技云報到:大模型時代,向量數(shù)據(jù)庫的野望

    科技云報到:大模型時代,向量數(shù)據(jù)庫的野望
    的頭像 發(fā)表于 10-14 17:18 ?140次閱讀

    Oracle數(shù)據(jù)恢復—異常斷電后Oracle數(shù)據(jù)庫報錯的數(shù)據(jù)恢復案例

    Oracle數(shù)據(jù)庫的在線文件,需要恢復zxfg用戶的數(shù)據(jù)。 Oracle數(shù)據(jù)庫恢復方案: 檢測數(shù)據(jù)庫故障;嘗試掛起并修復數(shù)據(jù)庫
    的頭像 發(fā)表于 09-30 13:31 ?152次閱讀
    Oracle<b class='flag-5'>數(shù)據(jù)</b>恢復—異常斷電后Oracle<b class='flag-5'>數(shù)據(jù)庫</b>啟<b class='flag-5'>庫</b>報錯的<b class='flag-5'>數(shù)據(jù)</b>恢復案例

    數(shù)據(jù)庫數(shù)據(jù)恢復—SQL Server數(shù)據(jù)庫出現(xiàn)823錯誤的數(shù)據(jù)恢復案例

    SQL Server數(shù)據(jù)庫故障: SQL Server附加數(shù)據(jù)庫出現(xiàn)錯誤823,附加數(shù)據(jù)庫失敗。數(shù)據(jù)庫沒有備份,無法通過備份恢復數(shù)據(jù)庫
    的頭像 發(fā)表于 09-20 11:46 ?231次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>出現(xiàn)823錯誤的<b class='flag-5'>數(shù)據(jù)</b>恢復案例

    數(shù)據(jù)庫數(shù)據(jù)恢復】Oracle數(shù)據(jù)庫ASM實例無法掛載的數(shù)據(jù)恢復案例

    oracle數(shù)據(jù)庫ASM磁盤組掉線,ASM實例不能掛載。數(shù)據(jù)庫管理員嘗試修復數(shù)據(jù)庫,但是沒有成功。
    的頭像 發(fā)表于 02-01 17:39 ?420次閱讀
    【<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復】Oracle<b class='flag-5'>數(shù)據(jù)庫</b>ASM實例無法掛載的<b class='flag-5'>數(shù)據(jù)</b>恢復案例

    Access數(shù)據(jù)庫基礎知識介紹

    電子發(fā)燒友網(wǎng)站提供《Access數(shù)據(jù)庫基礎知識介紹.pdf》資料免費下載
    發(fā)表于 01-02 10:24 ?3次下載

    輕量級數(shù)據(jù)庫有哪些類型

    輕量級數(shù)據(jù)庫是指具有小巧、靈活、高效的特點,適用于小規(guī)模項目和嵌入式設備的數(shù)據(jù)庫管理系統(tǒng)。下面是對輕量級數(shù)據(jù)庫類型的詳細介紹,包括關系型
    的頭像 發(fā)表于 12-20 11:29 ?1105次閱讀

    mysql數(shù)據(jù)庫基礎命令

    MySQL是一個流行的關系型數(shù)據(jù)庫管理系統(tǒng),經(jīng)常用于存儲、管理和操作數(shù)據(jù)。在本文中,我們將詳細介紹MySQL的基礎命令,并提供與每個命令相關的詳細
    的頭像 發(fā)表于 12-06 10:56 ?507次閱讀

    oracle數(shù)據(jù)庫的基本操作

    Oracle數(shù)據(jù)庫是一種關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),廣泛應用于企業(yè)級應用中。它具有強大的功能和靈活的配置選項,可以滿足復雜的數(shù)據(jù)處理需求。本文將介紹Oracle
    的頭像 發(fā)表于 12-06 10:14 ?616次閱讀

    tcmsp數(shù)據(jù)庫怎么用

    詳細介紹TCMSP數(shù)據(jù)庫的使用方法和特點。 首先,TCMSP數(shù)據(jù)庫的主要功能是提供中藥化學的大規(guī)模高通量篩選數(shù)據(jù)和藥理活性
    的頭像 發(fā)表于 12-06 10:11 ?3978次閱讀

    oracle數(shù)據(jù)庫的使用方法

    Oracle數(shù)據(jù)庫是一種關系型數(shù)據(jù)庫管理系統(tǒng),它由Oracle公司開發(fā)和維護。它提供了安全、可靠和高性能的數(shù)據(jù)庫管理解決方案,被廣泛應用于企業(yè)級應用和大型數(shù)據(jù)庫環(huán)境中。本文將
    的頭像 發(fā)表于 12-06 10:10 ?1107次閱讀

    什么是JSON數(shù)據(jù)庫

    如何理解JSON數(shù)據(jù)庫?作為NoSQL數(shù)據(jù)庫的一種類型,JSON數(shù)據(jù)庫有哪些優(yōu)勢呢?JSON數(shù)據(jù)庫如何運作,它為應用程序開發(fā)者帶來了哪些價值呢?文章速覽:什么是JSON什么是JSON
    的頭像 發(fā)表于 12-02 08:04 ?768次閱讀
    什么是JSON<b class='flag-5'>數(shù)據(jù)庫</b>

    NoSQL 數(shù)據(jù)庫如何選型

    什么是NoSQL數(shù)據(jù)庫?為什么要使用NoSQL數(shù)據(jù)庫?鍵值數(shù)據(jù)庫內(nèi)存鍵值數(shù)據(jù)庫文檔數(shù)據(jù)庫列式數(shù)據(jù)庫
    的頭像 發(fā)表于 11-26 08:05 ?401次閱讀
    NoSQL <b class='flag-5'>數(shù)據(jù)庫</b>如何選型

    sql數(shù)據(jù)庫入門基礎知識

    開發(fā)人員或數(shù)據(jù)庫管理員的重要基礎。本文將介紹SQL的入門基礎知識,詳細介紹SQL的語法、常用操作以及一些實用技巧。 一、SQL的基本概念和語法 數(shù)據(jù)
    的頭像 發(fā)表于 11-23 14:24 ?1811次閱讀

    navicat怎么導出數(shù)據(jù)庫文件

    導出數(shù)據(jù)庫文件是數(shù)據(jù)庫管理中的一個重要操作,而Navicat是一款流行的數(shù)據(jù)庫管理工具,具有強大的導出功能。在本文中,我將詳細介紹如何使用N
    的頭像 發(fā)表于 11-21 10:53 ?7602次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復——MongoDB數(shù)據(jù)庫介紹數(shù)據(jù)恢復案例

    MongoDB數(shù)據(jù)庫是文檔數(shù)據(jù)存儲,將文檔存儲在集合之中,不是像MySQL一樣的關系型數(shù)據(jù)庫。
    的頭像 發(fā)表于 11-08 15:04 ?816次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復——MongoDB<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>介紹</b>和<b class='flag-5'>數(shù)據(jù)</b>恢復案例