Purpose

Sends a raw CAN frame on the diagnostic CAN ID to check for errors in the transport protocol implementation of an ECU.

Format

        long ndDiagFrameSend(
       TD1 *diagRef,
       unsigned char dataIn[],
       long len);

      

Input

diagRef

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

dataIn

Array of up to 8Â bytes for standard CAN, or up to 64Â bytes for CAN FD, sent as CAN payload on the diagnostic identifier.

len

Must contain the number of (valid) data bytes in dataIn. Output

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

ndDiagFrameSend transmits an arbitrary raw CAN frame on the diagnostic CAN identifier. For example, you can check the transport protocol implementation of an ECU for robustness if erroneous protocol requests are issued.