What is OpenCAN?
OpenCAN is a software platform for interacting with various Controller Area Network (CAN or CANbus) devices. It provides an abstract C++ interface that can be used to control CAN devices. Support for specific devices can be written as plugins, and then loaded through a simple API call. Each component is cross-platform, enabling the efficient development of CAN software on Windows, Linux and Mac OS X. And you are free to use and extend it according to the GNU Lesser General Public License (LGPL).
Benefits
Simplifies adding CAN support to software
Add new CAN devices without changing application code or recompiling
Write one set of code for multiple devices and/or OSes
Reduces maintenance time and cost
Enables backward and forward compatibility with CAN devices and APIs
OpenCAN is LGPL so you can use free and proprietary CAN drivers together
Features
Supports Windows, Linux and Mac OS X
Light-weight and simple API encapsulation
API documentation using Doxygen
Device support can be compiled in or as dynamically-loaded plugins
Includes plugins for LinCAN and PCAN devices
Testbench
Testbench, included in the OpenCAN distribution, is a GUI for monitoring and sending messages on a CAN network and is written with the OpenCAN API.

Download
OpenCAN v0.7 source code: OpenCAN-0.7.tar.gz
Requirements
Qt 4.6+ (http://qt.nokia.com)
The library only requires the QtCore component
Testbench requires the QtGui component
CAN device with installed driver (support for LinCAN and PCAN devices included)
Windows XP/Vista/7, Linux or Mac OS X (32/64-bit)
Status
OpenCAN is near production-ready. No issues are known to exist in the OpenCAN API core and plugins. Issues may remain in Testbench, but no major issues are known to exist. Unless critical, API changes will only be in the form of additions.
Current tasks are to:
Fix any major issues that may come up
Increase the flexibility of the binary compatibility between plugins
Add more plugins to support more devices
Possible feature additions to Testbench
License
OpenCAN is distributed under the GNU Lesser General Public License (LGPL) version 2.1.
Testbench is distributed under the GNU General Public License (GPL) version 3.0.
History Summary
| 09132011 | 0.7 | Added runtime support for switching between CAN 2.0b extended and standard Autonomous message polling now completely empties the receive queue every poll Fixed Windows PCAN plugin continually sending CAN messages Fixed a compiler warning when using MingW on Windows |
| 02162011 | v0.6 | Improved drawing speed of Testbench receive windows Fixed Testbench crash when no plugins are loaded Fixed PEAK PCAN plugin not setting baud rate in Windows Fixed PEAK PCAN plugin connect status in Windows Clarified plugin loading and added troubleshooting tips |
| 02012011 | v0.5 | Improved support for multiple devices Improved plugin and device information Added support for changing baud rate in Testbench receive windows Improved string processing efficiency by using Qt fast string concat Testbench UI polish Updated documentation and added compile documentation |
| 08302010 | v0.4 | Added support for providing device and plugin info Testbench UI overhaul and filter received messages |
| 07292010 | v0.3 | Added support for user-friendly device descriptions Small increase in performance from a change of data structures |
| 07162010 | v0.2 | Removed delay in startup of PEAK PCAN Linux device to prevent crash on device startup (crash fixed in PEAK driver v6.20) |
| 06182010 | v0.1 | Initial release |
