【ODX介绍】-2-如何手动编辑PDX文件以及PDX结构介绍

本文详细介绍了PDX(PACKAGED ODX DATA)的结构和编辑方法,包括PDX package catalogue的构成,如何解压、修改及替换PDX文件。此外,还强调了在ODX数据交换中文件命名和分类的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总目录:(单击下方链接皆可跳转至专栏总目录)

《UDS/OBD诊断&诊断描述文件CDD》总目录https://blog.youkuaiyun.com/qfmzhu/article/details/120425660icon-default.png?t=M276https://blog.youkuaiyun.com/qfmzhu/article/details/120425660

目录

1 PDX - PACKAGED ODX DATA

2 PDX package catalogue结构

3 PDX封装的技术方面

4 如何手动编辑一个PDX文件

4.1 解压PDX文件

4.2 手动修改PDX中的文件

4.3 替换PDX中文件

5 结尾


关键字:
ODX:Open Diagnostic Data Exchange
PDX:Packaged ODX
ASAM
Vector ODX Studio工具
UDS/OBD诊断描述文件
ODX/PDX刷写文件

1 PDX - PACKAGED ODX DATA

ODX数据的交换可以通过一个叫做“PDX package”的文件容器来实现。要交换的所有文件都打包在一个PDX package中。PDX package可以处理不同类型的ODX文件。

以下是ODX V2.0.1ODX V2.2.0版本中,ODX文件扩展名差异:

ODX V2.0.1

ODX V2.2.0

odx-d

DIAG-LAYER-CONTAINER

odx-d

DIAG-LAYER-CONTAINER

odx-c

COMPARAM-SPEC

odx-c

COMPARAM-SPEC

odx-v

VEHICLE-INFORMATION-SPEC

odx-v

VEHICLE-INFORMATION-SPEC

odx-m

MULTIPLE-ECU-JOB-SPEC

odx-m

MULTIPLE-ECU-JOB-SPEC

odx-f

FLASH

odx-f

FLASH

odx-cs

COMPARAM-SUBSET

odx-e

ECU-CONFIG

odx-fd

FUNCTION-DICTIONARY

注:所有包含ODX数据的文件都可以使用扩展名“odx”,限制性较小。

PDX package不仅可以包含ODX数据、文本或图片,还可以包含任意格式的任意文件。

PDX package的内容在称为“PDX package catalogue”的单独XML文档中进行了描述。PDX package catalogue本身不包含ODX数据。它用作交换过程中元数据的存储库。

所有ODX兼容工具都必须以区分大小写的方式处理包含ODX数据或参与ODX/PDX交换过程的文件的所有文件名。文件扩展名应始终以小写字母表示。PDX package catalogue的文件名应始终为小写字母“index.xml”。(注:该段落在ODX V2.2.0中新增

PDX package/package catalogue用例:

  • OEM和合作伙伴之间的相互数据交换:

--完整数据交换(一种或两种方式)

--增量(部分)数据交换:仅交换新创建或更改的数据

  • 配置管理和版本控制:

--修订历史交换

--支持特定于CMS的版本控制:每个流程合作伙伴可以独立添加CMS内部修订信息

--多版本控制:可以在单个PDX package中提供文件的不同版本

注:CMS -- Configuration Management System配置管理系统

2 PDX package catalogue结构

PDX package由一组文件组成。PDX package的内容在PDX package catalogue中进行了描述,该catalogue是PDX package中存储的文件之一。

图 - PDX package catalogue的UML表示和结构

PDX package catalogueCATALOG实例表示;它提供了存储在相应PDX package中的所有文件的列表。这些文件条目可以按逻辑分组。例如,ODX数据文件可以存储在一组中,文档文件(手册、图像等)可以存储在另一组中。

为此,CATALOG包含一个所谓的ABLOCK列表;每个ABLOCK代表一个逻辑组,并且可能包含任意数量的FILE成员,每个成员代表PDX package中的单个文件。可选地,可以为ABLOCK指定CATEGORY成员。这允许为文件分类定义特定于流程的标准。为CATEGORY预定义了以下值:

  1. 从ODX-CATEGORY派生的所有文件的ODX-DATA
  2. 所有作业代码文件的ODX-JOB(例如java文件、class文件、jar文件、dll文件)
  3. LIB用于可以使用或由作业导入的所有库
  4. 用于ECU编程并从ECU-MEM引用的二进制/十六进制文件的PROGRAMMING-DATA

可以根据实际用例扩展预定义的CATEGORY列表(注:该句在ODX V2.2.0中新增)。SHORT-NAME是每个ABLOCK的强制性成员。它标识ABLOCK中的文件所属的逻辑组,而不是ABLOCK本身。一个PDX package catalogue中可能存在多个具有相同SHORT-NAME的ABLOCK。

每个ABLOCK可能包含一个可选的ADMIN-DATA成员来存储特定于ABLOCK的修订信息,即,它指的是ABLOCK中的所有文件。对PDX package中的所有文件有效的ADMIN-DATA和其他全局元数据(如COMPANY-DATA)可以直接存储在CATALOG中。

一个ABLOCK有一个强制性的UPD成员,它描述了数据交换过程中ABLOCK文件的更新状态。UPD属性可以具有以下值之一:

  1. NEW:引入了新文件。
  2. CHANGED:文件已更改。
  3. UNCHANGED:文件没有改变。
  4. UNUSED:这些文件目前不再使用,但将来可能会再次使用。
  5. REUSED:在数据交换过程的较早阶段已标记为UNUSED的文件将再次使用。
  6. DELETED:文件已被删除。
  7. UNDEFINED:没有可用的更新状态。这是默认值。

每个FILE成员指定文件名以在PDX package中定位一个文件。可以使用可选属性指定此类文件的MIME-TYPE、CREATOR和CREATION-DATE。作为MIME-TYPE的值,应使用已经标准化的MIME类型。由于ODX文档是XML文档,因此应为它们使用MIME-TYPE“text/xml”。为了区分不同类型的ODX数据,在目录中应使用下表中定义的MIME-TYPE

表 - PDX packages中使用的MIME-TYPE(注:ODX V2.0.1

File extension文件扩展名

MIME-TYPE

class

application/x-java-vm

.java

text/plain

.jar

application/x-java-archive

.odx

(odx-f,odx-c,…)text/xml

.xml

text/xml

.pdf

application/pdf

.hex

(flash data)application/octet-stream

.zip

application/zip

示例:以下是一个包含三个文件PDX package catalogue的*.xml文件内容。

<CATALOG>
    <SHORT-NAME>ODX_CC_Example</SHORT-NAME>
    <ABLOCKS>
        <ABLOCK UPD="NEW">
            <SHORT-NAME>DiagData</SHORT-NAME>
            <CATEGORY>ODX-DATA</CATEGORY>
            <FILES>
                <FILE MIME-TYPE="text/xml" CREATOR="xyz"CREATION-DATE="2003-02-12">DiagData.odx</FILE>
            </FILES>
        </ABLOCK>
        <ABLOCK UPD="NEW">
            <SHORT-NAME>Documentation</SHORT-NAME>
            <CATEGORY>DOCUMENTATION</CATEGORY>
            <FILES>
                <FILE MIME-TYPE="application/pdf" CREATOR="xyz" CREATION-DATE="2003-02-12">odx_spec.pdf</FILE>
                <FILE MIME-TYPE="text/html" CREATOR="xyz" CREATION-DATE="2003-02-12">readme.html</FILE>
            </FILES>
        </ABLOCK>
    </ABLOCKS>
</CATALOG>

表 - PDX packages中使用的MIME-TYPE(注:ODX V2.2.0

ODX category

File extension

MIME-TYPE

Comparam Spec,Comparam Subset

odx-c,odx-cs

application/x-asam.odx.odx-c,

Diag-Layer Container

odx-d

application/x-asam.odx.odx-d

Vehicle Info Spec

odx-v

application/x-asam.odx.odx-v

Flash

odx-f

application/x-asam.odx.odx-f

Multiple ECU Job

odx-m

application/x-asam.odx.odx-m

ECU Config

odx-e

application/x-asam.odx.odx-e

Functional Dictionary

odx-fd

application/x-asam.odx.odx-fd

Java Jobs

Jar

application/x-asam.odx.jobs.xjar-Archive

Java Jobs Source

Jar

application/x-asam.odx.jobs.xjava-Source

示例:以下是一个包含三个文件PDX package catalogue的*.xml文件内容。

<?xml version="1.0" encoding="UTF-8"?>
<CATALOG F-DTD-VERSION="ODX-2.2.0" xsi:noNamespaceSchemaLocation = "odx-cc.xsd" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance">
    <SHORT-NAME>ODX_CC_Example</SHORT-NAME>
    <ABLOCKS>
        <ABLOCK UPD = "NEW">
            <SHORT-NAME>DiagData</SHORT-NAME>
            <CATEGORY>ODX-DATA</CATEGORY>
            <FILES>
                <FILE MIME-TYPE = "text/xml" CREATOR = "xyz" CREATION-DATE = "2005-12-08">DiagData.odx</FILE>
            </FILES>
        </ABLOCK>
        <ABLOCK UPD = "NEW">
            <SHORT-NAME>Documentation</SHORT-NAME>
            <CATEGORY>DOCUMENTATION</CATEGORY>
            <FILES>
                <FILE MIME-TYPE = "application/pdf" CREATOR = "xyz" CREATION-DATE = "2005-12-08">odx_spec.pdf</FILE>
                <FILE MIME-TYPE = "text/html" CREATOR = "xyz" CREATION-DATE= "2005-12-08">readme.html</FILE>
            </FILES>
        </ABLOCK>
    </ABLOCKS>
</CATALOG>

3 PDX封装的技术方面

PDX package作为ZIP存档实现,文件扩展名为“.pdx”(用于“packaged ODX”)。

PDX package包含一个带有PDX package catalogue的文件(参见上面的示例)。此文件名为“index.xml”,位于PDX package内部文件系统层次结构的根目录中。

PDX package是一个自包含文件,即,PDX package catalogue仅引用PDX package内的文件。因此,PDX package catalogue中不允许引用外部文件。

PDX package支持在分层目录结构中存储文件。在分层文件存储的情况下,PDX package catalogue中的所有文件路径都被制定为从PDX package内部文件系统层次结构的根目录开始的绝对路径(例如“zipdirectory1/zipdirectory2/myfile.odx”)。对于java job,需要将java package结构的完整路径包含在PDX文件中,以保持java job的明确性。

PDX package中文件的命名约定:

文件名通常按照以下方案构建:

NAME.EXTENSION

文件的类型由MIME-TYPE成员明确指定。因此,不需要符合ODX的工具将文件扩展名映射到MIME类型。文件扩展名应作为文件名的一部分处理。

为了在单个ODX容器中存储同一文件的多个修订(在ODX中称为“multi-versioning多版本控制”),每个文件修订都存储在单独的ABLOCK中。包含同一文件修订的所有ABLOCK共享相同的SHORT-NAME。

4 如何手动编辑一个PDX文件

由于ODX Studio等编辑PDX工具比较昂贵,有时比较稀缺。当你熟悉PDX/ODX文件内部格式后(手动修改的前提,可通过手动修改的方式实现快速修改PDX文件。

以下图“Test_PDX_File.pdx”文件为例,见图4-1。

 图4-1

4.1 解压PDX文件

选中“Test_PDX_File.pdx”文件,使用7Z工具解压这个PDX文件,见图4-2和图4-3。

 图4-2

 图4-3

4.2 手动修改PDX中的文件

PDX解压后得到多个odx,xml,jar…文件,接着找到修改的文件,修改并保存,见图4-4。

 图4-4

4.3 替换PDX中文件

使用7Z工具打开PDX文件,见图4-5。

 图4-5

将修改后的文件,拖曳至7Z工具中实现对应文件的替换,见图4-6和图4-7。这样PDX文件就修改完成了。

 图4-6

 图4-7

5 结尾

我理解你的问题是关于ODXStudio的使用教程。ODXStudio是一种用于制作ODX文件的工具,它是利用ODX规范描述车辆和物理ECU的诊断数据的。以下是使用ODXStudio的一般步骤: 1. 下载和安装ODXStudio软件。ODXStudio可以从Vector或KPIT官方网站下载。 2. 打开ODXStudio软件,创建一个新的ODX项目。 3. 在新的ODX项目中,你可以开始创建诊断数据模型。ODXStudio提供了UML图形界面,你可以使用它来描述诊断故障代码、数据参数、识别数据、输入/输出参数、ECU配置数据等。 4. 在创建诊断数据模型时,你可以使用ODX规范中定义的各种元素。例如,你可以定义故障码、参数、通信设置等。 5. 完成诊断数据模型后,你可以导出为ODX文件ODX文件是XML格式的,可以被诊断工具应用制造商使用。 总结一下,使用ODXStudio的基本步骤包括下载和安装软件、创建新的ODX项目、使用UML图形界面创建诊断数据模型,并导出为ODX文件。这样,你就可以使用ODX文件进行诊断协议测试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【ODX标准】(Open Diagnostic data exchange)ODX简单介绍](https://blog.youkuaiyun.com/weixin_42222865/article/details/108864607)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [CANoe.DiVa 操作指南 - 逆向测试项设置](https://blog.youkuaiyun.com/Soly_kun/article/details/127797612)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车电子助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值