7.4.8 Availability of events (visibility and computation)
介绍一种隐藏event的方法,该event隐藏之后的效果等同于Dem模块未配置该event。
应用场景
autosar中的介绍的最典型的应用场景即为一版软件适配多个硬件变种
1.每个硬件变种对应一个标定集合。
工程师通过post-build的方式控制软件适配硬件。对于需要抑制关闭的event,通过标定DemEventAvailableInVariant配置参数为FALSE来实现。
2.一个标定集合适配多个硬件变种。
DemEventAvailableInVariant参数配置为TRUE,DemEventAvailable配置一个初始值。为了适配不同硬件变种,在产线甚至硬件改变时,通过报文或者bit位编码的形式(如通过2E服务写入DID的方式控制event使能情况)控制event的使能情况。其本质是调用Dem_SetEventAvailable接口实现的。
DemEventAvailableInVariant为FALSE,则event永远禁用,相当于没配。不可通过Dem_SetEventAvailable改变使能状态。
DemEventAvailableInVariant为TRUE,则event使能情况,由DemEventAvailable决定,并且可以通过Dem_SetEventAvailable接口控制。
当event为unavailable时,调用下述接口均返回not OK,因为该event相当于未配置,
Dem_SetEventStatus
Dem_GetEventUdsStatus
Dem_ResetEventDebounceStatus
Dem_ResetEventStatus
Dem_PrestoreFreezeFrame
Dem_ClearPrestoredFreezeFrame
Dem_GetDebouncingOfEvent
Dem_GetDTCOfEvent
Dem_GetFaultDetectionCounter
Dem_GetEventFreezeFrameDataEx
Dem_GetEventExtendedDataRecordEx
Dem_ClearDTC
Dem_DcmGetDTRData
Dem_RepIUMPRFaultDetect
Dem_RepIUMPRDenRelease
Dem_SetWIRStatus
Dem_SetEventFailedWithSyncFreezeFrame
Dem_SetEventAvailable说明
参数AvailableStatus为true,使能event;参数AvailableStatus为false,禁用event。
当以下两种情况之一发生时
①event memory entry已经存在
②‘testFailed’, ’pending’, ’confirmed’ or ’warningIndicatorRequested’状态位置起
调用该函数会返回not OK。
当参数为false并返回OK时,UDS状态参数为0x00;当参数为true并返回OK时,UDS状态参数为0x50。
Dem_GetEventAvailable说明
可以通过Dem_GetEventAvailable接口获取event的使能状态。
若参数为无效的eventid,函数会返回not OK。
参考文献 :Specification of Diagnostic Event Manager AUTOSAR CP R20-11