2023-03-07 - Version 4.7.0
PCAN-Basic API DLL
Improvements:
- New TRACE_FILE_DATA_LENGTH value to be used with the PCAN_TRACE_CONFIGURE parameter, which allows showing the data length column instead of the DLC column within generated trace files
- Enhancements regarding ARM64
Bug fixes:
- Querying the PCAN_RECEIVE_EVENT parameter failed on x64 systems
- Generating multiple trace files during a long time was generating an Access Violation error in some scenarios
Changes:
- Input of Device ID in the sample projects is now done in hexadecimal
PCAN-Basic .NET Assembly
Improvements:
- A new value, ParameterValue.Trace.UseDataLength, can be used to configure traces to show the data length column instead of the DLC column
Bug fixes:
- Querying the PcanParameter.ReceiveEvent parameter failed on x64 systems
- Generating multiple trace files during a long time was generating an Access Violation error in some scenarios
- The Worker class did not configure the reception of echo frames at connection time
- The constructor parameter “bool closedFilter” of the Worker class was ignored
- Adding a filter to receive only standard CAN frames was causing any message to pass the filter
Download
2022-10-24 - Version 4.6.2
Improvements:
- New ARM64 API library
- New assembly PCAN-Basic.NET available as NuGet package
Bug fixes:
- The Device ID of a hardware couldn't be read when its value was 0xFFFFFFFF
2022-08-31 - Version 4.6.1
Improvements:
- The PCAN_IP_ADDRESS parameter can now be read without having the channel initialized
Bug fixes:
- The value returned for PCAN_CHANNEL_CONDITION was wrong when retrieving this information from a PCAN-Gateway device
- The BitrateFD parameter of the CAN_InitializeFD function was not written into the log file even though the function parameters were configured to be logged
- Initialization of a PCAN-LAN channel succeeded even when the PCAN_BITRATE_ADAPTING parameter was not specified and the bit rate passed to the function did not match the bit rate used by the channel
- Echo messages were not being marked as such when the channel used was a PCAN-LAN channel initialized for CAN FD communication
- The PCAN_HARDWARE_NAME parameter couldn't be retrieved from an uninitialized PCAN-LAN channel, if the hardware associated to it was configured for CAN FD communication
Changes:
- The documentation of status frames within the CAN_ReadFD function was lacking of information about the status frame with a CAN_ERROR_OK as value
2021-12-10 - Version 4.6.0
Improvements:
- Includes new parameter ALLOW_ECHO_FRAMES that allows the reception of self-sent messages
- Includes new parameter PCAN_DEVICE_PART_NUMBER to get the part number of a PCAN hardware (a.k.a. IPEH number)
- New set of samples in console mode in all supported programming languages (except Java)
- Internal code enhancements
Bug fixes:
- The function CAN_InitializeFD returned a wrong error code when the channel was already in use by PCAN-View, but with a different bit rate as the requested one
- The function CAN_Initialize returned a wrong error code when the channel to be initialized was already connected by PCAN-View as 'FD' channel
- The functions CAN_GetValue and CAN_SetValue returned a wrong error code when the channel used was wrong or PCAN_NONEBUS
- The function 'CAN_LookUpChannel' returned a wrong error code when the buffer for the channel handle was NULL
- The function 'CAN_GetErrorText' returned PCAN_ERROR_OK when the language code passed to the function was invalid or not found
- The parameter “PCAN_BITRATE:INFO_FD” returned always PCAN_ERROR_ILLMODE on an uninitialized channel, if that channel has been initialized as FD before, using a bit rate different than 500 kBit / 2MB @24 MHz
- The PCAN_TRACE_SIZE parameter configured the log file size to its maximum possible (100 MB) instead of 10 MB, if it was intended to set the default value (using 0 as the size value)
- The condition of a channel (PCAN_CHANNEL_CONDITION parameter) was erroneously returned as PCAN_CHANNEL_AVAILABLE in some scenarios
- When an application used the parameter PCAN_ATTACHED_CHANNELS while having one or more channels initialized, the returned status for those channels was 'PCAN_CHANNEL_PCANVIEW' instead of 'PCAN_CHANNEL_OCCUPIED'
- The function CAN_SetValue was failing for numeric values, if the buffer passed to the function was smaller than 4 bytes
- The function CAN_GetValue truncated numeric values when the buffer passed to the function was too small for the data, instead of returning an error
- The 64-bit parameters PCAN_ACCEPTANCE_FILTER_11BIT and PCAN_ACCEPTANCE_FILTER_29BIT were erroneously treated as 32-bit values under Python
- Wrong casting of the type TPCANStatus within the Pascal header file corrected
- An exception was thrown when the location of the log file (PCAN_LOG_LOCATION) was changed after activating the logging feature on French systems
Changes:
- The value of the constant/define MAX_LENGTH_VERSION_STRING was changed from 18 to 256
- The function CAN_InitializeFD does not fail anymore, if the parameter PCAN_BITRATE_ADAPTING is used and the given bit rate string is not valid
- The Sample projects are now shipped as a zip file within the PCAN-Basic package
- French text translations were revised/corrected
2021-04-28 - Version 4.5.4
Bug fixes:
- Error Frames were not written correctly into trace files using trace file format 2.0
2021-02-10 - Version 4.5.3
Bug fixes:
- Starting with PCAN-Basic API v4.5.1, channel initialization failed if a PCAN driver with a version older than v4.2.1 was used
2021-01-27 - Version 4.5.2
Bug fixes:
- PCAN-Basic API v4.5.1 returned the error PCAN_ERROR_ILLMODE when trying initializing CAN-FD devices with regular CAN bit rates
2021-01-21 - Version 4.5.1
Improvements:
- Adjustments regarding the new PCAN-Gateway FD devices
- PCANBasic.py header file now includes code to try to load the API from the third-party PCAN-USB driver for Mac, PCBUSB (MacCAN)
- Documentation updated
Bug fixes:
- The LookUpChannel function of the Python file PCANBasic.py returned a wrong data type
2020-12-03 - Version 4.5.0
Improvements:
- New function added, CAN_LookUpChannel, for finding PCAN-Basic channels through some attributes
Bug fixes:
- The function CAN_SetValue returned PCAN_ERROR_OK for the parameters PCAN_LOG_STATUS, PCAN_LOG_LOCATION, and PCAN_LOG_TEXT, even if the log file could not be created (e.g. due to permission issues)
2020-07-16 - Version 4.4.1
Improvements:
- General code enhancements
- Documentation was updated
Bug fixes:
- When using the tracing functionality, echoed messages (hardware self-received frames) were being included in the trace file as "Tx" messages
2019-11-21 - Version 4.4.0
Improvements:
- New structure TPCANChannelInformation to store information about a PCAN-Basic channel
- New constant values added:
- MAX_LENGTH_HARDWARE_NAME
- MAX_LENGTH_VERSION_STRING
- New parameters added:
- PCAN_FIRMWARE_VERSION: reads firmware version of devices
- PCAN_ATTACHED_CHANNELS_COUNT: returns the number of PCAN-Basic channels attached to the PC
- PCAN_ATTACHED_CHANNELS: returns a list of TPCANChannelInformation items with information on channels found
- New example with UI for Python 3.x
- New error code PCAN_ERROR_ILLMODE added
- General code enhancements
Bug fixes:
- CAN_GetValue(PCAN_CHANNEL_FEATURES) couldn't recognize if a channel was I/O capable
- PCAN-Basic channel enumeration was wrong, if the device driver was configured to enumerate devices in a new way
- When a read event was configured and the reception of messages was deactivated by a call to CAN_SetValue(PCAN_RECEIVE_STATUS), the event was still being triggered, even if no messages were placed in the reception queue
Changes:
- The parameter PCAN_DEVICE_NUMBER:
- was marked as deprecated
- was renamed to PCAN_DEVICE_ID
- is applicable not only for USB devices, but also for PCI devices (beginning with PCAN device drivers v4.2.0)
- The following parameters can now be requested without having a channel initialized:
- PCAN_DEVICE_ID (formerly PCAN_DEVICE_NUMBER)
- PCAN_5VOLTS_POWER
- PCAN_BITRATE_INFO
- PCAN_BITRATE_INFO_FD
2019-07-09 - Version 4.3.4
Improvements:
- General code enhancements
- Documentation: List of PEAK devices updated
Bug fixes:
- Calls of the function CAN_Read were ending with the error 0x1C20 (PCAN_ERROR_ILLCLIENT + PCAN_ERROR_QRCVEMPTY)
- The CHANNEL_IDENTIFYING parameter was behaving wrong on PCAN-USB devices with Firmware version v8.4 or later
- Internal calculation for bit rates were causing a division by zero in some specific scenarios
2019-05-22 - Version 4.3.3
Bug fixes:
- The generated PCAN-Trace file contained negative timestamps in some scenarios
- The chronological inclusion of sent messages (Tx) in the generated PCAN-Trace file was not accurate enough
2019-02-04 - Version 4.3.2
Improvements:
- The PCAN-Trace files generated with PCAN-Basic now contain information about the API version used to generate them
Bug fixes:
- Compatibility issues fixed
2018-12-14 - Version 4.3.1
Bug fixes:
- PCAN-USB X6 and PCAN-Chip USB modules were treated as standard PCAN-USB adaptors when identifying their channels. This caused the LEDs to remain on (orange color) until the devices were plugged out
2017-11-23 - Version 4.3.0
Improvements:
- New parameters added:
- PCAN_IO_DIGITAL_CONFIGURATION: Configures the digital pins of a device as digital outputs
- PCAN_IO_DIGITAL_VALUE: Sets the values of all digital pins of a device
- PCAN_PARAM_IO_DIGITAL_SET: Sets selected digital pins of a device to 'high'
- PCAN_PARAM_IO_DIGITAL_CLEAR: Sets selected digital pins of a device to 'low'
- PCAN_PARAM_IO_ANALOG_VALUE: Reads the value of the analog pin of a device
- Parameters enhanced:
- PCAN_CHANNEL_FEATURES can now determine if a channel supports using I/Os
- PCAN_FEATURE_IO_CAPABLE: Device with I/O capabilities
Bug fix:
- Calling CAN_GetValue with the parameter PCAN_CHANNEL_FEATURES returned an error when the channel had no support for INTERFRAME_DELAY
2017-09-08 - Version 4.2.0
Improvements:
- Error Frames are now supported
- New parameters added:
- PCAN_ALLOW_STATUS_FRAMES: Enables/disables the reception of Status Frames
- PCAN_ALLOW_RTR_FRAMES: Enables/disables the reception of RTR Frames
- PCAN_ALLOW_ERROR_FRAMES: Enables/disables the reception of Error Frames
- PCAN_INTERFRAME_DELAY: Pause between frames within the sending process
- PCAN_ACCEPTANCE_FILTER_11BIT: Acceptance code and mask for 11-bit CAN-IDs
- PCAN_ACCEPTANCE_FILTER_29BIT: Acceptance code and mask for 29-bit CAN-IDs, as 64-bit value
- Parameter behavior changed: PCAN_HARDWARE_NAME and PCAN_CONTROLLER_NUMBER can now be read without the channel being connected
- Parameter enhanced: PCAN_CHANNEL_FEATURES can be used to determine whether a channel supports the INTERFRAME_DELAY parameter
- Unused dependencies removed
- Library size optimized
- General update of sample projects
- Microsoft sample projects (.NET, MFC) were upgraded to Visual Studio 2010
- Documentation was updated
Bug fixes:
- Inconsistences between return code of CAN_Initialize and CAN_InitializeFD corrected
- The function CAN_GetStatus didn't take into account if a channel was initialized as FD or not
- MFC example edited: BRS checkbox was active at program start
- Header file for Python was adjusted: literal strings were not being interpreted as "byte string"
- Header file for Delphi was adjusted: The type TPCANBitrateFD was defined as "string", instead of "PAnsiChar"
- Some compatibly issues were solved
2016-06-20 - Version 4.1.0
Improvements:
- New Get-Parameter used to check the running status of the PCAN-LAN service
- Samples were updated to use the new parameter
- Python header file was updated to allow using it within Python 3.0
- Documentation was updated
Bug fix:
- Fixed incompatibility issues that were causing malfunctions of the library when using it within a Windows service
2016-04-22 - Version 4.0.4
Improvements:
- Change regarding PCAN-Trace handling: The relative start time in a trace is no more the file creation time but the timestamp of the first message written in the trace. Therefore, the first entry will now always have the time offset 0
- General code enhancements
2015-11-06 - Version 4.0.3
Improvements:
- The PCANBasic.py header file and the Python example were enhanced to support multiple platforms
- There is now a single file as Python example, which also includes Windows event support
- General code optimization
Bug fixes:
- Compatibility issue fixed: The ReadFD function was adjusted to return the status code represented by a received status message, as done in earlier driver versions
- Compatibility issue fixed: It was possible to connect a PCAN-Light application and a PCAN-Basic application to the same channel simultaneously
- Trace Format 2.0 adjustment: The word "RTR" was removed from Remote Frames records
2015-07-01 - Version 4.0.2
- Improvement: The parallel port CAN interface (PCAN-Dongle) is now supported as a Plug & Play device. Please note that this feature is in BETA state
2015-06-24 - Version 4.0.1
- Enhancement: Extra information was added to the properties of the PCANBasic.dll file, to show the platform for which the file was compiled (32-Bit or 64-Bit)
Bug fixes:
- A problem regarding the creation of PCAN-Trace files was avoiding the storing of messages in the file
- The Delphi sample had a text formatting problem. An error message appeared while the list of available channels has been filled out
2015-05-21 - Version 4.0.0
Improvements:
- Added support for CAN with Flexible Data rate (FD) through 3 new functions: CAN_InitializeFD, CAN_ReadFD, CAN_WriteFD.
- Added support for the new Trace Format 2.0 (FD Trace)
- New device type support included: PCAN-LAN (Virtual PCAN-Gateway channels)
- The maximum amount of channels that can be connected simultaneously was increased from 8 to 16 for devices of the types PCAN-USB, PCAN-PCI, and PCAN-LAN
- Added seven new parameters: PCAN_CHANNEL_FEATURES, PCAN_BITRATE_ADAPTING, PCAN_BITRATE_INFO, PCAN_BITRATE_INFO_FD, PCAN_BUSSPEED_NOMINAL, PCAN_BUSSPEED_DATA, PCAN_IP_ADDRESS. More information about them can be found in the help file
- New version is backward compatible, i.e. applications compiled for PCAN-Basic version 1.x still work with the new version
Please note: Version 2.x and 3.x were internal releases that added the CAN FD and PCAN-LAN support.
2013-12-13 - Version 1.3.3
Bug fixes:
- Preconfiguring the Listen-Only mode was not being done fast enough, which could cause bus errors when the bit rate was not correct
- The delay used in CAN_Uninitialize in order to transmit messages not yet sent was too short. This could cause that messages were truncated and generate bus errors in this way
2013-09-25 - Version 1.3.2
Enhancements:
- PCAN-Basic can now be used in multi-session environments (from different Windows-Sessions at the same time), for example, from a Windows-Service and a normal User-Application
- Some compatibly issues were solved
2013-09-06 - Version 1.3.1
Enhancements:
- The CAN Trace records status errors (BUSLIGHT, BUSHEAVY, BUSOFF) too
- Some compatibly issues were solved
Bug fixes:
- An incompatibility issue with the Fixed Hardware-Handle Procedure was corrected. This was causing some channels to be marked as available when they were not
- Problem in header file for Python corrected. The functions GetValue and SetValue were failing and returning the error PCAN_ERROR_ILLPARAMVAL, when the Parameters PCAN_TRACE_LOCATION and/or PCAN_HARDWARE_NAME were used
- Sent messages were not included in the Trace file, if the status of the CAN bus was BUSHEAVY, BUSLIGHT, or BUSOFF
2013-03-27 - Version 1.3.0
Improvements:
- With PCAN-Basic is now possible to record transmitted CAN data (CAN_Read and CAN_Write data) using PCAN-Trace files. The configuration of the Traces as well as the activation of it is achieved using new parameters within the functions CAN_SetValue and CAN_GetValue
- It is now possible to physically identify an USB channels, by blinking its associated LED. The use of this feature is achieved using the functions CAN_SetValue and CAN_GetValue
- Some compatibility issues were solved
Enhancements:
- The logging file shows now the API version being used, including platform version (32- or 64-bits)
- Internal code-optimizations
Bug fix:
- Problem in header file for C/C++, when compiling as C Code. Default-Parameters within the function CAN_Initialize will only used when C++ is declared (Compiled as C++ Code)
2012-10-26 - Version 1.2.3 - Update
Update of the PCAN-Basic JNI interface DLL (Java Native Interface) to version 1.8
- Bug fix: Memory leak in CAN-Send function removed
- Some smaller performance problems solved
Update of the JAVA PCAN-Basic sample source code
- Enhanced the PCAN-Basic Java sample with a send timer
2012-09-20 - Version 1.2.3
- Improvement: A channel will be automatically reset at initialise, when the status of the CAN bus is other than PCAN_ERROR_OK
- Enhancement: Better BTRs values for the standard baud rates 33,333 kBit/s and 83,333 kBit/s
2012-03-13 - Version 1.2.2
- Improvement: Some compatibility issues were solved
2012-01-25 - Version 1.2.1
- Improvement: Some compatibility issues were solved
2011-11-16 - Version 1.2.0
Improvements:
- A new read-only parameter, PCAN_CONTROLLER_NUMBER, makes possible to ask the index of the physical channel(s) in a PCAN device
- The examples were changed to support the new parameter
- A new error code, PCAN_ERROR_ILLDATA, was added
Bug fixes:
- Minor issues fixed within the function CAN_SetValue
- A access-problem using the Log functionality from different threads was fixed
- The example for C++ / MFC was edited. The read-thread was blocking the application in some scenarios
2011-08-17 - Version 1.1.0
- Bug fix: A small bug when closing the filter within the example C++ MFC Project was fixed
- Bug fix: An internal cast of a handle was wrong. This could cause problems on 64-bit platforms
- Enhancement: New pre-initialization capable parameter, PCAN_RECEIVE_STATUS, makes possible to allow/disallow reading of messages regardless of the filter configuration
- Improvement: A full open filter needs no more to be first closed, before calling the function “CAN_FilterMessages” in order to restrict the reception of messages
- Enhancement: A new define, LOG_FUNCTION_ALL, makes it possible to configure all the available Log functionality with only one value
- Improvement: The format of the Log file was updated in order to make the information more readable
- Change: The examples were updated to support the new Parameter. Added to this, they have now a new configuration for x64 platforms
- Improvement: The log file can now be read/opened while it is being written
2011-06-09 - Version 1.0.10
- Improvement: The header file for Visual Basic 6 was changed to support optional parameters within the function CAN_Initialize
- Improvement: Some compatibility issues were solved
2011-05-13 - Version 1.0.9
- Bug fix: Incoming messages were not logged even though having configured the logging functionality with the value LOG_FUNCTION_READ
2011-03-08 - Version 1.0.8
- Improvement: The examples were adjusted to work with a better performance when a lot of CAN data is being received
- Bug fix: Minor issues within 32/64 bits data types were solved
- Bug fix: Some problems regarding backward compatibility to PCAN-Light were solved
- Bug fix: Problems with the Clean-up of orphaned connections has been fixed
2011-01-25 - Version 1.0.7
- Bug fix: The function CAN_GetErrorText did not work correctly if the given buffer was not empty
- Some compatibility issues were solved
- Improvement: New baud rate register values were added to the definitions / enumerations used to set the baud rate of a connection
2010-10-15 - Version 1.0.6
- Bug fix: In some scenarios, the detection of available channels was reporting channels as occupied when they aren’t
- Improvement: New parameter added "PCAN_HARDWARE_NAME". Now it is possible to differentiate models of a same device, e.g. PCAN-USB and PCAN-USB Pro
- Improvement: The property PCAN_LISTEN_ONLY was adjusted to be used with an uninitialized channel. Now it is possible to pre-initialize a channel in Listen-Only mode, I order to avoid arbitration problems at the moment of connecting the channel
- The Help files were updated
2010-09-08 - Version 1.0.5.17
- Changes: The German resources where edited
- Bug fix: The core CAN communication was actualized
- Improvements: The Header file and the example for Delphi were edited to avoid compile errors when using them within new versions of Delphi
2010-08-17 - Version 1.0.5
- Improvement: The functionality of the parameter PCAN_BUSOFF_AUTORESET was adjusted due to some compatibility issues between some device drivers
2010-07-06 - Version 1.0.4
- Bug fix: Checking the availability of channels in a computer with the function CAN_GetValue and the parameter PCAN_CHANNEL_CONDITION was retuning wrong values
- The header files were edited. The defines related to the parameter PCAN_CHANNEL_CONDITION were changed
- The samples and the Help files were edited due to the mentioned changes
2010-06-21 - Version 1.0.3
- Some compatibility issues were solved
- New example for Python 2.6 available
2010-05-26 - Version 1.0.2
- Bug fix: The return value of the CAN_Initialize function was still wrong in some scenarios
- Bug fix: More than one channel could not be connected at the same time under 64-bit systems
- Extras/Improvements: New PCAN-Basic examples for Delphi and for C++ Builder
- Extras/Improvements: German documentation added
2010-05-04 - Version 1.0.1.7
- Bug fix: The return value of the function CAN_Initialize could be CAN_ERROR_OK even when the initialization was not successful
2010-04-30 - Version 1.0.1
- Bug fix: All CAN_* functions were updated due to possible wrong return values in multi-threading scenarios
- Adjustment of the supported operating systems to Windows® 7/Vista/XP
- Bug fix: The return value of the function CAN_Write could be wrong in multi-threading scenarios
- Bug fix: A wrong declaration of the overloaded method Read() caused problems in C# and VB.Net. Both headers were edited
- Improvement: A PCAN-Basic header file for VB-6 was included
2010-01-21 - Version 1.0.0.4
- Bug fix: A wrong German text resource for showing CAN-messages was corrected
- Improvement: The functions CAN_Read and CAN_Write were improved to accept the structures TPCANMsg and TPCANTimestamp without byte-alignment information (using the default alignment)
- The header files were modified. The byte-alignment information was deleted from all headers
2010-01-20 - Version 1.0.0.3
- Inclusion of new error codes: HWINUSE, NETINUSE, ILLHW, ILLNET, ILLCLIENT in all header files
- Inclusion of description texts for the new error codes in the languages: English, Spanish, French, Italian, and German
- Modification of the PCAN-Basic function GetErrorText in order to support the new error codes
2010-01-07 - Version 1.0.0.2
- Inclusion of the project's configuration for 64-bit platforms
2009-12-16 - Version 1.0.0.1
- Inclusion of the new header file PCANBasic.py. This is a python module which represents the PCAN-Basic header file
2009-12-11 - Version 1.0.0
- Changed the default value of the parameter AUTO_RESET_ON_BUSOFF to false
- FIRST release version
2009-12-02 - Version 0.0.6