.. zephyr:code-sample:: socket-can
:name: SocketCAN
:relevant-api: bsd_sockets socket_can
Send and receive raw CAN frames using BSD sockets API.
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 :zephyr:board:`nucleo_l432kc` or
:zephyr:board:`stm32f072b_disco`.
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: