We use cookies on our website to provide you with the best possible service and to further improve our website. By clicking the "Accept All" button, you agree to the use of all cookies. You can limit the cookies used by clicking on "Accept selection". Further information and an option to revoke your selection can be found in our privacy policy.

Necessary:

These cookies are necessary for basic functionality. This allows you to register on our website and forum or order products with our online shop.

Statistics:

With these cookies, we collect anonymized usage data for our website. For example, we can see which content is interesting for our visitors and which resolutions are used. We use the information to optimize our website to provide you with the best possible user experience.

Necessary
Statistics

show more

PCAN-UDS API Version History

This is the version history of the PCAN-UDS API for Windows®. All improvements, bug fixes, and changes of the published API versions are listed.

PCAN-UDS is an API for communicating with control devices according to the UDS standard (ISO 14229-1). See the product page for more information.

2024-05-21 - Version 2.3.2

Bug fixes:

  • Fixed backwards compatibility issue when trying to write an 8 bytes CAN frame using PUDS_PROTOCOL_NONE
  • Fixed concurrent access exception when uninitializing UDS channel and checking Rx notification from PCAN-ISO-TP API

Changes:

  • Adjustments in UDS_SetValue_2013 with backwards compatibility parameters
  • Adjustments in UDS_SetValue_2013 with non-UDS parameter (e.g. PCAN_BITRATE_ADAPTING)
  • Fixed possible concurrent access exception when uninitializing UDS channel and sending automated tester present

2023-10-05 - Version 2.3.1

Improvements:

  • General code enhancements

Bug fixes:

  • Calls to UDS_Write returned PUDS_STATUS_CAUTION_INPUT_MODIFIED even if no actual changes had been made to the send buffer

Changes:

  • Logging for internal libraries is now disabled by default

2023-03-24 - Version 2.3.0

Improvements:

  • Added support for ARM64
  • Added a header file and examples for Python

Bug fixes:

  • Fixed backward compatibility issue with with mapping PUDS_PROTOCOL_NONE

2022-08-31 - Version 2.2.1

Improvements:

  • Added new example projects (11,12,13 and 14) for all supported programming languages
  • General code improvements in the example projects

Bug fixes:

  • Fix in UDS_WaitForFunctionalResponses_2013 and UDS_WaitForServiceFunctional_2013: no extra wait is used when NRC 0x78 is received and elapsed time during reception is longer than timeout
  • Fixed P3 timing check (on write), when user forget to use no response flag message type but message data contains no response flag
  • Negative responses with NRC EXTENDED_TIMING were being internally handled instead of returning the Negative response as is

Changes:

  • Sample projects are now delivered as zip package
  • Wait time when UDS_WaitForService_2013 is called with a request containing no response flag was optimized

2021-10-27 - Version 2.2.0

Improvements:

  • Improved bad parameter handling in UDS_Svc* functions
  • Added PUDS_SVC_PARAM_ROE_RMRDOSC_LEN definition for ResponseOnEvent service
  • Added definitions for ResponseOnEvent service with onTimerInterrupt subfunction (PUDS_SVC_PARAM_ROE_OTI_*)

Bug fixes:

  • Fixed UDS_WriteMemoryByAddress_2013 function to allow non-standard requests with null memory size parameter
  • Fixed enhanced timeout computing in UDS_WaitForService_2013 (take in account user defined timeout response parameter)

Changes:

  • Default parameter values for following functions were implemented:
    • UDS_SvcInputOutputControlByIdentifier_2013
    • UDS_SvcTransferData_2013
    • UDS_SvcRequestTransferExit_2013
    • UDS_SvcResponseOnEvent_2013
    • UDS_SvcRoutineControl_2013
  • Added missing PUDS_SVC_PARAM_ROE_EWT_* definitions in header files (eventWindowTime parameter)
  • Examples: Handling on allocation errors improved

2021-05-20 - Version 2.1.1

