全部学习汇总: https://github.com/GreyZhang/hack_autosar

       继续学习AUTOSAR,看一下官方文档。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_autosar

       6 诊断事件处理

       6.1 简介

       本子章节描述了定义诊断事件处理和功能的元模型元素。

       在标准的 AUTOSAR 基础软件架构中,基于本子章节中描述的模型元素的定义由诊断事件管理器 (Dem) 模块实现。

       上图概述了与诊断事件功能相关的模型元素。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_建模_02

       对于诊断事件功能的定义,从 DiagnosticCommonElement 派生了许多模型元素。 这些元素在以下子章节中进行了描述。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_it技术_03

       6.2 诊断事件

       诊断事件的语义

       诊断事件是由 Dem 模块处理的原子单元 - 必须与其属性一起定义,这些属性会影响事件处理行为和软件组件的可能接口。

       图 6.2 描述了 DiagnosticEvent 的定义及其属性。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_建模_04

       图 6.2:DiagnosticEvent 的建模

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_建模_05

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_autosar_06

       DiagnosticExtract 允许定义任意数量的 DiagnosticEvent。

       尽管公司之间的 DiagnosticExtract 交换通常涉及与 SWC 功能相关的诊断事件,但也支持事件类型 BSW 以启用 BSW 事件处理的定义(例如,关联的 DiagnosticTroubleCode 的定义)。

       清除诊断事件的请求

       此外,对诊断事件的清除请求可能需要调用对 SWC 的回调,以便允许或禁止清除操作。

       可以使用属性 eventClearAllowed 表达对该回调接口的期望:

       • always表示应无条件执行对 DiagnosticEvent 的清除请求。

       • never 表示有意不可能清除DiagnosticEvent。

       • 在requiresCallbackExecution 的情况下,回调的执行将决定是否允许清除。

       换句话说,这个决定的实现取决于相应 AtomicSwComponentType 的开发者。

       后者应定义具有适当的 DiagnosticEventNeeds 和 RoleBasedPortAssignment 的 SwcServiceDependency,其中属性 role 的值设置为 CallbackClearEventAllowed。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_事件处理_07

       此元素用于配置诊断事件。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_清除请求_08

       诊断事件可以连接一个或多个指示器

       一个 DiagnosticEvent 可以连接到一个或多个特定类型和特定行为的指标(通过在角色 connectedIndicator 中聚合 DiagnosticIndicator 建模)。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_建模_09

       附加到诊断事件的文本内容

       诊断事件的定义还包括在结构上形式化但在内容上不能形式化的文本表述的内容。

       此内容的目的是定义诸如与特定诊断事件相关的成熟条件。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_it技术_10

       关于诊断事件的文字描述

     具有与诊断事件相关的要求特征的文本描述应通过元类 StructuredReq 提供,即通过 Introduction.structuredReq。

       有关半正式文本建模的更多详细信息,请参阅图 4.3。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_建模_11

       DiagnosticEvent.introduction.structuredReq 的标准化值

       DiagnosticEvent.introduction.struturedReq 的上面可能值由 AUTOSAR 标准化,么开一条不再单独去梳理了。主要是条件、类型、速率、去成熟条件、老化、跛行、成熟时间、去成熟时间。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_it技术_12

       上面 ARXML 片段举例说明了 StructuredReq 的用法以及属性类别的标准化值,以将半正式文本描述附加到 DiagnosticEvent。

       清单 6.1:DiagnosticEvent 上下文中半正式文本元素的定义示例。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_it技术_13

       每个诊断事件定义的指标的描述。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_autosar_14

       表示是否允许清除事件。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_it技术_15

       清除事件的可能行为。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_it技术_16

       诊断事件的适用性。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_清除请求_17

       指标的行为。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_it技术_18

       6.3 DiagnosticTroubleCode

       DiagnosticTroubleCodes(即诊断事件的 ECU 外部视图)与其属性一起定义,并使用 DiagnosticEventToTroubleCodeUdsMapping 映射到 DiagnosticEvents。

       小结:这个应该就是DFC与FID关联的一个对等描述?

       三种 DTC

       有三种 DTC 表示为 DiagnosticTroubleCode 的特化:

       • 非 OBD 相关 DTC (DiagnosticTroubleCodeUds)

       • OBD 相关 DTC (DiagnosticTroubleCodeObd)

       • J1939 [17] 相关 DTC (DiagnosticTroubleCodeJ1939)

       此类 DTC 专业化的特性分别建模为 DiagnosticTroubleCodeUds、DiagnosticTroubleCodeObd 和 DiagnosticTroubleCodeJ1939 的属性。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_建模_19

       图 6.4:DiagnosticTroubleCodeUds 的建模

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_it技术_20

       DTC 的共同属性

       通常对一组 DiagnosticTroubleCodeUds 元素通用的属性被建模为 DiagnosticTroubleCodeProps 的属性。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_autosar_21

       udsDtcValue 的值应该是唯一的

       udsDtcValue 的值对于任何其他 DTC 和 DTC 组值应该是唯一的。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_清除请求_22

       诊断故障代码定义了显示给诊断测试仪的唯一标识符。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_事件处理_23

       DiagnosticTroubleCodeGroup 的语义

       DiagnosticTroubleCodeGroup 元素用于定义属于一起的 DTC 组。 每个 DiagnosticTroubleCodeGroup 都分配有自己的 groupNumber 值。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_清除请求_24

       DiagnosticTroubleCodeGroup 元素用于定义属于一起的 DTC 组。 每个 DiagnosticTroubleCodeGroup 都分配有自己的 groupNumber 值。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_事件处理_25

       DiagnosticTroubleCodeGroup.groupNumber 的值应是唯一的

       DiagnosticTroubleCodeGroup.groupNumber 的值对于任何其他 DTC 和 DTC 组值应该是唯一的。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_事件处理_26

       DiagnosticTroubleCodeGroup.groupNumber 的值

       为了符合 ISO,DiagnosticTroubleCodeGroup.groupNumber 的值应按照 ISO 14229-1 [15] 中的定义进行设置。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_autosar_27

       ISO 14229-1 保留了 DiagnosticTroubleCodeGroup.groupNumber 的值

       [constr_1351] 中提到的值以外的任何值都由 ISO 14229-1 [15] 保留。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_建模_28

       maxNumberFreezeFrameRecords 与 freezeFrame 的存在

       如果属性 DiagnosticTroubleCodeProps.maxNumberFreezeFrameRecords 存在,则属性 DiagnosticTroubleCodeProps.freezeFrame 不应存在,反之亦然。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_建模_29

       [constr_1352] 的适用性

       [constr_1352] 应以相同的方式(一个或另一个属性应存在)应用于引用同一 EcuInstance 的类别为 DIAGNOSTIC_ECU_EXTRACT 的所有 DiagnosticContributionSet 上下文中的所有 DiagnosticTroubleCodeProps。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_清除请求_30

       存在属性 DiagnosticTroubleCodeProps.freezeFrameConten

       如果存在 DiagnosticTroubleCodeProps.maxNumberFreezeFrameRecords 或 DiagnosticTroubleCodeProps.freezeFrame 属性之一,则属性 DiagnosticTroubleCodeProps.freezeFrameContent 应存在。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_事件处理_31

       附加到 DiagnosticTroubleCode 的文本内容

       DiagnosticTroubleCode 的定义还包括在结构上形式化但在内容上不能形式化的文本表述的内容。

       此内容的目的是定义例如错误文本或与特定 DiagnosticTroubleCode 相关的可能原因。

837_AUTOSAR_TPS_DiagnosticExtractTemplate15_诊断事件处理1_autosar_32

       提供附加到 DiagnosticTroubleCode 的半正式文本内容的不同方法

       有不同的方法来提供附加到 DiagnosticTroubleCode 的半正式文本内容:

     • 具有 DiagnosticTroubleCode 描述特征的文本描述应通过元类 TraceableText 提供,即通过 Introduction.trace。

       • 应通过属性 longName 提供描述与 ODX 长名称相关的 DiagnosticTroubleCode 特征的文本描述。

       有关半正式文本建模的更多详细信息,请参阅图 4.3。

       单独使用 TraceableText 和 StructuredReq 不能作为半正式的文本附件。 有必要对类别的值进行标准化,以获得某种程度的半正式文本描述。

       这部分主要是诊断时间处理的部分简介,加上诊断事件的描述,带有一部分DTC的相关的内容,但是DTC相关的信息比较多,一次没能看完,后面再进行补充。