https://github.com/linux-can/socketcand
Server to access CAN sockets over ASCII protocol
https://github.com/linux-can/socketcand
Last synced: 14 days ago
JSON representation
Server to access CAN sockets over ASCII protocol
- Host: GitHub
- URL: https://github.com/linux-can/socketcand
- Owner: linux-can
- Created: 2019-08-07T18:05:24.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2025-05-13T07:04:14.000Z (18 days ago)
- Last Synced: 2025-05-13T07:38:22.716Z (18 days ago)
- Language: C
- Homepage:
- Size: 358 KB
- Stars: 196
- Watchers: 22
- Forks: 56
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSES/BSD-3-Clause
Awesome Lists containing this project
README
socketcand
==========Socketcand is a daemon that provides access to CAN interfaces on a machine via a network interface. The communication protocol uses a TCP/IP connection and a specific protocol to transfer CAN frames and control commands. The protocol specification can be found in ./doc/protocol.md.
Installation
------------To build and run socketcand make sure you have the following tools installed:
* meson
* gcc or another C compiler
* a kernel that includes the SocketCAN modules
* the headers for your kernel version
* the libconfig with headers (libconfig-dev under debian based systems)
* the libsocketcan with headers (libsocketcan-dev under debian based systems) is a requirement to configure the interfaces from socketcandExecute the following commands to configure, build, and install the software:
$ meson setup -Dlibconfig=true --buildtype=release build
$ meson compile -C build
$ meson install -C buildService discovery
-----------------The daemon uses a simple UDP beacon mechanism for service discovery. A beacon containing the service name, type and address is sent to the broadcast address (port 42000) at minimum every 3 seconds. A client only has to listen for messages of this type to detect all SocketCAN daemons in the local network.
Usage
-----socketcand [-v | --verbose] [-i interfaces | --interfaces interfaces]
[-p port | --port port] [-l interface | --listen interface]
[-u name | --afuxname name] [-n | --no-beacon] [-d | --daemon]
[-e error_mask | --error-mask error_mask]
[-h | --help]### Description of the options
* **-v** (activates verbose output to STDOUT)
* **-i interfaces** (comma separated list of CAN interfaces the daemon shall provide access to e.g. '-i can0,vcan1' - default: vcan0)
* **-p port** (changes the default port '29536' the daemon is listening at)
* **-l interface** (changes the default network interface the daemon will bind to - default: eth0)
* **-u name** (the AF_UNIX socket path - an abstract name is used when the leading '/' is missing. N.B. the AF_UNIX binding will supersede the port/interface settings)
* **-n** (deactivates the discovery beacon)
* **-e error_mask** (enable CAN error frames in raw mode providing an hexadecimal error mask, e.g: 0x1FFFFFFF)
* **-d** (set this flag if you want log to syslog instead of STDOUT)
* **-h** (prints this message)License
-------The source code is released under either GPL-2.0-only or BSD-3-Clause licenses.