Purpose

Executes the TesterPresent service. Keeps the ECU in diagnostic mode.

Format

        long ndTesterPresent(
       TD1 *diagRef,
       LVBoolean *requireResponse,
       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.

requireResponse

Indicates whether a response to this service is required. If *requireResponse is FALSE, no response is evaluated, and success is always returned TRUE. This parameter is passed by reference. 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

To ensure proper ECU operation, you may need to keep the ECU informed that a diagnostic session is still in progress. If you do not send this information (for example, because the communication is broken), the ECU returns to normal mode from diagnostic mode after a while.

The TesterPresent service is this "keep alive" signal. It does not affect any other ECU operation.

Keep calling ndTesterPresent within the ECU timeout period if no other service is executed.