Dcm

文档信息(Document Information)

版本历史(Version History)

日期(Date)

作者(Author)

版本(Version)

状态(Status)

说明(Description)

2024/12/19

xinrun.wang

V0.1

发布(Release)

首次发布(First release)

2025/04/04

xinrun.wang

V1.0

发布(Release)

正式发布(Official release)

参考文档(Reference Document)

编号(Number)

分类(Classification)

标题(Title)

版本(Version)

[1]

Autosar

AUTOSAR_CP_SWS_DiagnosticCommunicationManager.pdf

R23-11

[2]

ISO

Unified diagnostic services (UDS) - Part 1:Application Layer

Release 2020-02

[3]

ISO

Unified diagnostic services (UDS) - Part 2:Session layer services

Release 2021-10

[4]

ISO

Road vehicles - Communication between vehicle and external equipment for emissions-related diagnostics - Part 5: Emissions-related diagnostic services

Release 2016

术语与简写(Terms and Abbreviations)

术语(Term)

术语(Term)

解释(Explanation)

AddressAndLengthFormatIdentifier

定义请求消息中memoryAddress(内存地址)和memorySize(内存大小)这两个参数所使用的字节数。

Concurrent TesterPresent

UDS服务TesterPresent中,若设置了抑制正响应消息指示位(suppressPosRspMsgIndicationBit,对应请求格式为3E 80),且该服务通过功能寻址(functional addressing)接收,则此服务也被称为keep-alive logic。

Functional Addressing

诊断通信模型指:在特定通信网络中,一组或所有节点从一个发送节点接收消息的模型(即1-n通信)。 该模型也可称为“broadcast”或“multicast”。OBD通信始终以Functional Addressing模式进行。

Physical Addressing

诊断通信模型指:在特定通信网络中,一个节点从一个发送节点接收消息的模型(即 1-1 通信)。 该模型也可称为“unicast”。

UDS Service

此术语指ISO 14229-1[2]中定义的UDS Service。

OBD Service

此术语指ISO 15031-5[4]中定义的OBD Service。

OBD UDS DTC separation

该功能针对基于SAE J1979-2的UDS通信,将上报与非J1979-2的UDS通信不同的3字节DTC编号。

periodic transmission rate

时间间隔值定义周期性数据标识符(data identifier)传输的两次调用之间的时间间隔。 该值是特定于配置的,并且针对快速、中等和慢速周期性数据传输分别设有不同的值。 配置的值始终是Dcm主任务时间的整数倍。

简写(Abbreviation)

简写(Abbreviation)

全称(Full name)

解释(Explanation)

API

Application Programming Interface

接口

CAN

Controller Area Network

串行通信协议

Dcm

Diagnostic Communication Manager

实现诊断服务的模块

Dem

Diagnostic Event Manager

实现诊断事件处理的模块

Det

Default Error Tracer

开发/运行时错误报错追踪模块

DID

Data Identifier

数据ID

DSD

Diagnostic Service Dispatcher

诊断故障码

DSL

Diagnostic Session Layer

诊断故障码

DSP

Diagnostic Sercice Processing

诊断故障码

DTC

Diagnostic Trouble Code

诊断故障码

ID

Identifier

识别编号

LIN

Local Interconnect Network

局域互联网络

MOST

Media Oriented Systems Transport

多媒体通信总线

NRC

Negative Response Code

负响应码

OBD

On-Board Diagnostics

车载诊断系统

PDID

Periodic Data Identifier

periodically send by the Dcm after a request of ReadDataByPeriodicIndentifer

Pdu

Protocol Data Unit

协议数据单元

PID

Parameter Identifier

参数ID,用于OBD 0x01/0x02

RCRRP

Response correctly received - response pending

立即发送一帧NRC0x78 Pending回复

RID

Routine Identifier

例程ID

ROE

ResponseOnEvent

根据事件做诊断响应,用于UDS 0x86

RTE

Runtime Environment

介于SWC和BSW间的虚拟总线环境

SID

Service Identifier

服务ID

SW-C

Software-Component

应用设计单元模块

TP

Transport Protocol

TP数据传输协议

UDS

Unified diagnostic services

诊断服务的标准

CS

Client-Server

客户端-服务端的RTE通信方式,以调用函数接口的方式进行通信

SR

Sender-Receiver

发送方-接收方的RTE通信方式,以数据传递的方式进行通信

CanTp

CAN Transport Layer

CAN传输模块

DoIP

Diagnostic Over IP

以太网传输模块

PduR

Pdu Router

Pdu路由模块

简介(Introduction)

Dcm提供一些通用的接口来实现诊断服务,实现与诊断仪以标准UDS(ISO14229-1)/OBD(SAEJ1979, ISO15031-5)协议以及独立网络相关协议(ISO15765-3, 15765-4)进行沟通和数据交互。

Dcm provides some general interfaces to implement diagnostic services, enabling communication and data interaction with diagnostic tools through standard UDS (ISO14229-1)/OBD (SAEJ1979, ISO15031-5) protocols as well as independent network-related protocols (ISO15765-3, 15765-4).

Dcm为车辆在开发、生产和后续客户服务过程中提供诊断车辆内部信息的功能。

Dcm provides the function of diagnosing the internal information of the vehicle during the development, production and subsequent customer service processes of the vehicle.

Dcm在Autosar架构中位于通信服务层,它适用于任何网络总线(CAN/FLEXRAY/LIN/MOST等),因此特定于网络环境的实现均位于其他模块中(例如CanTp/DoIP等)。

In the Autosar architecture, Dcm is located in the communication service layer and is applicable to any network bus (CAN/FLEXRAY/LIN/MOST, etc.). Therefore, the implementations specific to the network environment are all located in other modules (such as CanTp/DoIP, etc.).

Dcm通过调用PduR提供的独立网络总线的通用接口或提供回调接口来进行实际的数据收发,PduR根据配置决定报文收发使用的总线类型。

Dcm performs actual data sending and receiving by calling the general interface of the independent network bus provided by PduR or providing a callback interface. PduR determines the bus type used for message sending and receiving according to the configuration.

Dcm在接收到诊断请求后将分析内容,根据协议要求判断内容是否正确,如不正确则回复对应NRC,如正确则回复正响应。

After receiving a diagnostic request, Dcm will analyze the content and judge whether the content is correct according to the protocol requirements. If it is incorrect, it will reply with the corresponding NRC; if it is correct, it will reply with a positive response.

Dcm在处理服务过程中可能涉及到一些外部数据的获取(例如DTC状态,DID数据,RID例程等),其中会与其他BSW模块或者SWC(通过RTE)进行交互。

In the process of handling services, Dcm may involve the acquisition of some external data (such as DTC status, DID data, RID routines, etc.), which will interact with other BSW modules or SWC (through RTE).

Dcm分成三大功能主题DSL, DSD和DSP。

Dcm is divided into three major functional themes: DSL, DSD and DSP.

Dcm模块层次图

Dcm模块层次图

Dcm Module Hierarchy Diagram

如图 Dcm模块层次图 所示,Dcm模块处于AUTOSAR架构中的通信服务层,其下层模块为PduR模块,上层模块为RTE。

As shown in the Dcm Module Hierarchy Diagram, the Dcm module is located in the communication service layer of the AUTOSAR architecture, with the PduR module as its lower-layer module and the RTE as its upper-layer module.

功能描述(Functional Description)

特性(Features)

Diagnostic Session Layer(DSL)

接收诊断请求(Receiving diagnostic requests)

透过PduR模块与TP模块进行通信,以TP的方式接收诊断请求,从PduR调用Dcm_StartOfReception开始,后续调用Dcm_CopyRxData复制接收数据,最后以Dcm_TpRxIndication收尾结束接收。

Communicate with the TP module through the PduR module to receive diagnostic requests in TP mode. It starts with PduR calling Dcm_StartOfReception, followed by calling Dcm_CopyRxData to copy the received data, and finally ends with Dcm_TpRxIndication to complete the reception.

功能寻址并发3E80(Functional addressing for concurrent 3E80)

通过发送功能寻址的3E80(Concurrent TesterPresent)来重置S3超时时间,使Dcm保持在某个非默认会话下。

Reset the S3 timeout by sending the functionally addressed 3E80 (Concurrent TesterPresent), so that Dcm remains in a non-default session.

发送诊断回复(Sending diagnostic responses)

透过PduR模块与TP模块进行通信,以TP的方式发送诊断回复,从Dcm调用PduR_DcmTransmit开始,后续PduR调用Dcm_CopyTxData复制发送数据,最后以Dcm_TpTxConfirmation收尾结束发送。

Communicate with the TP module through the PduR module to send diagnostic responses in TP mode. It starts with Dcm calling PduR_DcmTransmit, followed by PduR calling Dcm_CopyTxData to copy the data to be sent, and finally ends with Dcm_TpTxConfirmation to complete the transmission.

通用连接处理(General connection handling)

在TP接收过程中传入metaData,Dcm获取SA和TA,在发送诊断回复时,对调SA和TA,同样传入metaData进行发送。

Pass in metaData during TP reception, Dcm obtains SA and TA. When sending a diagnostic response, swap SA and TA, and also pass in metaData for transmission.

P2Server触发回复等待(NRC 0x78)(P2Server triggers response waiting (NRC 0x78))

在P2Server时间内,如果未能发出诊断回复(服务仍在处理或回复了DCM_E_PENDING),则发送NRC 0x78告知诊断仪,需要更多时间处理,后续发出回复。 首次发送Pending需要在P2Server时间内,后续发送每个Pending间隔P2StarServer时间。 可以通过配置决定最多发送的NRC 0x78数量,超出指定的数量则发送NRC 0x10,并结束此次诊断请求处理。

If a diagnostic response cannot be sent within the P2Server time (the service is still being processed or DCM_E_PENDING is replied), NRC 0x78 is sent to inform the diagnostic tool that more time is needed for processing, and the response will be sent later. The first Pending message must be sent within the P2Server time, and each subsequent Pending message is sent at intervals of P2StarServer time. The maximum number of NRC 0x78 that can be sent can be determined by configuration. If the specified number is exceeded, NRC 0x10 is sent, and the processing of this diagnostic request is ended.

周期发送(Periodic Transmission)

通过内部实现UDS 0x2A服务,读取指定DID的数据,实现周期发送UUDT报文。

By internally implementing the UDS 0x2A service, read data from the specified DID to achieve periodic transmission of UUDT messages.

分页发送(Paged Transmission)

在发送内容长度大于分配的TxBuffer大小时,可以触发分页发送(通常适用于UDS 0x19和0x22服务),先获取部分数据,然后发起发送请求, 后续在copyTxData部分完成时可以释放部分Txbuffer,从而可以获取后续数据,直到发送完成。

When the length of the content to be sent exceeds the allocated TxBuffer size, paged transmission can be triggered (usually applicable to UDS 0x19 and 0x22 services). First, obtain part of the data, then initiate a transmission request. Subsequently, when part of the copyTxData is completed, part of the TxBuffer can be released, making it possible to obtain subsequent data until the transmission is completed.

应用触发回复等待(NRC 0x78)(Application-Triggered Response Waiting (NRC 0x78))

应用(应用callout接口或者自定义诊断服务)可以通过回复DCM_E_FORCE_RCRRP来立即发起一次Pending NRC 0x78回复,无论是否到达P2Server。

An application (application callout interface or custom diagnostic service) can immediately initiate a Pending NRC 0x78 response by replying with DCM_E_FORCE_RCRRP, regardless of whether the P2Server time has been reached.

安全级控制(Security Level Control)

通过内部实现UDS 0x27服务,实现安全级控制,可以进行会话切换(初始为LOCKED),可以自行配置安全级(决定Seed长度,尝试次数,解锁方法等),可以通过配置决定各个安全级下支持的服务、DID、RID等。

By internally implementing the UDS 0x27 service, security level control is achieved, allowing session switching (initially LOCKED). Security levels can be configured independently (determining seed length, number of attempts, unlocking methods, etc.), and services, DIDs, RIDs, etc., supported under each security level can be determined through configuration.

会话控制(Session Control)

通过内部实现UDS 0x10服务,实现会话控制,可以进行会话切换(通常有默认会话、编程会话、扩展会话等),可以自行配置会话,可以通过配置决定各个会话下支持的服务、DID、RID等。

By internally implementing the UDS 0x10 service, session control is achieved, enabling session switching (usually including default session, programming session, extended session, etc.). Sessions can be configured independently, and services, DIDs, RIDs, etc., supported under each session can be determined through configuration.

安全认证(Security Authentication)

通过内部实现UDS 0x29服务,实现安全认证,可以与信息安全相关模块(Csm, KeyM)进行安全认证,通过配置决定各个安全认证Role下支持的服务、DID、RID等。

By internally implementing the UDS 0x29 service, security authentication is achieved, enabling security authentication with information security-related modules (Csm, KeyM). Services, DIDs, RIDs, etc., supported under each security authentication Role can be determined through configuration.

超时管理(Timeout Management)

可以根据主函数周期监控超时情况,从而实现P2Server/S3Server等超时。 可以配置S3Server,决定Dcm在没有受到外部请求时可以维持非默认会话的时间,超出该时间则恢复到默认会话。 也可以配置P2Server和P2StarServer,决定首次和后续发送NRC 0x78的时机。

Timeout situations can be monitored according to the main function cycle, thereby implementing timeouts such as P2Server/S3Server. S3Server can be configured to determine the time that Dcm can maintain a non-default session without receiving external requests; beyond this time, it will return to the default session. P2Server and P2StarServer can also be configured to determine the timing of sending the first and subsequent NRC 0x78.

协议并行(Protocol Parallelism)

在默认会话下支持不互相共享Buffer的协议并行,支持多个协议同时进行诊断报文的收发和诊断服务的处理,协议间相对独立,拥有独立的管理单元。

In the default session, protocol parallelism with non-shared Buffers is supported, allowing multiple protocols to simultaneously send/receive diagnostic messages and process diagnostic services. Protocols are relatively independent and have independent management units.

协议抢占(Protocol Preemption)

在非默认会话下或互相共享Buffer的协议间不支持并行,优先级更高的协议会向优先级更低的协议发起抢占,被抢占的协议会立即取消当前的诊断请求处理,包括报文的收发。

Parallelism is not supported in non-default sessions or between protocols that share Buffers. A protocol with higher priority will preempt a protocol with lower priority, and the preempted protocol will immediately cancel the current diagnostic request processing, including message sending and receiving.

通信模式控制(Communication Mode Control)

ComM通过调用对应接口(Dcm_ComM_NoComModeEntered/Dcm_ComM_SilentComModeEntered/Dcm_ComM_FullComModeEntered)可以使得Dcm进入对应通信模式,分别对应禁止收发,只收不发和允许收发。

ComM can make Dcm enter the corresponding communication mode by calling the corresponding interfaces (Dcm_ComM_NoComModeEntered/Dcm_ComM_SilentComModeEntered/Dcm_ComM_FullComModeEntered), which correspond to prohibiting sending and receiving, only receiving but not sending, and allowing sending and receiving, respectively.

Diagnostic Service Dispatcher(DSD):

检查诊断服务请求(Check Diagnostic Service Requests)

根据配置的服务表,做请求的诊断服务/子服务的通用检查,主要有制造商/供应商许可检查,是否支持该服务/子服务,指定会话级、安全级、安全认证和模式规则是否达到,如有子服务则长度是否至少为2,等等通用检查。

Based on the configured service table, general checks are performed on the requested diagnostic service/sub - service. These mainly include checks on manufacturer/supplier permissions, whether the service/sub - service is supported, whether the specified session level, security level, security authentication, and mode rules are met. If there is a sub - service, it also checks whether the length is at least 2, and other general checks.

传递请求/回复(Transfer Requests/Responses)

将请求做处理后根据接口的标准参数传递至DSP,并从DSP收取回复,组装回复准备发送回复。

After processing the request, it is transmitted to the DSP according to the standard parameters of the interface. Then, the response is received from the DSP, assembled, and prepared for sending.

正响应抑制(Positive Response Suppression)

有子服务的诊断服务请求支持正响应抑制,通过将子服务的bit7置为1来告知Dcm该诊断请求的正响应无需回复,例如3E80。

Diagnostic service requests with sub - services support positive response suppression. By setting bit7 of the sub - service to 1, Dcm is informed that there is no need to reply to the positive response of this diagnostic request, such as 3E80.

负响应抑制(Negative Response Suppression)

功能寻址下,NRC 0x11/0x12/0x31/0x7E/0x7F不发送诊断回复,直接结束诊断服务处理。

In functional addressing, NRC 0x11/0x12/0x31/0x7E/0x7F do not send diagnostic responses, and the processing of the diagnostic service is ended directly.

发送确认处理(Transmission Confirmation Processing)

由DSP获得发送确认后,调用Confirmation Callout接口,通知应用诊断服务处理的结果(正响应成功发送/正响应发送失败或抑制/负响应成功发送/负响应发送失败或抑制)

After obtaining the transmission confirmation from the DSP, the Confirmation Callout interface is called to notify the application of the result of the diagnostic service processing (positive response sent successfully/positive response failed to send or suppressed/negative response sent successfully/negative response failed to send or suppressed).

Diagnostic Service Processing(DSP):

UDS服务(UDS Services)

根据Autosar规范,内部实现了以下UDS服务,均参照ISO14229-1实现,具体逻辑请参考文档,部分Autosar指定的服务未实现,可以参考后续的偏差:

In accordance with the Autosar specification, the following UDS services are implemented internally, all of which refer to ISO14229 - 1. For specific logic, please refer to the document. Some services specified by Autosar are not implemented, and you can refer to the subsequent deviations:

SID

service

Subfunction

0x10

DiagnosticSessionControl

1-126

0x11

ECUReset

0-127

0x14

ClearDiagnosticInformation

N/A

0x19

ReadDTCInformation

0x01, 0x02, 0x03, 0x04, 0x06, 0x0A, 0x0D, 0x0E

0x22

ReadDataByIdentifier

N/A

0x23

ReadMemoryByAddress

N/A

0x24

ReadScalingDataByIdentifier

N/A

0x27

SecurityAccess

1-126

0x28

CommunicationControl

0x00, 0x01, 0x02, 0x03, 0x04, 0x05

0x29

Authentication

0x00, 0x01, 0x02, 0x03, 0x04, 0x08

0x2A

ReadDataByPeriodicIdentifier

N/A

0x2C

DynamicallyDefineDataIdentifier

0x01, 0x02, 0x03

0x2E

WriteDataByIdentifier

N/A

0x2F

InputOutputControlByIdentifier

N/A

0x31

RoutineControl

0x01, 0x02, 0x03

0x34

RequestDownload

N/A

0x35

RequestUpload

N/A

0x36

TransferData

N/A

0x37

RequestTransferExit

N/A

0x38

RequestFileTransfer

N/A

0x3D

WriteMemoryByAddress

N/A

0x3E

TesterPresent

N/A

0x85

ControlDTCSetting

0x01, 0x02

0x86

ResponseOnEvent

0x00, 0x01, 0x03, 0x04, 0x05, 0x06, 0x08, 0x09

OBD服务(OBD Services)

根据Autosar规范,内部实现了以下OBD服务,均按照规范ISO15031-5实现,具体逻辑请参考文档:

In accordance with the Autosar specification, the following OBD services are implemented internally, all of which are implemented in accordance with the standard ISO15031-5. For specific logic, please refer to the document:

Relevant OBD Service Identifier

Support in the Dcm

$01

Supported

$02

Supported

$03

Supported

$04

Supported

$06

Supported

$07

Supported

$08

Supported

$09

Supported

$0A

Supported

Bootloader交互(Bootloader Interaction)

通过内部实现的0x10/0x11服务实现与Bootloader的跳转交互,通过调用Dcm_SetProgConditions接口设置接收的服务请求,是否为编程请求等信息, 在Bootloader侧可以访问相关信息决定是否需要回复诊断回复以及是否进行编程等动作。

The jump interaction with the Bootloader is realized through the internally implemented 0x10/0x11 services. The received service requests, whether they are programming requests and other information are set by calling the Dcm_SetProgConditions interface. On the Bootloader side, relevant information can be accessed to determine whether a diagnostic reply needs to be sent and whether to perform programming and other actions.

外部接口处理(External Interface Processing)

通过配置可以决定数据读取的接口是通过用户自定的callout还是通过SWC/RTE(选择CS/SR/NV),以及接口本身为同步还是异步, 是否包含ErrorCode等,根据配置不同,Dcm需要调用的接口(应用需实现的接口)的参数则不同。

Through configuration, it can be determined whether the data reading interface is through a user-defined callout or through SWC/RTE (selecting CS/SR/NV), and whether the interface itself is synchronous or asynchronous, whether it contains ErrorCode, etc. Depending on the configuration, the parameters of the interface that Dcm needs to call (the interface that the application needs to implement) will be different.

NvM交互(NvM Interaction)

部分服务本身或服务相关变量需要借助NvM进行存储读写,将会引用NvM的block,通过标准接口对其进行读写、查询块状态等操作。

Some services themselves or service-related variables need to use NvM for storage reading and writing. They will reference NvM blocks and perform operations such as reading, writing, and querying block status through standard interfaces.

DcmSecureCoding

该功能可以指定某些DID以及某个RID,在对这些DID发起写入前需要前置29 04服务,发送证书,执行2E服务写入时将不会直接写入, 而是暂存需要写入的内容,后续在执行指定RID的startRoutine时会执行证书验证,验证通过后会对这些DID进行写入。 This function can specify certain DIDs and a certain RID. Before initiating writing to these DIDs, the 29 04 service needs to be pre-positioned to send the certificate. When executing the 2E service for writing, it will not write directly, but temporarily store the content to be written. Later, when executing the startRoutine of the specified RID, certificate verification will be performed. If the verification is passed, these DIDs will be written.

偏差(Deviation)

此处描述的偏差为当前实现与Autosar版本R23要求的差异,Autosar自身的限制条目请参考[1]的第4章节

The deviations described here refer to the differences between the current implementation and the requirements of Autosar version R23. For the restriction items of Autosar itself, please refer to Chapter 4 of [1].

Nested Data types

涉及DidSignal/RoutineSignal的嵌套数据类型(CompositePool),因为和封装需求有所冲突,且使用常规DspData/Routine类型通常可以满足应用需求,所以暂不实现。 涉及以下SWS需求:

Nested data types (CompositePool) involving DidSignal/RoutineSignal are not implemented temporarily because they conflict with encapsulation requirements, and the use of conventional DspData/Routine types can usually meet application needs. The following SWS requirements are involved:

  • SWS_Dcm_01633

  • SWS_Dcm_01634

  • SWS_Dcm_01635

  • SWS_Dcm_01636

  • SWS_Dcm_01637

  • SWS_Dcm_01638

  • SWS_Dcm_01639

  • SWS_Dcm_CONSTR_06048

  • SWS_Dcm_91118

  • SWS_Dcm_91119

  • SWS_Dcm_91120

  • SWS_Dcm_91121

  • SWS_Dcm_91122

  • SWS_Dcm_91123

  • SWS_Dcm_91124

配置(configuration)

以下配置项删除:

The following configuration items are deleted:

  1. DcmDspDidSignalCompositePool

  2. DcmDspDidSignalCompositeRef

  3. DcmDspRequestRoutineResultsInSignalCompositePool

  4. DcmDspRequestRoutineResultsInSignalCompositeSignalRef

  5. DcmDspRequestRoutineResultsOutSignalCompositePool

  6. DcmDspRequestRoutineResultsOutSignalCompositeSignalRef

  7. DcmDspStartRoutineInSignalCompositePool

  8. DcmDspStartRoutineInSignalCompositeSignalRef

  9. DcmDspStartRoutineOutSignalCompositePool

  10. DcmDspStartRoutineOutSignalCompositeSignalRef

  11. DcmDspStopRoutineInSignalCompositePool

  12. DcmDspStopRoutineInSignalCompositeSignalRef

  13. DcmDspStopRoutineOutSignalCompositePool

  14. DcmDspStopRoutineOutSignalCompositeSignalRef

  15. DcmDspDidSignal/DcmDspDataByteSize

接口(Interface)

None

service table linking

服务表的关联位于配置中,因此无需在初始化协议时进行关联,在需要时直接取用配置即可,所以暂不实现。 涉及SWS需求SWS_Dcm_00035

The association of the service table is located in the configuration, so there is no need to perform the association when initializing the protocol. The configuration can be directly retrieved when needed, so it is not implemented temporarily. It involves the SWS requirement SWS_Dcm_00035.

配置(configuration)

None

接口(Interface)

Dcm_Init无需涉及相关初始化操作

Dcm_Init does not need to involve relevant initialization operations.

协议并行时根据协议优先级做ComM诊断情况报告(When protocols are parallel, the ComM diagnostic status report is made according to the protocol priority)

协议并行时,不同协议可能来源于不同ComM通道,多协议并行期间调用comm接口提示各网络的通信情况即可,所以暂不实现。 涉及SWS需求SWS_Dcm_01050

When protocols are parallel, different protocols may come from different ComM channels. During the parallel operation of multiple protocols, calling the ComM interface to prompt the communication status of each network is sufficient, so it is not implemented temporarily. It involves the SWS requirement SWS_Dcm_01050.

配置(configuration)

None

接口(Interface)

None

协议并行时序列化调用接口/处理服务(When protocols are parallel, interfaces are called/ services are processed in a serialized manner)

因为服务/接口需要提供当前运行状态(OpStatus),在协议并行时,如果涉及访问同一服务/接口,则可能会出现OpStatus冲突,从而服务处理混乱, 因此需求中要求对于该情况,延迟对服务/接口的调用,直到不会发生并行处理。 此处如果需要实现,则需要针对每一个服务和接口单元做状态管理,需要开辟额外内存空间,以及每次执行时的查询。在实际应用过程中, 该类情况基本不会发生,且可以通过应用行为进行避免,因此该需求暂不实现。 涉及以下SWS需求:

Since services/interfaces need to provide the current operating status (OpStatus), in the case of protocol parallelism, if access to the same service/interface is involved, OpStatus conflicts may occur, leading to confusion in service processing. Therefore, the requirement stipulates that for such cases, the calling of the service/interface should be delayed until there is no parallel processing. If it is necessary to implement this, it is required to perform state management for each service and interface unit, which involves allocating additional memory space and querying each time it is executed. In actual application processes, such situations rarely occur and can be avoided through application behaviors. Therefore, this requirement is not implemented temporarily. The following SWS requirements are involved:

  • SWS_Dcm_01604

  • SWS_Dcm_01370

配置(configuration)

None

接口(Interface)

None

Harmonize the naming between interfaces and modes

需求要求SessionRow的配置container名与模式名统一,当前封装时针对固定的SessionLevel生成了对应的默认名, 没有采用SessionRow的名字,仅对除固定SessionLevel外的采用了配置名。 在配置时,根据sessionLevel自动修改container名涉及到配置变动,如果手动进行修改则过于繁琐,因此该需求可暂不实现。 涉及以下SWS需求:

The requirement stipulates that the configuration container name of SessionRow should be consistent with the mode name. In the current encapsulation, the corresponding default name is generated for the fixed SessionLevel, and the name of SessionRow is not adopted. Only the configuration names other than the fixed SessionLevel are used. During configuration, automatically modifying the container name according to the sessionLevel involves configuration changes, and manual modification is too cumbersome. Therefore, this requirement can be temporarily not implemented. The following SWS requirements are involved:

  • SWS_Dcm_CONSTR_06000

  • SWS_Dcm_CONSTR_06001

配置(configuration)

DcmDspSessionRow.SHORT-NAME不做限制

There is no restriction on DcmDspSessionRow.SHORT-NAME.

接口(Interface)

None

部分Det报错(Some Det error reports)

部分要求的Det报错在Det表(文档7.2.1-7.2.2章节)中不存在,不确定ID值,因此暂不实现。 涉及SWS需求SWS_Dcm_01143

Some required Det error reports do not exist in the Det table (Sections 7.2.1-7.2.2 of the document), and the ID values are uncertain, so they are not implemented temporarily. It involves the SWS requirement SWS_Dcm_01143.

配置(configuration)

None

接口(Interface)

None

DcmSecurityAccess模式组(DcmSecurityAccess Mode Group)

需求要求的模式组与后续服务组件需求有冲突,因此以服务组件需求为标准,暂不实现。 涉及SWS需求SWS_Dcm_01327。

The mode group required by the demand conflicts with the subsequent service component requirements. Therefore, the service component requirements are taken as the standard, and it is not implemented temporarily. It involves the SWS requirement SWS_Dcm_01327.

配置(configuration)

None

接口(Interface)

None

DcmModeConditionCertificateCompareElementRef

模式条件使用证书作为比较元素的使用场景很少,暂不实现。 涉及以下SWS需求:

The usage scenarios where certificate is used as a comparison element in mode conditions are very few, so it is not implemented temporarily. The following SWS requirements are involved:

  • SWS_Dcm_CONSTR_06089

  • SWS_Dcm_CONSTR_06090

配置(configuration)

DcmModeConditionCertificateCompareElementRef配置删除

The configuration of DcmModeConditionCertificateCompareElementRef is deleted

接口(Interface)

None

DcmDspDiagnosisScaling

在Dcm侧定义CompuMethod计算方法,当前集中在应用进行计算方法的设计,没有在BSW侧设计的应用场景,暂不实现。 涉及以下SWS需求:

The CompuMethod calculation method is defined on the Dcm side. Currently, the design of calculation methods is concentrated in applications, and there are no application scenarios designed on the BSW side, so it is not implemented temporarily. The following SWS requirements are involved:

  • SWS_Dcm_00964

  • SWS_Dcm_CONSTR_06053

配置(configuration)

以下配置删除:

The following configurations are deleted:

  1. DcmDspData/DcmDspDiagnosisScaling

  2. DcmDspPidData/DcmDspDiagnosisScaling

  3. DcmDspRequestRoutineResultsInSignal/DcmDspArgumentScaling

  4. DcmDspRequestRoutineResultsOutSignal/DcmDspArgumentScaling

  5. DcmDspStartRoutineInSignal/DcmDspArgumentScaling

  6. DcmDspStartRoutineOutSignal/DcmDspArgumentScaling

  7. DcmDspStopRoutineInSignal/DcmDspArgumentScaling

  8. DcmDspStopRoutineOutSignal/DcmDspArgumentScaling

接口(Interface)

None

19服务部分子服务(Sub-services of Service 19)

当前19服务以下子服务在应用过程使用场景很少,暂不实现:

Currently, the following sub-services of Service 19 are rarely used in application processes and are not implemented temporarily:

  • 0x05

  • 0x07

  • 0x08

  • 0x09

  • 0x0B

  • 0x0C

  • 0x12

  • 0x13

  • 0x14

  • 0x15

  • 0x17

  • 0x18

  • 0x19

  • 0x1A

  • 0x42

  • 0x55

  • 0x56

涉及以下SWS需求:

The following SWS requirements are involved:

  • SWS_Dcm_01334

  • SWS_Dcm_01343

  • SWS_Dcm_01344

  • SWS_Dcm_01545

  • SWS_Dcm_00008

  • SWS_Dcm_00379

  • SWS_Dcm_00380

  • SWS_Dcm_00381

  • SWS_Dcm_01404

  • SWS_Dcm_01405

  • SWS_Dcm_01226

  • SWS_Dcm_01240

  • SWS_Dcm_01406

  • SWS_Dcm_01547

  • SWS_Dcm_00386

  • SWS_Dcm_01546

  • SWS_Dcm_00632

  • SWS_Dcm_00574

  • SWS_Dcm_00388

  • SWS_Dcm_01193

  • SWS_Dcm_00389

  • SWS_Dcm_00464

  • SWS_Dcm_00465

  • SWS_Dcm_00681

  • SWS_Dcm_00519

  • SWS_Dcm_01232

  • SWS_Dcm_01233

  • SWS_Dcm_01129

  • SWS_Dcm_01130

  • SWS_Dcm_01131

  • SWS_Dcm_01345

  • SWS_Dcm_01346

  • SWS_Dcm_01527

  • SWS_Dcm_01607

  • SWS_Dcm_01608

  • SWS_Dcm_01609

  • SWS_Dcm_01610

  • SWS_Dcm_01611

  • SWS_Dcm_01612

  • SWS_Dcm_01646

  • SWS_Dcm_01647

  • SWS_Dcm_01648

  • SWS_Dcm_01651

  • SWS_Dcm_01654

  • SWS_Dcm_01655

  • SWS_Dcm_01656

  • SWS_Dcm_01657

  • SWS_Dcm_01658

  • SWS_Dcm_01659

  • SWS_Dcm_01660

