Skip to content

uv-software/CANAPI-Docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 

Repository files navigation

CAN Interface API by UV Software

Abstract

CAN API V3 is a wrapper specification by UV Software to have a uniform CAN Interface API for various CAN interfaces from different vendors running under multiple operating systems.

Scope

The goal of the CAN API V3 project is to have a multi-vendor, cross-platform CAN Interface API (Application Programming Interface). Each CAN adapter vendor provides its own CAN software SDK (Software Development Kit) for the development of CAN applications based on the provided SDK. Unfortunately, the APIs of the different manufacturers are not compatible with each other. The CAN Interface API by UV Software (CAN API V3) solves the problems arising from this incompatibility.

This documentation is a generic description of the CAN API V3 Software Development Kit. It describes all functions, properties and data types of the CAN API V3 Application Programming Interface without referencing the specifics of the individual CAN API V3 implementations.

On the other hand, this documentation serves as a requirements specification for the implementation of a CAN API V3 wrapper library based upon a vendor-specific SDK or based upon an own CAN driver implementation. You just need to add the word “shall” to each sentence in your mind.

APIs

The CAN API V3 application programming interface is defined for the C programming language. The SDKs also provide application programming interfaces for C++ and Swift (macOS® only).

CAN API V3 provides the following main functions respectively methods:

can_test() respectively ProbeChannel() - probe if a CAN channel is available

can_init() respectively InitializeChannel() - initialize a CAN channel

can_exit() respectively TeardownChannel() - teardown a CAN channel

can_kill() respectively SignalChannel() - signal waiting event objects of a CAN channel

can_start() respectively StartController() - start the CAN controller of a CAN channel

can_reset() respectively ResetController() - stop the CAN controller of a CAN channel

can_write() respectively WriteMessage() - send a CAN message on a CAN channel

can_read() respectively ReadMessage() - read one CAN message from the receive queue of a CAN channel

can_status() respectively GetStatus() - get the status register of a CAN channel

can_bitrate() respectively GetBitrate() and GetBusSpeed() - get the CAN bit-rate settings of a CAN channel

can_property() respectively GetProperty() and SetProperty() - get or modify a property value of a CAN channel or of the CAN API library

SDKs

Several CAN API V3 software development kits exist for Windows®, macOS® and Linux®. They can be downloaded from / cloned at my GitHub repositories.

Please note the copyright and license agreements in the appropriated repository.

Windows®

CAN API V3 SDK for Peak-System PCAN® Interfaces

CAN API V3 SDK for Kvaser CAN Interfaces

CAN API V3 SDK for CAN-over-Serial-Line Interfaces (SLCAN Protocol)

macOS®

CAN API V3 SDK for PCAN-USB Interfaces from PEAK-System

macOS® Driver and CAN API V3 SDK for USB CAN Interfaces from Kvaser

macOS® Driver and CAN API V3 SDK for TouCAN USB Interfaces from Rusoku

CAN API V3 SDK for CAN-over-Serial-Line Interfaces (SLCAN Protocol)

Linux®

CAN API V3 SDK for PCAN-USB Interfaces from PEAK-System

CAN API V3 SDK for CAN-over-Serial-Line Interfaces (SLCAN Protocol)

Donate

These projects are developed and maintained in my spare time. If you like them (all of them, or just one) I would be very happy if you donate to my work.

copyright