1 Star 2 Fork 0

稀风/AutosarCP-DCM

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
功能定义.md 16.02 KB
一键复制 编辑 原始数据 按行查看 历史
稀风 提交于 2023-12-14 15:39 . callout

说明

  • 为其他模块提供的接口函数

Dcm_Init

void Dcm_Init (const Dcm_ConfigType* ConfigPtr)
名称 Dcm_Init
同步/异步 同步
可重入性 非可重入
输入参数 ConfigPtr 指向 Variant Post-Build 中配置的指针
输出参数 None
返回值 None
描述 用于 DCM 模块基本初始化的服务
声明 Dcm.h

Dcm_MainFunction

void Dcm_MainFunction (void)
名称 Dcm_MainFunction
输入参数 None
输出参数 None
返回值 None
描述 此服务用于处理主循环的任务
声明 SchM_Dcm.h

Dcm_GetVersionInfo

void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo)
名称 Dcm_GetVersionInfo
同步/异步 同步
可重入性 可重入
输入参数 None
输出参数 versionInfo 指向存储此模块的版本信息的指针
返回值 None
描述 返回此模块的版本信息
声明 Dcm.h

Dcm_DemTriggerOnDTCStatus

Std_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC,
                                          Dem_UdsStatusByteType DTCStatusOld,
                                          Dem_UdsStatusByteType DTCStatusNew)
名称 Dcm_DemTriggerOnDTCStatus
同步/异步 同步
可重入性 可重入
输入参数 DTC 这是分配给变更触发器的 DTC
DTCStatusOld 变更前的 DTC 状态
DTCStatusNew 变更后的 DTC 状态
输出参数 None
返回值 None
描述 触发 UDS 状态字节的变化。允许在 DTCStatusChanged 上触发子服务的 ROE 事件
声明 Dcm_Dem.h

Dcm_GetVin

Std_ReturnType Dcm_GetVin (uint8* Data)
名称 Dcm_GetVin
同步/异步 同步
可重入性 可重入
输入参数 None
输出参数 Data 指向存储 VIN 的指针
返回值 Std_ReturnType E_OK: 数据指针已填入有效的VIN | E_NOT_OK: 默认的 VIN 将在 DoIP 中使用
描述 获取 VIN 的函数(在 SAE J1979-DA 中定义)
声明 Dcm.h

Dcm_BndMWriteBlockFinish

void Dcm_BndMWriteBlockFinish ( BndM_BlockIdType BlockId, BndM_ResultType result)
名称 Dcm_BndMWriteBlockFinish
同步/异步 同步
可重入性 非可重入
输入参数 BlockId -
result -
输出参数 None
返回值 None
描述 由 BndM 调用,指示块写操作已经完成
声明 Dcm.h

Dcm_SetDeauthenticatedRole

Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, 
                                           Dcm_AuthenticationRoleType deauthenticatedRole)
名称 Dcm_SetDeauthenticatedRole
同步/异步 同步
可重入性 可重入
输入参数 connectionId 唯一连接标识符,标识为其设置了取消身份验证角色的连接
deauthenticatedRole 分配给该连接的新的未认证角色
输出参数 None
返回值 Std_ReturnType E_OK: 这个值总是被返回
描述 为该连接设置在未验证状态下使用的新角色。在连接切换到身份验证状态或 ECU 被重置之前,角色一直有效
声明 Dcm.h

Dcm_GetSecurityLevel

Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel)
名称 Dcm_GetSecurityLevel
同步/异步 同步
可重入性 可重入
输入参数 None
输出参数 SecLevel SecurityLevel = (SecurityAccessType + 1) / 2, SecurityAccessType 的内容根据 SecurityAccess 服务请求中的 “SecurityAccessType” 参数而定
返回值 Std_ReturnType E_OK: 这个值总是被返回
描述 该函数提供激活的安全级别值
声明 Dcm.h

