Linux-CAN / SocketCAN user space applications
 
 
 
 
Go to file
Cory 384ed8d919 Added Extended ID support
Moved from CAN_BCM to CAN_RAW.  Restored basic functionality that BCM had natively.  There are likely bugs due to some non functionality between how the original program operated with CAN_BCM and now, but it is working on my bench with a NMEA 2000 GPS.

Update README.md

Restored add/remove ID

Restored ability to remove or add active CAN frames.  The CAN_ID must already exist in sniftab for this to work.

Update cansniffer.c

Fixed a potential for a segmentation fault to occur with the sniftab array.
Changed arbitrary max array value to defined name for flexibility with increasing the array size.
Other polish I forgot about.

Settings file operations work

Aligned settings file operations for use with 29bit IDs.
Instead of saving all 800 "slots" (or 11 bits IDs for the program as originally written), it now saves in use slots based on CAN ID and will load that ID into a slot for the program to potentially match upon.

Truncate when overwritting settings

Need to truncate settings file...

Update README.md

Update cansniffer.c

Cleaned up some unused commented code.
2018-08-06 19:21:32 -04:00
config/m4 add autotools infrastructure 2010-04-19 12:12:18 +00:00
include/linux include: import header files from kernel 2018-02-11 14:39:01 +01:00
.gitignore Merge branch 'master' of https://github.com/kurt-vd/test-can-j1939 2018-01-18 14:53:38 +01:00
.travis.yml travis: we don't need sudo 2018-01-17 18:00:59 +01:00
Android.mk can-utils: added isotpperf tool for performance measurements 2015-02-04 10:17:38 +01:00
GNUmakefile.am testj1939: use address to string function from libj1939 2018-01-22 12:27:15 +01:00
Makefile jacd: print relevant API calls on verbose 2018-01-22 14:12:44 +01:00
README.md Added Extended ID support 2018-08-06 19:21:32 -04:00
asc2log.c unconditionally define _GNU_SOURCE 2018-01-09 14:42:17 +01:00
autogen.sh do not use --symlink for autoreconf 2014-07-02 16:03:34 +02:00
bcmserver.c bcmserver: allow CAN netdevice names greater than 6 characters 2017-01-14 20:15:40 +01:00
can-calc-bit-timing.c can-calc-bit-timing: fix getopt typo: p -> q 2016-05-24 08:34:44 +02:00
can-j1939-kickstart.md can-j1939: remove trailing whitespace 2018-01-18 15:00:48 +01:00
can-j1939.md can-j1939: remove obsolete sections from documentation 2018-01-18 15:00:48 +01:00
canbusload.c Consistent arguments to sizeof(). 2018-04-03 11:56:28 +02:00
candump.c candump: make hardware timestamps Linux version agnostic 2017-12-06 10:16:09 +01:00
canfdtest.c canfdtest: remove usage of gettimeofday 2016-11-21 13:55:27 +00:00
canframelen.c canbusload: Fix worst-case frame length estimation 2014-01-30 16:23:32 +01:00
canframelen.h Add license to canframelen.h 2014-01-31 11:52:15 +01:00
cangen.c can-utils: remove strict-aliasing compiler warning 2017-07-01 19:01:01 +02:00
cangw.c cangw: introduce uid command line option 2015-06-11 20:48:43 +02:00
canlogserver.c can-utils: trivial: fix typos concerning "separation" and "useful" 2013-08-15 21:09:27 +02:00
canplayer.c canplayer: ensure 6 decimal places in timestamp 2017-12-13 20:12:32 +01:00
cansend.c bzero() is deprecated 2018-03-30 19:00:05 +02:00
cansniffer.c Added Extended ID support 2018-08-06 19:21:32 -04:00
configure.ac unconditionally define _GNU_SOURCE 2018-01-09 14:42:17 +01:00
isotpdump.c treewide: use if_nametoindex to avoid overflows 2015-06-30 21:00:04 +02:00
isotpperf.c isotp: fix printf warning on 32 bit systems 2015-03-03 08:29:36 +01:00
isotprecv.c treewide: use if_nametoindex to avoid overflows 2015-06-30 21:00:04 +02:00
isotpsend.c treewide: use if_nametoindex to avoid overflows 2015-06-30 21:00:04 +02:00
isotpserver.c treewide: use if_nametoindex to avoid overflows 2015-06-30 21:00:04 +02:00
isotpsniffer.c treewide: use if_nametoindex to avoid overflows 2015-06-30 21:00:04 +02:00
isotptun.c isotptun: add -D option to daemonize after tun device created 2017-02-14 11:16:07 +02:00
jacd.c jacd: provide interface index while opening socket and address claiming 2018-01-22 14:12:44 +01:00
jspy.c can-j1939: add jspy 'sniffer' program 2018-01-18 11:04:15 +01:00
jsr.c can-j1939: add jsr program 2018-01-18 11:04:15 +01:00
lib.c Another macro usage 2017-08-09 11:56:05 +04:30
lib.h header-guard for lib.h 2016-06-13 10:52:41 +02:00
libj1939.c libj1939: mark functions as static 2018-01-19 16:38:54 +01:00
libj1939.h can-j1939: add libj1939 2018-01-18 11:04:15 +01:00
log2asc.c log2asc: include sys/time.h 2015-07-22 21:12:44 +02:00
log2long.c remove obsolete SVN ID tags 2012-11-14 20:57:16 +01:00
page.theme import sample program & help page 2013-11-20 11:14:44 +01:00
slcan_attach.c slcan: added listen-only flag 2015-10-15 10:18:15 +02:00
slcand.c slcand: move setting of loop variable back into code context 2018-04-29 19:02:55 +02:00
slcanpty.c unconditionally define _GNU_SOURCE 2018-01-09 14:42:17 +01:00
style.css import sample program & help page 2013-11-20 11:14:44 +01:00
terminal.h remove obsolete SVN ID tags 2012-11-14 20:57:16 +01:00
testj1939.c testj1939: use address to string function from libj1939 2018-01-22 12:27:15 +01:00

