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-ISO-TP API Version History

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

PCAN-ISO-TP is an API for transfering data packages of up to 4 GBytes via the CAN bus according to the ISO-TP standard ISO 15765-2. See the product page for more information.

2023-10-05 - Version 3.5.0

Improvements:

  • Added support for carrying out communication with available CAN-API 4 connections
  • General code enhancements

Bug fixes:

  • Fixed initialization functions to handle an OK status with irregularities (like PCAN-Basic error 'PCAN_ERROR_CAUTION')
  • Fixed issue with performance improvements of STMin values 0xF1 to 0xF3

Changes:

  • Updated ISO values for PCANTP_TIMEOUT_AR_ISO_15765_4, PCANTP_TIMEOUT_AS_ISO_15765_4, PCANTP_TIMEOUT_CS_ISO_15765_4 as specified in the ISO-15765-4 standard, revision 2021-07
  • The API will now retry the transmission of CAN or CAN FD frames indefinitely if the lower layer API reports a transmit queue error
  • The API will now assume that messages have been transmitted when the lower layer API reports a queue overrun error while waiting for a send confirmation. In this case, these messages are marked with the PCANTP_MSGFLAG_QOVERRUN_OCCURED flag
  • The API now defers processing transmit messages when the lower layer API reports a transmit queue full error (the order of the write calls is preserved)

2023-03-23 - Version 3.4.0

Improvements:

  • New ARM64 API library
  • Added a new cantp_infostatus PCANTP_INFOSTATUS_CAUTION_RX_QUEUE_OVERRUN and its corresponding status value PCANTP_STATUS_CAUTION_RX_QUEUE_OVERRUN
  • Added a header file and examples for Python

Changes:

  • CANTP_Read_2016 can now return a status with the information flag PCANTP_STATUS_CAUTION_RX_QUEUE_OVERRUN

2022-08-31 - Version 3.3.0

Improvements:

  • Added cantp_msgtype PCANTP_MSGTYPE_CANINFO to classify non CAN data frames (status, error frames)
  • Added parameter PCANTP_PARAMETER_ALLOW_MSGTYPE_CANINFO to allow CAN status and error frames from lower CAN API
  • Added PCANTP_PARAMETER_RECEIVE_EVENT_CALLBACK parameter to register reception event user callback
  • Added PCANTP_PARAMETER_RECEIVE_EVENT_CALLBACK_USER_CONTEXT parameter to pass arguments to reception event user callback

Bug fixes:

  • PCANTP_MSG_CANINFO with status frame BUS_OK were not being filtered
  • Fixed check of single frame escape sequence consistency when all message data have the same value

Changes:

  • Validation of ISOTP data padding (constant data padding value) is disabled by default (invalidate ISOTP frames were tagged as CAN frames)
  • CANTP_AddMapping always returns PCANTP_STATUS_MAPPING_INVALID when using formats: PCANTP_ISOTP_FORMAT_ENHANCED and PCANTP_ISOTP_FORMAT_FIXED_NORMAL
  • Hardened detection of CANFD ISOTP Single Frames: when DLC>8, escape sequence is required
  • Added check of FD single frame length by default
  • Changed some debug logs to output hex value instead of decimal
  • Sample projects are now delivered as zip package

2021-10-27 - Version 3.2.0

