Se rendre au contenu

PCAN-Basic (Linux)

v5.0.0
VersionDate
5.0.030/01/2026Détails
4.10.008/01/2025Détails
4.9.021/10/2024Détails
4.8.018/01/2024Détails
4.7.128/09/2023Détails
4.7.004/04/2023Détails
4.6.204/10/2022Détails
4.6.125/07/2022Détails
4.6.008/04/2022Détails
4.5.426/01/2022Détails
4.5.318/11/2021Détails
4.5.204/10/2021Détails
4.5.124/09/2021Détails
4.5.002/09/2021Détails
4.4.216/12/2020Détails
4.4.114/08/2020Détails
4.4.007/08/2020Détails
4.4.327/04/2020Détails
4.3.405/03/2020Détails
4.3.319/02/2020Détails
4.3.209/10/2019Détails
4.3.1.315/04/2019Détails
4.2.2.603/08/2018Détails
4.2.1.516/03/2018Détails
4.2.1.406/03/2018Détails
4.2.1.103/03/2018Détails
4.2.0.303/11/2017Détails
4.2.0.231/10/2017Détails
4.2.0.109/10/2017Détails
4.1.2.504/10/2017Détails
4.1.117/02/2017Détails
4.1.0.208/09/2016Détails
4.1.0.020/07/2016Détails
4.0.0.420/05/2016Détails
4.0.0.316/03/2016Détails
4.0.0.201/03/2016Détails
4.0.0.129/01/2016Détails
4.0.018/01/2016Détails
2.0.404/11/2015Détails
2.0.317/10/2014Détails
2.0.208/01/2014Détails
2.0.112/11/2013Détails
2.0.008/11/2013Détails
1.0.005/11/2013Détails

5.0.0 30/01/2026

Changements
  • Synchronized version with PCAN-Basic 5.0.0
  • Added support for CAN XL features
  • All types related to non Plug-n-Play devices are now deprecated

4.10.0 08/01/2025

Changements
  • Includes the new parameter PCAN_DEVICE_GUID, which allows a clear distinction between USB-based PCAN devices

4.9.0 21/10/2024

Améliorations
  • Updated headers: They are now matching Windows version 4.9.0.942
  • Error frames: fixed DLC: changed DLC=1 to DLC=4
  • CAN_SetValue: fixed return status when calling with PCAN_TRACE_xx parameters while an I/O error occurred
Changements
  • Fixed .TRC output: error frames data were formatted using TRC_v1.1 instead of TRC_v2.0
  • Fixed .TRC output: removed trailing comments from version 1.1
  • Changed .TRC output: removed trailing space after the last data byte
  • Changed .TRC comment "Generated by PCAN-Basic API v..." to "Generated by PCAN-Basic API (Linux), version ..."

4.8.0 18/01/2024

Changements
  • Updated thread to listen to devices' plugin/plugout disabled by default
  • Fixed call to pcanlog_set(...)
  • Updated log level
  • Misc. improvements to prevent buffer overruns

4.7.1 28/09/2023

Changements
  • Added support to device plugin/plugout notifications
  • Added support to parameter PCAN_HARD_RESET_STATUS

4.7.0 04/04/2023

Améliorations
  • Added support of value TRACE_FILE_DATA_LENGTH with parameter PCAN_TRACE_CONFIGURE
  • Added .NET headers in "include" directory
Changements
  • Moved PCANBasic.h to "include" directory
  • Generated trace file includes a suffixed index only if TRACE_FILE_SEGMENTED is set
  • If TRACE_FILE_OVERWRITE is not set and a file already exists, tracing will fail (EOPNOTSUPP) and be disabled
  • In Makefile, commented LDFLAGS_CLEANUP_SO to prevent warnings due to an issue with Binutils <2.33 on ARM
  • Updated: CAN_SetValue with PCAN_TRACE_LOCATION and PCAN_TRACE_STATUS better handles I/O error and returns corresponding PCAN-Basic status code

4.6.2 04/10/2022

Changements
  • Fixed STARTTIME in trace file to use local time
  • Improved logs for firmware update checks

4.6.1 25/07/2022

