目录
7.7.1.2 Monitor status and UDS status update
7.7.1.3 Status bit transitions
7.7.1.5 Notification of status bit changes
7.7 Event memory description
Event memory定义
autosar将其定义为:存储在专用内存块(dedicated memory block)中的一组事件记录数据(event records)。这些数据至少应该包括UDS状态以及事件相关数据。
Dem支持4种事件内存
primary
user defined
mirror
permanent
在DemEventMemorySet容器里,可以配置多个独立的event memory。每个api中有DemClient参数,可以通过DemClient来获取对应的event memory。
Dem支持配置多个DemEventMemorySet。这就说明允许Dem存储多个诊断服务器的DTC和事件相关数据。每个DemEventMemorySet都是独立实体。单个DemEventMemorySet的改变不会影响其他DemEventMemorySet,并且对其他DemEventMemorySet不可见。因此,清除DTC只能影响相对应的DemEventMemorySet。
不同的event memory可以配置不同的空间,通过DemMaxNumberEventEntryPrimary,、DemMaxNumberEventEntryMirror、DemMaxNumberEventEntryUserDefined参数配置。
7.7.1 Event status management
Monitors如何报告event状态到Dem?
无非是通过调用Dem中的接口。下面介绍故障上报的底层接口。
Dem_SetEventStatus(Dem_EventIdType EventId,Dem_EventStatusType EventStatus):最常用的接口,用来设置故障状态(pass,prepass,fail,prefail)。
Dem_SetEventStatusWithMonitorData:
和Dem_SetEventStatus接口功能相同,只是增加了一个存储数据的参数。
void Dem_SetEventFailedWithSyncFreezeFrame (Dem_EventIdType EventId):
等同于Dem_SetEventStatus(Dem_EventIdType EventId,fail)
Dem_ResetEventStatus(Dem_EventIdType EventId):复位Event failed状态
调用此函数将TestFailed重置为0,并且debounce计数重置为初始值。此函数不会改变bit6状态,不会改变monitor的状态,夜不会清除预存的冻结帧。
如果该event在操作循环已经完成测试,即bit6 == 0,则函数返回not OK。
换言之,该函数需要在测试完成之前调用,且调用之后,monitor仍依然认为是处于未确认、未测试完成状态。
Dem_GetDebouncingOfEvent:获取debounce状态,不是debounce值。
注意:autosar中有个故障在当前操作循环是否可恢复的配置(DemEventRecoverableIn-
SameOperationCycle)
若设置为true,则正常消抖。
若设置为false,则故障bit0置1之后,当前操作循环一直保持1,无法恢复。但是消抖仍然在正常进行,只是bit0不会恢复。可以通过Dem_GetDebouncingOfEvent函数获取消抖状态。
7.7.1.1 Status bit support
支持ISO14229中定义的UDS状态。
Dem_GetEventUdsStatus :通过eventid获取event的UDS状态byte。对于无效eventid,返回not OK。
7.7.1.2 Monitor status and UDS status update
UDS status:ISO14229中定义
Monitor status:autosar中为monitor增加的状态定义,数据类型如下
在函数Dem_SetEventStatus中处理monitor状态和UDS状态。
清除DTC的时候,被清除的DTC对应monitor状态置为0x02.
可以通过Dem_GetMonitorStatus接口获取monitor状态。
7.7.1.3 Status bit transitions
遵循ISO14229协议
7.7.1.4 Active/Passive status
7.7.1.5 Notification of status bit changes
回调函数:DemCallbackEventUdsStatusChanged