SkillAgentSearch skills...

Cantools

A collection of CLI tools for the CAN bus network

Install / Use

/learn @mwkpe/Cantools
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

cantools

A collection of CLI tools for receiving and transmitting CAN frames using Linux SocketCAN

Description

These tools can be used - and were developed - using a Raspberry Pi 3 with a PiCAN2 HAT.

  • cantx: one-time or cyclic transmission of a single frame
  • canprint: printing frames into the console
  • cangw: routing frames between CAN and UDP

Build

Use make to build all tools or make cangw etc.

Usage

| Tool | Options | Short | Required | Default | Description | | ---- | ------- | :---: | :------: | ------- | ----------- | | cantx | device<br>id<br>payload<br>cycle<br>realtime | -d<br>-i<br>-p<br>-c<br>-r | <br><br><br><br><br> | can0<br><br>00<br>-1 (send once)<br>false | CAN device<br>Frame ID<br>Hex data string<br>Repetition time in ms<br>Enable realtime scheduling policy | | canprint | device | -d | | can0 | CAN device | | cangw | listen<br>send<br>realtime<br>timestamp<br>device<br>ip<br>port | -l<br>-s<br>-r<br>-t<br>-d<br>-i<br>-p | -l-s<br>-l-s<br><br><br><br><br>✓ | <br><br>false<br>false<br>can0<br><br><br> | Route frames from CAN to UDP<br>Route frames from UDP to CAN<br>Enable realtime scheduling policy<br>Prefix payload with 8-byte timestamp (ms)<br>CAN device<br>IP of remote device<br>UDP port |

Examples:

# Send frame each 100 ms
$ ./cantx --device=can0 --id=42 --data=0807060504030201 --cycle=100

# Route frames from CAN to UDP
$ ./cangw --listen --ip=192.168.1.5 --port=30001

# Same but using short options
$ ./cangw -li 192.168.1.5 -p 30001

# Route frames between interfaces and add timestamps to UDP payload
$ ./cangw -lsti 192.168.1.5 -p 30001

Acknowledgements

cxxopts for parsing command line options

Related Skills

View on GitHub
GitHub Stars22
CategoryDevelopment
Updated12mo ago
Forks2

Languages

C++

Security Score

87/100

Audited on Apr 6, 2025

No findings