配置(configuration)

DcmDspReadDTCInformationUserDefinedFaultMemory配置Container删除

The configuration Container of DcmDspReadDTCInformationUserDefinedFaultMemory is deleted

接口(Interface))

None

Did引用其他Did(Did references other Dids)

引用到一个或多个其他did,在封装处理上存在一定问题,需求不匹配,使用场景少,暂不实现。 涉及以下SWS需求:

When referencing one or more other Dids, there are certain issues in encapsulation processing, with mismatched requirements and few usage scenarios, so it is not implemented temporarily. The following SWS requirements are involved:

  • SWS_Dcm_00440

  • SWS_Dcm_CONSTR_06023

配置(configuration)

DcmDspDidRef配置删除

The configuration of DcmDspDidRef is deleted

接口(Interface)

None

DcmDspDataUsePort为USE_ECU_SIGNAL时配置DcmDspDataEcuSignal(When DcmDspDataUsePort is USE_ECU_SIGNAL, configure DcmDspDataEcuSignal)

此处仅在IoHwAb在工程中不存在时才需配置,否则无需配置,自动映射到相应的IoHwAb名字。 涉及SWS需求SWS_Dcm_CONSTR_06057

The configuration here is only required when IoHwAb does not exist in the project; otherwise, no configuration is needed, and it will be automatically mapped to the corresponding IoHwAb name. It involves the SWS requirement SWS_Dcm_CONSTR_06057

配置(configuration)

参考标题与说明

Reference Title and Description

接口(Interface)

None

SupportInfo

SupportInfo暂无使用场景,暂不实现。 涉及以下SWS需求:

SupportInfo has no usage scenarios for the time being and will not be implemented temporarily. The following SWS requirements are involved:

  • SWS_Dcm_01382

  • SWS_Dcm_01383

  • SWS_Dcm_00621

  • SWS_Dcm_00622

配置(configuration)

删除以下配置:

Delete the following configurations:

  1. DcmDspDidDataSupportInfo

  2. DcmDspDidSupportInfo

  3. DcmDspPidSupportInfo

接口(Interface)

None

DcmDspAuthenticationECUCertificateRef/DcmDspAuthenticationECUCertificateKeyElementRef

暂时使用不到这些配置项,暂不实现。 涉及SWS需求SWS_Dcm_01462

These configuration items are not temporarily needed and will not be implemented for the time being. It involves the SWS requirement SWS_Dcm_01462.

配置(configuration)

DcmDspAuthenticationECUCertificateKeyElementRef配置项删除

The configuration item DcmDspAuthenticationECUCertificateKeyElementRef is deleted

接口(Interface)

None

SR方式的2F服务处理(Processing of 2F service in SR mode)

SR形式的2F处理需独立实现且较为复杂,当前使用CS方式即可,暂无使用场景,暂不实现。 涉及以下SWS需求:

The processing of 2F in SR mode needs to be implemented independently and is relatively complex. Currently, the CS mode is sufficient, and there are no usage scenarios for the time being, so it will not be implemented temporarily. The following SWS requirements are involved:

  • SWS_Dcm_01600

  • SWS_Dcm_CONSTR_06050

  • SWS_Dcm_01436

  • SWS_Dcm_01437

  • SWS_Dcm_01439

  • SWS_Dcm_01440

  • SWS_Dcm_01441

  • SWS_Dcm_CONSTR_06081

  • SWS_Dcm_01305

  • SWS_Dcm_01306

  • SWS_Dcm_01307

  • SWS_Dcm_91087

  • SWS_Dcm_01308

  • SWS_Dcm_01309

  • SWS_Dcm_01312

  • SWS_Dcm_01313

  • SWS_Dcm_01438

  • SWS_Dcm_01277

  • SWS_Dcm_01275

配置(configuration)

DcmDspDidControlEnableMask删除配置项

The configuration item DcmDspDidControlEnableMask is deleted

接口(Interface)

None

USE_ECU_SIGNAL大小端(Endianness for USE_ECU_SIGNAL)

配置为USE_ECU_SIGNAL时需考虑大小端,未配置则使用默认大小端。此处暂使用uint8*作为参数类型,所以不需要进行大小端转换,此条暂不实现。 涉及SWS需求SWS_Dcm_00640

When configured as USE_ECU_SIGNAL, endianness needs to be considered; if not configured, the default endianness is used. Here, uint8* is temporarily used as the parameter type, so no endianness conversion is required, and this item is not implemented temporarily. It involves the SWS requirement SWS_Dcm_00640.

配置(configuration)

None

接口(Interface)

None

DcmDspRoutineInterfaceArgumentIntegrity

ClientServerOperation.diagArgIntegrity在SWC/RTE中暂无使用需求,所以该需求暂不实现。 涉及以下SWS需求:

ClientServerOperation.diagArgIntegrity has no usage requirements in SWC/RTE for the time being, so this requirement is not implemented temporarily. The following SWS requirements are involved:

  • SWS_Dcm_CONSTR_06097

  • SWS_Dcm_01580

  • SWS_Dcm_01581

配置(configuration)

删除以下配置:

Delete the following configurations:

  1. DcmDspStartRoutine/DcmDspRoutineInterfaceArgumentIntegrity

  2. DcmDspStopRoutine/DcmDspRoutineInterfaceArgumentIntegrity

  3. DcmDspRequestRoutineResults/DcmDspRoutineInterfaceArgumentIntegrity

接口(Interface)

None

PROXY接口/RoutineConfirmation(PROXY Interface / RoutineConfirmation)

PROXY类型接口和Routine的Confirmation接口均为DRAFT,且无使用场景,暂不实现。 涉及以下SWS需求:

Both the PROXY-type interface and the Routine’s Confirmation interface are in DRAFT status, and there are no usage scenarios, so they are not implemented temporarily. The following SWS requirements are involved:

  • SWS_Dcm_01614

  • SWS_Dcm_01615

  • SWS_Dcm_01616

  • SWS_Dcm_01617

  • SWS_Dcm_91090

  • SWS_Dcm_91091

  • SWS_Dcm_91095

  • SWS_Dcm_91092

  • SWS_Dcm_91096

  • SWS_Dcm_91097

  • SWS_Dcm_91093

  • SWS_Dcm_91094

  • SWS_Dcm_91098

  • SWS_Dcm_91099

  • SWS_Dcm_91100

  • SWS_Dcm_91101

  • SWS_Dcm_91102

  • SWS_Dcm_91103

  • SWS_Dcm_91104

  • SWS_Dcm_91105

  • SWS_Dcm_91016

  • SWS_Dcm_91106

  • SWS_Dcm_91017

  • SWS_Dcm_91107

  • SWS_Dcm_91018

配置(configuration)

DcmDspDataUsePort去除PROXY相关选项

DcmDspDataUsePort removes PROXY-related options

删除以下配置项:

Delete the following configuration items:

  1. DcmDspRoutineFncSignature

  2. DcmDspRequestRoutineResultsConfirmationEnabled

  3. DcmDspRequestRoutineResultsConfirmationFnc

  4. DcmDspStartRoutineConfirmationEnabled

  5. DcmDspStartRoutineConfirmationFnc

  6. DcmDspStopRoutineConfirmationEnabled

  7. DcmDspStopRoutineConfirmationFnc

接口(Interface)

None

3E服务无需安全认证(Service 3E does not require security authentication)

3E服务不配置相关安全认证要求即可,此处不做特殊处理,暂不实现。 涉及SWS需求SWS_Dcm_01558

It is sufficient that Service 3E is not configured with relevant security authentication requirements, and no special handling is done here. This is not implemented temporarily. It involves the SWS requirement SWS_Dcm_01558.

配置(configuration)

None

接口(Interface)

None

86服务子服务onComparisonOfValues(Sub-service onComparisonOfValues of Service 86)

根据SWS_Dcm_01641中Autosar规定的服务表,子服务onComparisonOfValues暂不实现,因此此需求暂不实现。 涉及以下SWS需求:

According to the service table specified by Autosar in SWS_Dcm_01641, the sub-service onComparisonOfValues is not implemented temporarily, so this requirement is not implemented for the time being. The following SWS requirements are involved:

  • SWS_Dcm_01630

  • SWS_Dcm_CONSTR_06105

配置(configuration)

DcmDspRoeMaxNumComparisionOfValueEvents配置项删除

The configuration item DcmDspRoeMaxNumComparisionOfValueEvents is deleted

接口(Interface)

None

DET报错DCM_E_SET_PROG_CONDITIONS_FAIL(DET reports an error DCM_E_SET_PROG_CONDITIONS_FAIL)

当前直接忽视了返回值,没有进行报错(如果进行DET报错,因为是开发错误,通常会进入死循环,此时无法保持正常功能,与该需求后续相悖,当前暂不实现该需求) 涉及SWS需求SWS_Dcm_01185

Currently, the return value is directly ignored, and no error is reported (if a DET error is reported, since it is a development error, it will usually enter an infinite loop, and normal functions cannot be maintained at this time, which is contrary to the follow-up of this requirement, so this requirement is not implemented temporarily). It involves the SWS requirement SWS_Dcm_01185.

配置(configuration)

None

接口(Interface)

None

Dcm_StatusType

该类型在DslInternal_ResponseOnOneEvent和DslInternal_ResponseOnOneDataByPeriodicId中作为返回值, 以上两种接口为内部实现接口,autosar提供了建议,实际在开发时接口存在差异,且无需该返回值,因此暂不实现。 涉及SWS需求SWS_Dcm_00976

This type is used as the return value in DslInternal_ResponseOnOneEvent and DslInternal_ResponseOnOneDataByPeriodicId. The above two interfaces are internally implemented interfaces. AUTOSAR provides recommendations, but in actual development, there are differences in the interfaces, and this return value is not required. Therefore, it will not be implemented temporarily. It involves the SWS requirement SWS_Dcm_00976.

配置(configuration)

None

接口(Interface)

None

Dcm_DataArrayTypeUint8_{Data}Type

该需求与SWS_Dcm_91063条件一致,重复,暂不实现。 涉及SWS需求SWS_Dcm_01121

This requirement is consistent with the conditions of SWS_Dcm_91063 and is redundant, so it will not be implemented temporarily. It involves the SWS requirement SWS_Dcm_01121.

配置(configuration)

None

接口(Interface)

None

不适用的需求(Inapplicable Requirements)

关联到不适用于Dcm的SRS/RS,非实现/功能相关 涉及SWS需求SWS_Dcm_NA_00999

Associated with SRS/RS that are not applicable to Dcm, unrelated to implementation/functionality Involves SWS requirement SWS_Dcm_NA_00999

配置(configuration)

None

接口(Interface)

None

DcmDspDataUsePort == USE_BLOCK_ID

R23版本删除了该选项(转而全部使用NvData),此处因为先前使用场景及用户习惯,保留该访问方式。

The R23 version has removed this option (and instead uses NvData entirely). However, due to previous usage scenarios and user habits, this access method is retained here.

配置(configuration)

DcmDspDataUsePort增加选项USE_BLOCK_ID

Add the option USE_BLOCK_ID to DcmDspDataUsePort

接口(Interface)

None

IdsM

需在DcmSecurityEventRefs下配置各个报错内容,关联到IdsMEvent才会生效对应内容

The respective error reporting contents need to be configured under DcmSecurityEventRefs, and only by associating them with IdsMEvent will the corresponding contents take effect.

配置(configuration)

DcmSecurityEventRefs

接口(Interface)

None

DcmDslProtocolTransType

该配置项未在需求中提及,通过配置DcmDslProtocolTx应可以得知是否与其他协议不同,会做相应处理,此处无需再特意配置

This configuration item is not mentioned in the requirements. Whether it is different from other protocols can be known by configuring DcmDslProtocolTx, and corresponding processing will be done, so there is no need for special configuration here.

配置(configuration)

DcmDslProtocolTransType配置项删除

The configuration item DcmDslProtocolTransType is deleted.

接口(Interface)

None

DcmDspOdxDataDescription

未在需求中提及,当前Odx导入暂时不需要配置项数据,暂不实现

Not mentioned in the requirements. Currently, configuration item data is not required for Odx import, so it will not be implemented temporarily.

配置(configuration)

DcmDspOdxDataDescription配置项删除

The configuration item DcmDspOdxDataDescription is deleted.

接口(Interface)

None

DcmDspRead/WriteMemoryRangeByLabelInfo

当前仅支持地址配置为数字范围,不支持string定义,暂时没有对应需求,暂不实现

Currently, only address configurations in the form of numerical ranges are supported, and string definitions are not supported. There is no corresponding requirement for the time being, so it will not be implemented temporarily.

配置(configuration)

以下配置项删除:

The following configuration items are deleted:

  1. DcmDspReadMemoryRangeByLabelInfo

  2. DcmDspWriteMemoryRangeByLabelInfo

接口(Interface)

None

SRDataElementClass

当前Dcm侧暂不提供SWC实现数据类型配置,此处暂不实现

Currently, the Dcm side does not provide SWC implementation data type configuration, so this part is not implemented temporarily.

配置(configuration)

以下配置项删除:

The following configuration items are deleted:

  1. DcmDspExternalSRDataElementClass

  2. DcmDspPidService01ExternalSRDataElementClass

接口(Interface)

None

PduId

对应PduRef所在container的symbolic name,该配置项应固定与container名关联,不可手动配置,此处直接做删除处理

Corresponding to the symbolic name of the container where PduRef is located, this configuration item should be fixedly associated with the container name and cannot be manually configured. Here, it will be directly deleted.

配置(configuration)

以下配置项删除:

The following configuration items are deleted:

  1. DcmDslProtocolRxPduId

  2. DcmDslTxConfirmationPduId

  3. DcmDslPeriodicTxConfirmationPduId

接口(Interface)

None

DcmDspVehInfoDataOrder

直接按照VehInfoData的配置顺序向下排列,此处不做显现

Arrange them in the order of VehInfoData configuration directly, without displaying them here.

配置(configuration)

DcmDspVehInfoDataOrder配置项删除

The configuration item DcmDspVehInfoDataOrder is deleted.

接口(Interface)

None

DcmDspPidService02

直接调用Dem对应接口即可,无需做DcmDspPidDataDemRef的关联,暂不实现

It is sufficient to directly call the corresponding interface of Dem, and there is no need to associate DcmDspPidDataDemRef. This is not implemented temporarily.

配置(configuration)

DcmDspPidService02配置Container删除

The Container for DcmDspPidService02 configuration is deleted.

接口(Interface)

None

配置修改(Configuration Modifications)

在规范基础上,对以下配置项进行了修改,主要添加了默认值,以及修改了部分多重性和范围,用于优化配置流程

Based on the specifications, the following configuration items have been modified, mainly by adding default values and adjusting some multiplicities and ranges to optimize the configuration process.

  1. DcmDsdSidTabId

    新增默认值: 保持与其他DcmDsdSidTabId不同情况下的最小值

    New default value: The minimum value under the condition that it is different from other DcmDsdSidTabId values.

  2. DcmTimStrP2ServerAdjust

    新增默认值: 0

    New default value: 0

  3. DcmTimStrP2StarServerAdjust

    新增默认值: 0

    New default value: 0

  4. DcmDspDataDefaultEndianness

    新增默认值: OPAQUE

    New default value: OPAQUE

  5. DcmDslProtocolRxConnectionId

    新增默认值: 保持与其他DcmDslProtocolRxConnectionId不同情况下的最小值

    New default value: the minimum value under the condition that it is different from other DcmDslProtocolRxConnectionId values

  6. DcmDspDidUsed

    新增默认值: true

    New default value: true

  7. DcmDspDidByteOffset

    新增默认值: 0

    New default value: 0

  8. DcmDspDidDataRef

    多重性: 0..1 -> 1

    Multiplicity: 0..1 -> 1

  9. DcmDspDataDefaultEndianness

    新增默认值: OPAQUE

    New default value: OPAQUE

  10. DcmDspDataEndianness

    新增默认值: OPAQUE

    New default value: OPAQUE

  11. DcmDspDataUsePort

    新增默认值: USE_DATA_ASYNCH_CLIENT_SERVER_ERROR

    New default value: USE_DATA_ASYNCH_CLIENT_SERVER_ERROR

  12. DcmDspDataType

    新增默认值: UINT8_N

    New default value: UINT8_N

  13. DcmDspPidUsed

    新增默认值: true

    New default value: true

  14. DcmDspPidByteOffset

    新增默认值: 0

    New default value: 0

  15. DcmDspPidDataEndianness

    新增默认值: OPAQUE

    New default value: OPAQUE

  16. DcmDspPidDataType

    新增默认值: UINT8_N

    New default value: UINT8_N

  17. DcmDspRoutineInfoByte

    修正描述: E1FF -> E0FF

    Correction description: E1FF -> E0FF

  18. DcmDspRoutineUsed

    新增默认值: true

    New default value: true

  19. DcmDspRequestRoutineResultsInSignal/DcmDspRoutineSignalEndianness

    新增默认值: OPAQUE

    New default value: OPAQUE

  20. DcmDspRequestRoutineResultsOutSignal/DcmDspRoutineSignalEndianness

    新增默认值: OPAQUE

    New default value: OPAQUE

  21. DcmDspStartRoutineInSignal/DcmDspRoutineSignalEndianness

    新增默认值: OPAQUE

    New default value: OPAQUE

  22. DcmDspStartRoutineOutSignal/DcmDspRoutineSignalEndianness

    新增默认值: OPAQUE

    New default value: OPAQUE

  23. DcmDspStopRoutineInSignal/DcmDspRoutineSignalEndianness

    新增默认值: OPAQUE

    New default value: OPAQUE

  24. DcmDspStopRoutineOutSignal/DcmDspRoutineSignalEndianness

    新增默认值: OPAQUE

    New default value: OPAQUE

  25. DcmDspRequestRoutineResultsInSignal/DcmDspRoutineSignalPos

    新增默认值: 0

    New default value: 0

  26. DcmDspRequestRoutineResultsInSignal/DcmDspRoutineSignalPos

    新增默认值: 0

    New default value: 0

  27. DcmDspStartRoutineInSignal/DcmDspRoutineSignalPos

    新增默认值: 0

    New default value: 0

  28. DcmDspStartRoutineOutSignal/DcmDspRoutineSignalPos

    新增默认值: 0

    New default value: 0

  29. DcmDspStopRoutineInSignal/DcmDspRoutineSignalPos

    新增默认值: 0

    New default value: 0

  30. DcmDspStopRoutineOutSignal/DcmDspRoutineSignalPos

    新增默认值: 0

    New default value: 0

  31. DcmDspRequestRoutineResultsInSignal/DcmDspRoutineSignalType

    新增默认值: UINT8_N 修正多重性: 0..1 -> 1

    New default value: UINT8_N Corrected multiplicity: 0..1 -> 1

  32. DcmDspRequestRoutineResultsOutSignal/DcmDspRoutineSignalType

    新增默认值: UINT8_N 修正多重性: 0..1 -> 1

    New default value: UINT8_N Corrected multiplicity: 0..1 -> 1

  33. DcmDspStartRoutineInSignal/DcmDspRoutineSignalType

    新增默认值: UINT8_N 修正多重性: 0..1 -> 1

    New default value: UINT8_N Corrected multiplicity: 0..1 -> 1

  34. DcmDspStartRoutineOutSignal/DcmDspRoutineSignalType

    新增默认值: UINT8_N 修正多重性: 0..1 -> 1

    New default value: UINT8_N Corrected multiplicity: 0..1 -> 1

  35. DcmDspStopRoutineInSignal/DcmDspRoutineSignalType

    新增默认值: UINT8_N 修正多重性: 0..1 -> 1

    New default value: UINT8_N Corrected multiplicity: 0..1 -> 1

  36. DcmDspStopRoutineOutSignal/DcmDspRoutineSignalType

    新增默认值: UINT8_N 修正多重性: 0..1 -> 1

    New default value: UINT8_N Corrected multiplicity: 0..1 -> 1

  37. DcmDspSecurityDelayTime

    新增默认值: 10

    New default value: 10

  38. DcmDspSecurityDelayTimeOnBoot

    新增默认值: 0

    New default value: 0

  39. DcmDspSecurityKeySize

    新增默认值: 4

    New default value: 4

  40. DcmDspSecurityNumAttDelay

    新增默认值: 3

    New default value: 3

  41. DcmDspSecuritySeedSize

    新增默认值: 4

    New default value: 4

  42. DcmDspSecurityUsePort

    新增默认值: USE_ASYNCH_CLIENT_SERVER

    New default value: USE_ASYNCH_CLIENT_SERVER

  43. DcmDspSessionP2ServerMax

    新增默认值: 0.05

    New default value: 0.05

  44. DcmDspSessionP2StarServerMax

    新增默认值: 5

    New default value: 5

  45. DcmDspData/DcmDspDataByteSize

    修改范围: 0..65535 -> 1..65535

    Range modification: 0..65535 -> 1..65535

  46. DcmDspPidSize

    修改范围: 0..255 -> 1..255

    Range modification: 0..255 -> 1..255

  47. DcmDspPidDataByteSize

    修改范围: 0..255 -> 1..255

    Range modification: 0..255 -> 1..255

  48. DcmDspRoutineParameterSize

    修改范围: 0..65535 -> 1..65535

    Range modification: 0..65535 -> 1..65535

  49. DcmDspDidSize

    修改范围: 0..65535 -> 1..65535

    Range modification: 0..65535 -> 1..65535

  50. DcmDspDataScalingInfoSize

    修改范围: 0..4294967295 -> 1..4294967295

    Range modification: 0..4294967295 -> 1..4294967295

  51. DcmDspAuthenticationECUCertificateRef

    纠正规范错误,修改类型: Symbolic name reference to CsmKey -> Symbolic name reference to KeyMCertificateElement

    Correct the specification error, Modification type: Symbolic name reference to CsmKey -> Symbolic name reference to KeyMCertificateElement

  52. DcmDspStartRoutineOutSignal/DcmDspRoutineSignalPos

    修改多重性: 0..1 -> 1

    Modify multiplicity: 0..1 -> 1

封装修改(Encapsulation modification)

  1. [SWS_Dcm_91051]Definition of ImplementationDataType Dcm_DataElement_{Data}Type

    StructuredType为composite相关,暂不实现

    为配合DcmDspDidusePort的实现,此处DcmDspDidUsePort只要不是USE_ATOMIC_BNDM,均满足变体要求

    StructuredType is related to composite and will not be implemented temporarily.

    To cooperate with the implementation of DcmDspDidusePort, as long as DcmDspDidUsePort here is not USE_ATOMIC_BNDM, it will meet the variant requirements.

  2. [SWS_Dcm_91063]Definition of ImplementationDataType Dcm_DataElement_{Data}_ArrayType

    此处size应为(({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataByteSize)}) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspPid/DcmDspPidData.DcmDspPidDataByteSize)})) Elements

    The size here should be (({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspData.DcmDspDataByteSize)}) || ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspPid/DcmDspPidData.DcmDspPidDataByteSize)})) Elements

  3. [SWS_Dcm_91040]Definition of ImplementationDataType Dcm_RequestDataOut_{Routine}_{Signal}Type

    StructuredType为composite相关,暂不实现

    StructuredType is related to composite and will not be implemented temporarily.

  4. [SWS_Dcm_91052]Definition of ImplementationDataType Dcm_RequestDataIn_{Routine}_{Signal}Type

    StructuredType为composite相关,暂不实现

    StructuredType is related to composite and will not be implemented temporarily.

  5. [SWS_Dcm_91042]Definition of ImplementationDataType Dcm_StartDataIn_{Routine}_{Signal}Type

    StructuredType为composite相关,暂不实现

    StructuredType is related to composite and will not be implemented temporarily.

  6. [SWS_Dcm_91044]Definition of ImplementationDataType Dcm_StartDataOut_{Routine}_{Signal}Type

    StructuredType为composite相关,暂不实现

    StructuredType is related to composite and will not be implemented temporarily.

  7. [SWS_Dcm_91046]Definition of ImplementationDataType Dcm_StopDataIn_{Routine}_{Signal}Type

    StructuredType为composite相关,暂不实现

    StructuredType is related to composite and will not be implemented temporarily.

  8. [SWS_Dcm_91048]Definition of ImplementationDataType Dcm_StopDataOut_{Routine}_{Signal}Type

    StructuredType为composite相关,暂不实现

    StructuredType is related to composite and will not be implemented temporarily.

  9. [SWS_Dcm_00690]Definition of ClientServerInterface RoutineServices_{RoutineName}

    Confirmation相关内容暂不实现

    Content related to Confirmation will not be implemented temporarily.

  10. [SWS_Dcm_91072]Definition of ClientServerInterface Authentication

    Variation添加条件:配置了29服务,如果关联该接口的port生成条件不满足,则该接口也不生成。

    Condition for adding Variation: If Service 29 is configured, and the generation condition of the port associated with this interface is not met, then this interface will not be generated either.

  11. [SWS_Dcm_91065]Definition of ClientServerInterface UploadDownloadServices

    此处ReadFileOrDir中的Data的direction应为OUT

    Here, the direction of Data in ReadFileOrDir should be OUT.

  12. [SWS_Dcm_91073]Definition of Port Authentication_{Connection} required by module Dcm

    Variation添加条件:配置了29服务

    Condition for adding Variation: Service 29 is configured.

  13. [SWS_Dcm_91019]Definition of ModeDeclarationGroup DcmDiagnosticSessionControl

    此处值修改为从1开始,依次为1、2、3、4,后续其他则对应DcmDspSessionRow的sessionLevel

    The value here is modified to start from 1, which are 1, 2, 3, 4 in sequence, and the subsequent others correspond to the sessionLevel of DcmDspSessionRow.

  14. [SWS_Dcm_91031]Definition of ModeDeclarationGroup DcmSecurityAccess

    此处应为动态,后续名字为DcmDspSecurityRow的shortName

    It should be dynamic here, and the subsequent name is the shortName of DcmDspSecurityRow.

  15. [SWS_Dcm_91067]Definition of ModeDeclarationGroup DcmAuthenticationState_{Connection}

    此处去除{Connection}的变体,改为DcmAuthenticationState,需求中未描述变体,且内容一样,无需重复定义。

    Remove the variation of {Connection} here and change it to DcmAuthenticationState. The variation is not described in the requirements, and the content is the same, so there is no need for repeated definitions.

  16. [SWS_Dcm_91026]Definition of ModeSwitchInterface CommunicationControlModeSwitch Interface_{ComMChannelName}

    此处缺少条件,应为:

    There is a missing condition here, which should be:

    ComMChannelName = {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspComControl/DcmDspComControlAllChannel/DcmDspAllComMChannelRef->ComMChannel.SHORT-NAME)} or

    {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspComControl/DcmDspComControlSpecificChannel/DcmDspSpecificComMChannelRef->ComMChannel.SHORT-NAME)} or

    {ecuc{Dcm/DcmConfigSet/DcmDsl/DcmDslProtocolRow/DcmDslConnection/DcmDslMainConnection/DcmDslProtocolComMChannelRef.SHORT-NAME}

  17. [SWS_Dcm_00686]Definition of ClientServerInterface DataServices_{Data}

    变体第二行||应为&&,其中operation FreezeCurrentState的参数controlMask的变体应为DID = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid.SHORT-NAME)})

    In the second line of the variation, “||” should be “&&”. The variation of the parameter controlMask for the operation FreezeCurrentState should be DID = ({ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspDid.SHORT-NAME)})

扩展(Extension)

功能特性(Functional Features)

  1. 指定寻址模式(Specify addressing mode)

    可以通过配置DcmDsdSidTabAddressingFormat指定服务支持的寻址模式,仅在支持的情况下处理请求并回复

    The addressing mode supported by the service can be specified by configuring DcmDsdSidTabAddressingFormat, and requests are processed and replied to only if supported.

  2. 指定动态DID定义的存储NvMBlock(Specify the NvMBlock for storing dynamic DID definitions)

    可以通过配置DcmDDDIDStorageBlockIdRef来指定存储动态DID定义所使用的NvMBlock

    The NvMBlock used for storing dynamic DID definitions can be specified by configuring DcmDDDIDStorageBlockIdRef.

  3. 队列缓存(Queue caching)

    可以指定协议支持队列缓存(队列长度固定为2),在有请求正在接收/处理/回复过程中发起新请求的TP接收,在前一请求处理完成后直接处理缓存的请求,从而省去TP接收的时间

    It is possible to specify that the protocol supports queue caching (with a fixed queue length of 2). When a new request’s TP reception is initiated while a request is being received/processed/replied to, the cached request is processed directly after the previous request is handled, thus saving the time for TP reception.

  4. P4ServerMax

    支持P4ServerMax在服务/子服务/Routine处配置,配置后要求针对该服务/子服务/Routine的处理不超出P4ServerMax的时间,如果超出则立即终止该服务的处理

    Support for P4ServerMax configuration at the service/sub-service/Routine level. After configuration, the processing of the service/sub-service/Routine is required not to exceed the time specified by P4ServerMax; if it does, the processing of the service is terminated immediately.

  5. NRC0x22回复时追加错误原因(Append error cause when replying with NRC0x22)

    提供工程宏DCM_NRC22_SPECIFIC_CAUSE_CODE,在定义后提供callout接口,给到服务的基础信息,来决定追加的原因,在回复中包括(1byte)

    Provide the engineering macro DCM_NRC22_SPECIFIC_CAUSE_CODE. After definition, a callout interface is provided, which is given the basic information of the service to determine the cause to be appended, which is included in the reply (1 byte).