Improvements:

  • Added SecuredDataTransmission 2020 service handling
  • Added definitions (ISO 14229-1:2020): PUDS_SVC_PARAM_RFT_MOOP_RSFILE, PUDS_SVC_PARAM_ROE_RMRDOSC and PUDS_SVC_PARAM_ROE_RDRIODSC
  • Added UDS_SvcClearDiagnosticInformation_2020 (ClearDiagnosticInformation service with memory selection parameter)
  • Added UDS_SvcAuthentication[...]_2020 functions to handle Authentication service (ISO 14229-1:2020)
  • Added uds_nrc enumeration that represent UDS negative response codes
  • Added uds_svc_authentication_subfunction and uds_svc_authentication_return_parameter enumerations for Authentication service (ISO 14229-1:2020)
  • Added PUDS_ONLY_PREPARE_REQUEST definition that allows to use a UDS_Svc* function to prepare a message without sending it
  • Added PUDS_PARAMETER_USE_NO_RESPONSE_AUTOMATIC_TESTER_PRESENT parameter

Bug fixes:

  • Fixed PUDS_STATUS_SERVICE_ALREADY_PENDING error: do not raise this error if the previous call of the service resulted in network error
  • Fixed memory access violations due to empty UUDT messages
  • Fixed padding when sending UUDT messages which use a length that is not equal to a valid DLC
  • Fixed missing PUDS_SVC_PARAM_LC_BAUDRATE_PROGSU definition for LinkControl service
  • Fixed minor errors in examples
  • Fixed missing status handling in UDS_GetErrorText_2013 function
  • Changed debug mode enumeration (replaced by debug levels)
  • Changed auto TesterPresent management: physical auto TesterPresent are managed sequentially, functional auto TesterPresent are managed periodically
  • Fixed service already pending error while sending multiple NRC messages with different service identifier
  • Changed uds_sessioninfo: using a null s3_client timing disable automatic TesterPresent
  • Fixed UDS_SvcDynamicallyDefineDataIdentifierDBMA_2013: addressAndLengthFormatIdentifier parameter was inverted in DynamicallyDefineDataIdentifier service with defineByMemoryAddress subfunction

2021-01-25 - Version 2.1.0

Improvements:

  • New UDS_MsgCopy_2013 function added to copy a uds_msg structure
  • New UDS_MsgMove_2013 function added to move a uds_msg structure into another uds_msg structure
  • New attribute added, can_tx_dlc, to the uds_msgconfig structure
  • New enumeration added, uds_errstatus, to store UDS error codes
  • New parameter added, PUDS_PARAMETER_RESET_HARD, to perform a hard reset (and keep settings and mappings)
  • New status value added, PUDS_STATUS_HANDLE_INVALID, to handle invalid cantp_handle error
  • New Examples 08/09/10 for C#/VB/C++_CLR/Delphi added
  • Examples reviewed:
    • Add missing uds_msg initialisations (fill structure with zero)
    • Example 05_server_simulator: remove useless uds_msg structure zero filling after UDS_MsgFree_2013
    • Examples 06_client_all_request: replace invalid RequestUpload sizes parameters
    • Examples 7 and 8 reviewed: remove useless mapping 'uid' initialization
    • Documentation of samples reviewed
  • Check potential PUDS_STATUS_SERVICE_ALREADY_PENDING error on pending postive responses and extended timing negative responses
  • Documentation updated

Bug fixes:

  • Fixed UDS_RemoveMapping_2013 return code, if the mapping is not a valid mapping, the function retrurns PUDS_STATUS_MAPPING_INVALID
  • Fixed WaitForServiceFunctional_2013 prototype in Pascal header (do not pass max_msg_count as a reference)
  • Fixed UDS_SvcDynamicallyDefineDataIdentifierDBMA_2013, UDS_SvcWriteMemoryByAddress_2013, UDS_SvcRequestDownload_2013 and UDS_SvcRequestUpload_2013: Check that addressAndLengthFormatIdentifier parameters are valid
  • File description of the 64-bit version of the library corrected. It was showing '32-bit' instead of '64-bit'

