Skip to content

Releases: mac-can/KvaserCAN-Library

Service release of November 11, 2023

11 Nov 10:56
d950b79
Compare
Choose a tag to compare

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 and usleep
  • Added linker option -rpath /usr/local/lib (Xcode 15)

Service release of September 10, 2023

10 Sep 13:31
Compare
Choose a tag to compare

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 and brse from struct 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 float
      • btr_bitrate2index: returns the index if an index is given
      • btr_bitrate2string: no range checks anymore
      • btr_sja10002bitrate: set data phase field acc. OPTION_CANBTR_DATA_FIELDS
      • btr_compare_bitrates: comparision on basis of transmission rates (new function)
      • Removed flag fdoe and brse from struct 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

04 Aug 15:36
aaa925f
Compare
Choose a tag to compare

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

08 Jul 19:57
1ef5e9f
Compare
Choose a tag to compare

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 USB ProductId and other properties for all devices from both device families
    • implemented error event handling for Mhydra compatible devices
  • 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 and SetBusParamsFd
  • 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 response CMD_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

01 Jun 18:01
e334212
Compare
Choose a tag to compare

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

11 Feb 16:51
18b198f
Compare
Choose a tag to compare

Major changes:

  • Implemented CAN FD operation mode for Leaf Pro devices
  • Implemented properties NUM_CHANNELS, CAN_CHANNEL, QUEUE_OVFL, QUEUE_SIZE and QUEUE_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 by can_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 Makefiles to build the artifacts as Universal macOS Binary
  • Updated README.md ("Running CAN and CAN FD on Mac")

Service release of July 10, 2021

10 Jul 16:35
7f6274f
Compare
Choose a tag to compare

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 class CMacCAN)
  • 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

03 Jun 21:55
Compare
Choose a tag to compare

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.