Autosar Dem模块之Vector Configurator Pro配置(通用配置II)

背景

之前简单介绍了Autosar Dem模块,接下来我们直接切入主题,如何通过VectorConfigurator Pro工具配置Dem模块的通用设置,并实现客户的需求。

Dem通用配置

(1)DemCallbackDTCStatusChanged

该容器包含DTC状态变化时的回调函数,通常通过RTE端口调用该函数。

DemCallbackDTCStatusChangedFnc:定义DTC状态变化时的回调函数。

(2)DemClient

该容器包含有可能用到的Dem API客户端。

DemClientId:定义客户端唯一标识。

(3)DemDataClass

该容器包含数据元素的配置,这些数据元素主要包括扩展数据和快照记录。

DemDataElementDataType:定义外部数据的类型,包括BOOLEAN、SINT32、SINT16、SINT8、SINT8_N、UINT32、UINT16、UINT8、UINT8_N。若配置为空,Dem会根据数据长度自动分配数据类型。

DemDataElementEndianness:定义外部数据的字节序。

DemDataElementReadFnc:定义外部数据的函数接口。

DemDataElementStoreNonVolatile:定义数据是否需要存放到NvRam。若开启,Dem会在DTC存储时将数据存放到NvRam中,19服务直接读取NvRam中的数据;若禁用,19服务读取时,Dem都需要去读取相应的数据。

DemDataElementUsePort:定义数据元素的访问接口。USE_DATA_FUNCTION_CALL:调用外部数据;USE_DATA_INTERNAL:调用Dem提供的内部数据。

DemDataElementDataSize:定义数据的长度(字节)

DemDataElementSystemTemplateDiagnosticDataElementRef:引用DiagnosticDataElement

DemDataElementInternalData:定义内部数据

AGINGCTR / AGINGCTR_UPCNT:老化计数器的当前值(递增)

AGINGCTR_INVERTED / AGINGCTR_DOWNCNT:老化计数器的当前值(递减)

OCCCTR:故障计数器当前值(1个字节)

OCCCTR_2BYTE:故障计数器当前值(2个字节)

OVFLIND:主内存溢出标识

SIGNIFICANCE:事件的重要性标识

PRIORITY:DTC的优先级

CURRENT_FDC:DTC故障检测计数器的当前值

MAX_FDC_SINCE_LAST_CLEAR:从清除DTC到现在,DTC故障检测计数器到达的最大值

MAX_FDC_DURING_CURRENT_CYCLE:当前循环周期内,DTC故障检测计数器到达的最大值

CYCLES_SINCE_FIRST_FAILED:从第一次testfailed到现在,经过了多少个操作周期。

CYCLES_SINCE_LAST_FAILED:从最后一次testfailed到现在,经过了多少个操作周期。

FAILED_CYCLES:DTC产生testfailed的操作周期。

CONSECUTIVE_FAILED_CYCLES:连续DTC产生testfailed的操作周期。

CYCLES_TESTED_SINCE_FIRST_FAILED:从第一次testfailed到现在,完成测试的操作周期数

CYCLES_TESTED_SINCE_LAST_FAILED:从最后一次testfailed到现在,完成测试的操作周期数

HEALINGCTR_DOWNCNT:直到WIR bit被清除,完成测试的操作周期数

ROOTCAUSE_EVENTID:造成dtc数据改变的EventId

OBDDTC:UDS DTC对应的OBD II DTC

OBDDTC_3BYTE:UDS DTC对应的OBD II DTC

OBD_RATIO:OBD II DTC附加了一个比率

FAULT_PENDING_COUNTER:DTC连续测试testfailed的次数

AGED_COUNTER:老化计数器的当前值

WUC_SINCE_LAST_FAILED:从第一次testfailed到现在,完成预热的操作周期数

(4)DemDidClass

该容器包含DID数据类。

DemDidIdentifier:DID标识符,19 04服务返回的DID ID。

DemDidSystemTemplateDiagnosticDataIdentifierRef:引用DiagnosticDataIdentifier

DemDidDataClassRef:DID类包含的数据元素

(5)DemEnableConditionGroup

该容器包含DTC产生的使能条件组

DemEnableConditionRef:引用DemEnableCondition中的使能条件

(6)DemEnableCondition

该容器包含DTC产生的使能条件

DemEnableConditionId:enable condition的内部标识ID

DemEnableConditionStatus:定义enable condition的初始状态

(7)DemExtendedDataClass

该容器包含DTC的扩展数据组

DemExtendedDataRecordClassRef:引用DemExtendedDataRecordClass中的扩展数据

(8)DemExtendedDataRecordClass

该容器包含DTC的扩展数据

DemExtendedDataRecordTrigger:定义记录扩展数据的时机。

FDC_FIRST_IN_CYCLE:当故障计数器达到阈值时记录扩展数据,同时一个运行周期只会记录一次数据。

TESTFAILED:当testfailed标志位由0置1时记录扩展数据

CONFIRMED:当confirmed标志位由0置1时记录扩展数据(不支持)

PASSED:当testfailed标志位由1置0时记录扩展数据

DemExtendedDataRecordNumber:定义扩展数据的标识符,19 06服务返回该值。

DemExtendedDataRecordUpdate:定义扩展数据更新机制。UPDATE_RECORD_NO:只记录一次扩展数据;UPDATE_RECORD_YES:只要触发器触发就要更新记录扩展数据。

DemDataClassRef:引用DemDataClass中的数据元素

(9)DemFreezeFrameClass

该容器包含DTC的快照数据组

DemDidClassRef:引用DemDidClass中的DID类

(10)DemFreezeFrameRecNumClass

