EMS Dr. Thomas Wünsche CAN Bus Systems are supported by a fully integrated software framework for interfacing Windows and Linux based user applications with CAN bus resources.
The CPC software interface framework is based on the the CPC-API Application Programming Interface, with device drivers for the various CPC series CAN PC interface products. Support for the CPC-API across with Windows and Linux provides continuity for developers wanting to develop applications capable of operating both host operating system environments.

Alternatively, SocketCAN can be used with Linux, which provides its own vendor independent software interface model…
Application Programming Interface
An application programming interface, the CPC-API, is included with CPC Windows and Linux Development Kits. It provides developers with the maximum possible flexibility and cross-platform portability, with a software interface that is independent of hardware configuration and host bus interface (e.g. USB, PCI, PCI Express, etc…).
An example of a user application design that leverages the CPC-API is the proCANtool CAN Bus Monitor Suite. The ProCANtool CAN Monitoring Suite it is available in Windows & Linux builds, and can be used with all hardware interfaces supported by the CPC Software Interface Framework.
CPC-API Functions
The CPC-API is provided as a suite of C callable functions that (for Windows) can be called from any host resident C/C++, Delphi, C#/.NETapplication, built usingBorland or Microsoft compilers. Each library includes:
- Synchronous Functions
- CPC_OpenChannel()
- CPC_CloseChannel()
- CPC_GetInitParamsPtr()
- CPC_CANInit()
- CPC_CANExit()
- CPC_CANGetInfo()
- CPC_Control()
- CPC_SendMsg()
- CPC_SendXMsg()
- CPC_SendRTR()
- CPC_SendXRTR()
- CPC_ClearMSGQueue()
- CPC_GetMSGQueueCnt()
- Asynchronous (Event Driven) functions
- CPC_WaitForEvent()
- CPC_Handle()
- CPC_RequestInfo()
- CPC_RequestCANParams()
- CPC_RequestCANState()
- CPC_AddHandler()
- CPC_RemoveHandler()
SocketCAN
SocketCAN provides an alternative software interface for Linux. It provides what is ultimately a vendor independent software interface, with the software being included with the current active release of Linux. The following products are supported:
- CPC-USB USB Can Bus interface
- CPC-USB/embedded USB Can Bus interface
- CPC-PCIe PCI Express 1/2/4-Channel Can Bus interface