全部学习汇总: GitHub - GreyZhang/hack_autosar: learning autosar documents, aha, very hard!

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

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ide

       属性 DiagnosticDebounceAlgorithmProps.debounceCounterStorage存在性

       属性 DiagnosticDebounceAlgorithmProps.debounceCounterStorage 仅在聚合 DiagnosticDebounceAlgorithmProps.debounceAlgorithm 实际聚合 DiagEventDebounceCounterBased 时才存在。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ide_02

       图 6.14:DiagnosticDebounceAlgorithmProps 的详细信息

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_autosar_03

       在 DiagnosticDebounceAlgorithmProps 的上下文中不支持使用 DiagEventDebounceMonitorInternal

       不允许将元类 DiagEventDebounceMonitorInternal 用于 DiagnosticDebounceAlgorithmProps.debounceAlgorithm 角色中的聚合。

       为了澄清 [constr_1360],DiagEventDebounceMonitorInternal 用于制定 DiagnosticEventNeeds 的上下文中,但未预见它在 DiagnosticExtract 的上下文中的使用。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_it技术_04

       此元类表示能够指示 DEM 应为此诊断监视器使用基于计数器的去抖动算法。

       这与将ECUC 选择容器DemDebounceAlgorithmClass 设置为DemDebounceCounterBased 有关。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ide_05

       此元类表示能够指示 DEM 应为此诊断监视器使用基于时间的预去抖动算法。

       这与将ECUC 选择容器DemDebounceAlgorithmClass 设置为DemDebounceTimeBase 有关。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_it技术_06

       事件去抖动算法行为选项。主要是一个冻结还有一个复位。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_autosar_07

       6.8.4 启用条件组映射的诊断事件

       EnableConditions 必须放入一个 DiagnosticEnableConditionGroup

       分配给 DiagnosticEvent 的 EnableConditions 必须放入 DiagnosticEnableConditionGroup,因为只有一组 EnableConditions 可以映射到 DiagnosticEvent。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_服务端_08

       图 6.15:DiagnosticEventToEnableConditionGroupMapping

       每个 DiagnosticEvent 的 DiagnosticEventToEnableConditionGroupMapping 元素数

       映射元素DiagnosticEventToEnableConditionGroupMapping 应在每个DiagnosticEvent 中创建不超过一次。

       如果定义了引用相同诊断事件的多个 DiagnosticEventToEnableConditionGroupMapping 元素,则启用条件组映射应被视为有缺陷。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_it技术_09

       定义哪个 EnableConditionGroup 适用于诊断事件。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_服务端_10

       6.8.5 DiagnosticEvent 到 StorageConditionGroup 的映射

       StorageConditions 必须放入一个 DiagnosticStorageConditionGroup

       分配给 DiagnosticEvent 的 StorageCondition 必须放入 DiagnosticStorageConditionGroup,因为只有一组 StorageCondition 可以映射到 DiagnosticEvent。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_it技术_11

              图 6.16:DiagnosticEvent到StorageConditionGroup的映射

       每个 DiagnosticEvent 的 DiagnosticEventToStorageConditionGroupMapping 元素数

       映射元素DiagnosticEventToStorageConditionGroupMapping 应不超过一次或每个DiagnosticEvent 创建一次。

       如果定义了引用相同诊断事件的多个 DiagnosticEventToStorageConditionGroupMapping 元素,则存储条件组映射应被视为有缺陷。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_服务端_12

       各个 DiagnosticStorageConditions 的值

       需要通过算法评估各个 DiagnosticStorageConditions 的值,以确定是否允许存储 DiagnosticEvent。

       应该为此目的实现的算法记录在 [SWS_Dem_00459] 中。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_autosar_13

       定义哪个 StorageConditionGroup 适用于诊断事件。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_it技术_14

       6.8.6 诊断事件到端口映射

       DiagnosticEventPortMapping 的语义

       DiagnosticEventPortMapping 定义 AtomicSwComponentType 的哪些 SwcServiceDependency 或 BswModuleDescription 的 BswServiceDependency 必须连接到哪个 DiagnosticEvent。

       这是通过定义一个引用DiagnosticEvent 的DiagnosticEventPortMapping 和(使用«instanceRef» SwcServiceDependency(或BswServiceDependency)的实例来实现的。

       如果这样的实例尚不可用,则可以替代地给出对 SwcServiceDependency 的普通引用(即不指定某个实例)。

       通过这种方式,ECU 集成商能够在 ECU 配置期间直接导出 SWC(或 BSW)服务端口与服务组件端口之间的实际映射。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_autosar_15

                     事件端口映射

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ico_16

       使用 DiagnosticEventNeeds 定义将 DiagnosticEvent 映射到哪些 SWC 服务端口。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_it技术_17

       6.8.7 DiagnosticOperationCycle 到端口映射

       DiagnosticOperationCyclePortMapping 的语义

       DiagnosticOperationCyclePortMapping 定义了哪些 SWC 服务端口必须连接到哪个 DiagnosticOperationCycle。

       这是通过定义一个引用 DiagnosticOperationCycle 和 SwcServiceDependency 实例的 DiagnosticOperationCyclePortMapping 来实现的。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ico_18

                     图 6.18:DiagnosticOperationCycle端口映射

       如果这样的实例尚不可用,则可以替代地给出对 SwcServiceDependency 的普通引用(即不指定某个实例)。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_服务端_19

       使用 DiagnosticOperationCycleNeeds 定义将 DiagnosticOperationCycle 映射到哪些 SWC 服务端口。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_it技术_20

       6.8.8 端口映射的 DiagnosticEnableCondition

       DiagnosticEnableConditionPortMapping 的语义

       DiagnosticEnableConditionPortMapping 定义哪些 SWC 服务端口必须连接到哪个 DiagnosticEnableCondition。 这是通过定义一个 DiagnosticEnableConditionPortMapping 来实现的,该 DiagnosticEnableConditionPortMapping 引用了一个 DiagnosticEnableCondition 和一个 SwcServiceDependency 的实例。

       如果这样的实例尚不可用,则可以替代地给出对 SwcServiceDependency 的普通引用(即不指定某个实例)。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ico_21

                            诊断使能条件端口映射

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_autosar_22

       使用 DiagnosticEnableConditionNeeds 定义将 DiagnosticEnableCondition 映射到哪些 SWC 服务端口。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ico_23

       6.8.9 端口映射的 DiagnosticStorageCondition

       DiagnosticStorageConditionPortMapping 的语义

       DiagnosticStorageConditionPortMapping 定义哪些 SWC 服务端口必须连接到哪个 DiagnosticStorageCondition。 这是通过定义一个引用 DiagnosticStorageCondition 和 SwcServiceDependency 实例的 DiagnosticStorageConditionPortMapping 来实现的。

       如果这样的实例尚不可用,则可以替代地给出对 SwcServiceDependency 的普通引用(即不指定某个实例)。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ide_24

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ide_25

       使用 DiagnosticStorageConditionNeeds 定义将 DiagnosticStorageCondition 映射到哪些 SWC 服务端口。

       诊断存储条件需求。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_it技术_26

       6.8.10 提供的数据映射

       DiagnosticDemProvidedDataMapping 的语义

       元类 DiagnosticDemProvidedDataMapping 似乎不满足表示映射类的条件,因为它只有一个对角色 dataElement 中的 DiagnosticDataElement 的引用。

     但是,此映射的特定性质是,应该在映射中发生的第二个元素(DiagnosticDemProvidedDataMapping.dataProvider)不能精确地建模为单个元类。

       因此,没有比通过 NameToken 对 DiagnosticDemProvidedDataMapping.dataProvider 建模更好的方法。 当然,该属性的可能值的集合需要预先达成一致,可能是在特定于项目的基础上。

       此映射的语义是进一步限定从 Dem 内部对角色 dataElement 中引用的 DiagnosticDataElement 的访问。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_autosar_27

       图 6.21:DiagnosticDemProvidedDataMapping 的建模

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_it技术_28

       这表示能够为 Dem 中的 DiagnsoticDataElement 定义数据访问的性质。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ico_29

       6.9 诊断操作周期

       DiagnosticOperationCycle 的语义

       不同类型的 DiagnosticOperationCycles 由 type 属性支持和定义,例如ECU 通电和断电之间或点火打开和点火关闭之间的时间。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ide_30

                            图 6.22:DiagnosticOperationCycle 的建模

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ide_31

       操作周期的定义是事件资格和 Dem 调度的基础。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ide_32

       操作周期的类型。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_autosar_33

       6.10 诊断老化

       老化

       如果在特定时间段内未满足特定事件的故障条件,则可以从事件存储器中删除特定事件。 这个过程被称为老化或不学习。

       这个语义是通过元类DiagnosticAging 形式化的。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_autosar_34

       定义老化算法。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_it技术_35

       6.11 诊断指示器

       不同种类的诊断指示器

       可以使用诊断指示器元素定义不同类型的指示器。为此,应使用属性DiagnosticIndicator.type。

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ico_36

       指示器的定义

839_AUTOSAR_TPS_DiagnosticExtractTemplate17_诊断事件处理3_ide_37

       指示器的类型

       这一次,看完了之前没有看完的诊断的映射。之后,了解了诊断的操作循环或者说操作周期、诊断的老化以及诊断指示器相关的一些建模描述。至此,这个文档基本上也就看完了,一个相当长的过程。从这里面,我没有看到更多的我熟悉的UDS,倒是对AUTOSAR的DEM多少获知了一些简单的信息。