Autosar Dem 002(7.7.1 Event status management)

目录

7.7 Event memory description

Event memory定义

7.7.1 Event status management

7.7.1.1 Status bit support

7.7.1.2 Monitor status and UDS status update

7.7.1.3 Status bit transitions

7.7.1.4 Active/Passive status

7.7.1.5 Notification of status bit changes


链接关联:https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzkzMTkxMjc0Nw==&action=getalbum&album_id=3919631662337703937#wechat_redirect

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值