配置新增(New Configurations)

  1. DcmDsdSidTabAddressingFormat

    Parameter Name

    DcmDsdSidTabAddressingFormat

    Parent Container

    DcmDsdService

    Description

    The required requesting address format for this specific service.

    Multiplicity

    1

    Type

    EcucEnumerationParamDef

    Range

    PHYSICAL: Physical Address Only

    FUNCTIONAL: Functional Address Only

    PHYANDFUNC: Either Physical or Functional Address is accepted

    Default value

    PHYANDFUNC

    Post-Build Variant Value

    false

  2. DcmDspMemoryTransfer/DcmDspReadMemoryTransferRangeInfo

    参照DcmDspReadMemoryRangeInfo[ECUC_Dcm_00785],仅修改命名,container里的内容不变

    With reference to DcmDspReadMemoryRangeInfo[ECUC_Dcm_00785], only the naming is modified, and the content in the container remains unchanged.

  3. DcmDspMemoryTransfer/DcmDspWriteMemoryTransferRangeInfo

    参照DcmDspWriteMemoryRangeInfo[ECUC_Dcm_00785],仅修改命名,container里的内容不变

    With reference to DcmDspWriteMemoryRangeInfo[ECUC_Dcm_00785], only the naming is modified, and the content in the container remains unchanged.

  4. DcmDDDIDStorageBlockIdRef

    Parameter Name

    DcmDDDIDStorageBlockIdRef

    Parent Container

    DcmGeneral

    Description

    NVRAM blockId to store the DDDID data.

    Multiplicity

    0..1

    Type

    Symbolic name reference to NvMBlockDescriptor

    Post-Build Variant Value

    false

    Scope / Dependency

    scope: ECU dependency: DcmDDDIDStorage == True

  5. DcmDslProtocolRequestQueued

    Parameter Name

    DcmDslProtocolRequestQueued

    Parent Container

    DcmDslProtocolRow

    Description

    If set to TRUE, the Dcm provides an addtional buffer to store a second simultaneous request and will be processed when the current request is finished.

    Multiplicity

    0..1

    Type

    boolean

    Post-Build Variant Value

    false

    Default Value

    false

    Scope / Dependency

    scope: ECU

  6. DcmDsdSidTabP4ServerMax

    Parameter Name

    DcmDsdSidTabP4ServerMax

    Parent Container

    DcmDsdService

    Description

    This is the service value for P4ServerMax in seconds (per Service).

    Multiplicity

    0..1

    Type

    EcucFloatParamDef

    Range

    [0..100]

    Default Value

    0.05

    Post-Build Variant Value

    false

    Scope / Dependency

    scope: ECU

  7. DcmDsdSubServiceP4ServerMax

    Parameter Name

    DcmDsdSubServiceP4ServerMax

    Parent Container

    DcmDsdSubService

    Description

    This is the subService value for P4ServerMax in seconds (per Service).

    Multiplicity

    0..1

    Type

    EcucFloatParamDef

    Range

    [0..100]

    Default Value

    0.05

    Post-Build Variant Value

    false

    Scope / Dependency

    scope: ECU

  8. DcmDspRoutineP4ServerMax

    Parameter Name

    DcmDspRoutineP4ServerMax

    Parent Container

    DcmDspRoutine

    Description

    This is the value for P4ServerMax in seconds (per Service).

    Multiplicity

    0..1

    Type

    EcucFloatParamDef

    Range

    [0..100]

    Default Value

    0.05

    Post-Build Variant Value

    false

    Scope / Dependency

    scope: ECU

集成(Integration)

文件列表(File list)

静态文件(Static files)

文件(File)

描述(Description)

Dcm.c

Dcm Public Functions Implementation

Dcm.h

Dcm Public Function Declarations and Public DataType Definitions

Dcm_Dem.h

Dcm Public Functions Declaration For Dem

Dcm_ComM.h

Dcm Public Functions Declaration For ComM

Dcm_Type.h

Dcm Public Type Definition

Dcm_Internal.c

Dcm Private Functions/Variables Definitions

Dcm_Internal.h

Dcm Private Functions/Types/Variables Declaration

Dcm_Dsl.c

DcmDsl Private Functions Definitions

Dcm_Dsl.h

DcmDsl Functions/Types/Variables Declaration

Dcm_Dsd.c

DcmDsd Private Functions Definitions

Dcm_Dsd.h

DcmDsd Functions/Types/Variables Declaration

Dcm_Dsp.c

DcmDsp Private Functions Definitions

Dcm_Dsp.h

DcmDsp Functions/Types/Variables Declaration

Dcm_UDS.c

Dcm UDS public function implementation

Dcm_UDS.h

Dcm UDS Functions Declaration and Type Definitions

Dcm_OBD.c

Dcm OBD public function implementation

Dcm_OBD.h

Dcm OBD Functions Declaration and Type Definitions

Dcm_UDS0x10.c

Dcm UDS service 0x10 function implementation

Dcm_UDS0x11.c

Dcm UDS service 0x11 function implementation

Dcm_UDS0x14.c

Dcm UDS service 0x14 function implementation

Dcm_UDS0x19.c

Dcm UDS service 0x19 function implementation

Dcm_UDS0x22.c

Dcm UDS service 0x22 function implementation

Dcm_UDS0x23.c

Dcm UDS service 0x23 function implementation

Dcm_UDS0x24.c

Dcm UDS service 0x24 function implementation

Dcm_UDS0x27.c

Dcm UDS service 0x27 function implementation

Dcm_UDS0x28.c

Dcm UDS service 0x28 function implementation

Dcm_UDS0x29.c

Dcm UDS service 0x29 function implementation

Dcm_UDS0x2A.c

Dcm UDS service 0x2A function implementation

Dcm_UDS0x2C.c

Dcm UDS service 0x2C function implementation

Dcm_UDS0x2E.c

Dcm UDS service 0x2E function implementation

Dcm_UDS0x2F.c

Dcm UDS service 0x2F function implementation

Dcm_UDS0x31.c

Dcm UDS service 0x31 function implementation

Dcm_UDS0x34.c

Dcm UDS service 0x34 function implementation

Dcm_UDS0x35.c

Dcm UDS service 0x35 function implementation

Dcm_UDS0x36.c

Dcm UDS service 0x36 function implementation

Dcm_UDS0x37.c

Dcm UDS service 0x37 function implementation

Dcm_UDS0x38.c

Dcm UDS service 0x38 function implementation

Dcm_UDS0x3D.c

Dcm UDS service 0x3D function implementation

Dcm_UDS0x3E.c

Dcm UDS service 0x3E function implementation

Dcm_UDS0x85.c

Dcm UDS service 0x85 function implementation

Dcm_UDS0x86.c

Dcm UDS service 0x86 function implementation

动态文件(Dynamic file)

文件(File)

描述(Description)

Dcm_Cfg.c

Dcm Cfg Data Definitions

Dcm_Cfg.h

Dcm Cfg Macros

Dcm_CfgData.h

Dcm Cfg Data Declarations

Dcm_PBCfg.c

Dcm Postbuild Cfg Data Definitions

Dcm_Callout.c

Dcm Callout Function Definitions

Dcm_MatchFormat.c

Dcm Match Format Function Definitions

Dcm_MatchFormat.h

Dcm Match Format Function Declarations

Rte_Dcm_Type.h

Dcm RTE Type Definitions (static) for non-RTE projects

错误处理(Error handling)

开发错误(Development errors)

Error code

Value[hex]

Description

DCM_E_INTERFACE_RETURN_VALUE

0x03

Interface return-value is out of range

DCM_E_UNINIT

0x05

Internal:Dcm not initialized

DCM_E_PARAM

0x06

Dcm API function with invalid input parameter

DCM_E_PARAM_POINTER

0x07

Dcm API service invoked with NULL POINTER as parameter

DCM_E_SET_PROG_CONDITIONS_FAIL

0x09

Storing the ProgConditions failed

产品错误(Product error)

None

运行时错误(Runtime error)

Error code

Value[hex]

Description

DCM_E_INTERFACE_RETURN_VALUE

0x02

Interface return-value is out of range

DCM_E_INTERFACE_TIMEOUT

0x01

Interface: Timeout occurred during interaction with another module

DCM_E_INTERFACE_BUFFER_OVERFLOW

0x03

Interface: Boundary check of buffers provided by the Dcm failed during interaction with another module (application, Dem,PduR, etc.)

类型定义(Type definition)

Type Name

Type

Description

Dcm_ProtocolCtrlType

struct ProtocolCtrlType

Dcm protocol control type.

Dcm_ConfirmationHandleType

struct ConfirmationHandleType

Dcm confirmation info type.

Dcm_SessionCtrlType

struct SessionCtrlType

Dcm session control unit.

Dcm_SecurityCtrlType

struct SecurityCtrlType

Dcm security control unit.

Dcm_StateType

enum

Dcm State enum.

Dcm_CommStateType

enum

Dcm ComM State.

Dcm_DiagnosticStateType

enum

Dcm diagnostic State.

Dcm_ActiveDiagnosticType

enum

active diagnostic status enum

Dcm_ProgConditionsType

struct ProgConditionsType

Used in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader jump due to ECUReset request.

Dcm_MsgItemType

uint8

Base type for diagnostic message item.

Dcm_MsgType

Dcm_MsgItemType

Base type for diagnostic message (request, positive or negative response)

Dcm_MsgLenType

uint32

Length of diagnostic message (request, positive or negative response). The maximum length is dependent of the underlying transport protocol/media.

Dcm_MsgAddInfoType

struct MsgAddInfoType

Additional information on message request.

Dcm_IdContextType

uint8

This message context identifier can be used to determine the relation between request and response confirmation.

Dcm_MsgContextType

struct MsgContextType

This data structure contains all information which is necessary to process a diagnostic message from request to response and response confirmation.

Dcm_ExtendedOpStatusType

uint8

extended operation status enum

Dcm_StatusType

enum

Base item type to transport status information.

Dcm_CommunicationModeType

enum

communication mode enum

Dcm_ReturnReadMemoryType

enum

Return values of Callout Dcm_ReadMemory.

Dcm_ReturnWriteMemoryType

enum

Return type of callout Dcm_WriteMemory.

Dcm_EcuStartModeType

enum

Allows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloader.

Dcm_DsdServiceRequestNotificationConfirmationFncType

Std_ReturnType*

The function confirms to the app the successful transmission or a transmission error of a diagnostic service.

Dcm_DsdServiceRequestNotificationIndicationFncType

Std_ReturnType*

The function indicates to the app that a service is about to be executed and allows the application to reject the execution of the service request.

Dcm_DsdServiceRequestNotificationType

struct DsdServiceRequestNotificationType

service notification callouts

Dcm_ServiceRoleType

struct ServiceRoleType

authenticationRow type

Dcm_DspSecurityCompareKeyFncType

Std_ReturnType*

Request to application for asynchronous comparing key.

Dcm_DspSecurityGetSeedFncType

Std_ReturnType*

Request to application for asynchronous provision of seed value.

Dcm_DspSecurityGetAttemptCounterFncType

Std_ReturnType*

Read the attempt counter for a specific security level from the application.

Dcm_DspSecuritySetAttemptCounterFncType

Std_ReturnType*

Set the attempt counter for a specific security level in the application.

Dcm_DspSecurityRowType

struct DspSecurityRowType

DcmDspSecurityRow configuration.

Dcm_DspSessionRowType

struct DspSessionRowType

DcmDspSessionRow Configuration.

Dcm_ServcieFncType

Std_ReturnType*

Function prototype for service entry, named by parameter SidTabFnc.

Dcm_ModeRuleFncType

Std_ReturnType*

general mode rule function

Dcm_DsdSubServiceType

struct DsdSubServiceType

DcmDsdSubService Configuration.

Dcm_DsdServiceType

struct DsdServiceType

DcmDsdService Configuration.

Dcm_DsdServiceTableType

struct DsdServiceTableType

DcmDsdServiceTable Configuration.

Dcm_DslCallbackDCMRequestServiceFncType

Std_ReturnType*

This function allows the application to examine the environment conditions and enable/disable further processing of the protocol for StartProtocol and informs the application of the protocol stop for StopProtocol.

Dcm_DslCallbackDCMRequestServiceType

struct DslCallbackDCMRequestServiceType

CallbackDCMRequestService Configuration.

Dcm_DslProtocolRxType

struct DslProtocolRxType

DcmDslProtocolRx Configuration.

Dcm_ComCtrlFncType

Std_ReturnType*

general communication control function

Dcm_DslMainConnectionType

struct DslMainConnectionType

mainConnection configuration

Dcm_DslProtocolRowType

struct DslProtocolRowType

This container contains the configuration of one particular diagnostic protocol used in Dcm.

Dcm_DspAuthenticationConnectionType

struct DspAuthenticationConnectionType

DcmDspAuthenticationConnection Configuration.

Dcm_DspAuthenticationTransmitCertificateType

struct DspAuthenticationTransmitCertificateType

DcmDspAuthenticationTransmitCertificate Configuration.

Dcm_DspAuthenticationRowType

struct DspAuthenticationRowType

DcmDspAuthenticationRow Configuration.

Dcm_DspAuthenticationType

struct DspAuthenticationType

DcmDspAuthentication Configuration.

Dcm_DspClearDTCCheckFncType

Std_ReturnType*

Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.

Dcm_DspClearDTCType

struct DspClearDTCType

DcmDspClearDTC Configuration.

Dcm_DspComControlAllChannelType

struct DspComControlAllChannelType

DcmDspComControlAllChannel Configuration.

Dcm_DspComControlSpecificChannelType

struct DspComControlSpecificChannelType

DcmDspComControlSpecificChannel Configuration.

Dcm_DspComControlSubNodeType

struct DspComControlSubNodeType

DcmDspComControlSubNode Configuration.

Dcm_DspComControlType

struct DspComControlType

DcmDspComControl Configuration.

Dcm_DspCommonAuthorizationType

struct DspCommonAuthorizationType

DcmDspCommonAuthorization Configuration.

Dcm_DspControlDTCSettingType

struct DspControlDTCSettingType

DcmDspControlDTCSetting Configuration.

Dcm_DspDataConditionCheckReadFncType

Std_ReturnType*

DcmDspDataConditionCheckRead function prototype.

Dcm_DspDataEcuSignalType

Std_ReturnType*

EcuSignal function prototype.

Dcm_DspDataFreezeCurrentStateFncType

Std_ReturnType*

DcmDspDataFreezeCurrentState function prototype.

Dcm_DspDataGetScalingInfoFncType

Std_ReturnType*

DcmDspDataGetScalingInfo function prototype.

Dcm_DspDataReadDataLengthFncType

Std_ReturnType*

DcmDspDataReadDataLength function prototype.

Dcm_DspDataReadEcuSignalType

Std_ReturnType*

ReadEcuSignal function prototype.

Dcm_DspDataReadFncType

Std_ReturnType*

DcmDspDataRead function prototype.

Dcm_DspPidDataReadFncType

Std_ReturnType*

DcmDspPidDataRead function prototype.

Dcm_DspDataResetToDefaultFncType

Std_ReturnType*

DcmDspDataResetToDefault function prototype.

Dcm_DspDataReturnControlToEcuFncType

Std_ReturnType*

DcmDspDataReturnControlToEcu function prototype.

Dcm_DspDataShortTermAdjustmentFncType

Std_ReturnType*

DcmDspDataShortTermAdjustment function prototype.

Dcm_DspDataWriteFncType

Std_ReturnType*

DcmDspDataWrite function prototype.

Dcm_DspDataCfgType

struct DspDataCfgType

DcmDspData Configuration.

Dcm_DspDidSignalType

struct DspDidSignalType

DcmDspDidSignal Configuration.

Dcm_DspDidReadFncType

Std_ReturnType*

General didRead function prototype, used when DidUsePort is not DCM_USE_DATA_ELEMENT_SPECIFIC_INTERFACES.

Dcm_DspDidWriteFncType

Std_ReturnType*

General didWrite function prototype, used when DidUsePort is not DCM_USE_DATA_ELEMENT_SPECIFIC_INTERFACES.

Dcm_DspDidType

struct DspDidType

DcmDspDid Configuration.

Dcm_DspDidControlType

struct DspDidControlType

didControl Configuration

Dcm_DspDidReadWriteType

struct DspDidReadWriteType

DcmDspDidReadWrite Configuration.

Dcm_DspDidInfoType

struct DspDidInfoType

DcmDspDidInfo Configuration.

Dcm_DspDidRangeIsDidAvailableFncType

Std_ReturnType*

DcmDspDidRangeIsDidAvailable function prototype.

Dcm_DspDidRangeReadDataLengthFncType

Std_ReturnType*

DcmDspDidRangeReadDataLength function prototype.

Dcm_DspDidRangeReadDidFncType

Std_ReturnType*

DcmDspDidRangeReadDid function prototype.

Dcm_DspDidRangeWriteDidFncType

Std_ReturnType*

DcmDspDidRangeWriteDid function prototype.

Dcm_DspDidRangeType

struct DspDidRangeType

DcmDspDidRange Configuration.

Dcm_DspEcuResetRowType

struct DspEcuResetRowType

DcmDspEcuResetRow Configuration.

Dcm_DspMemoryRangeInfoType

struct DspMemoryRangeInfoType

DcmDspRead/WriteMemoryRangeInfo Configuration.

Dcm_DspMemoryIdInfoType

struct DspMemoryIdInfoType

DcmDspMemoryIdInfo Configuration.

Dcm_DspMemoryType

struct DspMemoryType

DcmDspMemory Configuration.

Dcm_DspPidService01Type

struct DspPidService01Type

DcmDspDidService01 Configuration.

Dcm_DspPidDataType

struct DspPidDataType

PidData Configuration.

Dcm_DspPidType

struct DspPidType

DcmDspPid Configuration.

Dcm_RequestControlFncType

Std_ReturnType*

RequestControl function type.

Dcm_DspRequestControlType

struct DspRequestControlType

DcmDspRequestControl Configuration.

Dcm_DspRoutineFncType

Std_ReturnType*

general routine request function type

Dcm_DspRoutineSignalType

struct DspRoutineSignalType

DcmDspRoutineSignal Configuration.

Dcm_DspRoutineSubType

struct DspRoutineSubType

DcmDspStart/Stop/RequestResultsRoutine Configuration.

Dcm_DspRoutineType

struct DspRoutineType

DcmDspRoutine Configuration.

Dcm_DspVehInfoDataReadFncType

Std_ReturnType*

VehInfoDataRead function type.

Dcm_DspVehInfoDataType

struct DspVehInfoDataType

vehInfoData Configuration

Dcm_DspVehInfoType

struct DspVehInfoType

DcmDspVehInfo Configuration.

Dcm_QueuedRequestCtrlType

struct QueuedRequestCtrlType

QueuedRequest control unit.

Dcm_EndiannessType

enum

Endianness enum.

Dcm_DspSessionForBootType

enum

SessionForBoot enum.

Dcm_DcmDsdAddressingFormatType

enum

service request addressing format

Dcm_DslProtocolTransType

enum

The transmission type of the protocol.

Dcm_DslProtocolRxAddrType

enum

The protocolRxAddr enum.

Dcm_DspDataType

enum

DspDataType Enum.

Dcm_DspDataUsePortType

enum

DspDataUsePort Enum.

Dcm_DspDidUsePortType

enum

DidUsePort Enum.

Dcm_DspDidControlMaskType

enum

controlMask Enum

Dcm_ResponseToEcuResetType

enum

DcmDspResponseToEcuReset Enum.

Dcm_DspPidServiceType

enum

DcmDspPidServiceType Enum.

Dcm_ConditionType

enum

DcmCondition Enum.

Dcm_PendingRequestStateType

enum

QueuedRequest State enum.

Dcm_AuthenticationCtrlType

struct AuthenticationCtrlType

authentication ctrl structure type

Dcm_WhiteListType

struct WhiteListType

whitelist structure type

Dcm_AuthenticateInfoType

struct AuthenticateInfoType

authentication info structure type

Dcm_KeyMCertInfoType

struct KeyMCertInfoType

KeyM Certificate info structure type.

Dcm_AuthenticationStateType

enum

authentication State enum

Dcm_AuthenticateStatusType

enum

authentication status enum

Dcm_SchedulerType

struct SchedulerType

UDS 0x2A scheduler manager structure type.

Dcm_RoutineStatusType

enum

Routine current status

Dcm_DDDIDDefineType

struct DDDIDDefineType

dynamically defined did definition structure

Dcm_DDDIDType

struct DDDIDType

dynamically defined did structure

Dcm_TransferDataType

struct TransferDataType

UDS 0x36 transfer data management unit.

Dcm_RoeCtrlType

struct RoeCtrlType

Dcm roe control unit.

Dcm_DDDIDStatusType

enum

DDDID status enum.

Dcm_TransferStatusType

enum

UDS 0x36 transfer status enum.

Dcm_RoeEventType

enum

UDS roe event status enum.

Dcm_RoeStatusType

enum

UDS roe current status.

Dcm_RoeEventWindowTimeType

enum

UDS roe windowtime enum.

Dcm_DidType

enum

Dcm did type enum.

Dcm_AuthenticateProcessStatusTypes

enum

authentication process status enum

提供的服务(Provided services)

Dcm_ComM_NoComModeEntered

void Dcm_ComM_NoComModeEntered(uint8 NetworkId)

This call informs the Dcm module about a ComM mode change to COMM_NO_COMMUNICATION.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

NetworkId

Identifier of the network concerned by the mode change

Return type

void

Dcm_ComM_SilentComModeEntered

void Dcm_ComM_SilentComModeEntered(uint8 NetworkId)

This call informs the Dcm module about a ComM mode change to COMM_SILENT_COMMUNICATION.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

NetworkId

Identifier of the network concerned by the mode change

Return type

void

Dcm_ComM_FullComModeEntered

void Dcm_ComM_FullComModeEntered(uint8 NetworkId)

This call informs the Dcm module about a ComM mode change to COMM_FULL_COMMUNICATION.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

NetworkId

Identifier of the network concerned by the mode change

Return type

void

Dcm_DemTriggerOnDTCStatus

Std_ReturnType Dcm_DemTriggerOnDTCStatus(uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew)

Triggers on changes of the UDS status byte. Allows to trigger on ROE Event for subservice On DTCStatusChanged.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

DTC

This is the DTC the change trigger is assigned to.

[in]

DTCStatusOld

DTC status before change

[in]

DTCStatusNew

DTC status after change

Return type

Std_ReturnType

Return values

Name

Description

E_OK

this value is always returned.

DsdInternal_HandleIndication

DCM_LOCAL Std_ReturnType DsdInternal_HandleIndication(uint8 protocolId, const Dcm_DsdServiceRequestNotificationType *notification, uint8 notificationNum)

Called by DsdInternal_RxIndication do serviceRequest notification indication.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

current protocol Id

[in]

notification

the reuqest notification

[in]

notificationNum

the number of request notification

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DsdInternal_CheckServiceCondition

DCM_LOCAL Std_ReturnType DsdInternal_CheckServiceCondition(uint16 ConnectionId, uint16 *servIndex, Dcm_NegativeResponseCodeType *errorCode)

Called by DsdInternal_RxIndication to check Service condition.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

current connection Id

[out]

servIndex

service configuration index

[out]

errorCode

the nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DsdInternal_CheckSubServiceCondition

DCM_LOCAL Std_ReturnType DsdInternal_CheckSubServiceCondition(uint8 protocolId, uint16 servIndex, Dcm_NegativeResponseCodeType *errorCode, uint16 *subServIndex)

Called by DsdInternal_RxIndication to check subService condition.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

current protocol Id

[in]

servIndex

the configuration index of service

[out]

errorCode

the nrc to send

[out]

subServIndex

the configuration index

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DsdInternal_SecurityEventReport

DCM_LOCAL void DsdInternal_SecurityEventReport(Dcm_NegativeResponseCodeType ErrorCode)

Called by DsdInternal_SendResponse to report IdsM security events.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ErrorCode

the nrc to send

Return type

void

DsdInternal_CheckServiceAuth

DCM_LOCAL Std_ReturnType DsdInternal_CheckServiceAuth(uint16 ConnectionId, const Dcm_DsdServiceType *DcmDsdServicePtr, Dcm_NegativeResponseCodeType *errorCode)

check service authentication, security and session

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection id

[in]

DcmDsdServicePtr

the service configuration

[out]

errorCode

the possible errorCode

Return type

Std_ReturnType

DsdInternal_HandleTransmit

DCM_LOCAL void DsdInternal_HandleTransmit(uint8 ProtocolId, Dcm_NegativeResponseCodeType errorCode)

prepare for actual transmission

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ProtocolId

the current protocol id

[in]

errorCode

the input errorCode

Return type

void

DsdInternal_RxIndication

void DsdInternal_RxIndication(uint8 protocolId)

Called by Dcm_TpRxIndication to check service request validity.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

current protocol Id

Return type

void

DsdInternal_HandleConfirmation

void DsdInternal_HandleConfirmation(uint8 protocolId, Dcm_ConfirmationStatusType confirmationStatus)

Called by DslInternal_SetStateIdle do serviceRequest notification confirmation.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

current protocol Id

[in]

confirmationStatus

curruent confirmation status

Return type

void

DsdInternal_SendResponse

void DsdInternal_SendResponse(uint8 ProtocolId, Dcm_NegativeResponseCodeType errorCode)

This function sends diagnostic response.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

ProtocolId

[in]

errorCode

The NRC error code

Return type

void

DsdInternal_CheckService

Std_ReturnType DsdInternal_CheckService(uint8 protocolId, uint16 *servIndex, uint8 *Sid)

Called by DsdInternal_RxIndication to check service validity and output configuration index.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

current protocol Id

[out]

servIndex

the configuration index

[in]

Sid

the requested ServiceId(if have)

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DsdInternal_CheckSubService

Std_ReturnType DsdInternal_CheckSubService(uint8 protocolId, uint16 servIndex, uint16 *subServIndex, uint8 *SubServiceId)

Called by DsdInternal_RxIndication to check subService validity and output configuration index.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

current protocol Id

[in]

servIndex

the configuration index of service

[out]

subServIndex

the configuration index

[in]

SubServiceId

the requested subServiceId(if have)

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DslInternal_CheckProtocolWithSameBuffer

DCM_LOCAL Std_ReturnType DslInternal_CheckProtocolWithSameBuffer(const Dcm_DslProtocolRowType *protocolRow)

This function checks whether the protocol shares a buffer with other protocols and those protocols are idle or not.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolRow

the input protocolRow

Return type

Std_ReturnType

Return values

Name

Description

E_OK

all protocols that share the same buffer with the input protocol are idle

E_NOT_OK

at least one protocol that share the same buffer with the input protocol is not idle

DslInternal_FindProtocolRowByTxPduId

DCM_LOCAL Std_ReturnType DslInternal_FindProtocolRowByTxPduId(PduIdType Id, uint8 *ProtocolId, uint16 *connectionId)

This function searches for matched protocol and connection Id by txPduId.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

Id

Identification of the I-PDU.

ProtocolId

[out]

connectionId

the matched connectionId (under the protocol)

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Succesfully find the matched one

E_NOT_OK

Fail to find any mathced one

DslInternal_CheckIdle

DCM_LOCAL boolean DslInternal_CheckIdle(uint8 protocolId)

This function checks whether all the current State of running protocol except input protocol are idle or not.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the input protocolId

Return type

DCM_LOCAL boolean

Return values

Name

Description

TRUE

All protocols are idle

FALSE

at least one protocol is not idle

DslInternal_RxCheckParam

DCM_LOCAL uint8 DslInternal_RxCheckParam(PduIdType id, const PduInfoType *info, PduLengthType *bufferSizePtr, uint8 apiId)

This function checks common params and initialization status for callbacks.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the I-PDU.

[in]

info

Pointer to a PduInfoType structure containing the payload data (without protocol information) and payload length of the first frame or single frame of a transport protocol I-PDU reception, and the MetaData related to this PDU. If neither first/single frame data nor MetaData are available, this parameter is set to NULL_PTR.

[in]

bufferSizePtr

Available receive buffer in the receiving module. This parameter will be used to compute the Block Size (BS) in the transport protocol module.

[in]

apiId

The Id of the api

Return type

DCM_LOCAL uint8

DslInternal_CopyTxDataCheckParam

DCM_LOCAL uint8 DslInternal_CopyTxDataCheckParam(PduIdType id, const PduInfoType *info, PduLengthType *availableDataPtr)

This function checks params for copyTxData.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the I-PDU.

[in]

info

Provides the destination buffer (SduDataPtr) and the number of bytes to be copied (SduLength). If not enough transmit data is available, no data is copied by the upper layer module and BUFREQ_E_BUSY is returned. The lower layer module may retry the call. An SduLength of 0 can be used to indicate state changes in the retry parameter or to query the current amount of available data in the upper layer module. In this case, the Sdu DataPtr may be a NULL_PTR.

[in]

availableDataPtr

Indicates the remaining number of bytes that are available in the upper layer module’s Tx buffer. availableDataPtr can be used by TP modules that support dynamic payload lengths (e.g. FrIsoTp) to determine the size of the following CFs.

Return type

DCM_LOCAL uint8

DslInternal_RxProcessRequest

DCM_LOCAL void DslInternal_RxProcessRequest(PduIdType id, uint8 protocolId, uint16 connectionId)

This function do internal process for tpRxIndication.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the I-PDU.

[in]

protocolId

current protocol id

[in]

connectionId

current connection id

Return type

void

DslInternal_HandleFullComMode

DCM_LOCAL void DslInternal_HandleFullComMode(uint16 connectionId)

This function do internal process for fullComMode entered.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

connectionId

current connection id

Return type

void

DslInternal_HandleTxDataCopy

DCM_LOCAL BufReq_ReturnType DslInternal_HandleTxDataCopy(uint16 connectionId, const PduInfoType *info)

This function do internal process for copyTxData when sduLength > 0.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

connectionId

current connection id

info

Return type

DCM_LOCAL BufReq_ReturnType

DslInternal_HandleStartOfReception

DCM_LOCAL BufReq_ReturnType DslInternal_HandleStartOfReception(PduIdType id, uint16 connectionId, PduLengthType TpSduLength, const PduInfoType *info)

This function handle startOfReception when the buffer is enough for storing data.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

input pduId

[in]

connectionId

current connection id

[in]

TpSduLength

total request data length

[in]

info

the input pduInfo

Return type

DCM_LOCAL BufReq_ReturnType

DslInternal_HandleTpTxConfirmation

DCM_LOCAL void DslInternal_HandleTpTxConfirmation(uint8 protocolId)

This function handle tpTxConfirmation when the result is E_OK and condition check succeeds.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

current protocol id

Return type

void

DslInternal_DefaultToNonDefault

DCM_LOCAL Std_ReturnType DslInternal_DefaultToNonDefault(uint8 ProtocolId)

This function sets from default session to non-default session.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ProtocolId

current protocol id

Return type

Std_ReturnType

Return values

Name

Description

E_OK

the switch is succeeds

DCM_E_PENDING

the switch is pending

DslInternal_PosRespTxDataCopy

DCM_LOCAL BufReq_ReturnType DslInternal_PosRespTxDataCopy(uint8 protocolId, const PduInfoType *info)

This handle copyTxData for positive response.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

protocolId

[inout]

info

input pduInfo

Return type

DCM_LOCAL BufReq_ReturnType

Return values

Name

Description

BUFREQ_OK

copy is successful

BUFREQ_E_NOT_OK

copy is not successful

DslInternal_NegRespTxDataCopy

DCM_LOCAL BufReq_ReturnType DslInternal_NegRespTxDataCopy(uint8 protocolId, const PduInfoType *info)

This handle copyTxData for negative response.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

protocolId

[inout]

info

input pduInfo

Return type

DCM_LOCAL BufReq_ReturnType

Return values

Name

Description

BUFREQ_OK

copy is successful

BUFREQ_E_NOT_OK

copy is not successful

DslInternal_ProcessCopyRxData

DCM_LOCAL BufReq_ReturnType DslInternal_ProcessCopyRxData(PduIdType id, const PduInfoType *info, uint8 protocolId)

This process actual copy of copyRxData.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

input pduId

[in]

info

input pduInfo

[in]

protocolId

current protocol id

Return type

DCM_LOCAL BufReq_ReturnType

Return values

Name

Description

BUFREQ_OK

copy is successful

BUFREQ_E_NOT_OK

copy is not successful

Dcm_CopyTxDataCheckRoe

DCM_LOCAL boolean Dcm_CopyTxDataCheckRoe(PduIdType id, uint8 *ProtocolId, uint16 *connectionId)

check copyTxData for Roe protocol

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

input pduId

ProtocolId

[out]

connectionId

the matched connection id

Return type

DCM_LOCAL boolean

Return values

Name

Description

TRUE

it is an Roe response

FALSE

it is not an Roe response

DslInternal_SessionInit

void DslInternal_SessionInit(void)

initialize the session to default status

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

DslInternal_SecurityInit

void DslInternal_SecurityInit(void)

initialize the security to default status

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

DslInternal_ProtocolInit

void DslInternal_ProtocolInit(void)

initialize the protocolCtrl to initial status

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

DslInternal_SetSecurityLevel

void DslInternal_SetSecurityLevel(Dcm_SecLevelType SecurityLevel)

This function sets the security level.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

SecurityLevel

The requested sercurity level

Return type

void

DslInternal_ResetToDefaultSession

void DslInternal_ResetToDefaultSession(boolean Immediate)

This function resets to default session.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

Immediate

