本文最后更新于4 天前,其中的信息可能已经过时,如有错误请留言评论。
DcmRbApplCallRequiredOnReqReception是啥?
DcmRbApplCallRequiredOnReqReception: 用于控制是否从 Dcm 的“开始接收”/“复制接收数据”/“接收指示”操作中调用应用程序功能的参数。当在 Dcm 接收到请求时,Autosar 栈已通过 Autosar 4.0 确保每个 N-PDU 都会立即复制到应用程序缓冲区(DSL/DSD)。此参数使客户团队能够提前开始处理接收数据(DSP),而无需等待接收完成。这是通过 Dcm 中的调用接口 DcmAppl_StartOfReception、DcmAppl_CopyRxData 和 DcmAppl_TpRxIndication 实现的,这些接口可以提供缓冲区指针、总长度、当前接收长度等信息。如果将此参数设置为 TRUE,则 DcmAppl_StartOfReception、DcmAppl_CopyRxData 和 DcmAppl_TpRxIndication 将从 Dcm 调用。如果将其设置为 FALSE 或未进行配置,则上述功能将不会从 Dcm 调用。
DcmRbApplCallRequiredOnReqReception的作用
该参数用于启用/禁用 DCM 接收到诊断请求时,是否立即调用应用层的函数钩子(如 StartOfReception
、CopyRxData
、RxIndication
)。
这些函数是自己在 Dcm_RbAppl.c
或对应的 Application 层实现的。
配置说明
配置项值 | 含义 |
false | 不执行任何操作 |
true | DCM 会在刚刚接收到 UDS 请求(还没完全接收完)时立即调用对应的钩子函数。 |
用途场景
- 需要记录所有请求的原始数据;
- 需要在收到请求时就做决策(如拒绝非法 Tester);
- 需要打通应用与诊断接收过程的耦合接口;