Purpose

Executes the UDS WriteDataByIdentifier service. Writes a data record to the ECU.

Format

        long ndUDSWriteDataByIdentifier(
       TD1 *diagRef,
       unsigned short ID,
       unsigned char dataIn[],
       long len,
       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.

ID

Defines the identifier of the data to be read. The values are application specific.

dataIn

Defines the data record written to the ECU. If you know the record data description, use ndConvertFromPhys to generate this record.

len

Must contain the number of valid data bytes in dataIn. 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 performs the UDS service WriteDataByIdentifier and writes RecordValues (data values) into the ECU. dataIn identifies the data. The vehicle manufacturer must ensure the ECU conditions are met when performing this service. Typical use cases are clearing nonvolatile memory, resetting learned values, setting option content, setting the Vehicle Identification Number, or changing calibration values.

For further details about this service, refer to the ISO 15765-3 standard.