[CP_AUTOSAR]_通信服务_DCM模块(三)_DSL子模块(二)


  在前面 《[CP_AUTOSAR]_通信服务_DCM模块(三)_DSL子模块(一)》文中,介绍了 DSL 子模块的整体功能,本文接着介绍从 PduR 模块到 DSD 模块提交的诊断请求。

2、提交诊断请求(从 PduR 到 DSD 子模块)

  当 DcmDslProtocolRxPduId 开始接收新的诊断请求内容时,PduR 模块g汇报给 Dcm 模块。函数 Dcm_StartOfReception 会通知 DCM 模块即将接收的数据大小,提供单帧或者首帧的数据内容。如果接收的数据大小溢出了缓存空间,或者请求的服务不被允许,那么 DCM 模块会拒收此消息。函数 Dcm_CopyRxData 会进一步将缓存中的数据拷贝到 DCM 模块。如果诊断请求接收完成(即函数 Dcm_StartOfReception 执行成功),PduR 模块将会调用函数 Dcm_TpRxIndication 给 DCM 模块一个显示。函数 Dcm_StartOfReception 需要通过 DcmRxPdu 中的元数据来提供地址信息给 DCM 模块,这个地址信息是必须存储和使用的,以用于响应和检测来自同一上位机的请求。
  [SWS_Dcm_00111] 只有在调用函数 Dcm_TpRxIndication 之后并且其返回值为 E_OK时,DSL 子模块才应该提交接收到的数据给到 DSD 模块;
  [SWS_Dcm_00241] 诊断请求消息被成功接收(即函数 Dcm_TpRxIndication 返回值为 E_OK)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值