Se rendre au contenu
PCAN-ISO-TP API
v3.6.1
3.6.1 30/03/2026
Améliorations
- General code enhancements
Corrections de bugs
- Fixed an ILLPARAM_TYPE issue with PCAN-Basic v5 when initializing CAN CC (related to PCAN_BUSSPEED_DATA)
Changements
- Non-PnP channel definitions are now deprecated
3.6.0 11/07/2025
Améliorations
- Added parameter PCANTP_PARAMETER_SEPARATION_TIME_FC_TX (minimum time between a First Frame and a Flow Control)
- API revised to align with ISO-15765-2:2024
Corrections de bugs
- Fixed CanApi fallback issues related to flags: 29-bit, RTR, FD, BRS, and InitializeFD
- Fixed an issue when using CanApi with channel handles 0x401 to 0x408 and 0x501 to 0x508
- Fixed issues in CANTP_AddFiltering_2016 when using ranged CAN IDs and/or filtering via can_msgtype
Changements
- Minor text changes in debug logs
- CANTP_RemoveMappings_2016 now supports the value PCANTP_CAN_ID_DEFINED_BY_NAI: removes all mappings
3.5.0 05/10/2023
Améliorations
- Added support for carrying out communication with available CAN-API 4 connections
- General code enhancements
Corrections de bugs
- 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
Changements
- 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)
3.4.0 23/03/2023
Améliorations
- 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
Changements
- CANTP_Read_2016 can now return a status with the information flag PCANTP_STATUS_CAUTION_RX_QUEUE_OVERRUN
3.3.0 31/08/2022
Améliorations
- 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
Corrections de bugs
- 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
Changements
- 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
3.2.0 27/10/2021
Améliorations
- 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
Corrections de bugs
- 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
Changements
- 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
3.1.2 21/05/2021
Améliorations
- Added ISO 15765 interleaving support of similar messages with the only difference of 11-bit / 29-bit flag
- Added .NET and Delphi examples
Corrections de bugs
- 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_NONEFixed default value for the parameter PCANTP_PARAM_CAN_UNSEGMENTED on channels initialized with 2.x functionsFixed bad conversion of cantp_status when encapsulating a PCAN-Basic statusPCANTP_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)
- 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
Changements
- 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 addedFixed error in #define constant name : PCANTP_API_COMPATIBILITY_ISO_2006 -> PCANTP_API_COMPATIBILITY_ISO_2004Delphi: 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
- 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)
3.1.1 22/01/2021
Améliorations
- 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
Corrections de bugs
- 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
Changements
- 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
3.1.0 03/12/2020
Améliorations
- 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
Corrections de bugs
- 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
Changements
- 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)
3.0.1 16/07/2020
Améliorations
- Added parameter PCANTP_PARAMETER_MSG_CHECK
Corrections de bugs
- 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
Changements
- The parameter PCANTP_PARAMETER_DEVICE_NUMBER:was marked as deprecatedwas 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
- was marked as deprecated
- was renamed to PCANTP_PARAMETER_DEVICE_ID
3.0.0 27/05/2020
Améliorations
- 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
2.2.2 21/11/2019
Corrections de bugs
- Structure alignment information was missing within the header files
2.2.1 09/07/2019
Améliorations
- The configuration of the underlying certificate checking was changed to avoid delays at initialization time due to certificate revoke-search online
2.2.0 23/05/2019
Améliorations
- 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
Corrections de bugs
- The function PCANTP_GetValue was returning PCANTP_ERROR_OK if the underlying PCANBasic.dll was not present
2.1.0 05/02/2019
Améliorations
- New parameter PCANTP_PARAM_SEPERATION_TIME_OPTIMIZATION, used to ensure that STMin is always strictly respected
2.0.3 17/12/2018
Améliorations
- The log files have now a timestamp with a resolution in microseconds
Corrections de bugs
- 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
2.0.2 05/03/2018
Améliorations
- 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
Corrections de bugs
- 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
2.0.1 07/09/2017
Améliorations
- PCTPClient and PCTPServer samples were updated:Command-line arguments were improvedHandling of errors on initializationServer uses now an event for messages reading
- Command-line arguments were improved
- Handling of errors on initialization
- Server uses now an event for messages reading
Corrections de bugs
- User-defined mappings could not be found due to priority problems regarding 29-bit standard mappings
2.0.0 16/01/2017
Améliorations
- 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
Corrections de bugs
- Heap corruption when an ISO-TP message contained an invalid data length
1.4.3 02/11/2016
Améliorations
- 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)
Corrections de bugs
- Fixed network communication errors with PCAN-PCI devices
1.4.2 21/04/2016
Améliorations
- 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
Corrections de bugs
- Fixed timeout deadlock when calling PCANTP_Uninitialize with value PCANTP_NONEBUS
- Fixed timeout computing of Seperation Time Min.
1.4.1 09/09/2015
Améliorations
- ISO-TP Header files edited to support PCAN-Basic 4.x
- Adjustments done to support some PassThru configurations (J2534)
1.3.0 13/08/2015
Améliorations
- Added 'PCANTP_PARAM_RECEIVE_EVENT' parameter for message reception over event notification
- General performance improved
1.2.0 04/08/2015
Améliorations
- 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)
Corrections de bugs
- There was a problem when transmitting short (unsegmented) and large (segmented) ISO-TP messages at the same time
1.1.0 21/05/2015
Améliorations
- 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
1.0.0 14/11/2014
Changements
Neutralisé