README.md

SocketCAN logo

SocketCAN userspace utilities and tools

This repository contains some userspace utilities for Linux CAN subsystem (aka SocketCAN):

Basic tools to display, record, generate and replay CAN traffic

  • candump : display, filter and log CAN data to files
  • canplayer : replay CAN logfiles
  • cansend : send a single frame
  • cangen : generate (random) CAN traffic
  • cansniffer : display CAN data content differences (just 11bit CAN IDs)

CAN access via IP sockets

  • canlogserver : log CAN frames from a remote/local host
  • bcmserver : interactive BCM configuration (remote/local)
  • socketcand : use RAW/BCM/ISO-TP sockets via TCP/IP sockets

CAN in-kernel gateway configuration

  • cangw : CAN gateway userpace tool for netlink configuration

CAN bus measurement and testing

  • canbusload : calculate and display the CAN busload
  • can-calc-bit-timing : userspace version of in-kernel bitrate calculation
  • canfdtest : Full-duplex test program (DUT and host part)

ISO-TP tools ISO15765-2:2016 for Linux

  • isotpsend : send a single ISO-TP PDU
  • isotprecv : receive ISO-TP PDU(s)
  • isotpsniffer : 'wiretap' ISO-TP PDU(s)
  • isotpdump : 'wiretap' and interpret CAN messages (CAN_RAW)
  • isotpserver : IP server for simple TCP/IP <-> ISO 15765-2 bridging (ASCII HEX)
  • isotpperf : ISO15765-2 protocol performance visualisation
  • isotptun : create a bi-directional IP tunnel on CAN via ISO-TP

Log file converters

  • asc2log : convert ASC logfile to compact CAN frame logfile
  • log2asc : convert compact CAN frame logfile to ASC logfile
  • log2long : convert compact CAN frame representation into user readable

Serial Line Discipline configuration (for slcan driver)

  • slcan_attach : userspace tool for serial line CAN interface configuration
  • slcand : daemon for serial line CAN interface configuration
  • slcanpty : creates a pty for applications using the slcan ASCII protocol

Additional Information: