Scripts

The following scripts are installed along with python-can.

can_logger.py

Command line help (--help):

usage: can_logger.py [-h] [-f LOG_FILE] [-v] [-i {socketcan,kvaser,serial,ixxat}]
                     channel ...

Log CAN traffic, printing messages to stdout or to a given file

positional arguments:
  channel               Most backend interfaces require some sort of channel.
                        For example with the serial interface the channel
                        might be a rfcomm device: /dev/rfcomm0 Other channel
                        examples are: can0, vcan0
  filter                Comma separated filters can be specified for the given
                        CAN interface: <can_id>:<can_mask> (matches when
                        <received_can_id> & mask == can_id & mask)
                        <can_id>~<can_mask> (matches when <received_can_id> &
                        mask != can_id & mask)

optional arguments:
  -h, --help            show this help message and exit
  -f LOG_FILE, --file_name LOG_FILE
                        Path and base log filename, extension can be .txt,
                        .csv, .db, .npz
  -v                    How much information do you want to see at the command
                        line? You can add several of these e.g., -vv is DEBUG
  -i {socketcan,kvaser,serial,ixxat}, --interface {socketcan,kvaser,serial,ixxat}
                        Which backend do you want to use?

j1939_logger.py

command line help (--help):

usage: j1939_logger.py [-h] [-v] [-i {socketcan,kvaser,serial}]
                       [--pgn PGN | --source SOURCE | --filter FILTER]
                       channel

Log J1939 traffic, printing messages to stdout or to a given file

positional arguments:
  channel
                        Most backend interfaces require some sort of channel. For example with the serial
                        interface the channel might be a rfcomm device: /dev/rfcomm0
                        Other channel examples are: can0, vcan0

optional arguments:
  -h, --help            show this help message and exit
  -v
                            How much information do you want to see at the command line?
                            You can add several of these e.g., -vv is DEBUG
  -i {socketcan,kvaser,serial}, --interface {socketcan,kvaser,serial}
                        Which backend do you want to use?
  --pgn PGN
                        Only listen for messages with given Parameter Group Number (PGN).
                        Can be used more than once. Give either hex 0xEE00 or decimal 60928
  --source SOURCE
                        Only listen for messages from the given Source address
                        Can be used more than once. Give either hex 0x0E or decimal.
  --filter FILTER
                        A json file with more complicated filtering rules.

                        An example file that subscribes to all messages from SRC=0
                        and two particular PGNs from SRC=1:

                        [
                          {
                            "source": 1,
                            "pgn": 61475
                          }
                          {
                            "source": 1,
                            "pgn": 61474
                          }
                          {
                            "source": 0
                          }
                        ]
Pull requests welcome!
https://bitbucket.org/hardbyte/python-can