Dcm_GetSesCtrlType

Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType)
名称 Dcm_GetSesCtrlType
同步/异步 同步
可重入性 可重入
输入参数 None
输出参数 SesCtrlType 该值由 DiagnosticSessionControl 服务请求中的 "diagnosticSessionType" 的参数而定
返回值 Std_ReturnType E_OK: 这个值总是被返回
描述 该函数提供活动的会话控制类型值
声明 Dcm.h

Dcm_ResetToDefaultSession

Std_ReturnType Dcm_ResetToDefaultSession (void)
名称 Dcm_ResetToDefaultSession
同步/异步 同步
可重入性 可重入
输入参数 None
输出参数 None
返回值 Std_ReturnType E_OK: 这个值总是被返回
描述 调用此函数允许应用程序将当前会话重置为默认会话。示例:超出速度限制时自动终止扩展诊断会话
声明 Dcm.h

Dcm_SetActiveDiagnostic

Std_ReturnType Dcm_SetActiveDiagnostic (boolean active)
名称 Dcm_SetActiveDiagnostic
同步/异步 同步
可重入性 可重入
输入参数 active 如果为 false, Dcm 将不调用 ComM_DCM_ActiveDiagnostic()。如果为 true, Dcm 将调用 ComM_DCM_ActiveDiagnostic()
输出参数 None
返回值 Std_ReturnType E_OK: 这个值总是被返回
描述 允许激活和取消激活 ComM_DCM_ActiveDiagnostic() 函数的调用
声明 Dcm.h

回调通知

  • DCM 提供的回调的概述

Dcm_StartOfReception

BufReq_ReturnType Dcm_StartOfReception (PduIdType id,
                                        const PduInfoType* info,
                                        PduLengthType TpSduLength,
                                        PduLengthType* bufferSizePtr)
名称 Dcm_StartOfReception
同步/异步 同步
可重入性 可重入
输入参数 id I-PDU 的标识
info PduInfoType 结构指针,包含传输协议 I-PDU 接收的第一帧或单帧的有效载荷数据(不含协议信息)和有效载荷长度,以及与该 PDU 相关的元数据。如果第一帧/单帧数据和元数据都不可用,该参数设置为 NULL_PTR
TpSduLength 接收 N-SDU 的总长度
输出参数 bufferSizePtr 接收模块中可用的接收缓冲区。该参数将用于计算传输协议模块中的块大小(BS)
返回值 BufReq_ReturnType BUFREQ_OK: 连接已被接受。bufferSizePtr 表示可用的接收缓冲区; 接收仍在继续。如果没有请求大小的缓冲区可用,则 bufferSizePtr 指向的接收缓冲区大小为 0; | BUFREQ_E_NOT_OK: 连接已被拒绝;接收中止。bufferSizePtr 保持不变; | BUFREQ_E_OVFL: 不能提供所需长度的缓冲器; 接收中止。bufferSizePtr 保持不变
描述 该函数在开始接收 N-SDU 时调用。N-SDU 可能被分割成多个 N-PDU (FF和一个或多个CF),也可能由单个 N-PDU (SF) 组成。如果服务成功并且返回 BUFREQ_OK,则服务提供当前可用的最大缓冲区大小。这个函数可能在中断上下文中被调用
声明 Dcm.h
  • 通过 Dcm_StartOfReception 函数,接收方(例如 DCM)也隐式地获知第一帧接收或单帧接收。如果函数 Dcm_StartOfReception 返回的返回值不等于 BUFREQ_OK,则 输出参数的值没有指定,并且不应该由调用者计算

Dcm_CopyRxData

BufReq_ReturnType Dcm_CopyRxData (PduIdType id,
                                  const PduInfoType* info,
                                  PduLengthType* bufferSizePtr)
