CAN++
CAN++ is a free Windows program for receiving, transmitting and analyzing (*.asc, .blf) CAN bus messages (CAN Classic and CAN FD) for using with SuperCAN devices or without CAN hardware (virtual bus). After import of CAN data base files (.dbc, *.arxml) CAN signals are shown in symbolic form. Signals can be presented as graphics (wave forms) too.
Furthermore:
- CAN simulation is possible by programming CAN behaviour in C++.
- CAN traces can be generated, imported and replayed (*.asc format, *.blf can be imported).
- Diagnostics can be performed (PDX import, fault memory, measurement and identification data)
There are several devices which are supported by SuperCAN firmware and can be used with CAN++. For example:
- Open Source Hardware: USB_CAN-FD
- Off the shelf: Adafruit Feather M4 CAN Express (simple drag & drop of firmware)
CAN++ also can connect to CAN hardware via TCP/IP with an own defined protocol (see TCP/IP chapter below). An example implementation is included.
CAN++ can be just started (no installation).
The user manual is located in sub folder doc/user_manual
(Markdown and HTML version, work in progress).
CAN traces can be generated, imported and replayed (.asc format). Import and replay is possible with BLF files too (.blf).
- cyclic, once, with time offset
- define signals as raw or physical values
- or define signals with wave configurator
- one .cpp file per CAN node (see Example ECU_main.cpp)
- react on CAN-Messages (::onMessage()) or signals
- send CAN messages
- Timers (can be used for cyclic sending of CAN messages)
- print text
- integrated IDE and integrated C++ Compiler (DMC)
- faultmemory
- measurement data
- identification
- import PDX files
CAN++ can connect over TCP/IP to CAN hardware. For this an own protocol was implemented. For this protocol a implementation for connecting to a Linux device is implemented in folder "can2win". This little server has to run on the Linux device. CAN++ connects to this server and transmitts and receives CAN data over the connection. The server itself makes a SocketCan connection to the CAN hardware attached to the linux device. This for example may be a simple Raspberry Pi CAN hookup board. Multiple channels can be transported. Even more multiple CAN++ PC's can connect to this server. Following menu items can be used to connect:
Settings => Hardware Select:
- BeagleBone USB: 192.168.7.2
- Wlan: 192.168.10.1
- IP Address: self assigned IP address on server side
CAN++ can be used without installation. It should not be placed in system folders like "C:\Programs". Path should contain "A-Za-z0-9_" only. Otherwise integrated Compiler will not work. By calling "INSTALL.bat" a shortcut is created on desktop.
- download SuperCAN firmware file supercan-firmware.tar.xz from https://github.com/jgressmann/supercan/releases/tag/latest-master
- Unpack supercan-firmware.tar.xz (7-Zip could be used), needed file is supercan.uf2
- plug in device
- push the button on the device twice
- a drive "FTHRBOOT" will show up in file explorer
- drop the file supercan.uf2 on this drive
- after 10 seconds replug the device