说明
- 为其他模块提供的接口函数
Dcm_Init
voidDcm_Init(constDcm_ConfigType*ConfigPtr)
名称 | Dcm_Init | |||
同步/异步 | 同步 | |||
可重入性 | 非可重入 | |||
输入参数 | ConfigPtr | 指向 Variant Post-Build 中配置的指针 | ||
输出参数 | None | |||
返回值 | None | |||
描述 | 用于 DCM 模块基本初始化的服务 | |||
声明 | Dcm.h |
Dcm_MainFunction
voidDcm_MainFunction(void)
名称 | Dcm_MainFunction | |
输入参数 | None | |
输出参数 | None | |
返回值 | None | |
描述 | 此服务用于处理主循环的任务 | |
声明 | SchM_Dcm.h |
Dcm_GetVersionInfo
voidDcm_GetVersionInfo(Std_VersionInfoType*versionInfo)
名称 | Dcm_GetVersionInfo | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | None | |||
输出参数 | versionInfo | 指向存储此模块的版本信息的指针 | ||
返回值 | None | |||
描述 | 返回此模块的版本信息 | |||
声明 | Dcm.h |
Dcm_DemTriggerOnDTCStatus
Std_ReturnTypeDcm_DemTriggerOnDTCStatus(uint32DTC,
Dem_UdsStatusByteTypeDTCStatusOld,
Dem_UdsStatusByteTypeDTCStatusNew)
名称 | Dcm_DemTriggerOnDTCStatus | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | DTC | 这是分配给变更触发器的 DTC | ||
DTCStatusOld | 变更前的 DTC 状态 | |||
DTCStatusNew | 变更后的 DTC 状态 | |||
输出参数 | None | |||
返回值 | None | |||
描述 | 触发 UDS 状态字节的变化。允许在 DTCStatusChanged 上触发子服务的 ROE 事件 | |||
声明 | Dcm_Dem.h |
Dcm_GetVin
Std_ReturnTypeDcm_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
voidDcm_BndMWriteBlockFinish(BndM_BlockIdTypeBlockId,BndM_ResultTyperesult)
名称 | Dcm_BndMWriteBlockFinish | |||
同步/异步 | 同步 | |||
可重入性 | 非可重入 | |||
输入参数 | BlockId | - | ||
result | - | |||
输出参数 | None | |||
返回值 | None | |||
描述 | 由 BndM 调用,指示块写操作已经完成 | |||
声明 | Dcm.h |
Dcm_SetDeauthenticatedRole
Std_ReturnTypeDcm_SetDeauthenticatedRole(uint16connectionId,
Dcm_AuthenticationRoleTypedeauthenticatedRole)
名称 | Dcm_SetDeauthenticatedRole | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | connectionId | 唯一连接标识符,标识为其设置了取消身份验证角色的连接 | ||
deauthenticatedRole | 分配给该连接的新的未认证角色 | |||
输出参数 | None | |||
返回值 | Std_ReturnType | E_OK: 这个值总是被返回 | ||
描述 | 为该连接设置在未验证状态下使用的新角色。在连接切换到身份验证状态或 ECU 被重置之前,角色一直有效 | |||
声明 | Dcm.h |
Dcm_GetSecurityLevel
Std_ReturnTypeDcm_GetSecurityLevel(Dcm_SecLevelType*SecLevel)
名称 | Dcm_GetSecurityLevel | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | None | |||
输出参数 | SecLevel | SecurityLevel = (SecurityAccessType + 1) / 2, SecurityAccessType 的内容根据 SecurityAccess 服务请求中的 “SecurityAccessType” 参数而定 | ||
返回值 | Std_ReturnType | E_OK: 这个值总是被返回 | ||
描述 | 该函数提供激活的安全级别值 | |||
声明 | Dcm.h |
Dcm_GetSesCtrlType
Std_ReturnTypeDcm_GetSesCtrlType(Dcm_SesCtrlType*SesCtrlType)
名称 | Dcm_GetSesCtrlType | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | None | |||
输出参数 | SesCtrlType | 该值由 DiagnosticSessionControl 服务请求中的 "diagnosticSessionType" 的参数而定 | ||
返回值 | Std_ReturnType | E_OK: 这个值总是被返回 | ||
描述 | 该函数提供活动的会话控制类型值 | |||
声明 | Dcm.h |
Dcm_ResetToDefaultSession
Std_ReturnTypeDcm_ResetToDefaultSession(void)
名称 | Dcm_ResetToDefaultSession | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | None | |||
输出参数 | None | |||
返回值 | Std_ReturnType | E_OK: 这个值总是被返回 | ||
描述 | 调用此函数允许应用程序将当前会话重置为默认会话。示例:超出速度限制时自动终止扩展诊断会话 | |||
声明 | Dcm.h |
Dcm_SetActiveDiagnostic
Std_ReturnTypeDcm_SetActiveDiagnostic(booleanactive)
名称 | 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_ReturnTypeDcm_StartOfReception(PduIdTypeid,
constPduInfoType*info,
PduLengthTypeTpSduLength,
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_ReturnTypeDcm_CopyRxData(PduIdTypeid,
constPduInfoType*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
voidDcm_TpRxIndication(PduIdTypeid,Std_ReturnTyperesult)
名称 | Dcm_TpRxIndication | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | id | 接收到的 I-PDU 的标识 | ||
result | 接收结果 | |||
输出参数 | None | |||
返回值 | None | |||
描述 | 在通过 TP 层 API 接收到 I-PDU 后调用,结果表明传输是否成功。这个函数可能在中断上下文中被调用 | |||
声明 | Dcm.h |
Dcm_CopyTxData
BufReq_ReturnTypeDcm_CopyTxData(PduIdTypeid,
constPduInfoType*info,
constRetryInfoType*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
voidDcm_TpTxConfirmation(PduIdTypeid,Std_ReturnTyperesult)
名称 | Dcm_TpTxConfirmation | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | id | 发送 I-PDU 的标识 | ||
result | 发送 I-PDU 的结果 | |||
输出参数 | None | |||
返回值 | None | |||
描述 | 该函数在 I-PDU 在其网络上发送成功后调用,其结果表明发送是否成功。这个函数可能在中断上下文中被调用 | |||
声明 | Dcm.h |
Dcm_TxConfirmation
voidDcm_TxConfirmation(PduIdTypeTxPduId,Std_ReturnTyperesult)
名称 | Dcm_TxConfirmation | |||
同步/异步 | 同步 | |||
可重入性 | 不同的 PduId 可重入。同一 PduId 不可重入 | |||
输入参数 | TxPduId | 已发送的 PDU 的ID | ||
result | E_OK: PDU 已被发送 | E_NOT_OK: PDU 发送失败 | |||
输出参数 | None | |||
返回值 | None | |||
描述 | 下层通信接口模块确认 PDU 发送成功或失败。这个函数可能在中断上下文中被调用 | |||
声明 | Dcm.h |
Dcm_ComM_NoComModeEntered
voidDcm_ComM_NoComModeEntered(uint8NetworkId)
名称 | Dcm_ComM_NoComModeEntered | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | NetworkId | 模式变更有关的的网络标识符 | ||
输出参数 | None | |||
返回值 | None | |||
描述 | 这个调用通知 Dcm 模块 ComM 模式更改为 COMM_NO_COMMUNICATION | |||
声明 | Dcm_ComM.h |
Dcm_ComM_SilentComModeEntered
voidDcm_ComM_SilentComModeEntered(uint8NetworkId)
名称 | Dcm_ComM_SilentComModeEntered | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | NetworkId | 模式变更有关的的网络标识符 | ||
输出参数 | None | |||
返回值 | None | |||
描述 | 这个调用通知 Dcm 模块 ComM 模式更改为 COMM_SILENT_COMMUNICATION | |||
声明 | Dcm_ComM.h |
Dcm_ComM_FullComModeEntered
voidDcm_ComM_FullComModeEntered(uint8NetworkId)
名称 | Dcm_ComM_FullComModeEntered | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | NetworkId | 模式变更有关的的网络标识符 | ||
输出参数 | None | |||
返回值 | None | |||
描述 | 这个调用通知 Dcm 模块 ComM 模式更改为 COMM_FULL_COMMUNICATION | |||
声明 | Dcm_ComM.h |
Dcm_CsmAsyncJobFinished
Std_ReturnTypeDcm_CsmAsyncJobFinished(Csm_ResultTyperesult)
名称 | Dcm_CsmAsyncJobFinished | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | result | 异步作业的返回值 | ||
输出参数 | None | |||
返回值 | Std_ReturnType | E_OK: 这个值总是被返回 | ||
描述 | 在完成异步作业处理后,可以从 Csm 调用。集成器将把这个名字配置为异步作业的 Csm ECUC 配置中的回调函数。只有一个这样的回调函数可用,Dcm 通过计算作业参数来检测已经完成的作业。API 可用性:此函数只有在 ({ecuc(Dcm/DcmDsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null) 情况下可用 | |||
声明 |
Dcm_KeyMAsyncCertificateVerifyFinished
Std_ReturnTypeDcm_KeyMAsyncCertificateVerifyFinished(KeyM_CertificateIdTypeCertID,
KeyM_CertificateStatusTypeResult)
名称 | Dcm_KeyMAsyncCertificateVerifyFinished | |||
同步/异步 | 同步 | |||
可重入性 | 可重入 | |||
输入参数 | CertID | 已完成验证的证书标识符 | ||
Result | 异步作业的返回值 | |||
输出参数 | None | |||
返回值 | Std_ReturnType | E_OK: 这个值总是被返回 | ||
描述 | 可以在完成异步证书验证时从 Key 调用。集成商将此名称配置为异步作业的KeyM ECUC 配置中的回调函数。只有一个这样的回调可用,Dcm 通过计算 certId 参数来检测已经完成的证书。API 可用性:此函数只有在 ({ecuc(Dcm/DcmDspDcmDspAuthentication/DcmDspAuthenticationConnection} != null) 情况下可用 | |||
声明 |