该容器包含事件的快照记录号配置列表

DemFreezeFrameRecordNumber:引用快照数据的记录编号

DemFreezeFrameRecordTrigger:定义快照数据的触发机制

FDC:当故障计数器达到阈值时获取快照数据

CONFIRMED:当confirmed状态标志位由0置1时获取快照数据

PENDING:当pending状态标志位由0置1时获取快照数据

TESTFAILED:当testfailed状态标志位由0置1时获取快照数据

TESTFAILED_FIRST_IN_CYCLE:当testfailed状态标志位由0置1时获取快照数据,一个运行周期只会记录一次快照数据

FDC_FIRST_IN_CYCLE:当故障计数器达到阈值时获取快照数据,一个运行周期只会记录一次快照数据

DemFreezeFrameRecordUpdate:定义快照数据的更新机制。

DEM_UPDATE_RECORD_NO:只记录一次快照数据

DEM_UPDATE_RECORD_YES:只要触发器触发就要更新记录快照数据

(11)DemGroupOfDTC

该容器包含多个DTC组

DemGroupDTCs:定义DTC组的DTC值。若清除DTC只有14 FFFFFF服务,则不需要配置DTC组;其他需要根据OEM规范来实现清除相应的DTC组功能。

(12)DemIndicator

该容器包含警告指示器

DemIndicatorID:定义警告指示器的内部标识符。

(13)DemMILGroup

该容器包含MIL组

(14)DemNvRamBlockId

该容器包含NvRam块,前提是开启NvRam写功能

DemNvRamBlockIdIndex:定义NvRam块的编号。若DemNvRamBlockIdType为ADMIN、STATUS、MIRROR、PERMANENT、FREEZEFRAME、OBDIUMPR、DEBOUNCE、AVAILABILITY、DTR、CYCLECOUNTER、AGING类型,不需要配置该参数。若DemNvRamBlockIdType为PRIMARY、SECONDARY、TIMESERIES类型,需要配置该参数,同时每个类型的ID标识都是完整连续的。

DemNvRamBlockIdRef:引用Nvm模块

DemNvRamBlockIdType:定义NvRam块的类型。

ADMIN: 必须配置

STATUS: 必须配置

MIRROR: 当DemMaxNumberEventEntryMirror数量大于0时才需要配置

PERMANENT: 当DemMaxNumberEventEntryPermanent数量大于0时才需要配置

FREEZEFRAME: 当DemOBDSupport==true&& DemOBDLegislation == OBDII时才需要配置

OBDIUMPR: 当DemOBDSupport ==true&& 配置DemRatioId容器时才需要配置

DEBOUNCE: 当事件为计数消抖同时DemDebounceCounterStorage==TRUE时才需要配置

AVAILABILITY: 当event availability status存储在Nvm中(DemAvailabilityStorage==TRUE)时才需要配置

DTR: 当DemOBDSupport ==true&&(配置DemDtr容器|| DemMaxNumberEventEntryPermanent > 0)时才需要配置

AGING: 当老化数据存储在Nvm(demsupportagingforalldtc ==TRUE)中|| DemDataElementInternalData == AGED_COUNTER时才需要配置

CYCLECOUNTER: 当周期计算器数据存储在Nvm(DemSupportStorageIndependentCycleCounters ==TRUE)中时才需要配置

下面的三个类型可以多次存在

PRIMARY: DemMaxNumberEventEntryPrimary存在时需要配置,同时ID需要连续

SECONDARY: DemMaxNumberEventEntrySecondary存在时需要配置,同时ID需要连续.

TIMESERIES: DemMaxNumberTimeSeriesSnapshots存在时需要配置,同时ID需要连续.

(15)DemOperationCycle

该容器包含dem的运行周期

DemOperationCycleAutomaticEnd:定义是否支持自动结束运行周期。若开启,在Dem_Shutdown或Dem_Init中会自动结束运行周期;若关闭,Dem必须通过Dem_SetOperationCycleState设置DEM_CYCLE_STATE_END才能结束运行周期。

注:只有DemOperationCycleStatusStorage设置为true时,该配置才有效。

DemOperationCycleAutostart:定义是否支持自动开启运行周期。(不支持该配置)

DemOperationCycleType:定义运行周期的类型。

(16)DemRatioId

该容器包含OBD特定的比率Id配置

(17)DemStorageConditionGroup

该容器包含存储DTC数据的条件检测组,前提是开启存储条件检测功能

DemStorageConditionRef:引用DemStorageCondition容器

(18)DemStorageCondition

该容器包含存储DTC数据的条件检测

DemStorageConditionId:定义StorageCondition标识符

DemStorageConditionStatus:定义StorageCondition初始状态

(19)DemEventMemorySet

该容器包含Dem事件内存的相关信息

DemClearDtcNotificationFnc:定义清除DTC的通知函数

DemClearDtcNotificationTime:定义清除DTC的通知时机。FINISH:清除完成后通知;START:开始清除时通知。

(20)DemPostbuild

该容器包含实现变量PostBuild相关配置,仅对实现PostBuild-Loadable有意义。

DemEventAvailableDefaultSupport:定义是否使用Available默认值。若开启,Dem_Init会调用DemEventAvailable配置的默认值。若禁用,Dem_Init不改变Available状态。

DemMaxNumberDtr:定义扩大存储DTR元素的最大数量

DemMaxSizeFreezeFrame:定义扩大存储快照数据的最大数量

DemMaxSizeGlobalFreezeFrame:定义扩大存储全局快照数据的最大数量

总结

以上是Dem模块通用容器配置,我们仅仅用到其中一部分配置,很多配置还需具体实践。

  • 2
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值