0

Autosar 诊断是通过采用 UDS (ISO 14229) 标准来实现的。据此,一旦记录了 DTC,快照数据就会按照 UDS 进行存储。快照数据是通过 Autosar Dem 模块中的定格数据概念实现的。

但我想保存一些关于 DTC 的更多信息,除了表单快照数据。我想存储要在 3 秒之前和 1 秒后以 400 毫秒的采样确认 DTC 的数据。因此,每次 DTC 被锁定时,我都需要存储 10 个数据样本。

我想在 Autosar Diagnostic 中实现这个时域数据。我可以这样做吗?,如果可以,怎么做?谢谢。

4

2 回答 2

1

我们有一个客户,想要几乎相同,15 个 FreezeFrames,12 个在失败之前,一个在失败之后,两个在失败之后,具有相似的周期。我们使用了一个循环更新的环形缓冲区。我们使用来自 Dem 的标注(DemCallbackEventStatusChanged() 或 DemCallbackDTCStatusChanged())来停止环形缓冲区并再计算两个。记录它们后,我们将它们存储在一个额外的 NvM 块中。您可能有几个这样的 NvM 块,并将该数字链接到 DemEvent(FF 数据?)。例如,NvM 块可以是 NVM_DATASET,因此您可以使用索引。读出 DTC 时,查找分配并读出 NvM 数据集索引。

否则,您可能会找到一种使用 StorageConditions 的方法,在第一次报告时禁用它们并在冻结帧完成后启用它们?

我不知道是否有直接支持这一点的 Dem 功能。

于 2017-07-18T01:16:03.253 回答
0

我真的不明白你的问题在哪里。正如您所提到的,快照数据与 DTC 一起存储。您可以定义引用 DID 的快照数据的内容。因此,您需要定义一个新的(内部)DID(以 Dcm 为单位),您可以在其中提供您的时域数据,并将 Dem 中的此 DID 添加到快照数据(冻结帧)中。

于 2017-05-31T07:17:51.467 回答