Changes:

  • Changed backward compatibility UDS_Write function: the no response flag is now automaticaly corrected in message data if needed
  • Automaticaly remove no response flag in UDS_Svc*_2013 if the service does not have a subfunction
  • Changed UDS_WaitForService_2013 and UDS_WaitForServiceFunctional_2013: confirmation message buffer is now mandatory
  • Changed UDS_WaitForServiceFunctional_2013/WaitForServiceFunctional_2013 arguments order
  • Changed UDS_WaitForServiceFunctional_2013: functional UUDT request are allowed
  • Changed message structure checks: prevent user to reuse an already allocated buffer (PUDS_STATUS_MESSAGE_BUFFER_ALREADY_USED error)

2020-12-03 - Version 2.0.0

Improvements:

  • New interface ISO 14229 with CAN FD support, revision 2013
  • Fully binary compatible with applications using PCAN-UDS.dll, version 1.x
  • Backward compatibility support for projects based on ISO 14229, revision 2006 (PCAN-UDS.dll, version 1.x)
  • General code enhancements

2019-11-22 - Version 1.3.4

Improvements:

  • New sample project in C#
  • Automatic correction of server address: When setting the server address, the value is now automatically corrected to fit into a byte (except if address is specified as enhanced)

Bug fixes:

  • Fixed different issues caused by frames with non-default priority
    • Fixed issue when receiving a 29-bit ISO-TP frame with non-default priority
    • Fixed issue when waiting for a service with a 29-bit UDS message with non-default priority
    • Fixed issue with an internal check for CAN-TP confirmation with non-default priority 29-bit message
  • Structure alignment information was missing within the header files

2019-06-27 - Version 1.3.3

Improvements:

  • Certificate checking of the libraries improved. In some special environments the initialization process of a channel could last about 20 seconds

Bug fixes:

  • Fixed problems with Endianness conversions
  • The following missing RDTCI definitions have been added which are now supported by the UDS_SvcReadDTCInformationNoParam function:
    • PUDS_SVC_PARAM_RDTCI_RDTCFDC
    • PUDS_SVC_PARAM_RDTCI_RDTCWPS


2019-05-24 - Version 1.3.2

Improvements:

  • New function 'CheckResponse' in TPUDSMsg (C#, VB.NET, and C++/CLR) for checking UDS service responses for validity, supersedes 'IsPositiveResponse'
  • The function 'IsPositiveResponse' of TPUDSMsg has been marked as obsolete/deprecated
  • New enumeration TPUDSServiceResult (C#, VB.NET, and C++/CLR), representing result values of UDS services
  • Added support for UUDT message writing with new protocol: PUDS_PROTOCOL_NONE
  • General code enhancements
  • The documentation was updated

2018-03-05 - Version 1.3.1

Improvements:

  • Added parameters PUDS_PARAM_MAPPING_ADD and PUDS_PARAM_MAPPING_REMOVE to configure non-standard UDS messages
  • Added support for UUDT response with new PUDS message type: PUDS_MESSAGE_TYPE_CONFIRM_UUDT

Bug fixes:

  • Wrong signature of the function 'SvcWriteMemoryByAddress' in the Pascal header file PUDS.pas corrected

2017-02-03 - Version 1.3.0

Improvements:

  • Added support for new ISO-TP message type PCANTP_MESSAGE_INDICATION_TX
  • Added PUDS_MESSAGE_INDICATION_TX to TPUDSMessageType to distinguish incoming and outgoing start of message

2016-04-22 - Version 1.2.1

Improvements:

  • Added parameter PUDS_PARAM_PADDING_VALUE to set value for CAN Data Padding
  • Updated to support new PCAN channels (PCAN-Basic 4.x)

Bug fixes:

  • Fixed timeout deadlock when calling PUDS_Uninitialize with value PUDS_NONEBUS

2015-09-01 - Version 1.2.0

Improvements:

  • PCAN-UDS header files edited to support PCAN-Basic 4.x

Bug fixes:

  • C++ header file was edited: default value for parameters in "UDS_Initialize" are now C-compatible

2015-08-13 - Version 1.1.0

Improvements:

  • General updates due to ISO-TP changes
  • General performance improved

2014-11-14 - Version 1.0.0

  • First release