whether the request is immediately effective

Return type

void

DslInternal_SetSesCtrlType

Std_ReturnType DslInternal_SetSesCtrlType(uint8 ProtocolId, Dcm_SesCtrlType SesCtrlType)

This function sets the session.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

ProtocolId

the current protocolId

[in]

SesCtrlType

the requested session

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

DCM_E_PENDING

Request was pending

DslInternal_FindProtocolRowByRxPduId

Std_ReturnType DslInternal_FindProtocolRowByRxPduId(PduIdType Id, uint8 *ProtocolId, uint16 *connectionId)

This function searches for matched protocol and connection Id by RxPduId.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

Id

Identification of the I-PDU.

ProtocolId

[out]

connectionId

the matched connectionId (under the protocol)

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Succesfully find the matched one

E_NOT_OK

Fail to find any mathced one

DslInternal_SetDiagnosticState

void DslInternal_SetDiagnosticState(uint16 ConnectionId, Dcm_DiagnosticStateType diagnosticState)

This function sets the current diagnosticState and notify ComM.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection id

[in]

diagnosticState

the current diagnostic State

Return type

void

DslInternal_SetStateIdle

void DslInternal_SetStateIdle(uint8 protocolId, const Dcm_ConfirmationStatusType *confirmationStatus, boolean immediateHandle, boolean reachDsp)

This function sets the protocol State to idle.

Sync/Async

TRUE

Reentrancy

Reentrant for different protocolId

Parameters

Dir

Name

Description

[in]

protocolId

the current protocol id

[in]

confirmationStatus

the final confirmation status

[in]

immediateHandle

whether to handle supplier/manufacturer confirmation immediately or asynchronously

[in]

reachDsp

whether to call DspInternal_DcmConfirmation

Return type

void

DslInternal_InitChannelQueuedRequestCtrl

void DslInternal_InitChannelQueuedRequestCtrl(uint8 index)

This function initialize the queued request ctrl status.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

index

the requested index of queued request ctrl

Return type

void

DslInternal_StopProtocol

Std_ReturnType DslInternal_StopProtocol(uint8 ProtocolId)

This function stops the target protocol.

Sync/Async

TRUE

Reentrancy

Reentrant for different protocolId

Parameters

Dir

Name

Description

[in]

ProtocolId

the stopped protocol Id

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DslInternal_ProcessTransmit

void DslInternal_ProcessTransmit(uint8 ProtocolId)

This function actually sends the data.

Sync/Async

TRUE

Reentrancy

Reentrant for different protocolId

Parameters

Dir

Name

Description

ProtocolId

Return type

void

DslInternal_PagedBufferInit

void DslInternal_PagedBufferInit(Dcm_ProtocolCtrlType *protocolCtrlPtr)

This function initialize pagedBuffer vars.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolCtrlPtr

the target protocolCtrlPtr

Return type

void

DspInternal_handleDTCRoe

void DspInternal_handleDTCRoe(Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew)

Called by Dcm_DemTriggerOnDTCStatus to process roeEvent related to DTC.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

DTCStatusOld

DTC status before change

[in]

DTCStatusNew

DTC status after change

Return type

void

DspInternal_DcmConfirmation

void DspInternal_DcmConfirmation(uint8 protocolId, uint16 connectionId)

Called by DslInternal_SetStateIdle to notify Dsp for confirmation.

Sync/Async

TRUE

Reentrancy

Reentrant for different protocolId

Parameters

Dir

Name

Description

[in]

protocolId

current protocol Id

[in]

connectionId

current connection Id

Return type

void

DspInternal_handleDTCRoe

void DspInternal_handleDTCRoe(Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew)

Called by Dcm_DemTriggerOnDTCStatus to process roeEvent related to DTC.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

DTCStatusOld

DTC status before change

[in]

DTCStatusNew

DTC status after change

Return type

void

Dcm_Init

void Dcm_Init(const Dcm_ConfigType *ConfigPtr)

Service for basic initialization of DCM module.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConfigPtr

Pointer to configuration set in Variant Post-Build.

Return type

void

Dcm_GetVersionInfo

void Dcm_GetVersionInfo(Std_VersionInfoType *versionInfo)

Returns the version information of this module.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

versionInfo

Pointer to where to store the version information of this module.

Return type

void

Dcm_GetVin

Std_ReturnType Dcm_GetVin(uint8 *Data)

Function to get the VIN (as defined in SAE J1979-DA)

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

Data

Pointer to where to store the VIN

Return type

Std_ReturnType

Return values

Name

Description

E_OK

The Data pointer has been filled with valid VIN

E_NOT_OK

The default VIN will be used in the DoIP

Dcm_BndMWriteBlockFinish

void Dcm_BndMWriteBlockFinish(BndM_BlockIdType BlockId, BndM_ResultType result)

Called by BndM to indicate that a block write operation has finished.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

BlockId

the requested blockId

[in]

result

the result of the request

Return type

void

Dcm_SetDeauthenticatedRole

Std_ReturnType Dcm_SetDeauthenticatedRole(uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole)

Sets a new role used in deauthenticated state for that connection. The set role is valid until the connection switches into authenticated state or the ECU is reset.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

connectionId

Unique connection identifier identifiying the connection for which a deauthenticated roles is set.

[in]

deauthenticatedRole

New deauthenticated role that is assigned to that connection

Return type

Std_ReturnType

Return values

Name

Description

E_OK

this value is always returned.

Dcm_GetSecurityLevel

Std_ReturnType Dcm_GetSecurityLevel(Dcm_SecLevelType *SecLevel)

This function provides the active security level value.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

SecLevel

Active Security Level value Conversion formula to calculate SecurityLevel out of tester requested SecurityAccessType parameter: SecurityLevel = (SecurityAccessType + 1) / 2 Content of SecurityAccessType is according to “securityAccessType” parameter of SecurityAccess request

Return type

Std_ReturnType

Return values

Name

Description

E_OK

this value is always returned.

Dcm_GetSesCtrlType

Std_ReturnType Dcm_GetSesCtrlType(Dcm_SesCtrlType *SesCtrlType)

This function provides the active session control type value.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

SesCtrlType

Active Session Control Type value Content is according to “diagnosticSessionType” parameter of DiagnosticSessionControl request

Return type

Std_ReturnType

Return values

Name

Description

E_OK

this value is always returned.

Dcm_ResetToDefaultSession

Std_ReturnType Dcm_ResetToDefaultSession(void)

The call to this function allows the application to reset the current session to Default session. Example: Automatic termination of an extended diagnostic session upon exceeding of a speed limit.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

Std_ReturnType

Return values

Name

Description

E_OK

this value is always returned.

Dcm_SetActiveDiagnostic

Std_ReturnType Dcm_SetActiveDiagnostic(boolean active)

Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

active

If false Dcm shall not call ComM_DCM_ActiveDiagnostic(). If true Dcm will call ComM_DCM_ActiveDiagnostic().

Return type

Std_ReturnType

Return values

Name

Description

E_OK

this value is always returned.

Dcm_StartOfReception

BufReq_ReturnType Dcm_StartOfReception(PduIdType id, const PduInfoType *info, PduLengthType TpSduLength, PduLengthType *bufferSizePtr)

This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). If the service is successful and BUFREQ_OK is returned, the service provides the currently available maximum buffer size. This function might be called in interrupt context.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the I-PDU.

[in]

info

Pointer to a PduInfoType structure containing the payload data (without protocol information) and payload length of the first frame or single frame of a transport protocol I-PDU reception, and the MetaData related to this PDU. If neither first/single frame data nor MetaData are available, this parameter is set to NULL_PTR.

[in]

TpSduLength

Total length of the N-SDU to be received.

[out]

bufferSizePtr

Available receive buffer in the receiving module. This parameter will be used to compute the Block Size (BS) in the transport protocol module.

Return type

BufReq_ReturnType

Return values

Name

Description

BUFREQ_OK

Connection has been accepted. bufferSizePtr indicates the available receive buffer; reception is continued. If no buffer of the requested size is available, a receive buffer size of 0 shall be indicated by bufferSizePtr.

BUFREQ_E_NOT_OK

Connection has been rejected; reception is aborted. bufferSizePtr remains unchanged.

BUFREQ_E_OVFL

No buffer of the required length can be provided; reception is aborted. bufferSizePtr remains unchanged.

Dcm_CopyRxData

BufReq_ReturnType Dcm_CopyRxData(PduIdType id, const PduInfoType *info, PduLengthType *bufferSizePtr)

This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining buffer is written to the position indicated by bufferSizePtr. This function might be called in interrupt context.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the received I-PDU.

[in]

info

Provides the source buffer (SduDataPtr) and the number of bytes to be copied (SduLength). An SduLength of 0 can be used to query the current amount of available buffer in the upper layer module. In this case, the SduDataPtr may be a NULL_PTR.

[out]

bufferSizePtr

Available receive buffer after data has been copied.

Return type

BufReq_ReturnType

Return values

Name

Description

BUFREQ_OK

Data copied successfully

BUFREQ_E_NOT_OK

Data was not copied because an error occurred.

Dcm_TpRxIndication

void Dcm_TpRxIndication(PduIdType id, Std_ReturnType result)

Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the received I-PDU.

[in]

result

Result of the reception.

Return type

void

Dcm_CopyTxData

BufReq_ReturnType Dcm_CopyTxData(PduIdType id, const PduInfoType *info, const RetryInfoType *retry, PduLengthType *availableDataPtr)

This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data. The size of the remaining data is written to the position indicated by availableDataPtr. This function might be called in interrupt context.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the transmitted I-PDU.

[in]

info

Provides the destination buffer (SduDataPtr) and the number of bytes to be copied (SduLength). If not enough transmit data is available, no data is copied by the upper layer module and BUFREQ_E_BUSY is returned. The lower layer module may retry the call. An SduLength of 0 can be used to indicate state changes in the retry parameter or to query the current amount of available data in the upper layer module. In this case, the Sdu DataPtr may be a NULL_PTR.

[in]

retry

currently not being used

[out]

availableDataPtr

Indicates the remaining number of bytes that are available in the upper layer module’s Tx buffer. availableDataPtr can be used by TP modules that support dynamic payload lengths (e.g. FrIsoTp) to determine the size of the following CFs.

Return type

BufReq_ReturnType

Return values

Name

Description

BUFREQ_OK

Data has been copied to the transmit buffer completely as requested.

BUFREQ_E_BUSY

Request could not be fulfilled, because the required amount of Tx data is not available. The lower layern module may retry this call later on. No data has been copied.

BUFREQ_E_NOT_OK

Data has not been copied. Request failed.

Dcm_TpTxConfirmation

void Dcm_TpTxConfirmation(PduIdType id, Std_ReturnType result)

This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the transmitted I-PDU.

[in]

result

Result of the transmission of the I-PDU.

Return type

void

Dcm_TxConfirmation

void Dcm_TxConfirmation(PduIdType TxPduId, Std_ReturnType result)

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. This function might be called in interrupt context.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

TxPduId

ID of the PDU that has been transmitted.

[in]

result

E_OK : The PDU was transmitted. E_NOT_OK: Transmission of the PDU failed.

Return type

void

Dcm_CsmAsyncJobFinished

Std_ReturnType Dcm_CsmAsyncJobFinished(uint32 jobId, Crypto_ResultType result)

Can be called from Csm upon finishing an asynchronous job processing. The integrator will configure this name as callback function within the Csm ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the job that has finished by evaluating the job parameter.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

jobId

JobId provided by the Csm, indicating the job that has finished.

[in]

result

Return value of the asynchronous job

Return type

Std_ReturnType

Dcm_KeyMAsyncCertificateVerifyFinished

Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished(KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result)

Can be called from Key upon finishing an asynchronous certificate verification. The integrator will configure this name as callback function within the KeyM ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the certificate that has finished by evaluating the certId parameter.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

CertID

Certificate identifier that has finished the verification

[in]

Result

Return value of the asynchronous job

Return type

Std_ReturnType

Return values

Name

Description

E_OK

this value is always returned

Dcm_SatelliteMainFunction

void Dcm_SatelliteMainFunction(void)

Scheduled by SchM, running on different cores to deal with transmission for different controller.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

DcmInternal_CheckP2Timer

DCM_LOCAL void DcmInternal_CheckP2Timer(void)

called to check P2Timer

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

DcmInternal_CheckP4Timer

DCM_LOCAL void DcmInternal_CheckP4Timer(void)

called to check P4Timer

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

DslInternal_ProcessPreemption

DCM_LOCAL Std_ReturnType DslInternal_ProcessPreemption(uint8 curProtocolId, uint8 targetProtocolId)

This function process protocol preemption.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

curProtocolId

the current running protocol Id

[in]

targetProtocolId

the preempted protocol id

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DcmInternal_ProcessQueuedRequest

DCM_LOCAL void DcmInternal_ProcessQueuedRequest(uint8 protocolId)

This function process queueud request.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the input protocol Id

Return type

void

DcmInternal_DispatchService

DCM_LOCAL void DcmInternal_DispatchService(uint8 protocolId)

This function calls service interpreter.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the input protocol Id

Return type

void

DcmInternal_HandlePreemption

DCM_LOCAL Std_ReturnType DcmInternal_HandlePreemption(uint8 protocolId)

This function handles preemption.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the input protocol Id

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DcmInternal_HandleRequestCallback

DCM_LOCAL Std_ReturnType DcmInternal_HandleRequestCallback(uint8 protocolId)

This function handles request callbacks.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the input protocol Id

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DcmInternal_HandleConfirmation

DCM_LOCAL void DcmInternal_HandleConfirmation(uint8 protocolId, const Dcm_DsdServiceRequestNotificationType *notification, uint8 notificationNum)

This function handles manufacturer/supplier notification confirmation.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the input protocol Id

[in]

notification

the notification container

[in]

notificationNum

the number of notification container

Return type

void

DcmInternal_HandleServiceReturn

DCM_LOCAL void DcmInternal_HandleServiceReturn(Std_ReturnType result, uint8 protocolId, Dcm_NegativeResponseCodeType errorCode)

This function deal with service function return value.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

result

the service result

[in]

protocolId

the current protocol id

[in]

errorCode

nrc returned by service

Return type

void

DcmInternal_PrepareRxIndication

DCM_LOCAL Std_ReturnType DcmInternal_PrepareRxIndication(uint8 protocolId)

This function setup pre-conditions for rxIndication.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the current protocol id

Return type

Std_ReturnType

DcmInternal_Memcpy

void DcmInternal_Memcpy(uint8 *dest, const uint8 *src, uint32 size)

Dcm internal memory copy function.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

dest

the output data

[in]

src

the input data

[in]

size

the input data size

Return type

void

DcmInternal_Memset

void DcmInternal_Memset(uint8 *dest, uint8 data, uint32 size)

Dcm internal memory set function.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

dest

the output data

[in]

data

the input data

[in]

size

date size to set

Return type

void

DcmInternal_ProcessRequest

void DcmInternal_ProcessRequest(void)

called by Dcm_MainFunction to process pending requests

Sync/Async

TRUE

Reentrancy

Non Reentrant

Return type

void

DcmInternal_ProgCtrlInit

void DcmInternal_ProgCtrlInit(void)

called to initialize programing condition

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

DcmInternal_GetMetaDataSATA

void DcmInternal_GetMetaDataSATA(uint8 protocolId, uint16 *sourceAddress, uint16 *targetAddress)

get the SATA accorgding to protocolId

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the input protocolId

[out]

sourceAddress

the current sourceAddress

[out]

targetAddress

the current targetAddress

Return type

void

DcmInternal_DecreaseTimer

boolean DcmInternal_DecreaseTimer(uint32 *timer)

deals with timer to decrease counter

Sync/Async

TRUE

Reentrancy

Reentrant for different timer

Parameters

Dir

Name

Description

[in]

timer

the input timer

Return type

boolean

Return values

Name

Description

TRUE

timeout occurs

FALSE

timeout does not occur

DcmInternal_CheckTimer

void DcmInternal_CheckTimer(void)

called by Dcm_MainFunction to check timers

Sync/Async

TRUE

Reentrancy

Non Reentrant

Return type

void

DcmInternal_CancelJobs

Std_ReturnType DcmInternal_CancelJobs(uint8 ProtocolId)

called to cancel jobs for the input protocol

Sync/Async

TRUE

Reentrancy

Reentrant for different protocolId

Parameters

Dir

Name

Description

[in]

ProtocolId

the input protocolId

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DcmInternal_FindSessionIndex

Std_ReturnType DcmInternal_FindSessionIndex(Dcm_SesCtrlType session, uint8 *sessionIndex)

called to find configured session Index

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

session

the input sessionId

[out]

sessionIndex

the configuration index

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DcmInternal_FindSecurityIndex

void DcmInternal_FindSecurityIndex(Dcm_SecLevelType security, uint8 *securityIndex)

called to find configured security Index

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

security

input security level

[out]

securityIndex

configuration index

Return type

void

DcmInternal_SetProgConditions

Std_ReturnType DcmInternal_SetProgConditions(Dcm_OpStatusType OpStatus)

called to set the programing condition

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DcmInternal_TransformArray_u16

void DcmInternal_TransformArray_u16(uint8 *dest, uint16 src, Dcm_EndiannessType endianness)

called to transform uint16 data to uint8_N

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

dest

the dest buffer

[in]

src

the input data

[in]

endianness

the configured endianness

Return type

void

DcmInternal_TransformArray_u24

void DcmInternal_TransformArray_u24(uint8 *dest, uint32 src, Dcm_EndiannessType endianness)

called to transform uint24 data to uint8_N

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

dest

the dest buffer

[in]

src

the input data

[in]

endianness

the configured endianness

Return type

void

DcmInternal_TransformArray_u32

void DcmInternal_TransformArray_u32(uint8 *dest, uint32 src, Dcm_EndiannessType endianness)

called to transform uint32 data to uint8_N

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

dest

the dest buffer

[in]

src

the input data

[in]

endianness

the configured endianness

Return type

void

DcmInternal_TransformArray_u64

void DcmInternal_TransformArray_u64(uint8 *dest, uint64 src, Dcm_EndiannessType endianness)

called to transform uint64 data to uint8_N

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

dest

the dest buffer

[in]

src

the input data

[in]

endianness

the configured endianness

Return type

void

DcmInternal_ProcessRxIndication

void DcmInternal_ProcessRxIndication(void)

called to asynchronously deal with rxIndication

Sync/Async

TRUE

Reentrancy

Non Reentrant

Return type

void

DcmInternal_ProcessTxConfirmation

void DcmInternal_ProcessTxConfirmation(void)

called to asynchronously deal with txConfirmation

Sync/Async

TRUE

Reentrancy

Non Reentrant

Return type

void

DcmInternal_SetActiveDiagnostic

void DcmInternal_SetActiveDiagnostic(boolean active)

Allows to notify ComM the current DiagnosticState for all connections.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

active

notify ComM the active or inactive diagnosticState

Return type

void

Dcm_OBD0x02_ReadPid

DCM_LOCAL Std_ReturnType Dcm_OBD0x02_ReadPid(Dcm_MsgContextType *pMsgContext)

Called by Dcm_OBD0x02 to read pid.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x02_ReadPidData

DCM_LOCAL Std_ReturnType Dcm_OBD0x02_ReadPidData(Dcm_MsgContextType *pMsgContext, uint8 pid, uint8 *offset)

read pid data

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

pid

The requested pid

[inout]

offset

Current offset

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x09_FindVehInfo

DCM_LOCAL Std_ReturnType Dcm_OBD0x09_FindVehInfo(uint8 infoType, uint8 *vehInfoIndex)

Called by Dcm_OBD0x09 to find vehInfo index.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

infoType

input infoType

[out]

vehInfoIndex

the configured vehInfo index

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x01_ReadAvailabilityPid

DCM_LOCAL Std_ReturnType Dcm_OBD0x01_ReadAvailabilityPid(uint8 Pid, uint8 *mixPid, uint8 availPidIndex, Dcm_MsgLenType *BufSize, uint8 *DestBuffer)

read availability Pid

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

Pid

input pid

[inout]

mixPid

Start as 0 for OBD request or NULL_PTR for UDS request, bit 1 is set for availability Id, bit 2 is set for non-availability ones.

[in]

availPidIndex

the index of availability pid

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

DestBuffer

The output data

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x01_ReadPidData

DCM_LOCAL Std_ReturnType Dcm_OBD0x01_ReadPidData(uint8 pidIndex, uint8 *mixPid, Dcm_MsgLenType *BufSize, uint8 *DestBuffer)

read Pid Data

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

pidIndex

input pid configuration index

[inout]

mixPid

Start as 0 for OBD request or NULL_PTR for UDS request, bit 1 is set for availability Id, bit 2 is set for non-availability ones.

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

DestBuffer

The output data

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x01_ProcessPidData

DCM_LOCAL Std_ReturnType Dcm_OBD0x01_ProcessPidData(const Dcm_DspPidType *DcmDspPidPtr, Dcm_MsgLenType *BufSize, uint8 *DestBuffer)

process Pid Data

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

DcmDspPidPtr

input pid configuration

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

DestBuffer

The output data

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x06_ReadAvailabilityMid

DCM_LOCAL Std_ReturnType Dcm_OBD0x06_ReadAvailabilityMid(uint8 mid, uint8 *mixMid, Dcm_MsgLenType *BufSize, uint8 *DestBuffer)

read availability Mid

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

mid

input mid

[inout]

mixMid

Start as 0 for OBD request or NULL_PTR for UDS request, bit 1 is set for availability Id, bit 2 is set for non-availability ones.

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

DestBuffer

The output data

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x06_ReadMidData

DCM_LOCAL Std_ReturnType Dcm_OBD0x06_ReadMidData(uint8 mid, uint8 *mixMid, uint8 numberOfTIDs, Dcm_MsgLenType *BufSize, uint8 *DestBuffer)

read Mid Data

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

mid

input mid

[inout]

mixMid

Start as 0 for OBD request or NULL_PTR for UDS request, bit 1 is set for availability Id, bit 2 is set for non-availability ones.

[in]

numberOfTIDs

number of TIDs

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

DestBuffer

The output data

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x06_ProcessMidData

DCM_LOCAL Std_ReturnType Dcm_OBD0x06_ProcessMidData(uint8 mid, uint8 numberOfTIDs, Dcm_MsgLenType *BufSize, uint8 *DestBuffer)

process Mid Data

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

mid

input mid

[in]

numberOfTIDs

number of TIDs

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

DestBuffer

The output data

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x08_ReadAvailabilityTid

DCM_LOCAL Std_ReturnType Dcm_OBD0x08_ReadAvailabilityTid(uint8 tid, uint8 *MixTid, uint8 availTidIndex, Dcm_MsgLenType *BufSize, uint8 *DestBuffer)

read availability Tid

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

tid

input tid

MixTid

[in]

availTidIndex

the index of availability tid

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

DestBuffer

The output data

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x08_ReadTidData

DCM_LOCAL Std_ReturnType Dcm_OBD0x08_ReadTidData(uint8 tidIndex, uint8 *MixTid, Dcm_MsgLenType *BufSize, uint8 *DestBuffer, uint8 *InBuffer, Dcm_MsgLenType InBufferSize, Dcm_NegativeResponseCodeType *ErrorCode)

read Tid Data

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

tidIndex

input tid configuration index

MixTid

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

DestBuffer

The output data

[in]

InBuffer

the input data

[in]

InBufferSize

the size of input data

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x09_ReadAvailabilityVehInfo

DCM_LOCAL Std_ReturnType Dcm_OBD0x09_ReadAvailabilityVehInfo(uint8 infoType, uint8 availInfoTypeIndex, uint8 *MixInfoType, Dcm_MsgLenType *BufSize, uint8 *DestBuffer)

read availability vehInfo

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

infoType

input infoType

[in]

availInfoTypeIndex

input availability infoType index

[inout]

MixInfoType

Start as 0 for OBD request or NULL_PTR for UDS request, bit 1 is set for availability Id, bit 2 is set for non-availability ones.

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

DestBuffer

The output data

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x09_ReadVehInfoData

DCM_LOCAL Std_ReturnType Dcm_OBD0x09_ReadVehInfoData(Dcm_ExtendedOpStatusType OpStatus, uint8 vehInfoIndex, uint8 *MixInfoType, Dcm_MsgLenType *BufSize, uint8 *DestBuffer, Dcm_NegativeResponseCodeType *ErrorCode)

read vehInfo Data

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[in]

vehInfoIndex

input vehInfo index

[inout]

MixInfoType

Start as 0 for OBD request or NULL_PTR for UDS request, bit 1 is set for availability Id, bit 2 is set for non-availability ones.

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

DestBuffer

The output data

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was pending

Dcm_OBD0x09_ProcessVehInfoData

DCM_LOCAL Std_ReturnType Dcm_OBD0x09_ProcessVehInfoData(Dcm_ExtendedOpStatusType OpStatus, const Dcm_DspVehInfoType *vehInfo, uint8 *MixInfoType, Dcm_MsgLenType *BufSize, uint8 *DestBuffer, Dcm_NegativeResponseCodeType *ErrorCode)

process vehInfo Data

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[in]

vehInfo

input vehInfo configuration

[inout]

MixInfoType

Start as 0 for OBD request or NULL_PTR for UDS request, bit 1 is set for availability Id, bit 2 is set for non-availability ones.

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

DestBuffer

The output data

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was pending

Dcm_OBD0x08_ReadTid

Std_ReturnType Dcm_OBD0x08_ReadTid(uint8 tid, uint8 *InBuffer, Dcm_MsgLenType InBufferSize, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, Dcm_NegativeResponseCodeType *ErrorCode)

Called by OBD 0x08 and UDS 0x31 to read the tidData.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

tid

Target TID

[in]

InBuffer

the input data

[in]

InBufferSize

the size of input data

[out]

DestBuffer

address to output Pid data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

ErrorCode

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_OBD0x01

