《AUTOSAR_TPS_DiagnosticExtractTemplate》。
属性 DiagnosticDataIdentifier.representsVin 的用途
有一个用例用于识别携带所谓的车辆识别号 (VIN) 的特定 DiagnosticDataIdentifier。
因此,能够正式地表明这一特征是很重要的。 为此,属性 DiagnosticDataIdentifier.representsVin 可用。
小结:这里较为明确地要求了VIN就是一个DID了。
属性 DiagnosticDataIdentifier.representsVin 的存在
在给定的DiagnosticContributionSet 的上下文中,属性DiagnosticDataIdentifier.representsVin 应仅为单个DiagnosticDataIdentifier 的值为true。
请注意,VIN 仅与 IP 诊断 (DoIP) 相关。但是,没有将 [constr_1324] 的有效性限制为建立在 IP 堆栈之上的诊断连接的存在。
如果该属性存在并且没有使用 IP,则该属性的含义根本不相关。 无论如何,这种情况不应归咎于配置错误。
数据元素的概念表示从 DID 标识的数据中分解出来的一条信息,并在 DEM 和(例如)测试人员之间进行交换。
这种数据元素的性质可以与 ISignal的性质进行比较,因此数据元素的建模通过元类 DiagnosticDataElement 聚合了角色 swDataDefProps 中的 SwDataDefProps,以便提供对 SwBaseType 的引用。
SwDataDefProps 的聚合还可用于引用 DataConstr,以便为 DiagnosticDataElement 指定有效的数据范围。
这个元类代表了描述为了诊断目的要考虑的具体数据的能力。
DiagnosticDataElement.maxNumberOfElements 的值取决于它的存在
如果属性 DiagnosticDataElement.maxNumberOfElements 存在,则其值应大于 0。
此类型控制如何解释有关 ApplicationArrayDataType 中元素数量的信息。
这个属性可能有固定或者变化两种形式。
请注意,诊断数据元素的计算方法、限制或单位等属性的定义基于 AUTOSAR 元模型的共享资源,即通过元类 SwDataDefProps 的聚合。
这个元类贡献了大量与一般数据定义相关的可能属性,在这种情况下,特别是诊断。
然而,重要的是要理解 SwDataDefProps 是如此富有表现力和通用性,以至于它的适用性需要根据源自数据片段语义的要求进行限制(在这种特定情况下,请参阅 [constr_1325])以进行特定部署 由 SwDataDefProps 修饰。
DiagnosticDataElement.swDataDefProps 的 SwDataDefProps 允许属性
表 4.7 中定义了用于角色 DiagnosticDataElement.swDataDefProps 中的聚合的 SwDataDefProps 的允许属性。
这个是表中用到的图例说明。
请注意,与其他 AUTOSAR 文档(例如 [9])中出现的类似表相比,表 4.7 有意详细介绍了 SwBaseType 属性的适用性。 这与包含的类似表格形成对比,例如软件组件模板的规范 [9]。
SwBaseType 的属性被认为对于定义封闭的 DiagnosticDataElement 的语义至关重要,因此强调是合理的。
实际表示信息数组的 DiagnosticDataElement 有几个用例。 在某些情况下,数组大小是静态的,不会在运行时更改,而在某些情况下,数组大小需要在运行时更改才能实现预期目的。
固定大小的数组定义
如果以下所有条件都适用,则 DiagnosticDataElement 应解释为固定大小的数组:
1. 存在属性 DiagnosticDataElement.maxNumberOfElements。
2. 属性 DiagnosticDataElement.maxNumberOfElements 的值设置为 > 0 的值。
3. DiagnosticDataElement.arraySizeSemantics 的值不存在或设置为 ArraySizeSemanticsEnum.fixedSize。
变化大小数组的定义
如果以下所有条件都适用,则 DiagnosticDataElement 应解释为可变大小的数组:
1. 存在属性 DiagnosticDataElement.maxNumberOfElements。
2. 属性 DiagnosticDataElement.maxNumberOfElements 的值设置为 > 0 的值。
3. DiagnosticDataElement.arraySizeSemantics 的值设置为 ArraySizeSemanticsEnum.variableSize。
根据元素数量,DiagnosticDataElement.maxNumberOfElements 的值应被视为最大数组大小。
小结:这么看,这个变化大小其实也不是随意变化的,而是有一个最大大小的限制。这样,其实这个也算是一种固定,谈不上有太好的伸缩度。
变化大小的数组的存在性
如果相应的 DiagnosticDataElement 是从 DiagnosticServiceDataMapping 引用的,则属性 DiagnosticDataElement.arraySizeSemantics 的值不应设置为 ArraySizeSemanticsEnum.variableSize。
4.3 文本文档
数据标识符通常还带有一些文本描述,以简短的形式解释数据标识符的含义。 这种能力可以通过 Identifiable 的继承获得,特别是通过属性 desc 和/或介绍(见图 4.2)。
这也意味着添加某种形式的文本描述的能力在 DiagnosticExtract 的范围内是广泛可用的。 许多元类派生自例如 DiagnosticCommonElement(从 Identifiable 继承)或直接从 Identifiable 继承,因此符合所描述的文档形式。
换句话说,图 4.2 和 4.3 中描述的技术不仅限于 DiagnosticDataElement,而且在 DiagnosticExtract 的上下文中具有更广泛的适用性。
图 4.2:通过 desc 和 introduction 定义文本描述
图 4.3 详细说明了与给定诊断元素相关的文本内容规范。 事实上,DocumentationBlock 提供了一种非常复杂的能力来定义结构化文本,这些文本可能包含例如多个段落(由聚合在角色 p 中的元类 MultiLanguageOverviewParagraph 形式化)。
除了能够附加结构化文本之外,还可以使用注释(参见图 4.2)向诊断元素添加短注释(类似于使用便签)。
这一次的小结暂且到此,梳理了诊断DID尤其是VIN等特别信息、路由、数据元素等不同的信息细节,同时看了一部分对于工具对文本文档支持的要求。