Changements
  • Prevented possible buffer overflows with PCAN_ALLOW_ECHO_FRAMES and PCAN_BUSOFF_AUTORESET
  • PCANBasic.h includes if UINT64 is not defined
  • CAN_Initialize and CAN_InitializeFD wait for bus to be active (up to 1ms) (PCAN_ERROR_CAUTION is returned if initialization succeeded but bus_state is not active)
  • Reduced required buffer size for GetValue(PCAN_FIRMWARE_VERSION) (required size was >= 257)

4.6.0 08/04/2022

Améliorations
  • Added support to parameter PCAN_ALLOW_ECHO_FRAMES and frame flag PCAN_MESSAGE_ECHO that allows the reception of self-sent messages.
  • Added support to parameter PCAN_DEVICE_PART_NUMBER to get the part number of a PCAN hardware (a.k.a. IPEH number).
  • Added support to fw and driver update checks.
Changements
  • Changed format ouput (hex) for pcaninfo fields: base, btr0btr1, devid, init_flags.
  • pcanbasic_get_hw returns PCAN_ERROR_ILLHANDLE if hw group is unknown.

4.5.4 26/01/2022

Améliorations
  • Added internal support to get the part number of a PCAN hardware (a.k.a. IPEH number).
  • Added translations for error PCAN_ERROR_ILLMODE.
Changements
  • Changed required size for parameter PCAN_LOG_STATUS to uint8_t
  • Parameter PCAN_LOG_TEXT automatically enables PCAN_LOG_STATUS
  • Corrected a bug in pcanbasic_bus_state_to_condition (ERROR_ACTIVE flag was detected as ERROR_PASSIVE)
  • If a status message is read the return value of CAN_Read/CAN_ReadFD is also the error code of the status frame.
  • Corrected memory leak: close log file on exit
  • Fixed issue when uninitializing/initializing channel with different bitrates within a few milliseconds.
  • Fixed incorrect returned value when calling parameter channel condition on a specific use-case
  • Fixed CAN_SetValue with parameters PCAN_TRACE_LOCATION and PCAN_LOG_LOCATION to allow a NULL buffer of size 0.
  • Improved size checks for null-terminated get/set parameters
  • Normalized status code for pcanbasic_get_value_xxx functions
  • Updated some returned codes (in case of errors) for every entry points to match exactly PCANBasic Windows 4.6 behaviour.
  • Added return values for functions in pcblog.h
  • Updated PCANBasic_enu_linux_addenda.txt

4.5.3 18/11/2021

Améliorations
  • Fixed timestamp issue with CAN_Read.

4.5.2 04/10/2021

Améliorations
  • Fixed year in "start time" comments for .trc files

4.5.1 24/09/2021

Changements
  • Fixed CAN_Uninitialize when Tx queue is not empty, waiting time was 50ms instead of 500ms
  • CAN_Uninitialize clears Tx queue before closing (avoiding any driver's extra waiting time)
  • Fixed issue when calling CAN_Uninitialize(PCAN_NONEBUS) and continue using the API (involving parameter PCAN_AVAILABLE_CHANNELS)
  • Fixed side-effects in CAN_SetValue on non-ARM systems (see previous ARM patch)
  • Fixed syslog log_level
  • library initialization now also initializes internal parameters

4.5.0 02/09/2021

Améliorations
  • Added support to new API entry point: CAN_LookUpChannel
  • Added automatic compilation of libpcanbasic 32 bit version
  • Added mechanism to ignore status frame on reset (and CAN_Initialize, use definition KEEP_STATUS_FRAME_ON_RESET to disable)
  • Added timestamps usage to examples
  • Added support to future PCAN Linux 8.13 features (ioctl resets)
  • Added missing functions to handle logging of LOG_FUNCTION_READ, LOG_FUNCTION_WRITE
  • Header upgraded to match PCANBasic Windows v4.5.3
  • Fixed possible infinite loop in pcanbasic_parse_fd_init
Changements
  • Fixed $STARTTIME in trc file to match PEAK-TRACE spec.
  • Replaced uses of deprecated 'gettimeofday' with 'clock_gettime'
  • Function pcanbasic_get_device now initializes a status parameter to get same error code as on Windows
  • Function pcanbasic_get_channel now have a TCANStatus param to improve and give information to caller
  • Factorized duplicate code with internal function pcanbasic_get_fd.
  • Updated MakeFile to specify precisely exported functions (see def file)
  • Fixed returned code (in case of erros) for every entry points to match exactly PCANBasic Windows behaviour
  • Given pathes are now internally converted and stored as absolute pathes (internal pathes are dynamically allocated)
  • Enabling logging now checks and immediately opens the log file (same as Windows)
  • CAN_Read/CAN_ReadFD and CAN_Write/CAN_WriteFD now check if the corresponding CAN_Initialize/CAN_InitializeFD was used (PCAN_ERROR_ILLOPERATION)
  • CAN_Write/CAN_WriteFD now supports PCAN_ERROR_XMTFULL error code
  • Changed trace to support chronological ordering: libpcanfd msg-echoing is enabled by default (if supported, FD fw only)
  • Fixed CAN_SetValue to return an error when the size of the buffer is invalid
  • Improved CAN_SetValue to better handle buffer with a size smaller than expected (ARM)

4.4.2 16/12/2020

Changements
  • Fixed compilation error in -std=gnu90
  • 'Initialize' functions will try to retrieve a more precise error when 'pcanfd_open' fails
  • API version string will end with "(debug)" if library is built in debug mode
  • Refactored logging in debug mode and fixed syslog logging
  • pcaninfo changed to v1.2.0: Outputs version of the installed PCAN-Basic API

4.4.1 14/08/2020

Améliorations
  • Added checks to prevent possible buffer overflows when copying CAN/CANFD message's DATA
  • Added mutex in API entries to provide more robust thread-safe system

4.4.0 07/08/2020

Changements
  • Updated libpcanbasic/pcanbasic to match features from Windows PCAN-Basic 4.4
  • Updated libpcanbasic/pcaninfo to display a short or detailed list of devices
  • Updated pcanbasic_java/libpcanbasic_jni to support features from PCAN-Basic 4.4
  • Updated pcanbasic_java/examples to support features from PCAN-Basic 4.4

4.4.3 27/04/2020

Changements
  • CAN_SetValue for PCAN_DEVICE_ID and PCAN_5VOLTS_POWER now requires an initialized channel (as mentionned by documentation)
  • Calls to deprecated function gettimeofday(..) was replaced with clock_gettime(clk_ref,...)
  • Trace file now have a starttime set a few milliseconds prior initialisation
  • Trace file can display negative relative timestamp
  • Fixed minor typos in logs
  • Compilation now supports distinct preprocessor's definitions of LOG_LEVEL and _DEBUG
  • PCAN_PARAMETER_CHANNEL_VERSION now includes channel's type and PEAK copyright (to match string returned by PCANBasic Windows API)

4.3.4 05/03/2020

Changements
  • Fixed pcanbasic/Makefile_latest.mk so that shared object can be built under Xenomai 3.1

4.3.3 19/02/2020

Changements
  • Updated the included licensing information

4.3.2 09/10/2019

Améliorations
  • PCAN-Basic example now supports Python 3
  • Added change logs to the sub projects (libpcanbasic, pcanbasic_java and libpcanbasic_jni)
Changements
  • PCANBasic.java: loadLibrary will try "pcanbasic_jni" first and fallback to "PCANBasic_JNI" on failure

4.3.1.3 15/04/2019

Changements
  • Added support to param PCAN_FIRMWARE_VERSION (0x29)
  • Added support to sysfs params: clk_drift, dev_name, init_flags, mass_storage_mode, nom_sample_point, nom_tq, data_sample_point, data_tq, and ts_fixed
  • Fixed check on pcanfd_open's return value as RT system can return the value 0

4.2.2.6 03/08/2018

Changements
  • Added missing support of device PCAN_USBX6

4.2.1.5 16/03/2018

Changements
  • Added a 50ms temporisation when closing a channel that still has Tx pending messages

4.2.1.4 06/03/2018

Changements
  • Fixed PCANBasic status when receiving EAGAIN from libpcanfd (error is either QXMTFULL or QRCVEMPTY whether read or write function is called)

4.2.1.1 03/03/2018

Changements
  • Fixed CAN FD timestamp issue
  • Added PCANBasic_enu_linux_addenda.txt that lists differences within documentation compared to Windows

4.2.0.3 03/11/2017

Changements
  • Fixed alignments in generated trace file (timestamp and 11bit CAN ids)

4.2.0.2 31/10/2017

Changements
  • Fixed wrong month number in generated trace file
  • Fixed ill use of snprintf in trace file leading to trace only first byte of message data

4.2.0.1 09/10/2017

Changements
  • Added support of features of PCAN-Basic 4.2 for Windows®(only with PCAN Linux driver > 8.5.x):Reception of status frames: PCAN_ALLOW_STATUS_FRAMESReception of RTR frames: PCAN_ALLOW_RTR_FRAMESReception of error frames: PCAN_ALLOW_ERROR_FRAMESInterframe Transmit Delay: PCAN_INTERFRAME_DELAYAcceptance filters: PCAN_ACCEPTANCE_FILTER_11BIT and PCAN_ACCEPTANCE_FILTER_29BIT
  • The package now includes documentation (same as the Windows®version, open .chm files with "xchm" for instance)
  • Reception of status frames: PCAN_ALLOW_STATUS_FRAMES
  • Reception of RTR frames: PCAN_ALLOW_RTR_FRAMES
  • Reception of error frames: PCAN_ALLOW_ERROR_FRAMES
  • Interframe Transmit Delay: PCAN_INTERFRAME_DELAY
  • Acceptance filters: PCAN_ACCEPTANCE_FILTER_11BIT and PCAN_ACCEPTANCE_FILTER_29BIT

4.1.2.5 04/10/2017

Changements
  • Fixed PCAN_TRACE_xxx features (the feature was never launched when a session was activated by the user)
  • Header now includes new features of PCAN-Basic 4.2 for Windows®(not yet implemented, status will return "illegal operation")

4.1.1 17/02/2017

Changements
  • Patched overflow timestamp issue
  • Corrected a few status error (bad convertions from errno to status)

4.1.0.2 08/09/2016

Changements
  • Fixed memory leaks issues within "pcanjni" library
  • Replaced the PCANBasic java example with the sample in pcanjni folder

4.1.0.0 20/07/2016

Changements
  • Changed the version number to match PCAN-Basic for Windows
  • Fixed C99 problem in make file
  • Fixed a bug in Java implementation

4.0.0.4 20/05/2016

Changements
  • CAN_GetErrorText now returns PCAN_ERROR_ILLPARAMVAL on unknown error status
  • v2.0.4.6: Fixed an issue when retrieving/setting PCAN_DEVICE_NUMBER
  • Java 'peak.can' package updated to match the Windows version of PCAN-Basic

4.0.0.3 16/03/2016

Changements
  • v4.0.0.3: Fixed a null pointer exception when calling CAN_Unitialize(PCAN_NONEBUS) and continuing using the API

4.0.0.2 01/03/2016

Changements
  • v4.0.0.2: Upgraded pcaninfo to match changes in PCAN driver v8.0.17

4.0.0.1 29/01/2016

Changements
  • v4.0.0.1: Upgraded to match changes in PCAN driver v8.0.7

4.0.0 18/01/2016

Changements
  • v2.0.4.5: Fixed GetStatus function. Please note: PCAN driver v7.16.0 is required
  • v2.0.4.5: Known issue: USB channel's handles will be offset if the minor number of the first PCAN-USB device is not 0 (or n=32 in cat /proc/pcan)

2.0.4 04/11/2015

Changements
  • Fixed impossibility to write an enhanced message with RTR flag
  • Fixed PCAN_CHANNEL_CONDITION request with PCAN-USB-PRO, PCAN-USB-FD, PCAN-USB-PRO-FD, and PCAN-PCI-FD hardware

2.0.3 17/10/2014

Changements
  • Changed licences from GPL to LGPL
  • Fixed an issue with using CAN2 of PCAN-USB Pro

2.0.2 08/01/2014

Changements
  • Changed DWORD definition in pcanbasic_jni.c to ensure 32-bits implementation whatever Linux arch data model is used

2.0.1 12/11/2013

Changements
  • Changed all "c_ulong" types to "c_uint" to ensure 32-bits implementation whatever Linux arch data model is used

2.0.0 08/11/2013

Changements
  • Fixed a problem running in 32-bits applications with 64-bits Kernel in python and C++ examples

1.0.0 05/11/2013

Changements
  • Included the version number in PCANBAsic.h and removed the TPCANMsg struc definition to use the one in
  • Examples setup an initial bitrate of 500k now

Neutralisé