名称 Dcm_CopyRxData
同步/异步 同步
可重入性 可重入
输入参数 id 接收到的 I-PDU 的标识
info 提供源缓冲区(SduDataPtr)和要复制的字节数(SduLength)。当 SduLength 为 0 时,表示上层模块当前可用缓冲区的大小异常,在这种情况下,SduDataPtr 可能是一个 NULL_PTR
输出参数 bufferSizePtr 复制数据后可用的接收缓冲区
返回值 BufReq_ReturnType BUFREQ_OK: 数据复制成功 | BUFREQ_E_NOT_OK: 由于发生错误,数据没有复制
描述 调用该函数是为了向上层提供 I-PDU(N-PDU) 段的接收数据。每次调用该函数都提供 I-PDU 数据的下一部分。剩余缓冲区的大小被写入 bufferSizePtr 所指向的位置。这个函数可能在中断上下文中被调用
声明 Dcm.h

Dcm_TpRxIndication

void Dcm_TpRxIndication (PduIdType id, Std_ReturnType result)
名称 Dcm_TpRxIndication
同步/异步 同步
可重入性 可重入
输入参数 id 接收到的 I-PDU 的标识
result 接收结果
输出参数 None
返回值 None
描述 在通过 TP 层 API 接收到 I-PDU 后调用,结果表明传输是否成功。这个函数可能在中断上下文中被调用
声明 Dcm.h

Dcm_CopyTxData

BufReq_ReturnType Dcm_CopyTxData (PduIdType id,
                                  const PduInfoType* info,
                                  const RetryInfoType* retry,
                                  PduLengthType* availableDataPtr)
名称 Dcm_CopyTxData
同步/异步 同步
可重入性 可重入
输入参数 id 发送 I-PDU 的标识
info 提供目标缓冲区(SduDataPtr)和要复制的字节数(SduLength)。如果传输数据不足,上层模块不拷贝数据,返回 BUFREQ_E_BUSY。下层模块可能会重试该调用。 SduLength 为 0 时,表示重试参数状态发生变化,或查询上层模块当前可用数据量。在这种情况下,SduDataPtr 可能是一个 NULL_PTR
retry 该参数用于确认已传输的数据或在传输出现问题后重新传输数据。如果重试参数为 NULL_PTR,则表示传输数据在复制完成后可以立即从缓冲区中删除。否则,retry 参数必须指向一个有效的 RetryInfoType 元素。如果 RetryInfoType 结构中的元素 TpDataState 为 TP_CONFPENDING,则先前复制的数据必须保留在 TP 缓冲区中,以便可以用于错误恢复。TP_DATACONF 表示在确认调用之前已经复制的所有数据,可以从 TP 缓冲区中删除,此 API 调用复制的数据将被排除在外,稍后将进行确认。TP_DATARETRY 表示这个 API 调用应该复制以前复制的数据,以便从错误中恢复。在这种情况下,TxTpDataCnt 表示当前数据拷贝位置的偏移量(以字节为单位)
输出参数 availableDataPtr 指示上层模块的 Tx 缓冲区中剩余的可用字节数。支持动态有效载荷长度的 TP 模块(例如 FrIsoTp)可以使用 availableDataPtr 来确定以下 CF(连续帧)的大小
返回值 BufReq_ReturnType BUFREQ_OK: 数据已按要求完全复制到发送缓冲区 | BUFREQ_E_BUSY: 请求无法完成,因为所需的 Tx 数据量不可用。较低层模块可以稍后重试此调用。数据未复制 | BUFREQ_E_NOT_OK: 数据未被复制,请求失败
描述 该函数用于获取 I-PDU (N-PDU)段的发送数据,每次调用这个函数都提供 I-PDU 数据的下一部分,除非 retry->TpDataState 为 TP_ DATARETRY(在这种情况下,函数重新开始复制数据,从 retry->TxTpDataCnt 指示的当前位置的偏移量开始)。剩余数据的大小写入 availableDataPtr 指向的位置。这个函数可能在中断上下文中被调用
声明 Dcm.h

Dcm_TpTxConfirmation

void Dcm_TpTxConfirmation (PduIdType id, Std_ReturnType result)
名称 Dcm_TpTxConfirmation
同步/异步 同步
可重入性 可重入
输入参数 id 发送 I-PDU 的标识
result 发送 I-PDU 的结果
输出参数 None
返回值 None
描述 该函数在 I-PDU 在其网络上发送成功后调用,其结果表明发送是否成功。这个函数可能在中断上下文中被调用
声明 Dcm.h

Dcm_TxConfirmation

void Dcm_TxConfirmation ( PduIdType TxPduId, Std_ReturnType result)
名称 Dcm_TxConfirmation
同步/异步 同步
可重入性 不同的 PduId 可重入。同一 PduId 不可重入
输入参数 TxPduId 已发送的 PDU 的ID
result E_OK: PDU 已被发送 | E_NOT_OK: PDU 发送失败
输出参数 None
返回值 None
描述 下层通信接口模块确认 PDU 发送成功或失败。这个函数可能在中断上下文中被调用
声明 Dcm.h

Dcm_ComM_NoComModeEntered

void Dcm_ComM_NoComModeEntered (uint8 NetworkId)
名称 Dcm_ComM_NoComModeEntered
同步/异步 同步
可重入性 可重入
输入参数 NetworkId 模式变更有关的的网络标识符
输出参数 None
返回值 None
描述 这个调用通知 Dcm 模块 ComM 模式更改为 COMM_NO_COMMUNICATION
声明 Dcm_ComM.h

Dcm_ComM_SilentComModeEntered

void Dcm_ComM_SilentComModeEntered (uint8 NetworkId)
名称 Dcm_ComM_SilentComModeEntered
同步/异步 同步
可重入性 可重入
输入参数 NetworkId 模式变更有关的的网络标识符
输出参数 None
返回值 None
描述 这个调用通知 Dcm 模块 ComM 模式更改为 COMM_SILENT_COMMUNICATION
声明 Dcm_ComM.h

Dcm_ComM_FullComModeEntered

void Dcm_ComM_FullComModeEntered (uint8 NetworkId)
名称 Dcm_ComM_FullComModeEntered
同步/异步 同步
可重入性 可重入
输入参数 NetworkId 模式变更有关的的网络标识符
输出参数 None
返回值 None
描述 这个调用通知 Dcm 模块 ComM 模式更改为 COMM_FULL_COMMUNICATION
声明 Dcm_ComM.h

Dcm_CsmAsyncJobFinished

Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result)
名称 Dcm_CsmAsyncJobFinished
同步/异步 同步
可重入性 可重入
输入参数 result 异步作业的返回值
输出参数 None
返回值 Std_ReturnType E_OK: 这个值总是被返回
描述 在完成异步作业处理后,可以从 Csm 调用。集成器将把这个名字配置为异步作业的 Csm ECUC 配置中的回调函数。只有一个这样的回调函数可用,Dcm 通过计算作业参数来检测已经完成的作业。API 可用性:此函数只有在 ({ecuc(Dcm/DcmDsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null) 情况下可用
声明

Dcm_KeyMAsyncCertificateVerifyFinished

Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished ( KeyM_CertificateIdType CertID,
                                                        KeyM_CertificateStatusType Result)
名称 Dcm_KeyMAsyncCertificateVerifyFinished
同步/异步 同步
可重入性 可重入
输入参数 CertID 已完成验证的证书标识符
Result 异步作业的返回值
输出参数 None
返回值 Std_ReturnType E_OK: 这个值总是被返回
描述 可以在完成异步证书验证时从 Key 调用。集成商将此名称配置为异步作业的KeyM ECUC 配置中的回调函数。只有一个这样的回调可用,Dcm 通过计算 certId 参数来检测已经完成的证书。API 可用性:此函数只有在 ({ecuc(Dcm/DcmDspDcmDspAuthentication/DcmDspAuthenticationConnection} != null) 情况下可用
声明
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/thin-wind/cp-dcm.git
git@gitee.com:thin-wind/cp-dcm.git
thin-wind
cp-dcm
AutosarCP-DCM
main

搜索帮助