Improvements:

  • Added parameter PCANTP_PARAMETER_WFT_MAX_TX
  • Improved consistency checks for illegal ISOTP single frames (DLC checked against message's length and padding)
  • Improved error detections during segmented communications for cases where a responding frame is received before the previous Tx frame is physically confirmed on the bus

Bug fixes:

  • Fixed issue with PCANTP_PARAMETER_RESET_HARD
  • Fixed issue with miss interpretation of ISOTP parameter Wait Frame Transmission
  • Fixed issue in consistency check for illegal ISOTP First frame
  • Fixed half-duplex handling of unexpected arrival of N_PDU with same N_AI as currently being processed

Changes:

  • CANTP_Write and CheckMsg feature now automatically fix wrong ISOTP NAI (ex. when extension_address is not useable, it is set to 0)
  • Usage of FF escape sequence limited to >4095 messages
  • BRS flag differences in a single ISOTP communication is now allowed

2021-05-21 - Version 3.1.2

Improvements:

  • Added ISO 15765 interleaving support of similar messages with the only difference of 11-bit / 29-bit flag
  • Added .NET and Delphi examples

Bug fixes:

  • Fixed issue with ISO 15765 interleaving when the messages share the same network address information
  • Fixed issue with sloppy mappings (i.e. when network address information is not set and only CAN IDs are used)
  • Fixed headers and source files to use UTF-8 encoding
  • Fixed compatibility issues with version 2.x:
    • Fixed CAN ID stored in DATA for messages with format PCANTP_FORMAT_NONE
    • Fixed default value for the parameter PCANTP_PARAM_CAN_UNSEGMENTED on channels initialized with 2.x functions
    • Fixed bad conversion of cantp_status when encapsulating a PCAN-Basic status
    • PCANTP_NETSTATUS_TIMEOUT_As and PCANTP_NETSTATUS_TIMEOUT_Ar are converted to PCANTP_NETSTATUS_TIMEOUT_A
  • Fixed hierarchy overriding of DLC in CANTP_Write_2016, when writing a functional ISOTP message (order of overriding is: channel < mapping < message)

Changes:

  • Check added to prevent interpretation of CAN frames with DLC < 8 as ISOTP segmentation frames
  • Improved memory checks to prevent possible crashes when calling API functions using an uninitialized cantp_msg variable
  • .NET/Delphi headers adjusted:
    • Missed constant values were added
    • Fixed error in #define constant name : PCANTP_API_COMPATIBILITY_ISO_2006 -> PCANTP_API_COMPATIBILITY_ISO_2004
    • Delphi: Fixed failure on CInt(Res)
  • The function CANTP_GetErrorText_2016 supports now the error code PCANTP_STATUS_HANDLE_INVALID
  • Typo corrections in resulting French error texts generated by the function CANTP_GetErrorText_2016
  • CANTP_AddMapping now fails if it is tried to add a mapping with 29 bit ENHANCED, FIXED_NORMAL or MIXED addressing format. Corresponding 29-bit support must be disabled first

2021-01-22 - Version 3.1.1

Improvements:

  • Added parameter PCANTP_PARAMETER_NETWORK_LAYER_DESIGN
  • Added support for half duplex network layer design
  • Added notes about can_info.dlc and the specialization of PCANTP_PARAMETER_CAN_TX_DL in mappings and messages
  • Miscellaneous internal optimizations
  • Documentation updated

Bug fixes:

  • Fixed CANTP_Read_2016 return status: status is not OK if a message is read but a network error occurred
  • Fixed PCANTP_STATUS_MASK_PCAN value
  • Fixed PCANTP_NETSTATUS_TIMEOUT_As, PCANTP_NETSTATUS_TIMEOUT_Ar values
  • Fixed PCANTP_NETSTATUS_XMT_FULL, PCANTP_NETSTATUS_BUS_ERROR, PCANTP_NETSTATUS_NO_MEMORY values
  • Fixed log level when debug mode is set to false

Changes:

  • CANTP_Write_2016 now corrects invalid values for msgdata.any->flags and msgdata.any->netstatus
  • Changed logs related to protocol-frames to NOTICE instead of INFORMATION
  • CANTP_GetValue_2016 and CANTP_SetValue_2016 return now PCANTP_STATUS_HANDLE_INVALID if parameter is not compatible with channel's handle
  • Changed timestamp handling with USB devices to better handle USB delay performances and prevent STMin violation
  • In CANTP_MsgEqual_2016, if messages are frames, function will resolve non-zero dlc to check length equality
  • Fixed warnings in samples 02 and 04
  • Fixed status issues and improved output messages in sample 06

2020-12-03 - Version 3.1.0

Improvements:

  • Added parameter PCANTP_PARAMETER_RESET_HARD to reset CAN controller without losing mappings and settings
  • Added functions CANTP_AddMsgRule_2016 and CANTP_RemoveMsgRule_2016
  • Added support of message's options
  • Added warning/error logs when PCAN-Basic returns a non-OK status in PCTPFrame::read/write functions
  • Added new values PCANTP_DEBUG_xxx to filter log messages
  • Added definitions PCANTP_MAX_CAN_ID_11_BIT, PCANTP_MAX_CAN_ID_29_BIT
  • Logging improved (PCANTP_NONEBUS now logs API function entries and exits, while channels logs Rx/Tx CAN frames)
  • Logging information enhanced with PCANTP_PARAMETER_DEBUG
  • Logging filtering optimized
  • Improved handling of bus errors when transmitting an ISO-TP message
  • Updated examples #02, #04 to allow segmented communications
  • Updated example #05 warning only unsegmented communications are available by design in this sample
  • New examples #09 and #10 representing an ISO-TP client and an ISO-TP server
  • Documentation updated

Bug fixes:

  • Fixed override hierarchy with CAN_TX_DL parameter (global setting << mapping << message)
  • Fixed memory leaks when PCAN-UDS_2013 is connected
  • Fixed issue in message comparison of self-receive frame when flag ESI is set
  • Fixed log_level of logs when a bus error occurs (warning instead of error used for non bus-off error)
  • Fixed rare memory exception when API hooks are installed (like PCAN-UDS)
  • Fixed possible issue when sending a functional ISO-TP FD message with DLC greater than 8 on a CAN only channel. CANTP_Write now returns PCANTP_STATUS_PARAM_INVALID_VALUE
  • Fixed CANTP_Write function to ensure backward compatibility: function no longer modifies the input parameter pMessageBuffer

Changes:

  • Optimized behavior of parameter PCANTP_PARAMETER_CAN_TX_DL: FC and last CF frames will use the lowest padded DLC
  • Lowered thread's priority of loggers
  • Newly initialized channels now use the log_level configured in PCANTP_HANDLE_NONEBUS
  • Changed CANTP_MsgEqual_2016 to ignore ESI flag when comparing self-receive messages
  • PCTPChannel ThreadMain now use CANTP_StatusIsOk in 'strict' mode to warn about bus errors
  • StatusCheck will return an error if BUS_OFF flag is set
  • Logging is now disabled by default
  • CANTP_AddMapping returns PCANTP_STATUS_PARAM_INVALID_VALUE if values for can_id, can_id_flow_ctrl or can_tx_dl are invalid
  • [WARNING] CANTP_StatusIsOk_2016 will return OK on bus error (as expected by documentation)

2020-07-16 - Version 3.0.1

Improvements:

  • Added parameter PCANTP_PARAMETER_MSG_CHECK

Bug fixes:

  • Fixed logging issue when activating PCANTP_PARAMETER_DEBUG
  • Fixed issue with CANTP_RemoveMapping_2016 and CANTP_RemoveMappings_2016: CAN IDs for flow control were not being removed

Changes:

  • The parameter PCANTP_PARAMETER_DEVICE_NUMBER:
    • was marked as deprecated
    • was renamed to PCANTP_PARAMETER_DEVICE_ID
  • The network error "PCANTP_NETSTATUS_TIMEOUT_As" is now raised if the "First Frame" or "Flow Control Frame" of an ISO-TP message is not confirmed within "TIMEOUT_AS" time

2020-05-27 - Version 3.0.0

Improvements:

  • New interface supporting ISO 15762-2, revision 2016
  • Fully binary compatible with applications using PCAN-ISO-TP.dll, version 2.x
  • Backward compatibility support for projects based on ISO 15762-2, revision 2004 (PCAN-ISO-TP.dll, version 2.x)
  • General code enhancements

2019-11-21 - Version 2.2.2

Bug fixes:

  • Structure alignment information was missing within the header files

2019-07-09 - Version 2.2.1

Improvements:

  • The configuration of the underlying certificate checking was changed to avoid delays at initialization time due to certificate revoke-search online

2019-05-23 - Version 2.2.0

Improvements:

  • Fixed typo with the parameter PCANTP_PARAM_SEPERATION_TIME, renamed to PCANTP_PARAM_SEPARATION_TIME
  • Fixed typo with the parameter PCANTP_PARAM_SEPERATION_TIME_OPTIMIZATION, renamed to PCANTP_PARAM_SEPARATION_TIME_OPTIMIZATION
  • General review of references due to update of parameter names

Bug fixes:

  • The function PCANTP_GetValue was returning PCANTP_ERROR_OK if the underlying PCANBasic.dll was not present

2019-02-05 - Version 2.1.0

Improvements:

  • New parameter PCANTP_PARAM_SEPERATION_TIME_OPTIMIZATION, used to ensure that STMin is always strictly respected

2018-12-17 - Version 2.0.3

Improvements:

  • The log files have now a timestamp with a resolution in microseconds

Bug fixes:

  • In some scenarios under Windows® 7, an exception was thrown when the library was unloaded
  • An overflow within internal timestamps was taking place when the host PC was running for several weeks

2018-03-05 - Version 2.0.2

Improvements:

  • CANTP_AddMapping now prevent the creation of a mapping with PCANTP_FORMAT_FIXED_NORMAL or PCANTP_FORMAT_ENHANCED formats
  • General code improvements on header files
  • Code of sample projects enhanced

Bug fixes:

  • Fixed typo in the VB.Net header where PCANTP_PARAM_CAN_UNSEGMENTED is defined
  • Fixed an issue when defining a global J1939 priority and mappings
  • Fixed invalid status when using an invalid parameter value
  • PCAN_GetStatus was returning PCAN-Basic status values
  • Fixed flag issue with message's member IDTYPE
  • Fixed issue when calling CAN_Uninitialize instead of CANTP_Uninitialize

2017-09-07 - Version 2.0.1

Improvements:

  • PCTPClient and PCTPServer samples were updated:
    • Command-line arguments were improved
    • Handling of errors on initialization
    • Server uses now an event for messages reading

Bug fixes:

  • User-defined mappings could not be found due to priority problems regarding 29-bit standard mappings

2017-01-16 - Version 2.0.0

Improvements:

  • Added CAN FD support through a new function CANTP_InitializeFD
  • Added new PCAN-ISO-TP message type to distinguish incoming or outgoing start frames
  • Transmission timing was enhanced

Bug fixes:

  • Heap corruption when an ISO-TP message contained an invalid data length

2016-11-02 - Version 1.4.3

Improvements:

  • PCAN connection now implements auto-reset on bus-off error
  • Optimized transmission when STmin = 0
  • Added support for J1939 priority with compliant ISO-TP messages
  • Added support to read/write unsegmented CAN frames
  • New .NET Samples (C# and VB.NET)

Bug fixes:

  • Fixed network communication errors with PCAN-PCI devices

2016-04-21 - Version 1.4.2

Improvements:

  • Added parameter PCANTP_PARAM_PADDING_VALUE to change CAN data padding value
  • Added support for additional PCAN-Basic channels (PCAN-Basic 4.x)
  • Updated N_As, N_Ar, N_Cr timeouts computing
  • Improved calculation of separation time between packages to take arbitration delays into account

Bug fixes:

  • Fixed timeout deadlock when calling PCANTP_Uninitialize with value PCANTP_NONEBUS
  • Fixed timeout computing of Seperation Time Min.

2015-09-09 - Version 1.4.1

Improvements:

  • ISO-TP Header files edited to support PCAN-Basic 4.x
  • Adjustments done to support some PassThru configurations (J2534)

2015-08-13 - Version 1.3.0

Improvements:

  • Added 'PCANTP_PARAM_RECEIVE_EVENT' parameter for message reception over event notification
  • General performance improved

2015-08-04 - Version 1.2.0

Improvements:

  • Added reception support for (non-ISO-TP) CAN frames
  • Added value PCANTP_CAN_UNFORMATTED_ALL_FRAMES which allows to retrieve all ISO-TP fragmented messages as CAN frames
  • Added the new function PCANTP_GetErrorText for Error-Text retrieving
  • Enhancement with Mappings: New possibilty to register mappings with the same CAN ID but different CAN ID responses (used with Extended Addressing)
  • Thread management performance improved (thread synchronization)
  • Message processing performance improved (fetching procedure)

Bug fixes:

  • There was a problem when transmitting short (unsegmented) and large (segmented) ISO-TP messages at the same time

2015-05-21 - Version 1.1.0

Improvements:

  • New structure for managing timestamps
  • CANTP_Read supports a new parameter to return the time when the message was received
  • The parameter PCANTP_PARAM_SEPARATION_TIME now handles microseconds
  • Examples were updated as well as the help file

2014-11-14 - Version 1.0.0

  • First release