Std_ReturnType Dcm_OBD0x01(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for OBD 0x01.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application requests the transmission of a response Response Pending (NRC 0x78)

Dcm_OBD0x01_ReadPid

Std_ReturnType Dcm_OBD0x01_ReadPid(Dcm_ExtendedOpStatusType OpStatus, uint8 Pid, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, uint8 *mixPid)

Called by OBD 0x01 and UDS 0x22 to read the PidData.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

Pid

Target PID

[out]

DestBuffer

address to output Pid data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[inout]

mixPid

Start as 0 for OBD request or NULL_PTR for UDS request, bit 1 is set for availability Id, bit 2 is set for non-availability ones.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

DCM_E_PENDING

Request is not yet finished

E_NOT_OK

Request was unsuccessful

Dcm_OBD0x02

Std_ReturnType Dcm_OBD0x02(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for OBD 0x02.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x03

Std_ReturnType Dcm_OBD0x03(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for OBD 0x02.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x04

Std_ReturnType Dcm_OBD0x04(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for OBD 0x04.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_OBD0x06

Std_ReturnType Dcm_OBD0x06(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for OBD 0x06.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x06_ReadMid

Std_ReturnType Dcm_OBD0x06_ReadMid(uint8 mid, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, uint8 *mixMid)

Called by OBD 0x06 and UDS 0x22 to read the midData.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

mid

Target MID

[out]

DestBuffer

address to output Pid data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[inout]

mixMid

Start as 0 for OBD request or NULL_PTR for UDS request, bit 1 is set for availability Id, bit 2 is set for non-availability ones.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_OBD0x07

Std_ReturnType Dcm_OBD0x07(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for OBD 0x07.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_OBD0x08

Std_ReturnType Dcm_OBD0x08(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for OBD 0x08.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_OBD0x08_ReadTid

Std_ReturnType Dcm_OBD0x08_ReadTid(uint8 tid, uint8 *InBuffer, Dcm_MsgLenType InBufferSize, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, Dcm_NegativeResponseCodeType *ErrorCode)

Called by OBD 0x08 and UDS 0x31 to read the tidData.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

tid

Target TID

[in]

InBuffer

the input data

[in]

InBufferSize

the size of input data

[out]

DestBuffer

address to output Pid data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

ErrorCode

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_OBD0x08_FindTid

Std_ReturnType Dcm_OBD0x08_FindTid(uint8 tid, uint8 *tidIndex)

Called by OBD 0x08 and UDS 0x31 to find the configured tid index.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

tid

Target TID

[out]

tidIndex

the configured tid index

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_OBD0x09

Std_ReturnType Dcm_OBD0x09(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for OBD 0x09.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_OBD0x09_ReadVehInfo

Std_ReturnType Dcm_OBD0x09_ReadVehInfo(Dcm_ExtendedOpStatusType OpStatus, uint8 infoType, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, uint8 *MixInfoType, Dcm_NegativeResponseCodeType *ErrorCode)

Called by OBD 0x09 and UDS 0x22 to read the vehInfo data.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

infoType

Target infoType

[out]

DestBuffer

address to output Pid data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[inout]

MixInfoType

Start as 0 for OBD request or NULL_PTR for UDS request, bit 1 is set for availability Id, bit 2 is set for non-availability ones.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

Dcm_OBD0x0A

Std_ReturnType Dcm_OBD0x0A(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for OBD 0x0A.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_OBD_GetFilteredDTC

Std_ReturnType Dcm_OBD_GetFilteredDTC(uint8 ClientId, uint8 DTCStatusMask, Dem_DTCOriginType DTCOrigin, uint8 *DestBuffer, uint16 *NumberOfFilteredDTC)

Called by OBD 0x03, 0x07, 0x0A to get filtered DTC.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ClientId

Dem ClientId

[in]

DTCStatusMask

Status-byte mask for DTC status-byte filtering

[in]

DTCOrigin

used to select the source memory the DTCs shall be read from

[out]

DestBuffer

address to output DTC

[out]

NumberOfFilteredDTC

the number of output DTC

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

Dcm_OBD_FindPid

Std_ReturnType Dcm_OBD_FindPid(uint8 Pid, uint8 ServiceId, uint8 *PidIndex)

Called by OBD 0x01, 0x02 to find the pid in the configuration.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

Pid

Target Pid

[in]

ServiceId

Actual OBD service ID

[out]

PidIndex

Pid index in the configuration

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Pid index found

E_NOT_OK

Pid is not configured

Dcm_OBD_isAvailability

boolean Dcm_OBD_isAvailability(uint8 Id, uint8 *AvailIdIndex)

Called by OBD 0x01, 0x02, 0x06, 0x08, 0x09 to check is this Id an availabilityId and find which availableIdIndex it belongs to.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

Id

OBD ID (pid/mid/testId)

[out]

AvailIdIndex

the availableIndex this id belongs to (if it is an availability id)

Return type

boolean

Return values

Name

Description

TRUE

it is an availability Id, and availIdIndex is found

FALSE

it is not an availability Id

Dcm_UDS0x10_HandleForBoot

DCM_LOCAL Std_ReturnType Dcm_UDS0x10_HandleForBoot(uint8 protocolId, Dcm_ExtendedOpStatusType OpStatus, uint8 session, Dcm_DspSessionForBootType sessionForBoot, Dcm_NegativeResponseCodeType *ErrorCode)

handle session change related to boot

Sync/Async

Depending on Session Type and current session level

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the current protocol Id

[in]

OpStatus

Indicates the current operation status

[in]

session

the requested session

[in]

sessionForBoot

the configuration of session related to boot

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x10_ProcessSetProg

DCM_LOCAL Std_ReturnType Dcm_UDS0x10_ProcessSetProg(uint8 protocolId, Dcm_ExtendedOpStatusType OpStatus, uint8 session, Dcm_DspSessionForBootType sessionForBoot, Dcm_NegativeResponseCodeType *ErrorCode)

process setProgCondition

Sync/Async

Depending on Session Type and current session level

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the current protocol Id

[in]

OpStatus

Indicates the current operation status

[in]

session

the requested session

[in]

sessionForBoot

the configuration of session related to boot

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x10_CheckTimer

void Dcm_UDS0x10_CheckTimer(void)

Called by Dcm_MainFunction/DcmInternal_CheckTimer to deal with session timer.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x10_CheckSession

Std_ReturnType Dcm_UDS0x10_CheckSession(const Dcm_SesCtrlType *session, uint8 sessionNum, Dcm_NegativeResponseCodeType *ErrorCode)

Called by DsdInternal_RxIndication to check general service/subService session and most of th UDS services to check did, rid, memory, etc. session.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

session

the required session

[in]

sessionNum

the required session num

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x10_SessionChange

void Dcm_UDS0x10_SessionChange(void)

Called by Dcm_TpTxConfirmation for 0x10 service postivie response confirmation and ResetToDefaultSession to change the session.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

DcmInternal_FindResetIndex

DCM_LOCAL void DcmInternal_FindResetIndex(uint8 subFunction, uint8 *resetIndex)

Called by UDS 0x11 to find the configured DcmReset index for the requested subfunction, this function is guaranteed to be successful as there will be configuration validation rules.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

subFunction

the requested subfunction

[out]

resetIndex

the requested subfunction’s reset configuration Index

Return type

void

Dcm_UDS0x14_PrepareClear

DCM_LOCAL Std_ReturnType Dcm_UDS0x14_PrepareClear(Dcm_ExtendedOpStatusType OpStatus, uint8 clientId, uint8 *reqData, Dcm_NegativeResponseCodeType *ErrorCode)

prepare clear DTC by select and check clear conditions

Sync/Async

Depending on Dem

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

clientId

the configured dem client id

[in]

reqData

the requested data

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x14_ProcessClear

DCM_LOCAL Std_ReturnType Dcm_UDS0x14_ProcessClear(uint8 clientId, Dcm_NegativeResponseCodeType *ErrorCode)

process clearDTC

Sync/Async

Depending on Dem

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

clientId

the configured dem client id

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x19_01

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_01(uint8 clientId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x19 subfunction 0x01.

Sync/Async

Depending on Dem

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

clientId

the Dem clientId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x19_02_0A

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_02_0A(uint8 clientId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x19 subfunction 0x02 and 0x0A.

Sync/Async

Depending on Dem

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

clientId

the Dem clientId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x19_02_0A_Prepare

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_02_0A_Prepare(uint8 clientId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

prepare for processing sunfunction 0x2/0xA

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

clientId

the Dem clientId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x19_02_0A_Process

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_02_0A_Process(uint8 clientId, Dcm_MsgContextType *pMsgContext)

process sunfunction 0x2/0xA

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

clientId

the Dem clientId

[in]

oldPagedBufferStarted

whether the page buffer is started or not

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

offset

The resulting offset

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x19_03

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_03(uint8 clientId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x19 subfunction 0x03.

Sync/Async

Depending on Dem

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

clientId

the Dem clientId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x19_03_Prepare

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_03_Prepare(uint8 clientId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

prepare for processing sunfunction 0x3

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

clientId

the Dem clientId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x19_04

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_04(Dcm_OpStatusType OpStatus, uint8 clientId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x19 subfunction 0x04.

Sync/Async

Depending on Dem

Reentrancy

Reentrant

Parameters

Dir

Name

Description

OpStatus

[in]

clientId

the Dem clientId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x19_04_Prepare

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_04_Prepare(Dcm_OpStatusType OpStatus, uint8 clientId, Dcm_MsgContextType *pMsgContext, boolean *disabled, Dcm_NegativeResponseCodeType *ErrorCode)

prepare for processing sunfunction 0x4

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[in]

clientId

the Dem clientId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

disabled

set to TRUE when Dem_DisableDTCRecordUpdate return E_OK

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x19_06

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_06(Dcm_OpStatusType OpStatus, uint8 clientId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x19 subfunction 0x06.

Sync/Async

Depending on Dem

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[in]

clientId

the Dem clientId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x19_06_Prepare

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_06_Prepare(Dcm_OpStatusType OpStatus, uint8 clientId, Dcm_MsgContextType *pMsgContext, boolean *disabled, Dcm_NegativeResponseCodeType *ErrorCode)

prepare for processing sunfunction 0x4

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[in]

clientId

the Dem clientId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

disabled

set to TRUE when Dem_DisableDTCRecordUpdate return E_OK

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x19_0D

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_0D(uint8 clientId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x19 subfunction 0x0D.

Sync/Async

Depending on Dem

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

clientId

the Dem clientId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x19_0E

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_0E(uint8 clientId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x19 subfunction 0x0E.

Sync/Async

Depending on Dem

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

clientId

the Dem clientId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x19_ProcessSubFunction

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_ProcessSubFunction(Dcm_OpStatusType OpStatus, uint8 protocolId, Dcm_NegativeResponseCodeType *ErrorCode)

process subFunction of 0x19

Sync/Async

Depending on Dem

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[in]

protocolId

current protocol id

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x19_PostProcess

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_PostProcess(uint8 protocolId, Std_ReturnType subFunctionResult, Dcm_NegativeResponseCodeType *ErrorCode)

deal with subFunction process result

Sync/Async

Depending on Dem

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

current protocol id

[in]

subFunctionResult

the result of Dcm_UDS0x19_ProcessSubFunction

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x19_HandleTotalLength

DCM_LOCAL Std_ReturnType Dcm_UDS0x19_HandleTotalLength(Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

deal with total response length

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x22_RangeDidHandle

DCM_LOCAL Std_ReturnType Dcm_UDS0x22_RangeDidHandle(Dcm_ExtendedOpStatusType OpStatus, uint16 ConnectionId, uint16 Did, uint16 RangeDidIndex, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, Dcm_NegativeResponseCodeType *ErrorCode)

This function gets the configured did index, also applying to rangeDid and OBDDid.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

ConnectionId

the current connectionid

[in]

Did

the input did

[in]

RangeDidIndex

the input range did index

[out]

DestBuffer

address to output the did data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x22_RangeDidReadData

DCM_LOCAL Std_ReturnType Dcm_UDS0x22_RangeDidReadData(Dcm_ExtendedOpStatusType OpStatus, uint16 Did, const Dcm_DspDidRangeType *DcmDspDidRangeCfg, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, Dcm_NegativeResponseCodeType *ErrorCode)

This function reads data of range did.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

Did

the input did

[in]

DcmDspDidRangeCfg

the DcmDspDidRange Configuration

[out]

DestBuffer

the pointer for result

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x22_OBDDidHandle

DCM_LOCAL Std_ReturnType Dcm_UDS0x22_OBDDidHandle(Dcm_ExtendedOpStatusType OpStatus, uint16 Did, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, Dcm_NegativeResponseCodeType *ErrorCode)

This function deals with obd did to get data.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

Did

the input did

[out]

DestBuffer

address to output the did data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x22_GetDidLength

DCM_LOCAL Std_ReturnType Dcm_UDS0x22_GetDidLength(uint16 Did, uint16 ConnectionId, Dcm_MsgLenType *DataLength, Dcm_NegativeResponseCodeType *ErrorCode)

This function gets the did length to read for pagedBuffer functionality.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

Did

the input did

[in]

ConnectionId

the current connection id

[out]

DataLength

The data length of the did

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x22_ReadDidPostProcess

DCM_LOCAL Std_ReturnType Dcm_UDS0x22_ReadDidPostProcess(uint8 protocolId, Std_ReturnType readResult, uint16 index, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

This function handles the result of read Did and deal with pagedBuffer initialization.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the current protocol id

[in]

readResult

the result of read did

[in]

index

the index of the requested did

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x22_ReadDidPrepare

DCM_LOCAL Std_ReturnType Dcm_UDS0x22_ReadDidPrepare(Dcm_ExtendedOpStatusType OpStatus, #if(STD_ON==DCM_PAGEDBUFFER_ENABLED) uint8 protocolId, #endif Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

This function setup the initial read status and iterate over requested did.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

protocolId

the current protocol id

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x22_HandleDidStatus

DCM_LOCAL void Dcm_UDS0x22_HandleDidStatus(Std_ReturnType result, uint16 did, uint16 index, Dcm_MsgContextType* pMsgContext, uint32* offset, Dcm_MsgLenType* bufSize)

This function sets did status

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

result

the previous result

[in]

did

the requested did

[in]

index

the current reading index

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[inout]

offset

the current offset of the response buffer

[out]

bufSize

the current available buffer size and resulting data size

Return type

void

Dcm_UDS0x22_ReadDid

DCM_LOCAL Std_ReturnType Dcm_UDS0x22_ReadDid(Dcm_ExtendedOpStatusType OpStatus, uint16 index, Dcm_MsgContextType *pMsgContext, uint32 *offset, Dcm_NegativeResponseCodeType *ErrorCode)

This function reads the data of a did.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

index

the index of the requested did

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[inout]

offset

the current offset of the response buffer

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x22_ReadDidProcess

DCM_LOCAL Std_ReturnType Dcm_UDS0x22_ReadDidProcess(Dcm_ExtendedOpStatusType OpStatus, uint16 connectionId, uint16 did, Dcm_DidType didType, uint16 didIndex, uint8 *DestBuffer, Dcm_MsgLenType *bufSize, Dcm_NegativeResponseCodeType *ErrorCode)

This function reads a did based on is type (regular/range/OBD)

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

connectionId

the current connection id

[in]

did

the requested did

[in]

didType

the type of the requested did

[in]

didIndex

the index of the requested did

[inout]

DestBuffer

output buffer

[inout]

bufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x23_PostReadMemory

DCM_LOCAL Std_ReturnType Dcm_UDS0x23_PostReadMemory(Dcm_ReturnReadMemoryType readMemoryResult, Dcm_NegativeResponseCodeType *ErrorCode)

This function handles the result of read memory.

Sync/Async

Depends on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

readMemoryResult

the result of read memory

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x24_GetScalingInfo

DCM_LOCAL Std_ReturnType Dcm_UDS0x24_GetScalingInfo(uint16 didIndex, uint16 *offset, Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

This function handles getScailingInfo callout.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

didIndex

the index of did

[inout]

offset

The current offset of target buffer

[in]

OpStatus

current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x27_RequestSeed

DCM_LOCAL Std_ReturnType Dcm_UDS0x27_RequestSeed(Dcm_ExtendedOpStatusType OpStatus, uint8 securityIndex, uint8 securityLevel, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

This function deal with request seed subfunction.

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[in]

securityIndex

the requested security row configuration

[in]

securityLevel

the requested security level

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS0x27_SendKey

DCM_LOCAL Std_ReturnType Dcm_UDS0x27_SendKey(Dcm_ExtendedOpStatusType OpStatus, uint8 securityIndex, uint8 securityLevel, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

This function deal with send key subfunction.

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[in]

securityIndex

the requested security row configuration

[in]

securityLevel

the requested security level

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS0x27_RequestSeedProcess

DCM_LOCAL Std_ReturnType Dcm_UDS0x27_RequestSeedProcess(Dcm_ExtendedOpStatusType OpStatus, uint8 securityLevel, Dcm_MsgContextType *pMsgContext, const Dcm_DspSecurityRowType *securityRow, Dcm_NegativeResponseCodeType *ErrorCode)

This function deal with request seed callout.

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[in]

securityLevel

the requested security level

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

securityRow

the requested security row configuration

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS0x27_GetAttemptCounterProcess

DCM_LOCAL Std_ReturnType Dcm_UDS0x27_GetAttemptCounterProcess(Std_ReturnType currentResult, uint8 index, Dcm_OpStatusType OpStatus, boolean *finish)

This function deal with getAttemptCounter callout.

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

currentResult

the result of previous operation

[in]

index

the requested security row configuration index

[in]

OpStatus

current operation status

[inout]

finish

whether the whole process if finished

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS0x28_ReEnableCommunication

DCM_LOCAL void Dcm_UDS0x28_ReEnableCommunication(void)

This function switchs the communication modes and enables all coomunication.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x28_TxConfirmationExtHandle

DCM_LOCAL void Dcm_UDS0x28_TxConfirmationExtHandle(uint8 controlType, uint8 communicationType, uint16 nodeIdentificationNumber)

This function handels txConfirmation of extended address subfunction.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

controlType

the requested cotrolType

[in]

communicationType

the requested communicationType

[in]

nodeIdentificationNumber

the requested nodeIdentiferNumber

Return type

void

Dcm_UDS0x28_FindSubNode

DCM_LOCAL Std_ReturnType Dcm_UDS0x28_FindSubNode(uint16 nodeIdentificationNumber, Dcm_NegativeResponseCodeType *ErrorCode)

This function finds matched subNode cfg based on input nodeId.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

nodeIdentificationNumber

the requested nodeIdentiferNumber

[out]

ErrorCode

the nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS0x29_AuthenticateStore

DCM_LOCAL void Dcm_UDS0x29_AuthenticateStore(void)

called to store the current authentication State

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x29_SetNrc

DCM_LOCAL void Dcm_UDS0x29_SetNrc(Dcm_NegativeResponseCodeType *ErrorCode)

called to set to configured nrc (if have)

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

void

Dcm_UDS0x29_SetDeAuthenticateRole

DCM_LOCAL void Dcm_UDS0x29_SetDeAuthenticateRole(uint16 connectionId)

called to set authentication role

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

connectionId

the current connectionId

Return type

void

Dcm_UDS0x29_ClearWhiteList

DCM_LOCAL void Dcm_UDS0x29_ClearWhiteList(uint16 connectionId)

This function clears the white list.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

connectionId

the current connectionId

Return type

void

Dcm_UDS0x29_0x00

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_0x00(uint16 ConnectionId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x29 subfunction 0x00.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection id

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x29_KeyMAsyncCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_KeyMAsyncCheck(Dcm_NegativeResponseCodeType *ErrorCode)

Checkes KeyM asynchronous result and set errorCode accordingly.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x29_Challenge

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_Challenge(uint16 ConnectionId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

This function deals with challenge and output accordingly.

Sync/Async

Asynchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

ConnectionId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was not yet finished

Dcm_UDS0x29_HandleCsmGenerateResult

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_HandleCsmGenerateResult(uint16 ConnectionId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

This function deals with Csm Generate asynchronous result.

Sync/Async

Asynchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection Id

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was not yet finished

Dcm_UDS0x29_HandleCsmSignatureResult

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_HandleCsmSignatureResult(uint16 ConnectionId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

This function deals with Csm Signature asynchronous result.

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection Id

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x29_01_02

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_01_02(Dcm_ExtendedOpStatusType OpStatus, uint16 ConnectionId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x29 subfunction 0x01 or 0x02.

Sync/Async

FALSE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

ConnectionId

the current connection Id

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was not yet finished

Dcm_UDS0x29_01_02_InitialHandle

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_01_02_InitialHandle(uint16 ConnectionId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

Handle UDS 0x29 subfunction 0x01 or 0x02 when opStatus is DCM_INITIAL.

Sync/Async

Asynchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection Id

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was not yet finished

Dcm_UDS0x29_0x03_getlist

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_0x03_getlist(Dcm_KeyMCertInfoType Dcm_KeyMCertInfo, uint8 *DataPtr, uint8 *DataLength, Dcm_NegativeResponseCodeType *ErrorCode)

gets the specific lists

Sync/Async

FALSE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

Dcm_KeyMCertInfo

the input cerfication info

[out]

DataPtr

the dest buffer

[out]

DataLength

the total data length

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was not yet finished

Dcm_UDS0x29_0x03_whitelist

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_0x03_whitelist(uint16 ConnectionId, Dcm_NegativeResponseCodeType *ErrorCode)

gets the white lists

Sync/Async

FALSE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

ConnectionId

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was not yet finished

Dcm_UDS0x29_0x03_Update

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_0x03_Update(uint16 ConnectionId, Dcm_NegativeResponseCodeType *ErrorCode)

updates the authentication State

Sync/Async

FALSE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

ConnectionId

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was not yet finished

Dcm_UDS0x29_0x03

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_0x03(Dcm_ExtendedOpStatusType OpStatus, uint16 ConnectionId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x29 subfunction 0x03.

Sync/Async

FALSE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

ConnectionId

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was not yet finished

Dcm_UDS0x29_0x04

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_0x04(Dcm_OpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x29 subfunction 0x04.

Sync/Async

Asynchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was not yet finished

Dcm_UDS0x29_0x04_KeyMProcess

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_0x04_KeyMProcess(KeyM_CertDataType *certData, uint16 CertId, Dcm_NegativeResponseCodeType *ErrorCode)

Handles interaction with KeyM for UDS 0x29 subfunction 0x04.

Sync/Async

Asynchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

certData

the input certData

[in]

CertId

the input certificate evaluation id

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request was not yet finished

Dcm_UDS0x29_0x04_ConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_0x04_ConditionCheck(Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode, uint16 *TransmitCertificateRef)

check conditions for subfunction 0x04

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

[out]

TransmitCertificateRef

The configured cerficateRef

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x29_0x08

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_0x08(Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x29 subfunction 0x08.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x29_RoleCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_RoleCheck(uint16 ConnectionId, const uint8 *RoleRef, uint8 RoleNum)

checks whether the role is validated

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection Id

[in]

RoleRef

the input role ref

[in]

RoleNum

the number of role ref

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x29_WhiteListCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_WhiteListCheck(uint16 ConnectionId, Dcm_MsgLenType CheckLength)

checks whether the service is in white list

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection Id

[in]

CheckLength

the input check length

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x29_DidWhiteListCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_DidWhiteListCheck(uint16 ConnectionId, uint16 RecDid)

checks whether the did is in white list

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection Id

[in]

RecDid

the input did

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x29_RidWhiteListCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x29_RidWhiteListCheck(uint16 ConnectionId)

checks whether the rid is in white list

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection Id

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2A_SchedulerInit

DCM_LOCAL void Dcm_UDS0x2A_SchedulerInit(Dcm_SchedulerType *schedulerPtr)

Called by UDS 0x2A to initialize the scheduler.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

schedulerPtr

the scheduler ptr

Return type

void

Dcm_UDS0x2A_ConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x2A_ConditionCheck(Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

check conditions for UDS 0x2A

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2A_HandleDid

DCM_LOCAL Std_ReturnType Dcm_UDS0x2A_HandleDid(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, uint16 connectionId, Dcm_NegativeResponseCodeType *ErrorCode)

handle did read for UDS 0x2A

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

connectionId

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2A_HandleDidConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x2A_HandleDidConditionCheck(uint16 didIndex, Dcm_ExtendedOpStatusType OpStatus, Dcm_NegativeResponseCodeType *ErrorCode)

handles did conditionCheck callout

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

didIndex

the reuqested did index

[in]

OpStatus

current operation status

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2A_DidReadPrepare

DCM_LOCAL Std_ReturnType Dcm_UDS0x2A_DidReadPrepare(uint16 connectionId, uint16 didIndex, Dcm_ExtendedOpStatusType OpStatus, uint16 *dataLength, Dcm_NegativeResponseCodeType *ErrorCode)

prepare for dynamic did read

Sync/Async

Depends on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

connectionId

[in]

didIndex

the reuqested did index

[in]

OpStatus

current operation status

[out]

dataLength

the dataLength of dynamic did

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x2A_SetScheduler

DCM_LOCAL Std_ReturnType Dcm_UDS0x2A_SetScheduler(uint16 didIndex, uint16 connectionId, uint16 dataLength, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

setup scheduler for requested periodic read

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

didIndex

the reuqested did index

connectionId

[out]

dataLength

the dataLength of dynamic did

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2A_SetNonStopScheduler

DCM_LOCAL Std_ReturnType Dcm_UDS0x2A_SetNonStopScheduler(Dcm_SchedulerType *schedulerPtr, uint16 didIndex, uint16 connectionId, uint8 transMode, uint16 dataLength)

setup scheduler for requested periodic read for nonStop subfunction

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

schedulerPtr

the previously found schedulerPtr

[in]

didIndex

the reuqested did index

connectionId

[in]

transMode

the requested transMode

[in]

dataLength

the dataLength of dynamic did

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2A_MainFunctionHandle

DCM_LOCAL void Dcm_UDS0x2A_MainFunctionHandle(Dcm_SchedulerType *schedulerPtr)

handle a operating scheduler

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

schedulerPtr

the target scheduler

Return type

void

Dcm_UDS0x2A_PeriodicSend

DCM_LOCAL Std_ReturnType Dcm_UDS0x2A_PeriodicSend(uint16 connIndex)

prepare data and send periodic data

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

connIndex

the current connection index

[in]

schedulerPtr

the current scheduler pointer

Return type

void

Dcm_UDS0x2C_ConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x2C_ConditionCheck(uint16 connectionId, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode, uint16 *didIndex)

General condition checks for UDS 0x2C.

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

connectionId

current connection id

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

[out]

didIndex

The index of requested did

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2C_01

DCM_LOCAL Std_ReturnType Dcm_UDS0x2C_01(uint16 connectionId, Dcm_MsgContextType *pMsgContext, uint16 DDDIDIndex, const Dcm_DspDidInfoType *DcmDspDidInfoPtr, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x2C subfunction 0x01.

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

connectionId

current connection id

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

DDDIDIndex

DDDID index for reqeusted did

[in]

DcmDspDidInfoPtr

the DcmDspDidInfo configuration

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2C_02

DCM_LOCAL Std_ReturnType Dcm_UDS0x2C_02(Dcm_MsgContextType *pMsgContext, uint16 DDDIDIndex, const Dcm_DspDidInfoType *DcmDspDidInfoPtr, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x2C subfunction 0x02.

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

DDDIDIndex

DDDID index for reqeusted did

[in]

DcmDspDidInfoPtr

the DcmDspDidInfo configuration

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2C_02_ConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x2C_02_ConditionCheck(Dcm_MsgContextType *pMsgContext, const Dcm_DspDidInfoType *DcmDspDidInfoPtr, Dcm_MsgLenType *SourceElementsNum, Dcm_NegativeResponseCodeType *ErrorCode)

general condition check for UDS 0x2C, subFunction 0x2

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

DcmDspDidInfoPtr

the DcmDspDidInfo configuration

[out]

SourceElementsNum

the requestged source element number

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2C_03

DCM_LOCAL Std_ReturnType Dcm_UDS0x2C_03(Dcm_MsgLenType reqDataLen, uint16 DDDIDIndex)

The service interpreter for UDS 0x2C subfunction 0x03.

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

reqDataLen

the request data length

[in]

DDDIDIndex

DDDID index for reqeusted did

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2E_ConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x2E_ConditionCheck(Dcm_MsgContextType *pMsgContext, uint16 *did, uint16 *didIndex, Dcm_DidType *didType, Dcm_NegativeResponseCodeType *ErrorCode)

General condition checks for UDS 0x2E.

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

did

The requested did

[out]

didIndex

The index of requested did

[out]

didType

The type of requested did

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2E_SecureCoding

DCM_LOCAL Std_ReturnType Dcm_UDS0x2E_SecureCoding(boolean *secureCoding, Dcm_MsgContextType *pMsgContext, uint16 did, uint16 didIndex, Dcm_NegativeResponseCodeType *ErrorCode)

process secure coding for UDS 0x2E

Sync/Async

Synchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

secureCoding

whether the requested did is configured to be secure coding did

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

did

The requested did

[in]

didIndex

The index of requested did

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2E_WriteDspDataSignal

DCM_LOCAL Std_ReturnType Dcm_UDS0x2E_WriteDspDataSignal(const uint8 *reqData, Dcm_MsgLenType reqDataLen, const Dcm_DspDidType *DcmDspDidCfg, Dcm_ExtendedOpStatusType OpStatus, #if(STD_ON==DCM_DYN_DATA) boolean isDynamic, #endif Dcm_NegativeResponseCodeType *ErrorCode)

process dspData write for signal

Sync/Async

Depends on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

reqData

the requested data

[inout]

reqDataLen

the requested data length

[in]

DcmDspDidCfg

the configuration of requested did

[in]

OpStatus

current operation status

[in]

isDynamic

whether the requested did is a dynamic one

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x2E_NvMSignalHandle

DCM_LOCAL Std_ReturnType Dcm_UDS0x2E_NvMSignalHandle(NvM_BlockIdType blockId, Dcm_ExtendedOpStatusType OpStatus, uint8 *data, Dcm_NegativeResponseCodeType *ErrorCode)

handle signal that use nvm block to write

Sync/Async

Asynchronous

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

blockId

the configured nvm block id

[in]

OpStatus

current operation status

[in]

data

data to be written

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x2F_ConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x2F_ConditionCheck(Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode, uint16 *didIndex, boolean *isDynamic)

called to check conditions for UDS 0x2F

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

[out]

didIndex

the target did configuration index if condition check passes

[out]

isDynamic

whether the did is dynamic

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2F_FindDidControl

DCM_LOCAL Std_ReturnType Dcm_UDS0x2F_FindDidControl(uint16 did, const Dcm_DspDidType **didCfg, const Dcm_DspDidControlType **didControlCfg, uint16 *didIndex, Dcm_NegativeResponseCodeType *ErrorCode)

find did and did control configuration based on input did

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

did

the requested did

[out]

didCfg

the requested did configuration

[out]

didControlCfg

the requested did control configuration

[out]

didIndex

the configuration index of the did

[out]

ErrorCode

the nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2F_CheckTotalLength

DCM_LOCAL Std_ReturnType Dcm_UDS0x2F_CheckTotalLength(const Dcm_DspDidType *didCfg, const Dcm_DspDidControlType *didControlCfg, Dcm_MsgContextType *pMsgContext, boolean *isDynamic, Dcm_NegativeResponseCodeType *ErrorCode)

check to totalLength of request

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

didCfg

the requested did configuration

[in]

didControlCfg

the requested did control configuration

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

isDynamic

is the requested did dynamic

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2F_ControlRestore

DCM_LOCAL void Dcm_UDS0x2F_ControlRestore(uint16 didIndex, const Dcm_DspDidControlType *didControlCfg)

restore io control

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

didIndex

the requested did configuration index

[in]

didControlCfg

the requested did control configuration

Return type

void

Dcm_UDS0x2F_ControlHandle

DCM_LOCAL Std_ReturnType Dcm_UDS0x2F_ControlHandle(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, uint16 didIndex, const Dcm_DspDidControlType *didControlCfg, boolean isDynamic, Dcm_NegativeResponseCodeType *ErrorCode)

process io control including cmer and ioCtrlParam

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

didIndex

the requested did configuration index

[in]

didControlCfg

the requested did control configuration

[in]

isDynamic

is the requested did dynamic

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x2F_HandleCMER

DCM_LOCAL Std_ReturnType Dcm_UDS0x2F_HandleCMER(uint16 signalIndex, uint16 didIndex, const Dcm_DspDidControlType *didControlCfg, boolean isDynamic, Dcm_MsgContextType *pMsgContext, Dcm_MsgLenType *stateSize, uint16 *maskOffset)

process CMER

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

signalIndex

signal index

[in]

didIndex

the requested did configuration index

[in]

didControlCfg

the requested did control configuration

[in]

isDynamic

is the requested did dynamic

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

stateSize

the requested state size

[inout]

maskOffset

the current maskOffset

Return type

Std_ReturnType

Return values

Name

Description

E_OK

this signal shall be processed

E_NOT_OK

this signal shall be skipped

Dcm_UDS0x2F_HandleIoControl

DCM_LOCAL Std_ReturnType Dcm_UDS0x2F_HandleIoControl(uint8 *reqData, Dcm_ExtendedOpStatusType OpStatus, const Dcm_DspDataCfgType *DcmDspDataCfg, uint8 ioCtrlParam, uint16 stateOffset, Dcm_MsgLenType stateSize, const uint8 *controlMaskPtr, Dcm_NegativeResponseCodeType *ErrorCode)

process ioCtrlParam

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

reqData

requested data

[in]

OpStatus

current operation status

[in]

DcmDspDataCfg

DcmDspData configuration

[in]

ioCtrlParam

requested ioCtrl Parameter

[in]

stateOffset

requested state offset

[in]

stateSize

requested state size

[in]

controlMaskPtr

requested controlMask pointer

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_FindRoutineIndex

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_FindRoutineIndex(uint16 rid, uint16 *routineIndex, Dcm_NegativeResponseCodeType *ErrorCode)

find the configured rid index

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

rid

the input rid

[out]

routineIndex

the configuration index

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_HandleOBDRID

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_HandleOBDRID(Dcm_MsgContextType *pMsgContext, uint16 *totalLength, Dcm_NegativeResponseCodeType *ErrorCode)

process OBD type rid

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[inout]

totalLength

the total length of the response

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_SecureCoding

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_SecureCoding(Dcm_ExtendedOpStatusType OpStatus, uint16 routineIndex, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

process secure coding rid

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

routineIndex

target routine index

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_SecureCodingInitial

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_SecureCodingInitial(Dcm_MsgContextType *pMsgContext, uint16 routineIndex)

handle secure coding for DCM_INITIAL opstatus

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

routineIndex

target routine index

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_SecureCodingPending

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_SecureCodingPending(uint8 *resData)

handle secure coding for DCM_PENDING opstatus

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

resData

The output data

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_SecureCodingFinish

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_SecureCodingFinish(uint8 *resData)

finish secure coding

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[out]

resData

The output data

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_HandleSubFunction

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_HandleSubFunction(Dcm_ExtendedOpStatusType OpStatus, uint8 protocolId, uint16 routineIndex, uint8 subFunction, const Dcm_DspRoutineSubType **routineSub, Dcm_NegativeResponseCodeType *ErrorCode)

handle UDS 0x31 subfunctions, check condition

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[in]

protocolId

the current protocolId

[in]

routineIndex

routine configuration index

[in]

subFunction

the requested subfunction

[out]

routineSub

the requested subConfiguration of routine

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_CheckRoutineCommonAuth

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_CheckRoutineCommonAuth(const Dcm_DspCommonAuthorizationType *commonAuthorization, Dcm_NegativeResponseCodeType *ErrorCode)

check routine common authroization

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

commonAuthorization

routine configuration index

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_HandleRegularRID

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_HandleRegularRID(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, uint16 routineIndex, uint16 *totalLength, Dcm_NegativeResponseCodeType *ErrorCode)

process regular type rid

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

routineIndex

current routine configuration index

[out]

totalLength

the total length of the response

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_RoutineCallout

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_RoutineCallout(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, const Dcm_DspRoutineSubType *routineSub, uint16 routineIndex, uint16 *totalLength, Dcm_NegativeResponseCodeType *ErrorCode)

process routine callout

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

routineSub

the requested subConfiguration of routine

[in]

routineIndex

the routine configuration index

[out]

totalLength

the total length of the response

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_InSignalCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_InSignalCheck(Dcm_MsgLenType reqDataLen, const Dcm_DspRoutineSubType *routineSub, Dcm_NegativeResponseCodeType *ErrorCode)

check inSignal request length

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

reqDataLen

request data length

[in]

routineSub

the requested subConfiguration of routine

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x31_OutSignalCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x31_OutSignalCheck(const Dcm_DspRoutineSubType *routineSub, uint16 currentDataLength, uint16 *totalLength, Dcm_NegativeResponseCodeType *ErrorCode)

check outSignal response length

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

routineSub

the requested subConfiguration of routine

[in]

currentDataLength

current response data length

[out]

totalLength

the response length

[out]

ErrorCode

nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x34_ConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x34_ConditionCheck(Dcm_MsgContextType *pMsgContext, uint32 *memoryAddress, uint32 *memorySize, uint8 *memoryIdentifier, Dcm_NegativeResponseCodeType *ErrorCode)

check general conditions for UDS 0x34

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

memoryAddress

the requested memoryAddress

[out]

memorySize

the requested memorySize

[out]

memoryIdentifier

the configured memoryIdentifier

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x35_ConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x35_ConditionCheck(Dcm_MsgContextType *pMsgContext, uint32 *memoryAddress, uint32 *memorySize, uint8 *memoryIdentifier, Dcm_NegativeResponseCodeType *ErrorCode)

check general conditions for UDS 0x35

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

memoryAddress

the requested memoryAddress

[out]

memorySize

the requested memorySize

[out]

memoryIdentifier

the configured memoryIdentifier

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x36_ConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x36_ConditionCheck(Dcm_MsgContextType *pMsgContext, uint64 *dataLength, Dcm_NegativeResponseCodeType *ErrorCode)

check general conditions for UDS 0x36

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

dataLength

the data length of the following operations

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x36_HandleTransfer

DCM_LOCAL Std_ReturnType Dcm_UDS0x36_HandleTransfer(Dcm_ExtendedOpStatusType OpStatus, uint64 *dataLength, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

handle actual data transfer

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

dataLength

the data length of the following operations

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application requests the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x36_CheckSequence

DCM_LOCAL Std_ReturnType Dcm_UDS0x36_CheckSequence(Dcm_MsgLenType reqDataLen, uint8 blockSequenceCounter, Dcm_NegativeResponseCodeType *ErrorCode)

check the transfer sequence such as previous service request and block sequence counter

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

reqDataLen

the request data length

[in]

blockSequenceCounter

requested block sequence counter

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x36_ProcessRead

DCM_LOCAL Std_ReturnType Dcm_UDS0x36_ProcessRead(Dcm_ExtendedOpStatusType OpStatus, uint64 dataLength, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

process data transfer of read

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

dataLength

the data length of the following operations

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application requests the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x36_ProcessWrite

DCM_LOCAL Std_ReturnType Dcm_UDS0x36_ProcessWrite(Dcm_ExtendedOpStatusType OpStatus, uint64 dataLength, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

process data transfer of write

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

dataLength

the data length of the following operations

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application requests the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x38_ConvertToU64

DCM_LOCAL uint64 Dcm_UDS0x38_ConvertToU64(uint8 *data, uint8 size)

This function coverts data to uint64.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

data

the input uint8_N data

[in]

size

the size of the data

Return type

DCM_LOCAL uint64

Return values

Name

Description

the

result data

Dcm_UDS0x38_CheckCondition

DCM_LOCAL Std_ReturnType Dcm_UDS0x38_CheckCondition(Dcm_MsgContextType *pMsgContext, uint8 *dataFormatIdentifier, uint64 *fileSizeUncompressed, uint64 *fileSizeCompressed, Dcm_NegativeResponseCodeType *ErrorCode)

check general conditions for UDS 0x38

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

dataFormatIdentifier

requested dataFormatIdentifier

[out]

fileSizeUncompressed

requested fileSizeUncompressed

[out]

fileSizeCompressed

requested fileSizeCompressed

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x38_HandleModeOfOperation

DCM_LOCAL Std_ReturnType Dcm_UDS0x38_HandleModeOfOperation(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, uint8 modeOfOperation, uint8 dataFormatIdentifier, uint64 *fileSizeUncompressed, uint64 *fileSizeCompressed, uint64 *maxNumberOfBlockLength, uint64 *dirInfoLength, Dcm_NegativeResponseCodeType *ErrorCode)

check general conditions for UDS 0x38

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

modeOfOperation

requested modeOfOperation

[in]

dataFormatIdentifier

requested dataFormatIdentifier

[inout]

fileSizeUncompressed

requested fileSizeUncompressed

[inout]

fileSizeCompressed

requested fileSizeCompressed

[out]

maxNumberOfBlockLength

output maxNumberOfBlockLength

[out]

dirInfoLength

output dirInfoLength

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application requests the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x38_NonDeleteFileMode

DCM_LOCAL Std_ReturnType Dcm_UDS0x38_NonDeleteFileMode(uint8 modeOfOperation, uint64 fileSizeUncompressed, uint64 *maxNumberOfBlockLength, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

handle modeOfOperation that is not DeleteFile

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

modeOfOperation

requested modeOfOperation

[in]

fileSizeUncompressed

requested fileSizeUncompressed

[out]

maxNumberOfBlockLength

output maxNumberOfBlockLength

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x3D_CheckCondition

DCM_LOCAL Std_ReturnType Dcm_UDS0x3D_CheckCondition(Dcm_MsgContextType *pMsgContext, uint8 *memoryIdentifier, uint32 *memoryAddress, uint32 *memorySize, Dcm_NegativeResponseCodeType *ErrorCode)

check general conditions for UDS 0x3D

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

memoryIdentifier

the configured memoryIdentifier

[out]

memoryAddress

the requested memoryAddress

[out]

memorySize

the requested memorySize

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x85_ConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x85_ConditionCheck(Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

check general conditions for UDS 0x85

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x86_SetEvent

DCM_LOCAL Std_ReturnType Dcm_UDS0x86_SetEvent(Dcm_ProtocolType protocolType, Dcm_RoeEventType roeEvent, Dcm_RoeEventWindowTimeType eventWindowTime, Dcm_NegativeResponseCodeType *ErrorCode)

called to set the roeEvent to Dcm_RoeCtrl

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

protocolType

current protocolType

[in]

roeEvent

the input roeEvent

[in]

eventWindowTime

the input event window time

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x86_MainFunction

DCM_LOCAL void Dcm_UDS0x86_MainFunction(void)

called by Dcm_UDS0x86_CheckTimer to act as the roe scheduler

Sync/Async

TRUE

Reentrancy

Non Reentrant

Return type

void

Return values

Name

Description

void

Dcm_UDS0x86_ConditionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x86_ConditionCheck(Dcm_MsgContextType *pMsgContext, Dcm_RoeEventWindowTimeType *eventWindowTime, Dcm_NegativeResponseCodeType *ErrorCode)

general condition check for UDS 0x86

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

eventWindowTime

the requested event window time

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x86_SubFunctionCheck

DCM_LOCAL Std_ReturnType Dcm_UDS0x86_SubFunctionCheck(Dcm_MsgLenType reqDataLen, uint8 subFunction, Dcm_NegativeResponseCodeType *ErrorCode)

general checks for subfunction

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

reqDataLen

the requested data length

[in]

subFunction

the requested subFunction

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x86_01

DCM_LOCAL Std_ReturnType Dcm_UDS0x86_01(uint8 protocolId, Dcm_RoeCtrlType *roeCtrlPtr, Dcm_MsgContextType *pMsgContext, Dcm_RoeEventWindowTimeType eventWindowTime, Dcm_NegativeResponseCodeType *ErrorCode)

service interpreter for subFunction 0x1

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the current protocolId

[in]

roeCtrlPtr

the roe control Unit pointer

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

eventWindowTime

the requested eventWindowTime

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x86_03

DCM_LOCAL Std_ReturnType Dcm_UDS0x86_03(uint8 protocolId, Dcm_RoeCtrlType *roeCtrlPtr, Dcm_MsgContextType *pMsgContext, Dcm_RoeEventWindowTimeType eventWindowTime, Dcm_NegativeResponseCodeType *ErrorCode)

service interpreter for subFunction 0x3

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the current protocolId

[in]

roeCtrlPtr

the roe control Unit pointer

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

eventWindowTime

the requested eventWindowTime

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x86_04

DCM_LOCAL void Dcm_UDS0x86_04(Dcm_MsgContextType *pMsgContext)

service interpreter for subFunction 0x4

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

Return type

void

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x86_06

DCM_LOCAL void Dcm_UDS0x86_06(void)

service interpreter for subFunction 0x6

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x86_08

DCM_LOCAL Std_ReturnType Dcm_UDS0x86_08(uint8 protocolId, Dcm_RoeCtrlType *roeCtrlPtr, Dcm_MsgContextType *pMsgContext, Dcm_RoeEventWindowTimeType eventWindowTime, Dcm_NegativeResponseCodeType *ErrorCode)

service interpreter for subFunction 0x8

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the current protocolId

[in]

roeCtrlPtr

the roe control Unit pointer

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

eventWindowTime

the requested eventWindowTime

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x86_Store

DCM_LOCAL void Dcm_UDS0x86_Store(uint8 subFunction, Dcm_RoeEventWindowTimeType eventWindowTime, Dcm_MsgContextType *pMsgContext)

store roe info to NvM

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

subFunction

the requested subFunction

[in]

eventWindowTime

the requested eventWindowTime

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

Return type

void

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x86_HandleSubFunction

DCM_LOCAL Std_ReturnType Dcm_UDS0x86_HandleSubFunction(uint8 protocolId, Dcm_RoeCtrlType *roeCtrlPtr, Dcm_MsgContextType *pMsgContext, Dcm_RoeEventWindowTimeType eventWindowTime, Dcm_NegativeResponseCodeType *ErrorCode)

handle different subFunctions

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolId

the current protocolId

[in]

roeCtrlPtr

the roe control Unit pointer

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[in]

eventWindowTime

the requested eventWindowTime

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x86_SetRoeStatus

DCM_LOCAL void Dcm_UDS0x86_SetRoeStatus(Dcm_RoeStatusType RoeStatus)

set all roeStatus

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

RoeStatus

the current roeStatus

Return type

void

Dcm_UDS0x86_getRoePduIdAndProtocolId

DCM_LOCAL void Dcm_UDS0x86_getRoePduIdAndProtocolId(Dcm_ProtocolType protocolType, PduIdType *roePduId, uint8 *protocolId)

get roe PduId and protocolId based on requested protocolType

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolType

the requested protocolType

[out]

roePduId

the matched roePduId

[out]

protocolId

the matched roe protocolId

Return type

void

Dcm_UDS0x86_CheckService

DCM_LOCAL Std_ReturnType Dcm_UDS0x86_CheckService(Dcm_ProtocolType protocolType, Dcm_RoeCtrlType *roeCtrl, uint8 *reqData, Dcm_MsgLenType reqDataLen, Dcm_NegativeResponseCodeType *ErrorCode)

check Service and subService for requested response service

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

protocolType

the requested protocolType

[in]

roeCtrl

the matched roeCtrl unit

[in]

reqData

the requested service data

[in]

reqDataLen

the requested service data len

[out]

ErrorCode

the nrc to be sent

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x86_TriggerServiceRequest

void Dcm_UDS0x86_TriggerServiceRequest(Dcm_RoeCtrlType *roeCtrlPtr)

called when DTC Status change or did written to trigger established service request

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

roeCtrlPtr

the related roeCtrl unit

Return type

void

Dcm_UDS_CheckMemoryCondition

DCM_LOCAL Std_ReturnType Dcm_UDS_CheckMemoryCondition(const Dcm_DspMemoryType *MemoryCfg, uint8 AddAndLenFid, Dcm_MsgLenType byteNumber, uint8 *addByteNumber, uint8 *LenByteNumber, Dcm_NegativeResponseCodeType *ErrorCode)

Verify memory request condition such as addAndLengthformatId and request length.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

MemoryCfg

the target memory configuration ptr

[in]

AddAndLenFid

the requested address and length format id

[in]

byteNumber

the requested byte number

[out]

addByteNumber

the number of byte of address

[out]

LenByteNumber

the number of byte of memory length

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS_CheckMemoryRangeCheck

DCM_LOCAL Std_ReturnType Dcm_UDS_CheckMemoryRangeCheck(const Dcm_DspMemoryType *MemoryCfg, uint8 memoryAccess, uint32 MemoryAddress, uint32 MemorySize, uint8 *MemoryIdentifier, const Dcm_DspMemoryRangeInfoType **targetMemoryInfo)

Verify requested memory is within the configuration.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

MemoryCfg

the target memory configuration ptr

[in]

memoryAccess

read/write memory access

[in]

MemoryAddress

the requested address

[in]

MemorySize

the requested size

[out]

MemoryIdentifier

configured memory Id

[out]

targetMemoryInfo

the configured memory range info

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS_FindMemoryRange

DCM_LOCAL Std_ReturnType Dcm_UDS_FindMemoryRange(uint32 MemoryAddress, uint32 MemorySize, const Dcm_DspMemoryRangeInfoType *memoryInfo, uint16 infoNum, const Dcm_DspMemoryRangeInfoType **targetMemoryInfo)

find requested memory range info within the configuration

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

MemoryAddress

the requested address

[in]

MemorySize

the requested size

[in]

memoryInfo

memoryInfo to search from

[in]

infoNum

the number of memoryInfo

[out]

targetMemoryInfo

the configured memory range info

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS_CheckMemoryAuth

DCM_LOCAL Std_ReturnType Dcm_UDS_CheckMemoryAuth(const Dcm_DspMemoryRangeInfoType *memoryRangeInfo, Dcm_NegativeResponseCodeType *ErrorCode)

check target memory range session/security/modeRule

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

memoryRangeInfo

the requested memoryRangeInfo

[out]

ErrorCode

the nrc to send

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS_SignalHandleNvM

DCM_LOCAL Std_ReturnType Dcm_UDS_SignalHandleNvM(Dcm_ExtendedOpStatusType OpStatus, const Dcm_DspDataCfgType *dspData, uint8 *DestBuffer)

Calls NvM APIs to read data from nvm block.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

OpStatus

dspData

DestBuffer

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS_SignalHandleDefault

DCM_LOCAL Std_ReturnType Dcm_UDS_SignalHandleDefault(Dcm_ExtendedOpStatusType OpStatus, const Dcm_DspDataCfgType *dspData, uint8 *DestBuffer, uint16 *DataLength, Dcm_NegativeResponseCodeType *ErrorCode)

read data from signal using callouts(CS/SR/Callout)

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

OpStatus

dspData

DestBuffer

DataLength

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS_DynDidDefinedDID

DCM_LOCAL Std_ReturnType Dcm_UDS_DynDidDefinedDID(Dcm_ExtendedOpStatusType OpStatus, uint16 ConnectionId, uint16 DDDIdIndex, uint8 index, Dcm_MsgLenType* offset, uint8* DestBuffer, Dcm_MsgLenType* BufSize, #if (STD_ON == DCM_DDDID_CHECK_SOURCE) boolean* checkFail, #endif, Dcm_NegativeResponseCodeType* ErrorCode);

prepare for reading dynamic did

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

ConnectionId

the current connection

[in]

DDDIdIndex

the index of the dynamic defined did

[in]

index

the index of the dynamic defined source did

[inout]

offset

the input and resulting offset

[out]

DestBuffer

the did’s output data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

checkFail

whether the source did check fails

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS_DynDidDefinedDIDHandle

DCM_LOCAL Std_ReturnType Dcm_UDS_DynDidDefinedDIDHandle(Dcm_ExtendedOpStatusType OpStatus, uint16 DDDIdIndex, uint8 index, Dcm_MsgLenType *offset, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, Dcm_NegativeResponseCodeType *ErrorCode)

read dynamic did that is defined by source did

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

DDDIdIndex

the index of the dynamic defined did

[in]

index

the index of the dynamic defined source did

[inout]

offset

the input and resulting offset

[out]

DestBuffer

the did’s output data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS_DynDidDefinedAdd

DCM_LOCAL Std_ReturnType Dcm_UDS_DynDidDefinedAdd(Dcm_ExtendedOpStatusType OpStatus, uint16 DDDIdIndex, uint8 index, Dcm_MsgLenType *offset, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, Dcm_NegativeResponseCodeType *ErrorCode)

read dynamic did that is defined by memory address and memory size

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

DDDIdIndex

the index of the dynamic defined did

[in]

index

the index of the dynamic defined source did

offset

[out]

DestBuffer

the did’s output data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x10

Std_ReturnType Dcm_UDS0x10(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x10.

Sync/Async

Depending on Session Type and current session level

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application requests the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x10_CheckTimer

void Dcm_UDS0x10_CheckTimer(void)

Called by Dcm_MainFunction/DcmInternal_CheckTimer to deal with session timer.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x10_SessionChange

void Dcm_UDS0x10_SessionChange(void)

Called by Dcm_TpTxConfirmation for 0x10 service postivie response confirmation and ResetToDefaultSession to change the session.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x10_CheckSession

Std_ReturnType Dcm_UDS0x10_CheckSession(const Dcm_SesCtrlType *session, uint8 sessionNum, Dcm_NegativeResponseCodeType *ErrorCode)

Called by DsdInternal_RxIndication to check general service/subService session and most of th UDS services to check did, rid, memory, etc. session.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

session

the required session

[in]

sessionNum

the required session num

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x11

Std_ReturnType Dcm_UDS0x11(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x11.

Sync/Async

Depending on Configuration DcmSendRespPendOnRestart

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application requests the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x14

Std_ReturnType Dcm_UDS0x14(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x14.

Sync/Async

Depending on Dem

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x19

Std_ReturnType Dcm_UDS0x19(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x19.

Sync/Async

Depending on Dem

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x22

Std_ReturnType Dcm_UDS0x22(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x22.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application requests the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x23

Std_ReturnType Dcm_UDS0x23(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x23.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x24

Std_ReturnType Dcm_UDS0x24(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x24.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x27

Std_ReturnType Dcm_UDS0x27(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x27.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x27_CheckSecurity

Std_ReturnType Dcm_UDS0x27_CheckSecurity(const Dcm_SecLevelType *security, uint8 securityNum, Dcm_NegativeResponseCodeType *ErrorCode)

This function checks whether the current security State is supported.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

security

the requested security

[in]

securityNum

the requested security number

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x27_CheckTimer

void Dcm_UDS0x27_CheckTimer(void)

This function checks the security timer and decrease counter.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x27_SetAttemptCounter

void Dcm_UDS0x27_SetAttemptCounter(Dcm_OpStatusType OpStatus, uint8 securityIndex, uint8 attemptCounter)

This function calls the SetAttemptCounterFnc and actually sets the attemptCounter.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

securityIndex

the cofigured securityRow index

[in]

attemptCounter

the input attemptCounter to set

Return type

void

Dcm_UDS0x27_GetAttemptCounter

void Dcm_UDS0x27_GetAttemptCounter(void)

This function is called by Dcm_MainFunction to process the getAttemptCounter.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x27_SetAttemptCounterHandle

void Dcm_UDS0x27_SetAttemptCounterHandle(void)

This function is called by Dcm_MainFunction to process the setAttemptCounter.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Return type

void

Dcm_UDS0x31

Std_ReturnType Dcm_UDS0x31(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x31.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x34

Std_ReturnType Dcm_UDS0x34(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x34.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x35

Std_ReturnType Dcm_UDS0x35(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x35.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x37

Std_ReturnType Dcm_UDS0x37(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x37.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x38

Std_ReturnType Dcm_UDS0x38(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x38.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application requests the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x85

Std_ReturnType Dcm_UDS0x85(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x85.

Sync/Async

Depending on Dem

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x85_EnableDTCSetting

void Dcm_UDS0x85_EnableDTCSetting(void)

enables the DTC setting (session change or 85 req)

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x85_MainFunction

void Dcm_UDS0x85_MainFunction(void)

enables the DTC setting when mode rule fails

Sync/Async

TRUE

Reentrancy

Non Reentrant

Return type

void

Dcm_UDS0x86

Std_ReturnType Dcm_UDS0x86(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x86.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2A

Std_ReturnType Dcm_UDS0x2A(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x2A.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x2A_MainFunction

void Dcm_UDS0x2A_MainFunction(void)

Called by Dcm_MainFunction to deal with 2A scheduler counter and message sending.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x2A_StatusChangeHandle

void Dcm_UDS0x2A_StatusChangeHandle(void)

Called by UDS 0x10, 0x29 and 0x27 to notify the session/security/authenticationState change so as to check the access right again. Stop the periodic transmission if access right is lost.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x2C

Std_ReturnType Dcm_UDS0x2C(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x2C.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x2E

Std_ReturnType Dcm_UDS0x2E(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x2E.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x2E_WriteDspData

Std_ReturnType Dcm_UDS0x2E_WriteDspData(Dcm_ExtendedOpStatusType OpStatus, const Dcm_DspDidType *DcmDspDidCfg, const uint8 *reqData, Dcm_MsgLenType reqDataLen, Dcm_NegativeResponseCodeType *ErrorCode)

Called to write did data.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

DcmDspDidCfg

the DcmDspDid configuration

[in]

reqData

the requested data to write

[in]

reqDataLen

the requested data length to write

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x2E_Init

void Dcm_UDS0x2E_Init(void)

Called by Dcm_Init to initialize secure coding did offset.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x2F

Std_ReturnType Dcm_UDS0x2F(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x2F.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS0x2F_StatusChangeHandle

void Dcm_UDS0x2F_StatusChangeHandle(void)

Called by UDS 0x2F and 0x10 to notify session/security/authenticationState change and call returnControlToEcu accordingly if it is no long supported in current status.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS_CheckMemory

Std_ReturnType Dcm_UDS_CheckMemory(const Dcm_DspMemoryType *MemoryCfg, uint8 AddAndLenFid, Dcm_MsgLenType byteNumber, uint8 *reqData, uint8 *MemoryIdentifier, uint32 *MemoryAddress, uint32 *MemorySize, uint8 memoryAccess, Dcm_NegativeResponseCodeType *ErrorCode)

Called by UDS 0x2C, 0x3D, 0x23, 0x34, 0x35 to check whether the input memoryAdd and memorySize is valid.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

MemoryCfg

the target memory configuration ptr

[in]

AddAndLenFid

the requested address and length format id

[in]

byteNumber

the requested address and length format id

[in]

reqData

the input request data

[out]

MemoryIdentifier

the configured memoryIdentifier (if available)

[out]

MemoryAddress

the extracted memoryAddress from input data

[out]

MemorySize

the extracted MemorySize from input data

memoryAccess

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS_SetBlockLength

void Dcm_UDS_SetBlockLength(uint32 BlockLength, uint8 *ResData, Dcm_MsgLenType *ResDataLen)

Called by UDS 0x34, 0x35 to set the lengthFormatIdentifier and blockLength to resData accordingly.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

BlockLength

the input blockLength

[out]

ResData

the output data

[out]

ResDataLen

the response data length

Return type

void

Dcm_UDS0x36

Std_ReturnType Dcm_UDS0x36(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x36.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application requests the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS_InitTransferData

void Dcm_UDS_InitTransferData(Dcm_TransferStatusType transferStatus, uint8 memoryIdentifier, uint32 memoryAddress, uint32 blockLength, uint32 memorySize)

Called by UDS 0x34, 0x35 and 0x37 to initialize transferData status.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

transferStatus

current transfer status

[in]

memoryIdentifier

configured memory id

[in]

memoryAddress

input memory address

[in]

blockLength

max blockLength returned by callout

[in]

memorySize

input memory size

Return type

void

Dcm_UDS0x3D

Std_ReturnType Dcm_UDS0x3D(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x3D.

Sync/Async

Depending on Application

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application requests the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x3E

Std_ReturnType Dcm_UDS0x3E(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x3E.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS_CheckReadWriteDid

Std_ReturnType Dcm_UDS_CheckReadWriteDid(uint16 ConnectionId, uint16 Did, const Dcm_DspDidReadWriteType *DcmDspDidReadWrite, Dcm_NegativeResponseCodeType *ErrorCode)

Called by UDS 0x22, 0x24, 0x2A, 0x2C and 0x2E to check whether this did is supported to read/write in the current session/security/mode/authenticationState.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connectionId

[in]

Did

the input did

[out]

DcmDspDidReadWrite

did’s read/write configuration

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS_FindDid

Std_ReturnType Dcm_UDS_FindDid(uint16 Did, Dcm_DidType *didType, uint16 *DidIndex, Dcm_NegativeResponseCodeType *ErrorCode)

This function gets the configured did index, also applying to rangeDid and OBDDid.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

Did

the input did

[out]

didType

the type of did

[out]

DidIndex

the did configuration index

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

Dcm_UDS_SignalHandle

Std_ReturnType Dcm_UDS_SignalHandle(Dcm_ExtendedOpStatusType OpStatus, uint16 DidIndex, uint8 *DestBuffer, uint16 *DataLength, Dcm_NegativeResponseCodeType *ErrorCode)

Called by UDS 0x22/0x2A/0x2F to read data in did’s signals.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

DidIndex

the input did index

[out]

DestBuffer

address to output the signal data

[out]

DataLength

the data length of did (only for dynamic ones)

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS_DidReadHandle

Std_ReturnType Dcm_UDS_DidReadHandle(Dcm_ExtendedOpStatusType OpStatus, uint16 DidIndex, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, Dcm_NegativeResponseCodeType *ErrorCode)

Called by UDS 0x22 to read data in did’s signals.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

DidIndex

the input did index

[out]

DestBuffer

address to output the signal data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

Dcm_UDS_DynDidHandle

Std_ReturnType Dcm_UDS_DynDidHandle(Dcm_ExtendedOpStatusType OpStatus, uint16 ConnectionId, uint16 DDDIdIndex, uint8 *DestBuffer, Dcm_MsgLenType *BufSize, #if(STD_ON==DCM_DDDID_CHECK_SOURCE) boolean *checkFail, #endif Dcm_NegativeResponseCodeType *ErrorCode)

Called by UDS 0x22 and 0x2A to read data of a dynamic did.

Sync/Async

Depending on Application

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[in]

ConnectionId

the current connection

[in]

DDDIdIndex

the index of the dynamic defined did

[out]

DestBuffer

the did’s output data

[inout]

BufSize

When the function is called this parameter contains the maximum number of data bytes that can be written to the buffer. The function returns the actual number of written data bytes in this parameter.

[out]

checkFail

whether the source did check fails

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was unsuccessful

DCM_E_PENDING

Request is not yet finished

DCM_E_FORCE_RCRRP

Application request the transmission of a response Response Pending (NRC 0x78)

Dcm_UDS0x86_Init

void Dcm_UDS0x86_Init(void)

called by Dcm_Init to initialize roe status, only apply for nvm stored roe data

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x86_TriggerServiceRequest

void Dcm_UDS0x86_TriggerServiceRequest(Dcm_RoeCtrlType *roeCtrlPtr)

called when DTC Status change or did written to trigger established service request

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

roeCtrlPtr

the related roeCtrl unit

Return type

void

Dcm_UDS0x86_CheckTimer

void Dcm_UDS0x86_CheckTimer(void)

called by Dcm_MainFunction to check scheduler rate

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x28

Std_ReturnType Dcm_UDS0x28(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x28.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x28_TxConfirmation

void Dcm_UDS0x28_TxConfirmation(uint16 ConnectionId)

This function switch the comMode and calls the releated function when txConfirmation.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connectionId

Return type

void

Dcm_UDS0x28_SessionChange

void Dcm_UDS0x28_SessionChange(void)

This function is called when session is changed and it enables the communication accordingly.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x28_MainFunction

void Dcm_UDS0x28_MainFunction(void)

This function is called by Dcm_MainFunction when UDS 0x28 is configured with modeRule, it checks whether the mode rule is no longer effective and enables the communication again.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x29

Std_ReturnType Dcm_UDS0x29(Dcm_ExtendedOpStatusType OpStatus, Dcm_MsgContextType *pMsgContext, Dcm_NegativeResponseCodeType *ErrorCode)

The service interpreter for UDS 0x29.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

OpStatus

Indicates the current operation status

[inout]

pMsgContext

Message-related information for one diagnostic protocol identifier. The pointers in pMsgContext shall point behind the SID.

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x29_Init

void Dcm_UDS0x29_Init(void)

This function initialize the variables used by UDS 0x29.

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x29_MainFunction

void Dcm_UDS0x29_MainFunction(void)

called by Dcm_MainFunction to handle timer

Sync/Async

TRUE

Reentrancy

Reentrant

Return type

void

Dcm_UDS0x29_AuthenticationCheck

Std_ReturnType Dcm_UDS0x29_AuthenticationCheck(uint16 ConnectionId, const uint8 *subRoleRef, uint8 subRoleRefNum, Dcm_NegativeResponseCodeType *ErrorCode)

called by DsdInternal_RxIndication to verify service and subfunction authentication

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection

[in]

subRoleRef

the input role ref

[in]

subRoleRefNum

the number of input role ref

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Request was successful

E_NOT_OK

Request was not successful

Dcm_UDS0x29_SetDeAuthenticate

void Dcm_UDS0x29_SetDeAuthenticate(uint16 ConnectionId)

This function switches the authenticationStatus to DCM_DEAUTHENTICATED and restore status accordingly.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connectionId

Return type

void

Dcm_UDS0x29_SetAuthenticationCtrlOn

void Dcm_UDS0x29_SetAuthenticationCtrlOn(uint16 ConnectionId)

This function is called by Dcm_TpTxConfirmation to actually set the authenticationState on.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection Id

Return type

void

Dcm_UDS0x29_SetAuthenticationCtrlOff

void Dcm_UDS0x29_SetAuthenticationCtrlOff(uint16 ConnectionId)

This function is called by Dcm_StartOfReception to actually set the authenticationState off.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection Id

Return type

void

Dcm_UDS0x29_DidAuthenticationCheck

Std_ReturnType Dcm_UDS0x29_DidAuthenticationCheck(uint16 ConnectionId, uint16 Did, const Dcm_DspDidReadWriteType *didReadWrite, const Dcm_DspDidControlType *didControl, Dcm_NegativeResponseCodeType *ErrorCode)

called by UDS 0x22, 0x24, 0x2A, 0x2C, 0x2E, 0x2F to check did authentication

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection

[in]

Did

the input did

[in]

didReadWrite

the input did read/write info

[in]

didControl

the input did control info

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

Dcm_UDS0x29_RidAuthenticationCheck

Std_ReturnType Dcm_UDS0x29_RidAuthenticationCheck(uint16 ConnectionId, uint16 RoutineCfgIdx, Dcm_NegativeResponseCodeType *ErrorCode)

called by UDS 0x31 to check rid authentication

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

ConnectionId

the current connection

[in]

RoutineCfgIdx

the target rid configuration index

[out]

ErrorCode

If the operation <Module>_<DiagnosticService> returns value E_NOT_OK, the Dcm module shall send a negative response with NRC code equal to the parameter ErrorCode parameter value.

Return type

Std_ReturnType

配置(configuration)

DcmGeneral

配置一些例如主函数周期的通用信息,部分配置项后续有深入描述,可以参考后面的描述

Configure some general information such as the main function cycle. Some configuration items will be described in detail later, and you can refer to the subsequent descriptions.

  • DcmDDDIDStorage: 开启后支持存储动态DID定义信息

    DcmDDDIDStorage: When enabled, it supports storing dynamic DID definition information.

  • DcmDevErrorDetect: 开启后开启错误检测

    DcmDevErrorDetect: When enabled, error detection is turned on.

  • DcmEnableSecurityEventReporting: 开启后开启IdsM错误报告

    DcmEnableSecurityEventReporting: When enabled, IdsM error reporting is turned on.

  • DcmHeaderFileInclusion: 可以自定义头文件包含

    DcmHeaderFileInclusion: Custom header file inclusion is allowed.

  • DcmRespondAllRequest: 开启后支持响应所有请求,否则不会响应0x40-0x7F/0xC0-0xFF为SID的请求

    DcmRespondAllRequest: When enabled, it supports responding to all requests; otherwise, it will not respond to requests with SID in the range of 0x40-0x7F/0xC0-0xFF.

  • DcmS3ServerTimeoutOverwrite: 可以改写默认的S3Server超时时间

    DcmS3ServerTimeoutOverwrite: It can overwrite the default S3Server timeout period.

  • DcmTaskTime: Dcm主函数周期时间

    DcmTaskTime: The cycle time of the Dcm main function.

  • DcmVersionInfoApi: 开启后提供获取版本信息的接口

    DcmVersionInfoApi: When enabled, an interface for obtaining version information is provided.

  • DcmVinRef: 在Dcm_GetVin时获取VIN使用的Did

    DcmVinRef: The Did used to obtain VIN when calling Dcm_GetVin.

  • DcmDDDIDStorageBlockIdRef: DcmDDDIDStorage开启后需配置,对应存储时使用的NvMBlockId

    DcmDDDIDStorageBlockIdRef: It needs to be configured after DcmDDDIDStorage is enabled, corresponding to the NvMBlockId used for storage.

  • DcmMasterEcucPartitionRef: 多核时Dcm主星所在的分区

    DcmMasterEcucPartitionRef: The partition where the Dcm master core is located in a multi-core system.

DcmGeneral

DcmGeneral

头文件包含(Header File Inclusion)

在使用用户自定义的Callout接口时,通常函数的声明位于其他文件,需要在Dcm_Cfg.c包含对应头文件,可以在DcmGeneral/DcmHeaderFileInclusion中添加,如图,使用+号添加对应文件,直接写上文件名即可

When using user-defined Callout interfaces, the declarations of related functions are usually located in other files. It is necessary to include the corresponding header files in Dcm_Cfg.c. This can be done by adding them in DcmGeneral/DcmHeaderFileInclusion. As shown in the figure, click the “+” sign to add the corresponding file, and just enter the file name directly.

DcmHeaderFileInclusion

DcmHeaderFileInclusion

多核主分区(Multi-core Main Partition)

在多核系统中,Dcm主要分布在一个分区,仅在涉及到不同总线发送报文时会需要部署卫星在其他分区来执行发送,因此在多核场景下需要分配主星到指定分区中,如图,直接选中对应的分区即可

In a multi-core system, Dcm is mainly distributed in one partition. Satellites need to be deployed in other partitions to send messages only when messages need to be sent via different buses. Therefore, in a multi-core scenario, it is necessary to assign the master core to a specified partition. As shown in the figure, you can directly select the corresponding partition.

DcmMasterEcucPartitionRef

DcmMasterEcucPartitionRef

IdsM报告(IdsM Reporting)

开启IdsM报告,在对应情况下报告错误给指定IdsM事件。如图,先打开DcmEnableSecurityEventReporting开关,再配置DcmSecurityEventRefs,配置需要的事件。

Enable IdsM reporting to report errors to specified IdsM events under corresponding circumstances. As shown in the figure, first turn on the DcmEnableSecurityEventReporting switch, then configure DcmSecurityEventRefs and set the required events.

IdsMReport-1

IdsMReport-1

IdsMReport-2

IdsMReport-2

配置协议(Configuration Protocol)

  1. 配置DcmDslProtocolRow。

    Configure DcmDslProtocolRow.

  2. 配置DcmDslProtocolPriority,数组越小优先级越高。

    Configure DcmDslProtocolPriority. The smaller the array, the higher the priority.

  3. 选择DcmDslProtocolType,选择协议类型,UDS则为DCM_UDS_ON_XXX,OBD则为DCM_OBD_ON_XXX。

    PERIODICTRANS和ROE分别对应2A和86服务的处理协议,新版本中86服务处理不再与常规协议合并,而是拥有独立协议。

    对于2A服务的处理仍在DcmDslMainConnection中关联,可以选择不创造独立协议,服务相关内容后续会详细介绍配置。

    Select DcmDslProtocolType. For the protocol type, UDS corresponds to DCM_UDS_ON_XXX, and OBD corresponds to DCM_OBD_ON_XXX.

    PERIODICTRANS and ROE correspond to the processing protocols of Service 2A and Service 86 respectively. In the new version, the processing of Service 86 is no longer merged with the regular protocol but has an independent protocol.

    The processing of Service 2A is still associated in DcmDslMainConnection, and you can choose not to create an independent protocol. The configuration related to the service will be introduced in detail later.

  4. 可选配置DcmTimStrP2ServerAdjust/DcmTimStrP2StarServerAdjust,这两个配置项用于调整P2Servre和P2StarServer的时间。

    比如P2Server为50ms,P2ServerAdjust配成5ms,那实际在45ms,Dcm就会尝试发出NRC 0x78,这是为了避免在总线上花额外时间导致超出P2Server。

    Optionally configure DcmTimStrP2ServerAdjust/DcmTimStrP2StarServerAdjust. These two configuration items are used to adjust the time of P2Server and P2StarServer.

    For example, if P2Server is 50ms and P2ServerAdjust is set to 5ms, then Dcm will try to send NRC 0x78 at 45ms. This is to avoid exceeding P2Server due to extra time spent on the bus.

  5. 配置DcmDemClientRef,当前为必配项,需要关联DemClient,用来在接口中使用,获取对应client的数据内容。

    Configure DcmDemClientRef. Currently, it is a mandatory configuration item, and it needs to be associated with DemClient for use in the interface to obtain the data content of the corresponding client.

  6. 配置DcmDslBuffer,指定其大小,并在DcmDslProtocolRxBufferRef和DcmDslProtocolTxBufferRef中关联,注意同一协议的RxBuffer和TxBuffer不能相同。

    Configure DcmDslBuffer, specify its size, and associate it in DcmDslProtocolRxBufferRef and DcmDslProtocolTxBufferRef. Note that the RxBuffer and TxBuffer of the same protocol cannot be the same.

  7. 配置DcmDslProtocolSIDTable,选择对应的服务表,选择后该协议只能请求服务表中配置的服务。

    Configure DcmDslProtocolSIDTable and select the corresponding service table. After selection, the protocol can only request the services configured in the service table.

  8. 对于非PERIODICTRANS的协议类型,需配置DcmDslMainConnection,用于接收诊断请求和发送诊断回复。

    For protocol types other than PERIODICTRANS, it is necessary to configure DcmDslMainConnection for receiving diagnostic requests and sending diagnostic replies.

  9. DcmDslProtocolComMChannelRef选择该协议对应的ComM通道,用于控制通信。

    DcmDslProtocolComMChannelRef selects the ComM channel corresponding to the protocol for communication control.

  10. 至少需要配置一个DcmDslProtocolRx,通过DcmDslProtocolRxAddrType选择寻址模式,通过DcmDslProtocolRxPduRef选择对应的RxPdu,其透过PduR路由会与IF模块的PDU进行关联。

    通常来说需要配置一个物理寻址的Rx以及一个功能寻址的Rx。

    At least one DcmDslProtocolRx needs to be configured. Select the addressing mode through DcmDslProtocolRxAddrType, and select the corresponding RxPdu through DcmDslProtocolRxPduRef, which will be associated with the PDU of the IF module through PduR routing.

    Generally speaking, it is necessary to configure one Rx for physical addressing and one Rx for functional addressing.

  11. 对于需要回复的协议需要配置一个DcmDslProtocolTx,通过DcmDslProtocolTxPduRef选择对应的TxPdu,其透过PduR路由会与IF模块的PDU进行关联。

    For protocols that need to reply, it is necessary to configure one DcmDslProtocolTx. Select the corresponding TxPdu through DcmDslProtocolTxPduRef, which will be associated with the PDU of the IF module through PduR routing.

DcmDslProtocolRow

DcmDslProtocolRow

DcmDslProtocolRx_Phy

DcmDslProtocolRx_Phy

DcmDslProtocolRx_Func

DcmDslProtocolRx_Func

DcmDslProtocolTx

DcmDslProtocolTx

Queue队列请求配置(Queue Request Configuration)

打开该开关即可。

Just turn on this switch.

DcmDslProtocolRequestQueued

DcmDslProtocolRequestQueued

DcmDslCallbackDCMRequestService

配置后在标准RTE下会输出接口至封装文件提供到SWC,非RTE下则为callout接口,用于在启动和停止协议时询问许可,可以配置多个,多个时则会按顺序一一调用。

After configuration, under the standard RTE, the interface will be output to the packaging file and provided to the SWC. Under non-RTE, it will be a callout interface, which is used to ask for permission when starting and stopping the protocol. Multiple ones can be configured, and when there are multiple, they will be called one by one in sequence.

DcmDslCallbackDCMRequestService

DcmDslCallbackDCMRequestService

DcmDslCallbackDCMRequestService

配置Notification接口(Configure Notification Interface)

可以配置DcmDsdServiceRequestManufacturerNotification和DcmDsdServiceRequestSupplierNotification,配置后在标准RTE下会输出接口至封装文件提供到SWC,非RTE下则为callout接口。

DcmDsdServiceRequestManufacturerNotification and DcmDsdServiceRequestSupplierNotification can be configured. After configuration, under the standard RTE, the interfaces will be output to the packaging file and provided to the SWC; under non-RTE, they will be callout interfaces.

用于在接收请求时调用indication接口,检查是否接收该服务请求,在请求处理完成后调用Confirmation接口,用于通知服务处理完成的结果。

They are used to call the indication interface when a request is received to check whether to accept the service request, and call the Confirmation interface after the request processing is completed to notify the result of the service processing completion.

Notification

Notification

配置服务表(Configure Service Table)

  1. 配置DcmDsdServiceTable

    Configure DcmDsdServiceTable

  2. 配置DcmDsdService,提供DcmDsdSidTabServiceId,如果是内部实现的服务则无需配置DcmDsdSidTabFnc,如配置则视为不使用内部实现,而是自行实现。

    Configure DcmDsdService and provide DcmDsdSidTabServiceId. For internally implemented services, there is no need to configure DcmDsdSidTabFnc; if configured, it is considered that the internal implementation is not used, and instead, a custom implementation is adopted.

  3. 可以通过配置DcmDsdServiceUsed,来控制是否启用该服务,还有其他地方例如DcmDspDid也可以配置控制是否启用,后续则不再赘述。

    Whether to enable the service can be controlled by configuring DcmDsdServiceUsed. There are also other places such as DcmDspDid where the enablement can be configured, which will not be repeated later.

  4. DcmDsdSidTabSubfuncAvail通常不可配置,会根据服务是否有子服务来决定,如果是非标准服务,则可以自行选择。

    DcmDsdSidTabSubfuncAvail is usually not configurable and is determined by whether the service has sub-services. For non-standard services, it can be selected manually.

  5. DcmDsdSidTabAddressingFormat可以选择寻址模式,默认为物理+功能寻址,在对应寻址模式才可以请求该服务。

    DcmDsdSidTabAddressingFormat can select the addressing mode, which defaults to physical + functional addressing. The service can only be requested in the corresponding addressing mode.

  6. DcmDsdSidTabP4ServerMax为可选配置

    DcmDsdSidTabP4ServerMax is an optional configuration.

  7. DcmDsdServiceRoleRef/DcmDsdSidTabSecurityLevelRef/DcmDsdSidTabSessionLevelRef分别对应安全认证/安全级/会话级要求,仅在条件满足时才可以请求服务,否则会发送相应NRC。

    DcmDsdServiceRoleRef / DcmDsdSidTabSecurityLevelRef / DcmDsdSidTabSessionLevelRef correspond to the requirements for security authentication, security level, and session level respectively. The service can only be requested when the conditions are met; otherwise, the corresponding NRC will be sent.

  8. 可选配置DcmDsdSidTabModeRuleRef,配置后服务仅在对应模式规则成立时可以请求。

    Optionally configure DcmDsdSidTabModeRuleRef. After configuration, the service can only be requested when the corresponding mode rule is satisfied.

  9. 对于拥有子服务的服务可以配置DcmDsdSubService,需提供DcmDsdSubServiceId子服务ID。

    For services with sub-services, DcmDsdSubService can be configured, and the DcmDsdSubServiceId (sub-service ID) needs to be provided.

  10. 同样可以通过DcmDsdSubServiceAddressingFormat选择寻址模式。

    Similarly, the addressing mode can be selected through DcmDsdSubServiceAddressingFormat.

  11. 同样可以通过DcmDsdSubServiceRoleRef/DcmDsdSubServiceSecurityLevelRef/DcmDsdSubServiceSessionLevelRef选择需要满足的条件。

    Similarly, the conditions that need to be met can be selected through DcmDsdSubServiceRoleRef / DcmDsdSubServiceSecurityLevelRef / DcmDsdSubServiceSessionLevelRef.

DcmDsdServiceTable

DcmDsdServiceTable

DcmDsdService

DcmDsdService

DcmDsdSubService

DcmDsdSubService

大小端配置(Endian Configuration)

在DID, PID和Routine中可以通过DcmDspDataEndianness, DcmDspPidDataEndianness和DcmDspRoutineSignalEndianness(可配置在requestResult/Start/Stop的In/Out Signal中)配置大小端。

In DID, PID, and Routine, endianness can be configured through DcmDspDataEndianness, DcmDspPidDataEndianness, and DcmDspRoutineSignalEndianness (configurable in the In/Out Signals of requestResult/Start/Stop).

在未配置时根据DcmDspDataDefaultEndianness的配置决定

If not configured, it is determined by the configuration of DcmDspDataDefaultEndianness.

DcmDspDataDefaultEndianness

DcmDspDataDefaultEndianness

DcmDspPidDataEndianness

DcmDspPidDataEndianness

DcmDspRoutineSignalEndianness

DcmDspRoutineSignalEndianness

DSP通用配置(DSP General Configuration)

除默认大小端以外,DSP还有一些其他的通用配置,具体的内容可参考各个配置项的具体描述。

In addition to the default endianness, DSP has some other general configurations. For specific contents, please refer to the detailed description of each configuration item.

DcmDsp

DcmDsp

会话配置 (UDS 0x10)(Session Configuration (UDS 0x10))

配置UDS 0x10及对应子服务时需配置对应的DcmDspSessionRow, 其DcmDspSessionLevel和子服务ID应为一一对应。

When configuring UDS 0x10 and its corresponding sub-services, the corresponding DcmDspSessionRow must be configured, and the DcmDspSessionLevel and sub-service ID should be in a one-to-one correspondence.

除此之外还需配置该会话的P2Server和P2StarServer的时间,以及该session与boot的关系,常规会话选择DCM_NO_BOOT,需要跳转至boot的则选择BOOT相关,需要由APP回复的则选择RESPAPP相关

In addition, it is necessary to configure the P2Server and P2StarServer times for the session, as well as the relationship between the session and the boot. For regular sessions, select DCM_NO_BOOT; for those that need to jump to the boot, select BOOT-related options; and for those that need to be replied by the APP, select RESPAPP-related options.

DcmDspSessionRow

DcmDspSessionRow

安全级配置 (UDS 0x27)(Security Level Configuration (UDS 0x27))

配置UDS 0x27及对应子服务时需配置对应的DcmDspSecurityRow,其DcmDspSecurityLevel和子服务ID根据规则对应((SubFunction+1)/2 向下取整 == DcmDspSecurityLevel)

When configuring UDS 0x27 and its corresponding sub-services, the corresponding DcmDspSecurityRow must be configured. The DcmDspSecurityLevel and sub-service ID correspond according to the rule: ( (SubFunction + 1) / 2, rounded down ) == DcmDspSecurityLevel.

除此之外通常需配置Seed/Key长度,可尝试次数,超过次数后延迟时间,上电延迟时间。

In addition, it is usually necessary to configure the Seed/Key length, the number of allowed attempts, the delay time after exceeding the number of attempts, and the power-on delay time.

还有接口相关配置,可以通过DcmDspSecurityUsePort选择接口实现方式。

There are also interface-related configurations, and the interface implementation method can be selected through DcmDspSecurityUsePort.

可以通过DcmDspSecurityAttemptCounterEnabled控制是否需要读写计数,通过配置DcmDspSecurityADRSize决定是否需要AccessDataRecord以及其长度。

Whether read/write counting is required can be controlled through DcmDspSecurityAttemptCounterEnabled, and whether AccessDataRecord is needed and its length can be determined by configuring DcmDspSecurityADRSize.

DcmDspSecurityRow

DcmDspSecurityRow

复位配置 (UDS 0x11)(Reset Configuration (UDS 0x11))

配置UDS 0x11及对应子服务时需配置对应的DcmDspResetRow,其DcmDspEcuResetId和子服务ID应为一一对应。

When configuring UDS 0x11 and its corresponding sub-services, the corresponding DcmDspResetRow must be configured, and the DcmDspEcuResetId and sub-service ID should be in a one-to-one correspondence.

还可以配置DcmResponseToEcuReset决定复位服务的回复是在复位前还是在复位后。

In addition, DcmResponseToEcuReset can be configured to determine whether the response to the reset service is sent before or after the reset.

DcmDspEcuResetRow

DcmDspEcuResetRow

DID配置 (UDS 0x22/0x24/0x2A/0x2C/0x2E/0x2F)(DID Configuration (UDS 0x22/0x24/0x2A/0x2C/0x2E/0x2F))

这些UDS服务会对配置的DID进行操作,请求时会提供DID,其与DcmDspDidIdentifier应为一一对应(除0x2A服务仅提供DID的后一byte,前一byte始终为0xF2)。

These UDS services operate on the configured DID. When making a request, the DID is provided, and it should have a one-to-one correspondence with DcmDspDidIdentifier (except for the 0x2A service, which only provides the latter byte of the DID, with the former byte always being 0xF2).

DID还需通过DcmDspDidSize配置其长度,通过DcmDspDidUsePort配置接口实现方式,由以下选择方式:

The DID also needs to have its length configured through DcmDspDidSize and the interface implementation method configured through DcmDspDidUsePort, with the following options:

  • 选择USE_DATA_ELEMENT_SPECIFIC_INTERFACES则对应使用各个DcmDspData的接口

    Selecting USE_DATA_ELEMENT_SPECIFIC_INTERFACES corresponds to using the interfaces of each DcmDspData.

  • 选择SR/NV则根据DcmDspData的数据类型组成一个结构体作为唯一数据成员

    Selecting SR/NV forms a structure as the only data member based on the data type of DcmDspData.

  • 选择BndM则使用同样数据类型,但通过调用BndM的接口进行,此时则需配置DcmDspDidBndMBlockIdRef

    Selecting BndM uses the same data type but through calling BndM’s interfaces, in which case DcmDspDidBndMBlockIdRef needs to be configured.

DID还需要关联一个DcmDspDidInfo,其提供了该DID读取/写入/控制的权限,后续会详细描述。

The DID also needs to be associated with a DcmDspDidInfo, which provides permissions for reading/writing/controlling the DID. Details will be described later.

DcmDspDid

DcmDspDid

一个DID可以配置多个DcmDspDidSignal,每个Signal需提供其Offset,以及关联的DcmDspData,后续会进行描述。

A DID can be configured with multiple DcmDspDidSignals. Each Signal needs to provide its Offset and the associated DcmDspData, which will be described later.

DcmDspDidSignal

DcmDspDidSignal

DID DATA配置(DID DATA Configuration)

DidSignal需要关联DcmDspData,Data需要配置其数据类型,接口类型,如果为队列则需配置其长度。

A DidSignal needs to be associated with DcmDspData. For the Data, it is necessary to configure its data type and interface type. If it is a queue, its length also needs to be configured.

接口类型(DcmDspDataUsePort)提供以下配置:

The interface type (DcmDspDataUsePort) provides the following configurations:

  • USE_BLOCK_ID: 需配置DcmDspDataBlockIdRef,通过该NvM BlockId,直接调用NvM相关接口进行数据的读写

    USE_BLOCK_ID: It is required to configure DcmDspDataBlockIdRef. Through this NvM BlockId, directly call NvM-related interfaces to read and write data.

  • USE_DATA_ASYNCH_CLIENT_SERVER: 走CS通信,无需配置任何接口,异步通信,接口参数携带OpStatus

    USE_DATA_ASYNCH_CLIENT_SERVER: Uses CS communication, no need to configure any interfaces, asynchronous communication, and the interface parameters carry OpStatus.

  • USE_DATA_ASYNCH_CLIENT_SERVER_ERROR: 走CS通信,无需配置任何接口,异步通信,接口参数携带OpStatus和ErrorCode

    USE_DATA_ASYNCH_CLIENT_SERVER_ERROR: Uses CS communication, no need to configure any interfaces, asynchronous communication, and the interface parameters carry OpStatus and ErrorCode.

  • USE_DATA_SYNCH_CLIENT_SERVER: 走CS通信,无需配置任何接口,同步通信

    USE_DATA_SYNCH_CLIENT_SERVER: Uses CS communication, no need to configure any interfaces, synchronous communication.

  • USE_DATA_SENDER_RECEIVER: 走SR通信,无需配置任何接口

    USE_DATA_SENDER_RECEIVER: Uses SR communication, no need to configure any interfaces.

  • USE_DATA_SENDER_RECEIVER_AS_SERVICE: 走SR通信,无需配置任何接口,SR接口IsService勾选

    USE_DATA_SENDER_RECEIVER_AS_SERVICE: Uses SR communication, no need to configure any interfaces, and the SR interface has the IsService option checked.

  • USE_DATA_ASYNCH_FNC: 在对应条件下需配置相关接口,异步通信,接口参数携带OpStatus

    USE_DATA_ASYNCH_FNC: Related interfaces need to be configured under corresponding conditions, asynchronous communication, and the interface parameters carry OpStatus.

  • USE_DATA_ASYNCH_FNC_ERROR: 在对应条件下需配置相关接口,异步通信,接口参数携带OpStatus和ErrorCode

    USE_DATA_ASYNCH_FNC_ERROR: Related interfaces need to be configured under corresponding conditions, asynchronous communication, and the interface parameters carry OpStatus and ErrorCode.

  • USE_DATA_SYNCH_FNC: 在对应条件下需配置相关接口,同步通信,后续说明了相应条件

    USE_DATA_SYNCH_FNC: Related interfaces need to be configured under corresponding conditions, synchronous communication, and the corresponding conditions are explained later.

  • USE_ECU_SIGNAL: 在工程中没有IO抽象模块时需配置DcmDspDataEcuSignal和DcmDspDataReadEcuSignal,否则无需配置

    USE_ECU_SIGNAL: When there is no IO abstraction module in the project, it is necessary to configure DcmDspDataEcuSignal and DcmDspDataReadEcuSignal; otherwise, no configuration is required.

Attention

部分接口无论选择同步/异步/带错误,接口中都将携带OpStatus和ErrorCode,具体请参考规范中的封装需求

Some interfaces will carry OpStatus and ErrorCode regardless of whether synchronous/asynchronous/error-carrying is selected. For details, please refer to the encapsulation requirements in the specification.

DcmDspData

DcmDspData

DID读取配置 (UDS 0x22/0x24/0x2A/0x2C/0x2F)(DID Reading Configuration (UDS 0x22/0x24/0x2A/0x2C/0x2F))

这些UDS服务会对配置的DID进行读操作,对应DID需要拥有读权限。通过在关联的DcmDspDidInfo中配置DcmDspDidRead来获取权限。

These UDS services perform read operations on the configured DID, and the corresponding DID must have read permissions. Permissions are obtained by configuring DcmDspDidRead in the associated DcmDspDidInfo.

可以通过配置调整读取所需的权限(会话/安全级/安全认证/模式规则)

The permissions required for reading (session/security level/security authentication/mode rules) can be adjusted through configuration.

DcmDspDidRead

DcmDspDidRead

DcmDspDidUsePort根据需要配置即可,如果配置为USE_DATA_ELEMENT_SPECIFIC_INTERFACES,则在对应的DcmDspData中需提供读取接口,根据DcmDspDataUsePort决定是否需要手动配置接口。

DcmDspDidUsePort can be configured as needed. If it is configured as USE_DATA_ELEMENT_SPECIFIC_INTERFACES, a reading interface must be provided in the corresponding DcmDspData. Whether manual configuration of the interface is required depends on DcmDspDataUsePort.

以下接口将被使用:

The following interfaces will be used:

  • 如果开启DcmDspDataConditionCheckReadFncUsed,则会使用DcmDspDataConditionCheckReadFnc

    If DcmDspDataConditionCheckReadFncUsed is enabled, DcmDspDataConditionCheckReadFnc will be used.

  • 如果DcmDspDataUsePort配置为USE_ECU_SIGNAL,则会使用DcmDspDataReadEcuSignal

    If DcmDspDataUsePort is configured as USE_ECU_SIGNAL, DcmDspDataReadEcuSignal will be used.

  • 如果DcmDspDataUsePort配置为USE_BLOCK_ID,则会通过DcmDspDataBlockIdRef调用NvM接口进行读取

    If DcmDspDataUsePort is configured as USE_BLOCK_ID, the NvM interface will be called for reading through DcmDspDataBlockIdRef.

  • 如果DcmDspDataUsePort配置为其他,则会使用DcmDspDataReadFnc

    If DcmDspDataUsePort is configured as other options, DcmDspDataReadFnc will be used.

  • 如果配置了DcmDspDataInfoRef,且其配置了DcmDspDataScalingInfoSize,则会使用DcmDspDataGetScalingInfoFnc

    If DcmDspDataInfoRef is configured and DcmDspDataScalingInfoSize is set in it, DcmDspDataGetScalingInfoFnc will be used.

DcmDspDataForRead

DcmDspDataForRead

DcmDspDataInfo

DcmDspDataInfo

DID写入配置 (UDS 0x2E)(DID Writing Configuration (UDS 0x2E))

UDS 0x2E服务会对配置的DID进行写操作,对应DID需要拥有写权限。通过在关联的DcmDspDidInfo中配置DcmDspDidWrite来获取权限。

The UDS 0x2E service performs write operations on the configured DID, and the corresponding DID must have write permissions. Permissions are obtained by configuring DcmDspDidWrite in the associated DcmDspDidInfo.

可以通过配置调整写入所需的权限(会话/安全级/安全认证/模式规则)

The permissions required for writing (session/security level/security authentication/mode rules) can be adjusted through configuration.

DcmDspDidWrite

DcmDspDidWrite

DcmDspDidUsePort根据需要配置即可,如果配置为USE_DATA_ELEMENT_SPECIFIC_INTERFACES,则在对应的DcmDspData中需提供读取接口,根据DcmDspDataUsePort决定是否需要手动配置接口。

DcmDspDidUsePort can be configured as needed. If it is configured as USE_DATA_ELEMENT_SPECIFIC_INTERFACES, a reading interface must be provided in the corresponding DcmDspData. Whether manual configuration of the interface is required depends on DcmDspDataUsePort.

将使用DcmDspDataWriteFnc接口

The DcmDspDataWriteFnc interface will be used.

DcmDspDataForWrite

DcmDspDataForWrite

DID控制配置 (UDS 0x2F)(DID Control Configuration (UDS 0x2F))

UDS 0x2F服务会对配置的DID进行控制操作,对应DID需要拥有控制权限。通过在关联的DcmDspDidInfo中配置DcmDspDidControl来获取权限。

The UDS 0x2F service performs control operations on the configured DID, and the corresponding DID must have control permissions. Permissions are obtained by configuring DcmDspDidControl in the associated DcmDspDidInfo.

可以通过配置调整写入所需的权限(会话/安全级/安全认证/模式规则)

The permissions required for writing (session/security level/security authentication/mode rules) can be adjusted through configuration.

还可以配置DcmDspDidControlMask,其大小,以及各个控制模式的支持情况。

In addition, DcmDspDidControlMask, its size, and the support status of various control modes can also be configured.

DcmDspDidControl

DcmDspDidControl

当前0x2F只能通过接口/CS的方式进行,因此DcmDspDidUsePort只能选择USE_DATA_ELEMENT_SPECIFIC_INTERFACES,在对应的DcmDspData中需提供读取接口,根据DcmDspDataUsePort决定是否需要手动配置接口。

Currently, 0x2F can only be performed through the interface/CS method. Therefore, DcmDspDidUsePort can only select USE_DATA_ELEMENT_SPECIFIC_INTERFACES, and a reading interface must be provided in the corresponding DcmDspData. Whether manual configuration of the interface is required depends on DcmDspDataUsePort.

以下接口将被使用:

The following interface will be used:

  • 如果DcmDspDataUsePort配置为USE_ECU_SIGNAL,则会使用DcmDspDataEcuSignal

    If DcmDspDataUsePort is configured as USE_ECU_SIGNAL, DcmDspDataEcuSignal will be used.

  • DcmDspDataFreezeCurrentStateFnc

  • DcmDspDataResetToDefaultFnc

  • DcmDspDataReturnControlToEcuFnc

  • DcmDspDataShortTermAdjustmentFnc

DcmDspDataForControl

DcmDspDataForControl

安全认证 (UDS 0x29)(Security Authentication (UDS 0x29))

配置UDS 0x29服务时需配置DcmDspAuthentication,需配置以下内容:

When configuring the UDS 0x29 service, DcmDspAuthentication needs to be configured with the following contents:

  • DcmDspAuthenticationDefaultSessionTimeOut: 配置后在默认会话下且没有诊断请求超过该时间则切换至非认证状态

    DcmDspAuthenticationDefaultSessionTimeOut: After configuration, if there is no diagnostic request exceeding this time in the default session, it will switch to the unauthenticated state.

  • DcmDspAuthenticationGeneralNRC: 配置后在证书验证失败时会返回该NRC

    DcmDspAuthenticationGeneralNRC: After configuration, this NRC will be returned when certificate verification fails.

  • DcmDspAuthenticationRoleSize: 支持的证书中role的长度

    DcmDspAuthenticationRoleSize: The length of the role in the supported certificate.

  • DcmDspAuthenticationWhiteListMemorySelectionMaxSize暂时没有对应逻辑,可以不配置

    DcmDspAuthenticationWhiteListMemorySelectionMaxSize has no corresponding logic for the time being and may not be configured.

  • DcmDspAuthenticationWhiteListDIDMaxSize/DcmDspAuthenticationWhiteListRIDMaxSize/DcmDspAuthenticationWhiteListServicesMaxSize: 存放白名单DID/RID/Service的最大长度

    DcmDspAuthenticationWhiteListDIDMaxSize / DcmDspAuthenticationWhiteListRIDMaxSize / DcmDspAuthenticationWhiteListServicesMaxSize: The maximum length for storing whitelisted DID / RID / Service.

  • DcmDspAuthenticationDeauthenticatedRoleRef: 非认证状态下所使用的Role

    DcmDspAuthenticationDeauthenticatedRoleRef: The Role used in the unauthenticated state.

  • DcmDspAuthenticationGeneralNRCModeRuleRef: 可以选择模式规则,仅在该规则通过情况下才使用通用NRC0x22

    DcmDspAuthenticationGeneralNRCModeRuleRef: A mode rule can be selected, and the general NRC 0x22 is used only when the rule is passed.

  • DcmDspAuthenticationPersistStateModeRuleRef: 可以选择模式规则,仅在该规则通过情况下才存储认证状态至NvMBlock

    DcmDspAuthenticationPersistStateModeRuleRef: A mode rule can be selected, and the authentication state is stored in the NvMBlock only when the rule is passed.

  • DcmDspAuthenticationPersistStateBlockIdRef: 存储认证状态所使用的NvMBlock

    DcmDspAuthenticationPersistStateBlockIdRef: The NvMBlock used to store the authentication state.

DcmDspAuthentication

DcmDspAuthentication

每有一个DcmDslMainConnection则需对应配置一个DcmDspAuthenticaionConnection,需配置以下内容:

For each DcmDslMainConnection, a corresponding DcmDspAuthenticationConnection needs to be configured, with the following contents to be set:

  • DcmDspAuthenticationConnectionMainConnectionRef需进行配置,关联对应的DcmDslMainConnection

    DcmDspAuthenticationConnectionMainConnectionRef must be configured to associate with the corresponding DcmDslMainConnection.

  • DcmDspAuthenticationEcuChallengeLength: 发起challange,调用Csm_RandomGenerate时所输入的resultLengthPtr的长度

    DcmDspAuthenticationEcuChallengeLength: The length of the resultLengthPtr input when initiating a challenge and calling Csm_RandomGenerate.

  • 其中所有必配项需要进行配置,引用到CsM以及KeyM的配置项

    All mandatory configuration items must be configured, including those referencing CsM and KeyM configurations.

  • DcmDspAuthenticationWhiteListMemorySelectionElementRef暂时没有对应逻辑,可以不配置

    DcmDspAuthenticationWhiteListMemorySelectionElementRef has no corresponding logic for the time being and may not be configured.

  • DcmDspAuthenticationWhiteListDIDElementRef/DcmDspAuthenticationWhiteListRIDElementRef,如果需要对DID和RID进行白名单,则需进行配置

    DcmDspAuthenticationWhiteListDIDElementRef / DcmDspAuthenticationWhiteListRIDElementRef: If whitelisting for DID and RID is required, these must be configured.

DcmDspAuthenticationConnection

DcmDspAuthenticationConnection

非认证状态的role以及各个服务/DID/RID需要的role选择的是DcmDspAuthenticationRow,需要时进行配置。

The role in the unauthenticated state and the role required for each service/DID/RID are selected from DcmDspAuthenticationRow, which should be configured when necessary.

每一个Row都需要配置DcmDspAuthenticationRoleBitPosition,来代表其对应的bit位

Each Row needs to be configured with DcmDspAuthenticationRoleBitPosition to represent its corresponding bit position.

DcmDspAuthenticationRow

DcmDspAuthenticationRow

SecureCoding (UDS 0x29/0x2E/0x31)

SecureCoding功能为对指定DIDs写入时需通过证书认证流程才可以进行,需执行以下步骤:

The SecureCoding function requires a certificate authentication process to write to specified DIDs, and the following steps must be performed:

  1. 首先需执行29 04服务存储证书

    First, the 29 04 service must be executed to store the certificate.

    配置04子服务TransmitCertificate时需配置DcmDspAuthenticationTransmitCertificate,需配置以下内容:

    When configuring the 04 sub-service TransmitCertificate, DcmDspAuthenticationTransmitCertificate needs to be configured with the following contents:

    • DcmDspAuthenticationTransmitCertificateEvaluationId: 与请求中的certificateEvaluationId对应

      DcmDspAuthenticationTransmitCertificateEvaluationId: Corresponds to the certificateEvaluationId in the request.

    • DcmDspAuthenticationTransmitCertificateFunction: 配置为SECURE_CODING后才会开启secureCoding功能

      DcmDspAuthenticationTransmitCertificateFunction: The secureCoding function will be enabled only when configured as SECURE_CODING.

    • DcmDspAuthenticationTransmitCertificateRef: 对应KeyM的目标证书,用来存储发送的证书信息

      DcmDspAuthenticationTransmitCertificateRef: Corresponds to the target certificate of KeyM, used to store the sent certificate information.

    DcmDspAuthenticationTransmitCertificate

    DcmDspAuthenticationTransmitCertificate

  2. 执行0x2E服务进行写入

    Execute the 0x2E service for writing

    • 此处在DcmSecureCoding/DcmSecureCodingDataIdentifier配置需要证书验证才能写入的DIDs

      Here, configure the DIDs that require certificate verification for writing in DcmSecureCoding/DcmSecureCodingDataIdentifier

    • 通过DcmSecureCodingDataBufferSize配置写入缓冲区大小,存放暂缓写入的数据,注意此处的大小需包括DID本身(2 bytes each)

      Configure the size of the write buffer through DcmSecureCodingDataBufferSize to store the data to be written temporarily. Note that the size here must include the DID itself (2 bytes each)

  3. 执行写入后不会实际进行写入,需执行0x31服务进行验证,通过后执行写入

    The actual writing will not be performed immediately after execution. The 0x31 service needs to be executed for verification, and the writing will be performed after successful verification

    • 此处在DcmSecureCoding/DcmSecureCodingValidationRoutine配置执行验证的Routine

      Here, configure the Routine for performing verification in DcmSecureCoding/DcmSecureCodingValidationRoutine

    • DcmSecureCodingAuthenticationJobRef中配置执行验证对应的CsmJob

      Configure the CsmJob corresponding to the verification execution in DcmSecureCodingAuthenticationJobRef

DcmSecureCoding

DcmSecureCoding

DcmDspClearDTC (UDS 0x14)

可选配置DcmDspClearDTCCheckFnc,配置时会调用该callout接口检查是否允许清除,该接口为纯callout接口,目前按照需求没有连接到SWC侧。

The optional configuration DcmDspClearDTCCheckFnc, when configured, will call this callout interface to check whether clearing is allowed. This interface is a pure callout interface and is not currently connected to the SWC side according to requirements.

可选配置DcmDspClearDTCModeRuleRef,在相关模式规则通过后才允许清除。

The optional configuration DcmDspClearDTCModeRuleRef allows clearing only after the relevant mode rules are passed.

DcmDspClearDTC

DcmDspClearDTC

DcmDspComControl (UDS 0x28)

可以配置关联的各个ComM通道,以及恢复通信的模式规则条件

The associated ComM channels and the mode rule conditions for restoring communication can be configured.

  • DcmDspComControlAllChannel:subnetNumber为0时对应该配置,控制all connected networks,轮询所有配置的AllChannel

    DcmDspComControlAllChannel: This configuration corresponds when the subnetNumber is 0, which controls all connected networks and polls all configured AllChannels.

DcmDspComControlAllChannel

DcmDspComControlAllChannel

  • DcmDspComControlSpecificChannel:subnetNumber为1-0xE时对应该配置,根据请求的subnetNumber与配置的DcmDspSubnetNumber匹配,控制指定的网络。subnetNumber为0xF时则控制当前接收请求的网络。

    DcmDspComControlSpecificChannel: This configuration corresponds when the subnetNumber is 1-0xE. It controls the specified network by matching the requested subnetNumber with the configured DcmDspSubnetNumber. When the subnetNumber is 0xF, it controls the network that currently receives the request.

DcmDspComControlSpecificChannel

DcmDspComControlSpecificChannel

  • DcmDspComControlSubNode:处理子服务04/05时对应,根据请求的nodeIdentificationNumber与配置的DcmDspComControlSubNodeId匹配,控制指定的网络。

    DcmDspComControlSubNode: Corresponding to the handling of sub-services 04/05, it controls the specified network by matching the requested nodeIdentificationNumber with the configured DcmDspComControlSubNodeId.

DcmDspComControlSubNode

DcmDspComControlSubNode

  • DcmDspComControlSetting:配置DcmDspComControlCommunicationReEnableModeRuleRef时,仅在关联模式规则通过时恢复先前关闭的网络

    DcmDspComControlSetting: When configuring DcmDspComControlCommunicationReEnableModeRuleRef, the previously closed network will only be restored if the associated mode rule is passed.

DcmDspComControlSetting

DcmDspComControlSetting

DcmDspCommonAuthorization (UDS 0x31)

可以配置需要的会话级/安全级/模式规则,目前仅在routine处可以进行引用,后续规范可能会扩大使用范围

The required session level/security level/mode rules can be configured. Currently, they can only be referenced in routines, and the scope of use may be expanded in subsequent specifications.

DcmDspCommonAuthorization

DcmDspCommonAuthorization

DcmDspControlDTCSetting (UDS 0x85)

  • DcmSupportDTCSettingControlOptionRecord:开启后可以在请求中加入3bytes长度的DTCSettingControlOptionRecord

    DcmSupportDTCSettingControlOptionRecord: When enabled, a 3-byte DTCSettingControlOptionRecord can be added to the request.

  • DcmDspControlDTCSettingReEnableModeRuleRef:配置后仅在对应模式规则通过后才允许停止记录DTC,如果规则不再通过,则恢复记录DTC

    DcmDspControlDTCSettingReEnableModeRuleRef: After configuration, stopping DTC recording is only allowed when the corresponding mode rule is passed. If the rule is no longer passed, DTC recording will be resumed.

DcmDspControlDTCSetting

DcmDspControlDTCSetting

DcmDspDidRange (UDS 0x22/0x2E)

配置后可以指定一个范围区间的DID在UDS0x22/2E服务中进行读写

After configuration, a range of DIDs can be specified for reading and writing in the UDS 0x22/2E services.

可以配置以下内容:

The following contents can be configured:

  • DcmDspDidRangeIdentifierLowerLimit/DcmDspDidRangeIdentifierUpperLimit:配置区间的上下限

    DcmDspDidRangeIdentifierLowerLimit / DcmDspDidRangeIdentifierUpperLimit: Configure the lower and upper limits of the range.

  • DcmDspDidRangeMaxDataLength:所有范围内DID的最大读取长度

    DcmDspDidRangeMaxDataLength: The maximum read length of all DIDs within the range.

  • DcmDspDidRangeHasGaps:配置成TRUE时需提供DcmDspDidRangeIsDidAvailableFnc接口,用来根据请求的DID判断该DID是否支持读取,配置为FALSE时则无需提供,认为所有区间内的DID都可以读取

    DcmDspDidRangeHasGaps: When configured as TRUE, the DcmDspDidRangeIsDidAvailableFnc interface needs to be provided to determine whether the requested DID supports reading based on the DID. When configured as FALSE, it is not required, and all DIDs within the range are considered readable.

  • DcmDspDidRangeIsDidAvailableFnc:根据请求的DID判断该DID是否支持读取,仅在DcmDspDidRangeHasGaps为TRUE时需要提供

    DcmDspDidRangeIsDidAvailableFnc: Used to determine whether the requested DID supports reading. It is only required when DcmDspDidRangeHasGaps is TRUE.

  • DcmDspDidRangeReadDataLengthFnc:用来获取指定DID的读取长度,有读权限时需要提供

    DcmDspDidRangeReadDataLengthFnc: Used to obtain the read length of the specified DID. It is required when there is read permission.

  • DcmDspDidRangeReadDidFnc:用来读取指定DID的数据,有读权限时需要提供

    DcmDspDidRangeReadDidFnc: Used to read data of the specified DID. It is required when there is read permission.

  • DcmDspDidRangeWriteDidFnc:用来写入指定DID的数据,有写权限时需要提供

    DcmDspDidRangeWriteDidFnc: Used to write data to the specified DID. It is required when there is write permission.

  • DcmDspDidRangeUsePort:配置为TRUE时,则通过RTE以CS接口的形式实现,此时无需配置上述接口,接口会根据情况提供

    DcmDspDidRangeUsePort: When configured as TRUE, it is implemented in the form of a CS interface through RTE. In this case, the above interfaces do not need to be configured, and the interfaces will be provided as appropriate.

  • DcmDspDidRangeInfoRef:关联DcmDspDidInfo用来检查读写权限

    DcmDspDidRangeInfoRef: Associated with DcmDspDidInfo to check read and write permissions.

DcmDspDidRange

DcmDspDidRange

DcmDspMemory (UDS 0x23/0x3D/0x2C)

可以配置支持的AddressAndLengthFormatIdentifier以及支持读写的内存范围,以及所需要的会话级、安全级、模式规则。

The supported AddressAndLengthFormatIdentifier, the memory range supporting read and write operations, as well as the required session level, security level, and mode rules can be configured.

UDS 0x23服务中根据该配置进行内存读取,0x3D则是进行内存写入,0x2C是可以将动态DID定义成读取一段内存内容。

In the UDS 0x23 service, memory reading is performed according to this configuration; 0x3D is for memory writing; and 0x2C allows defining a dynamic DID as reading a segment of memory content.

  • DcmDspAddressAndLengthFormatIdentifier:可以配置支持的AddressAndLengthFormatIdentifier,如果不配置则视为都可以支持,否则仅支持列表中提供的

    DcmDspAddressAndLengthFormatIdentifier: The supported AddressAndLengthFormatIdentifier can be configured. If not configured, all are considered supported; otherwise, only those provided in the list are supported.

DcmDspAddressAndLengthFormatIdentifier

DcmDspAddressAndLengthFormatIdentifier

  • DcmDspMemoryIdInfo:可以配置DcmDspMemoryIdValue,在参数中提供给相关读写内存接口(未配置则为0),提供了读写内存的上下限和所需要的会话级、安全级、模式规则。可以配置多组。

    DcmDspMemoryIdInfo: DcmDspMemoryIdValue can be configured, which is provided as a parameter to the relevant memory read/write interfaces (0 if not configured). It provides the upper and lower limits for memory reading and writing, as well as the required session level, security level, and mode rules. Multiple groups can be configured.

DcmDspMemoryIdInfo

DcmDspMemoryIdInfo

  • DcmDspReadMemoryRangeInfo/DcmDspWriteMemoryRangeInfo:在DcmDspMemoryIdInfo下方配置,可以配置多组,需提供内存上下限和所需要的会话级、安全级、模式规则,分别为读写的信息,可以配置多组。

    DcmDspReadMemoryRangeInfo / DcmDspWriteMemoryRangeInfo: Configured under DcmDspMemoryIdInfo, multiple groups can be set up. They need to provide the upper and lower limits of the memory, as well as the required session level, security level, and mode rules. These respectively represent the information for reading and writing, and multiple groups can be configured.

DcmDspReadMemoryRangeInfo

DcmDspReadMemoryRangeInfo

DcmDspWriteMemoryRangeInfo

DcmDspWriteMemoryRangeInfo

DcmDspMemoryTransfer (UDS 0x34/0x35)

配置结构上与DcmDspMemory完全一致,仅提供给UDS0x34/0x35服务进行刷写相关内容,因此配置上与DcmDspMemory区分开。

The configuration structure is completely consistent with DcmDspMemory. It is only provided for the UDS 0x34/0x35 services for flash-related content, so it is distinguished from DcmDspMemory in terms of configuration.

DcmDspPeriodicTransmission (UDS 0x2A)

用于UDS 0x2A服务周期发送,可以配置最大同时调度数量,快/中/慢模式的速率以及最大同时发送数量,以及调度类型

Used for periodic transmission in the UDS 0x2A service. It can be configured with the maximum number of simultaneous schedulings, the rates of fast/medium/slow modes, the maximum number of simultaneous transmissions, and the scheduling type.

  • DcmDspMaxPeriodicDidScheduler:最大同时调度数量

    DcmDspMaxPeriodicDidScheduler: The maximum number of simultaneous schedulings.

  • DcmDspPeriodicTransmissionFastRate/DcmDspPeriodicTransmissionMediumRate/DcmDspPeriodicTransmissionSlowRate:快/中/慢模式速率,需为主函数周期时间的倍数

    DcmDspPeriodicTransmissionFastRate / DcmDspPeriodicTransmissionMediumRate / DcmDspPeriodicTransmissionSlowRate: The rates of fast/medium/slow modes, which must be multiples of the main function cycle time.

  • DcmDspPeriodicTransmissionMaxPeriodicFast/Medium/SlowTransmissions:快/中/慢模式的最大同时发送数量,不配置则不受限

    DcmDspPeriodicTransmissionMaxPeriodicFast/Medium/SlowTransmissions: The maximum number of simultaneous transmissions in fast/medium/slow modes. If not configured, there is no limit.

  • DcmDspPeriodicTransmissionSchedulerType:配置为1类,如果在需要发送时Dcm正在等待上一个PDID的发送确认,则等到下一个主函数周期就会再次尝试,如果配置为2类,则会等到下一个发送周期再进行发送。

    DcmDspPeriodicTransmissionSchedulerType: Configured as type 1. If Dcm is waiting for the transmission confirmation of the previous PDID when transmission is needed, it will try again in the next main function cycle. If configured as type 2, it will wait until the next transmission cycle to send.

DcmDspPeriodicTransmission

DcmDspPeriodicTransmission

DcmDspPid (OBD 0x01/0x02)

配置用于OBD 0x01/0x02服务的PID,需要配置其ID,大小,隶属于哪个服务,以及其Data(包括position,大小,数据类型,接口,接口种类)

Configure the PIDs used for OBD 0x01/0x02 services. It is necessary to configure their ID, size, the service they belong to, and their Data (including position, size, data type, interface, and interface type).

DcmDspPid具体可以配置以下内容:

The specific configurable contents of DcmDspPid are as follows:

  • DcmDspPidIdentifier:PID的ID

    DcmDspPidIdentifier: The ID of the PID

  • DcmDspPidService:所属的服务,可以是01/02/both

    DcmDspPidService: The service it belongs to, which can be 01/02/both

  • DcmDspPidSize:PID的数据长度

    DcmDspPidSize: The data length of the PID

DcmDspPid

DcmDspPid

DcmDspPidData具体可以配置以下内容:

The specific configurable contents of DcmDspPidData are as follows:

  • DcmDspPidByteOffset:数据的起始位置

    DcmDspPidByteOffset: The starting position of the data

  • DcmDspPidDataByteSize:该数据段长度

    DcmDspPidDataByteSize: The length of this data segment

DcmDspPidData

DcmDspPidData

如果归属01服务,则需配置DcmDspPidService01:

If it belongs to service 01, DcmDspPidService01 needs to be configured:

  • DcmDspPidDataEndianness:控制数据的大小端

    DcmDspPidDataEndianness: Controls the endianness of the data.

  • DcmDspPidDataReadFnc:读取数据的接口

    DcmDspPidDataReadFnc: Interface for reading data.

  • DcmDspPidDataType:数据类型

    DcmDspPidDataType: Data type.

  • DcmDspPidDataUsePort:读取数据接口的类型,如果不为USE_DATA_SYNCH_FNC则无需配置DcmDspPidDataReadFnc,直接走RTE,否则则需要配置

    DcmDspPidDataUsePort: Type of data reading interface. If it is not USE_DATA_SYNCH_FNC, there is no need to configure DcmDspPidDataReadFnc, and it will directly go through RTE; otherwise, it needs to be configured.

DcmDspPidService01

DcmDspPidService01

DcmDspReadDTCInformation (UDS 0x19)

DcmDspReadDTCInformationSupportedObdUdsDtcSeparation:开启后在调用Dem_SelectDTC接口时DTCFormat会设为DEM_DTC_FORMAT_OBD_3BYTE

DcmDspReadDTCInformationSupportedObdUdsDtcSeparation: When enabled, the DTCFormat will be set to DEM_DTC_FORMAT_OBD_3BYTE when the Dem_SelectDTC interface is called.

DcmDspReadDTCInformation

DcmDspReadDTCInformation

DcmDspRequestControl (OBD 0x08/UDS 0x31)

配置OBD 0x08服务时必须配置,提供了服务请求和回复的数据长度和具体数据内容

It must be configured when setting up the OBD 0x08 service, providing the data length and specific data content of service requests and responses.

  • DcmDspRequestControlInBufferSize: 请求中除tid外的输入数据长度

    DcmDspRequestControlInBufferSize: The length of input data in the request excluding tid.

  • DcmDspRequestControlInfoByte: 配置则在请求OBD范围RID且以OBD方式处理时的UDS0x31诊断回复中提供

    DcmDspRequestControlInfoByte: If configured, it will be provided in the UDS 0x31 diagnostic response when requesting OBD range RIDs and processing them in OBD mode.

  • DcmDspRequestControlOutBufferSize: 请求中除tid外的输出数据长度

    DcmDspRequestControlOutBufferSize: The length of output data in the request excluding tid.

  • DcmDspRequestControlTestId: 匹配请求中的tid

    DcmDspRequestControlTestId: Matches the tid in the request.

DcmDspRequestControl

DcmDspRequestControl

DcmDspRequestFileTransfer (UDS 0x38)

配置UDS 0x38服务时必须配置,提供了服务请求和回复的数据长度和使用端口的方式

It must be configured when setting up the UDS 0x38 service, providing the data length of service requests and responses as well as the way to use the port.

  • DcmRequestFileTransferFileSizeOrDirInfoParameterLength: 回复中fileSizeUncompressedOrDirInfoLength和fileSizeCompressed的长度,同时在回复中提供

    DcmRequestFileTransferFileSizeOrDirInfoParameterLength: The length of fileSizeUncompressedOrDirInfoLength and fileSizeCompressed in the response, which is also provided in the response.

  • DcmRequestFileTransferLengthFormatIdentifier: 回复中提供,对应回复中maxNumberOfBlockLength的byte数

    DcmRequestFileTransferLengthFormatIdentifier: Provided in the response, corresponding to the number of bytes of maxNumberOfBlockLength in the response.

  • DcmRequestFileTransferMaxFileAndDirName: 在DcmRequestFileTransferUsePort为TRUE时必须配置,用于CS接口中参数的长度

    DcmRequestFileTransferMaxFileAndDirName: Must be configured when DcmRequestFileTransferUsePort is TRUE, and is used for the length of parameters in the CS interface.

  • DcmRequestFileTransferUsePort: 决定对应callout接口是否走RTE

    DcmRequestFileTransferUsePort: Determines whether the corresponding callout interface goes through RTE.

DcmDspRequestFileTransfer

DcmDspRequestFileTransfer

DcmDspRoe (UDS 0x86)

配置UDS 0x86服务时必须配置,提供了最大同时处理的事件数,DID数据长度,ROE调度周期以及存储位置相关配置

It must be configured when setting up the UDS 0x86 service, providing configurations related to the maximum number of simultaneous events that can be processed, DID data length, ROE scheduling cycle, and storage location.

  • DcmDspRoeMaxNumberOfStoredDTCStatusChangedEvents: 可同时处理的根据DTC状态变化的事件总数

    DcmDspRoeMaxNumberOfStoredDTCStatusChangedEvents: The total number of events based on DTC status changes that can be processed simultaneously.

  • DcmDspRoeMaxNumChangeOfDataIdentfierEvents: 可同时处理的根据DID值变化的事件总数

    DcmDspRoeMaxNumChangeOfDataIdentfierEvents: The total number of events based on DID value changes that can be processed simultaneously.

  • DcmDspRoeMaxSupportedDIDLength: 支持处理的最大DID数据长度

    DcmDspRoeMaxSupportedDIDLength: The maximum DID data length supported for processing.

  • DcmDspRoeSchedulerRate: ROE调度周期,必须为DcmTaskTime的整数倍

    DcmDspRoeSchedulerRate: ROE scheduling cycle, which must be an integer multiple of DcmTaskTime.

  • DcmDspRoeStoreEventSupport: 是否支持storageState置位(对应进行存储)

    DcmDspRoeStoreEventSupport: Whether to support setting the storageState (corresponding to storage).

  • DcmDspRoeBlockIdRef: 对Events进行存储时使用的NvMBlockId

    DcmDspRoeBlockIdRef: The NvMBlockId used when storing Events.

DcmDspRoe

DcmDspRoe

DcmDspRoutine (UDS 0x31)

配置UDS 0x31服务时必须配置,提供了RID及其所拥有的Start/Stop/RequestResults的相关配置

It must be configured when setting up the UDS 0x31 service, providing configurations related to RID and its Start/Stop/RequestResults.

DcmDspRoutine配置:

Configuration of DcmDspRoutine:

  • DcmDspRoutineIdentifier: RID,用来匹配请求中的RID

    DcmDspRoutineIdentifier: RID, used to match the RID in the request.

  • DcmDspRoutineInfoByte: 配置后则在处理OBD范围RID但以UDS方式处理时在诊断回复中提供

    DcmDspRoutineInfoByte: When configured, it will be provided in the diagnostic response when processing OBD range RIDs but in UDS mode.

  • DcmDspRoutineUsed: 是否启用该Routine,不启用则视为未配置该RID

    DcmDspRoutineUsed: Whether to enable this Routine; if not enabled, the RID is considered unconfigured.

  • DcmDspRoutineUsePort: 开启后其下相关所有接口都以RTE的CS形式处理

    DcmDspRoutineUsePort: When enabled, all related interfaces under it will be processed in the form of RTE’s CS.

  • DcmDspRoutineP4ServerMax: 该Routine的P4处理时间,超过该时间则停止处理该服务,该配置项优先级高于服务的P4ServerMax配置

    DcmDspRoutineP4ServerMax: The P4 processing time of this Routine; if this time is exceeded, the processing of the service will stop. This configuration item has higher priority than the P4ServerMax configuration of the service.

DcmDspRoutine

DcmDspRoutine

DcmDspStartRoutine/DcmDspStopRoutine/DcmDspRequestRoutineResults配置的内容除DcmDspStartRoutineRestartEnabled不同外其他仅是命名的差异,因此此处仅描述StartRoutine作为举例,其他不再赘述 DcmDspStartRoutine配置:

The configurations of DcmDspStartRoutine / DcmDspStopRoutine / DcmDspRequestRoutineResults are identical except for the difference in DcmDspStartRoutineRestartEnabled; the rest are merely naming differences. Therefore, only StartRoutine will be described here as an example, and the others will not be repeated. Configuration of DcmDspStartRoutine:

  • DcmDspStartRoutineFnc: 仅在DcmDspRoutineUsePort关闭时配置,Callout接口名

    DcmDspStartRoutineFnc: Configured only when DcmDspRoutineUsePort is disabled, the name of the Callout interface.

  • DcmDspStartRoutineRestartEnabled: 开启后允许反复请求StartRoutine,否则需要请求StopRoutine才能再次请求,不然回复NRC 0x24

    DcmDspStartRoutineRestartEnabled: When enabled, repeated requests for StartRoutine are allowed; otherwise, a request for StopRoutine is required before making another request, otherwise, NRC 0x24 will be returned.

  • DcmDspStartRoutineCommonAuthorizationRef: 请求该Routine的StartRoutine时需要的权限(包括安全级、会话级、模式规则)

    DcmDspStartRoutineCommonAuthorizationRef: The permissions required (including security level, session level, and mode rules) when requesting the StartRoutine of this Routine.

  • DcmDspStartRoutineRoleRef: 请求该Routine的安全认证要求

    DcmDspStartRoutineRoleRef: The security authentication requirements for requesting this Routine.

DcmDspStartRoutine

DcmDspStartRoutine

DcmDspStartRoutine可以配置DcmDspStartRoutineIn和DcmDspStartRoutineOut,配置后会自动配置一个DcmDspStartRoutineIn/OutSignal(最少为1),InSignal和OutSignal配置完全相同,此处仅描述InSignal

DcmDspStartRoutine can be configured with DcmDspStartRoutineIn and DcmDspStartRoutineOut. After configuration, a DcmDspStartRoutineIn/OutSignal will be automatically configured (at least one). The configurations of InSignal and OutSignal are completely the same, so only InSignal will be described here.

DcmDspStartRoutineInSignal配置:

Configuration of DcmDspStartRoutineInSignal:

  • DcmDspRoutineParameterSize: DcmDspRoutineSignalType选择为数组时需要配置,对应单位为byte

    DcmDspRoutineParameterSize: Needs to be configured when DcmDspRoutineSignalType is set to an array, with the unit being byte.

  • DcmDspRoutineSignalEndianness: 大小端处理,不配置则默认使用DcmDspDataDefaultEndianness的配置

    DcmDspRoutineSignalEndianness: Used for endianness processing. If not configured, it will use the configuration of DcmDspDataDefaultEndianness by default.

  • DcmDspRoutineSignalPos: 该Signal对应在请求/回复(对于outSignal)中的偏移量

    DcmDspRoutineSignalPos: The offset of the Signal in the request/response (for outSignal).

  • DcmDspRoutineSignalType: 该Signal对应的数据类型

    DcmDspRoutineSignalType: The data type corresponding to the Signal.

DcmDspStartRoutineInSignal

DcmDspStartRoutineInSignal

DcmDspVehInfo (OBD 0x09)

配置OBD 0x09服务时必须配置

It must be configured when setting up the OBD 0x09 service.

DcmDspVehInfo:

  • DcmDspVehInfoInfoType: 用来匹配请求中的InfoType

    DcmDspVehInfoInfoType: Used to match the InfoType in the request.

  • DcmDspVehInfoNODIProvResp: 开启时由Callout决定填充NODI,否则由Dcm决定

    DcmDspVehInfoNODIProvResp: When enabled, the Callout determines the population of NODI; otherwise, it is determined by Dcm.

DcmDspVehInfo

DcmDspVehInfo

DcmDspVehInfoData:

  • DcmDspVehInfoDataReadFnc: 仅在DcmDspVehInfoDataUsePort需要配置,提供Callout接口名

    DcmDspVehInfoDataReadFnc: Only needs to be configured when DcmDspVehInfoDataUsePort is set, providing the name of the Callout interface.

  • DcmDspVehInfoDataSize: VehInfo的数据长度

    DcmDspVehInfoDataSize: The data length of VehInfo.

  • DcmDspVehInfoDataUsePort: 决定Read接口是否通过Rte的CS接口进行

    DcmDspVehInfoDataUsePort: Determines whether the Read interface is conducted through the CS interface of Rte.

DcmDspVehInfoData

DcmDspVehInfoData

DcmDspPageBuffer

选择是否开启分页发送功能

Choose whether to enable the paged transmission function.

  • DcmPagedBufferEnabled: 开启后启用分页发送功能,此时需要配置DcmDslProtocolMaximumResponseSize

    DcmPagedBufferEnabled: When enabled, the paged transmission function is activated, and DcmDslProtocolMaximumResponseSize needs to be configured at this time.

DcmDspPageBufferCfg

DcmDspPageBufferCfg

DcmProcessingCondition

可以配置需要的模式规则,配置后至少需要配置一个DcmModeCondition和DcmModeRule

The required mode rules can be configured, and after configuration, at least one DcmModeCondition and one DcmModeRule must be configured.

DcmModeCondition: 需要满足的条件,可以设置例如等于或不等于等条件,再选择是BSW/SWC侧的模式组,或者一个实现数据类型和一个对应值,在配置后会在封装中体现。

DcmModeCondition: The conditions that need to be met. Conditions such as equal to or not equal to can be set, and then select the mode group on the BSW/SWC side, or an implementation data type and a corresponding value, which will be reflected in the encapsulation after configuration.

  • DcmConditionType: 配置条件为为==, !=, <=, <, >=, >

    DcmConditionType: Configure the condition as ==, !=, <=, <, >=, >

  • DcmBswModeRef: BSW侧的模式声明组

    DcmBswModeRef: Mode declaration group on the BSW side

  • DcmSwcModeRef: SWC侧的模式声明组

    DcmSwcModeRef: Mode declaration group on the SWC side

  • DcmSwcSRDataElementRef: SWC侧的实现数据类型,因DcmSwcDataElementValue只提供两种赋值方式,当前仅支持基础数据类型数组和基础数据类型

    DcmSwcSRDataElementRef: Implementation data type on the SWC side. Since DcmSwcDataElementValue only provides two assignment methods, currently only basic data type arrays and basic data types are supported.

  • DcmSwcDataElementValue: 可选择DcmSwcElementArray或DcmSwcElementPrimitive,Array则需要配置多个元素,提供Index和值,Primitive则仅需提供值

    DcmSwcDataElementValue: Can select DcmSwcElementArray or DcmSwcElementPrimitive. For Array, multiple elements need to be configured, providing Index and value; for Primitive, only the value needs to be provided.

注:DcmBswModeRef/DcmSwcModeRef/DcmSwcSRDataElementRef仅能任选其一

Note: Only one of DcmBswModeRef/DcmSwcModeRef/DcmSwcSRDataElementRef can be selected.

DcmModeCondition

DcmModeCondition

DcmSwcDataElementPrimitive

DcmSwcDataElementPrimitive

DcmSwcDataElementArrayElement

DcmSwcDataElementArrayElement

DcmModeRule: 配置规则,可以设置AND/OR的logicalOperator,不通过时对应的Nrc值,以及Argument列表(可以是ModeCondition也可以是ModeRule),注意不能引用自己。

DcmModeRule: Configure rules, which can set the logicalOperator as AND/OR, the corresponding Nrc value when not passed, and the Argument list (which can be ModeCondition or ModeRule). Note that it cannot reference itself.

  • DcmLogicalOperator: 仅有一个argument时无需配置,否则需配置,AND则所有argument都需通过,OR则至少有一个通过即可。

    DcmLogicalOperator: No need to configure when there is only one argument; otherwise, it must be configured. For AND, all arguments need to pass; for OR, at least one argument needs to pass.

  • DcmModeRuleNrcValue: 条件不满足时指定的Nrc。

    DcmModeRuleNrcValue: The specified Nrc when the condition is not met.

  • DcmArgumentRef: argument列表,可以配置多个,可以选择ModeCondition和ModeRule。

    DcmArgumentRef: The argument list, which can be configured with multiple entries, and can select ModeCondition and ModeRule.

注:通过合理的配置,可以达到例如 ((A == 2) AND (B == 3 OR C == 4)) OR (D == 5) 的效果

Note: Through reasonable configuration, effects such as ((A == 2) AND (B == 3 OR C == 4)) OR (D == 5) can be achieved.

DcmModeRule

DcmModeRule