zephyr/samples/net/sockets/can
Martin Jäger 9cec058e8e boards: posix: native_posix: enable can_loopback0 by default
The .yaml file states that CAN is supported, but the basic sample
application samples/drivers/can/counter cannot be compiled without
additional configuration.

The loopback driver does not require any additional steps like the
linux SocketCAN driver, so it is safe to enable it by default and
get rid of the many overlay files in the tests.

ISO-TP tests and the counter sample are excluded via .yaml from
twister tests because of timing issues.

Signed-off-by: Martin Jäger <martin@libre.solar>
2022-10-03 10:17:12 +02:00
..
boards boards: posix: native_posix: enable can_loopback0 by default 2022-10-03 10:17:12 +02:00
src drivers: can: add start and stop CAN controller API functions 2022-09-13 16:06:50 +00:00
CMakeLists.txt
Kconfig samples: net: sockets: socketCAN: add loopback mode 2022-04-08 09:31:51 +02:00
prj.conf samples: net: sockets: can: add console harness configuration 2022-07-19 10:31:10 +02:00
README.rst
sample.yaml drivers: can: remove z prefix from public CAN API types 2022-08-18 10:19:29 +02:00

.. _socket-can-sample:

Socket CAN
##########

Overview
********

The socket CAN sample is a server/client application that sends and receives
raw CAN frames using BSD socket API.

The application consists of these functions:

* Setup function which creates a CAN socket, binds it to a CAN network
  interface, and then installs a CAN filter to the socket so that the
  application can receive CAN frames.
* Receive function which starts to listen the CAN socket and prints
  information about the CAN frames.
* Send function which starts to send raw CAN frames to the bus.

The source code for this sample application can be found at:
:zephyr_file:`samples/net/sockets/can`.

Requirements
************

You need a CANBUS enabled board like :ref:`nucleo_l432kc_board` or
:ref:`stm32f072b_disco_board`.

Building and Running
********************

Build the socket CAN sample application like this:

.. zephyr-app-commands::
   :zephyr-app: samples/net/sockets/can
   :board: <board to use>
   :conf: <config file to use>
   :goals: build
   :compact:

Example building for the nucleo_l432kc:

.. zephyr-app-commands::
   :zephyr-app: samples/net/sockets/can
   :host-os: unix
   :board: nucleo_l432kc
   :goals: run
   :compact: