当前位置:   article > 正文

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

pdx文件

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

《UDS/OBD诊断&诊断描述文件CDD》总目录https://blog.csdn.net/qfmzhu/article/details/120425660icon-default.png?t=M276https://blog.csdn.net/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文件内容。

  1. <CATALOG>
  2. <SHORT-NAME>ODX_CC_Example</SHORT-NAME>
  3. <ABLOCKS>
  4. <ABLOCK UPD="NEW">
  5. <SHORT-NAME>DiagData</SHORT-NAME>
  6. <CATEGORY>ODX-DATA</CATEGORY>
  7. <FILES>
  8. <FILE MIME-TYPE="text/xml" CREATOR="xyz"CREATION-DATE="2003-02-12">DiagData.odx</FILE>
  9. </FILES>
  10. </ABLOCK>
  11. <ABLOCK UPD="NEW">
  12. <SHORT-NAME>Documentation</SHORT-NAME>
  13. <CATEGORY>DOCUMENTATION</CATEGORY>
  14. <FILES>
  15. <FILE MIME-TYPE="application/pdf" CREATOR="xyz" CREATION-DATE="2003-02-12">odx_spec.pdf</FILE>
  16. <FILE MIME-TYPE="text/html" CREATOR="xyz" CREATION-DATE="2003-02-12">readme.html</FILE>
  17. </FILES>
  18. </ABLOCK>
  19. </ABLOCKS>
  20. </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文件内容。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <CATALOG F-DTD-VERSION="ODX-2.2.0" xsi:noNamespaceSchemaLocation = "odx-cc.xsd" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance">
  3. <SHORT-NAME>ODX_CC_Example</SHORT-NAME>
  4. <ABLOCKS>
  5. <ABLOCK UPD = "NEW">
  6. <SHORT-NAME>DiagData</SHORT-NAME>
  7. <CATEGORY>ODX-DATA</CATEGORY>
  8. <FILES>
  9. <FILE MIME-TYPE = "text/xml" CREATOR = "xyz" CREATION-DATE = "2005-12-08">DiagData.odx</FILE>
  10. </FILES>
  11. </ABLOCK>
  12. <ABLOCK UPD = "NEW">
  13. <SHORT-NAME>Documentation</SHORT-NAME>
  14. <CATEGORY>DOCUMENTATION</CATEGORY>
  15. <FILES>
  16. <FILE MIME-TYPE = "application/pdf" CREATOR = "xyz" CREATION-DATE = "2005-12-08">odx_spec.pdf</FILE>
  17. <FILE MIME-TYPE = "text/html" CREATOR = "xyz" CREATION-DATE= "2005-12-08">readme.html</FILE>
  18. </FILES>
  19. </ABLOCK>
  20. </ABLOCKS>
  21. </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 结尾

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/303802?site
推荐阅读
相关标签
  

闽ICP备14008679号