Purpose

Executes the StartDiagnosticSession service. The ECU is set up in a specific diagnostic mode.

Format

        long ndStartDiagnosticSession(
       TD1 *diagRef,
       unsigned char mode,
       LVBoolean *success);
      

Input

diagRef

Specifies the diagnostic session handle, obtained from ndOpenDiagnosticOnCANFD or ndOpenDiagnosticOnIPStack and passed to subsequent diagnostic functions. Normally, it is not necessary to manually manipulate the elements of this struct.

mode

Indicates the diagnostic mode into which the ECU is brought. The values are application specific. Output

success

Indicates successful receipt of a positive response message for this diagnostic service.

Return Value

The return value indicates the function call status as a signed 32-bit integer. Zero means the function executed successfully. A negative value specifies an error, which means the function did not perform the expected behavior. A positive value specifies a warning, which means the function performed as expected, but a condition arose that may require attention.

Use the ndStatusToString function to obtain a descriptive string for the return value.

Description

This function enables different ECU diagnostic modes. The possible diagnostic modes are not defined in ISO 14230 and are application specific. A diagnostic session starts only if communication with the ECU is established. For more details about starting communication, refer to ISO 14230-2. If no diagnostic session is requested after ndOpenDiagnosticOnCANFD, a default session is enabled automatically in the ECU. The default session supports at least the following services:

  • The StopCommunication service (refer to ndCloseDiagnostic and the ISO 14230-2 standard).
  • The TesterPresent service (refer to ndTesterPresent and the ISO 14230-3 standard).