赞
踩
总目录:(单击下方链接皆可跳转至专栏总目录)
目录
关键字:
ODX:Open Diagnostic Data Exchange
PDX:Packaged ODX
ASAM
Vector ODX Studio工具
UDS/OBD诊断描述文件
ODX/PDX刷写文件
ODX数据的交换可以通过一个叫做“PDX package”的文件容器来实现。要交换的所有文件都打包在一个PDX package中。PDX package可以处理不同类型的ODX文件。
以下是ODX V2.0.1和ODX 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用例:
--完整数据交换(一种或两种方式)
--增量(部分)数据交换:仅交换新创建或更改的数据
--修订历史交换
--支持特定于CMS的版本控制:每个流程合作伙伴可以独立添加CMS内部修订信息
--多版本控制:可以在单个PDX package中提供文件的不同版本
注:CMS -- Configuration Management System配置管理系统
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预定义了以下值:
可以根据实际用例扩展预定义的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属性可以具有以下值之一:
每个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 |
| 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>
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。
由于ODX Studio等编辑PDX工具比较昂贵,有时比较稀缺。当你熟悉PDX/ODX文件内部格式后(手动修改的前提),可通过手动修改的方式实现快速修改PDX文件。
以下图“Test_PDX_File.pdx”文件为例,见图4-1。
图4-1
选中“Test_PDX_File.pdx”文件,使用7Z工具解压这个PDX文件,见图4-2和图4-3。
图4-2
图4-3
PDX解压后得到多个odx,xml,jar…文件,接着找到修改的文件,修改并保存,见图4-4。
图4-4
使用7Z工具打开PDX文件,见图4-5。
图4-5
将修改后的文件,拖曳至7Z工具中实现对应文件的替换,见图4-6和图4-7。这样PDX文件就修改完成了。
图4-6
图4-7
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。