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

《UDS/OBD诊断&诊断描述文件CDD》总目录https://blog.csdn.net/qfmzhu/article/details/120425660https://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 catalogue由CATALOG实例表示;它提供了存储在相应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 结尾

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

  1. mysql日志文件的类型和作用_Mysql日志文件和日志类型介绍_MySQL

    日志文件类型 MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情: 日志文件 记入文件中的信息类型 错误日志 记录启动.运行或停止mysqld时出现的问题. 查询日志 记录建立的 ...

  2. 安装matlab到99%时出现的问题:在您的许可证文件中找不到 SERVER 行。您需要在 ...... 中手动编辑 SERVER

    最近在我的window7 64位系统上安装Matlab2012b,安装过程中,需要输入密钥和导入许可证文件(均从网上找的),但是当安装到99%时,出现以下提示:在您的许可证文件中找不到 SERVER ...

  3. 一分钟教你学会手动提取pdx文件

    1.首先要有一个pdx文件 在我们点击pdx文件时无法打开,是因为pdx类似于压缩包.所以我们只需要将里面的文件提取出来就可以了 2.如何提取?我们可以通过7-Zip这个工具进行提取 7-Zip官网: ...

  4. 如何编辑PDF文件,PDF编辑器如何使用

    如何编辑PDF呢?其实大多数人都不知道该如何下手,部分人会选择将PDF文件转换成Word然后进行编辑,其实这种方法比较麻烦,大大拉低了我们的工作效率.如果想要提高工作效率更加快速的编辑PDF文件,就可 ...

  5. [转]解决Eclipse中编辑xml文件的智能提示问题

    转自:http://hi.baidu.com/cghroom/item/48fd2d0dc1fc23c675cd3c3e 摘要:  Eclipse for Android xml 文件代码自动提示功能 ...

  6. 如何编辑PDF文件,怎么修改PDF中的文字

    相信大家都使用过PDF文件,那么有没有编辑过PDF文件呢,PDF文件的编辑是需要借助PDF编辑器的,PDF文件中的文字要怎么修改呢,Word文档的文字就直接编辑,而PDF文件并非这样,想知道怎么编辑吗 ...

  7. linux编辑conf文件命令,redhat linux7.3字符模式下: vi ***.conf 文件,又用什么命令才可编辑文件啊!!!!??...

    噢谢谢! | 输入小写'a'->编辑->ESC->':wq'保存退出 | i ESC :x exit | Vi使用说明 ----Vi简介 ----vi做为Linux系统中一种编辑器, ...

  8. Linux下各文件夹的结构说明及用途介绍(转载)

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...

  9. linux下文件描述符的介绍

    linux下文件描述符的介绍 (2012-10-02 16:01:56) 转载▼ 标签: 描述符 调用 返回 进程 限制 it 分类:linux 当某个程序打开文件时,操作系统返回相应的文件描述符,程 ...

最新文章

  1. DataTable ,XML和JSON相互转化
  2. 清华、北邮等高校研究人员实现具有 160 个目标的基于 SSVEP 的免校准 BCI 系统...
  3. 算法之动态规划——编辑距离问题
  4. C#里的一些加密解密标准函数示例——DES,SHA1,RSA
  5. Mac下IDEA安装Protobuf插件
  6. java自带数据库_Derby-jdk自带数据库的使用 - Java天堂
  7. 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接)
  8. serialVersionUID干嘛用的?
  9. 面对万人世界军人运动会票务,阿里文娱 Dpath 如何保障稳定性?
  10. shell介绍,date命令,shell变量
  11. 【知识梳理】《Kafka权威指南》知识梳理
  12. matlab金融时间序列分析,5 个 MATLAB 金融时序预测速查表
  13. CentOS6.5启动MariaDB错误
  14. python编程入门读书笔记1
  15. HTML5期末大作业:影评网站的设计--豆瓣以及IMDb等影评网站
  16. 捏脸是如何实现的?程序化生成3D头像
  17. java创建文件夹(Java创建文件夹失败重新创建)
  18. 计算机专业自我介绍结尾,计算机专业面试自我介绍怎么结尾
  19. 攻防世界writeup——Web(持续更新)
  20. OpenGL PBO渲染视频数据 [转]

热门文章

  1. 行空板-一款DFRobot自主研发的Python教学神器
  2. 面向星辰大海,出发吧骚年!
  3. L. Link with Level Editor I dp
  4. 08.jdk动态代理原理
  5. matlab求相关系数输出nan,Matlab:为什么使用'corrcoef'时相关NaN? - matlab代码 - 源码查...
  6. console连接h3c s5500_H3C交换机console口进入怎么设置密码
  7. 京东618叠蛋糕脚本,亲测好用
  8. typescript (简写Ts)
  9. 又拍网架构 -- 前端PHP后台Python +消息中间件 RabbitMQ + 分库步骤
  10. 浅论激光相控阵雷达在自动驾驶汽车中的应用