Releases: mac-can/KvaserCAN-Library
Releases · mac-can/KvaserCAN-Library
Service release of June 11, 2024
Major changes:
- Updated CAN API V3 sources to rev. 1312
- Updated CAN API V3 Xcode testing to rev. 1334
- Updated CAN API V3 GoogleTest suites to rev. 1336
- Removed unnecessary class attributes
- Removed upper size limit of string properties
- Reworked CAN API V3 return values (C vs. C++)
- Optimized CAN API V3 wrapper (
can_api.c
) - Integrated generic CAN API V3 Utilities (rev. 1323)
- Updated release documents
Service release of November 11, 2023
Major changes:
- Updated MacCAN-Core sources to rev. 1816
- Updated CAN API V3 sources to rev. 1212
- Updated CAN API V3 testing sources to rev. 1219
- Updated GoogleTest to version 1.14.0
- Updated the trial program
- Updated the Python wrapper
- Updated Doxygen configuration
- Updated deployment rules
- Replaced deprecated
gettimeofday
andusleep
- Added linker option
-rpath /usr/local/lib
(Xcode 15)
Service release of September 10, 2023
Major changes:
- Updated MacCAN Core sources to rev. 1757 (core 0.4)
- Updated CAN API V3 sources to rev. 1187 and applied the changes
- Added old error code -40 as queue overrun error and renumbered error error frame received from -40 to -19
- Removed unused error code
CANERR_ERR_FRAME
(note: the error code -19 is marked as reserved) - Removed flag
fdoe
andbrse
fromstruct can_speed_t
(note: the flags are marked as reserved) - Integrated reworked module
can_btr
:btr_check_bitrate
: if FDOE w/o BRSE then check data phase field acc.OPTION_CANBTR_DATA_FIELDS
btr_bitrate2speed
: no range checks anymore, calculation is done completely in floatbtr_bitrate2index
: returns the index if an index is givenbtr_bitrate2string
: no range checks anymorebtr_sja10002bitrate
: set data phase field acc.OPTION_CANBTR_DATA_FIELDS
btr_compare_bitrates
: comparision on basis of transmission rates (new function)- Removed flag
fdoe
andbrse
fromstruct btr_speed_t
(standalone variant) - Documented all interface functions by Doxygen comments
- Added header file
CANBTR_Defaults.h
- Reworked the bit-rate string scanner (
btr_string2bitrate
):- Return a flag if any data phase key is found
- Return a flag if no. samp. key is found
- Return
BTRERR_ILLPARA
on error - Removed the range checks
- Set miminum frequency to 1
- Checked for duplicated keys
- Accept only case sensitive keys
- Reworked the bit-rate string printer (
btr_bitrate2string
):- Added a parameter to output data phase keys
- Added a parameter to output no. samp. key
- Added a parameter for maximum buffer size
- Fixed a bug with
strtol
if a correct value is outside the range of representable values (note: long is 32 bit wide for MS compilers and 64 bit for gcc based compilers!)
- Added property values for transmit queue properties (note: values for filtering have been shifted by 8)
- Fixed a bug with saturation of CAN FD DLC conversion
- Updated description of compiler switches
- Reworked formatting of message flags
- Added CAN API V3 Tests with GoogleTest (rev. 1194)
- Added Kvaser-specific bit-rate defaults
- Added bit-rate settings for 5kbps
- Fixed a bug with bus error state flags
- Fixed a bug with capability flag
ERR
- Fixed a bug with mode flag
ERR
- Fixed a bug with message flag
ESI
- Fixed a bug with message flag
RTR
- Made the utilities more generic
- Updated Swift wrapper and package
- Updated the trial program
- Updated the examples
Service release of August 4, 2022
Major changes:
- Realized new property
GET_CAN_CLOCK
- Applied changes from module
can_btr
- Updated CAN API V3 Testing sources to rev. 1084
- Fixed a bug with CAN bus load resolution
- Fixed a possible bug with USB device name length
- Updated the scanner for test case annotations
- Updated the trial program
Release of July 8, 2022
Major changes:
- Refactoring of the device driver layer:
- one module
KvaserUSB_LeafDevice
to access all devices from Kvaser CAN Leaf device family (i.e. Leaf Light v2) - one module
KvaserUSB_MhydraDevice
to access all devices from Kvaser CAN Mhydra device family (i.e. U100P) - new module
KvaserCAN_Devices
with USBProductId
and other properties for all devices from both device families - implemented error event handling for Mhydra compatible devices
- one module
- Updated MacCAN-Core sources to rev. 1200
- Updated CAN API sources to rev. 1053
- Updated CAN API Testing sources to rev. 1062
- Adapted bit-rate settings according to Kvaser´s Linux driver
- Added test suites for function
SetBusParams
andSetBusParamsFd
- Fixed a bug with outdated clocks array
- Fixed a bug with CAN clock from software options
- Fixed a bug with
READ_CLOCK_NOW
for Leaf compatible devices - Fixed a bug with time-stamp conversion (24MHz issue #10)
- Fixed a bug with
DRIVERMODE_OFF
for Leaf compatible devices - Fixed a bug with operation mode
NISO
in the driver layer - Fixed a bug with getting capabilities from device
- Fixed a bug with HE addresses in the Mhydra driver
- Fixed a bug with setting CAN bus parameters
- Fixed a bug with setting CAN FD bus parameters
- Fixed a bug with data phase settings w/o flag
BRSE
(U100P issue) - Fixed a bug with converting Kvaser bus params to CAN API bit-rate settings
- Fixed a bug with error handling of device info commands
- Fixed a bug with incorrectly mapped firmware error code
- Fixed a bug with tx message flags in the Swift wrapper (SwiftCAN issue #12)
- Fixed a bug with
mask
&value
in the responseCMD_GET_CAPABILITIES_RESP
- Fixed a bug with unsupported command
CMD_GET_INTERFACE_INFO_REQ
- Fixed some findings from static code analysis (
cppcheck
) - Added
@rpath
to linker option--install_name
- Added a scanner for test case annotations to generate the test specs
Service release of June 1, 2022
Changes:
- Fixed bit-rate issue for devices not running at 80 MHz (issue #10)
- Added methods to query channel information to the Swift wrapper
- Added a
cppcheck
configuration to the project
Release of February 11, 2022
Major changes:
- Implemented CAN FD operation mode for Leaf Pro devices
- Implemented properties
NUM_CHANNELS
,CAN_CHANNEL
,QUEUE_OVFL
,QUEUE_SIZE
andQUEUE_HIGH
MacCAN-Core changes:
- Updated MacCAN-Core sources to rev. 1090
- Removed class
CMacCAN
from project - Replaced CAN API error codes by MacCAN error codes
- Fixed a bug with forgotten NULL pointer check in
CANUSB_ReadPipe
- Fixed a bug with calculation of queue high counter
CAN API V3 changes:
- Updated CAN API sources to rev. 1036 and applied latest changes
- Fixed a bug with probing a device when it is used by another process
- Fixed a bug with CAN FD operation dependent mode flags
- Fixed some omissions with handling of device properties
- Fixed a bug with property
GET_DEVICE_TYPE
- Fixed a bug with Swift property
deviceInfo
- Fixed a bug with device vendor instead of library vendor
- Added operations to class
CCanApi
to query channel information - Updated the utilities to get the list of channels from library
- Updated the Swift wrapper and examples
Testing changes:
- Updated CAN API Testing sources to rev. 1086
- Changed template concept for CAN API Testing
- Moved CAN API Testing sources to
$(PROJROOT)/Tests/UnitTests
- Replaced test suite for
can_software
bycan_firmware
- Reworked test suite for function
can_property
- Implemented a test case to measure time-stamp accuracy
- Add a workaround to TC11.10 for Kvaser bus parameters
Miscellaneous:
- Set deployment target to macOS 11.0
- Updated the Travis CI configuration (
osx_image: xcode12.5
) - Updated the
Makefile
s to build the artifacts as Universal macOS Binary - Updated
README.md
("Running CAN and CAN FD on Mac")
Service release of July 10, 2021
Major changes:
- Added a CAN API V3 compatible Swift wrapper and two Swift examples
- Added Swift Package Manager (SPM) configuration and test template
- Moved CAN API wrapper code from C++ class to C interface (
can_api.c
) - Added abstract class
CCanApi
(as replacement for classCMacCAN
) - Fixed a bug with checking for valid handle in function
can_init
- Fixed a bug with uncleared receive queue after re-start
- Fixed a bug when teardown all channels (
CANEXIT_ALL
) - Fixed a bug with reading device independent properties
- Fixed some bugs with getting properties from device and from library:
- accept NULL pointer for SET_FIRST_CHANNEL and SET_NEXT_CHANNEL
- getting device properties requires a valid handle
- string values must be at least one byte in size
- Temporary fix for investigation of issue #5
Release of June 3, 2021
Features
- CAN 2.0:
- 11-bit and 29-bit identifier
- bit-rates up to 1'000 kbps
- Bit-rate settings:
- via register values (clock, prescaler, time segment TSeg1 and TSeg2, SJW, SAM)
- as pre-defined bit-timing index (according to CiA CANopen specification)
- Operation modes:
- Monitor mode enable/disable (default=disabled)
- Error frames enable/disable (default=disabled)
- Extended frames disable/enable (default=enabled)
- Remote frames disable/enable (default=enabled)
- Message reception:
- Message queue (FIFO) for 64K CAN message
- Read queue via polling, blocking read, or with time-out up to 65 seconds
- Message transmission:
- with or without acknowledge (with time-out up to 65 seconds)
- Application Programming Interface:
- CAN API V3 by UV Software (C and C++ API)
- CAN API V3 Python Wrapper (Python 2.7 and 3.8)
- Supported Kvaser CAN Leaf devices:
- Kvaser Leaf Light v2 (EAN: 73-30130-00685-0)
- Kvaser Leaf Pro HS v2 (EAN: 73-30130-00843-4)
- Limitations (selected):
- Leaf Pro HS v2 devices can currently only be operated in CAN 2.0 mode!
- Monitor mode (listen-only) is not supported by the Leaf Light v2 hardware.