Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
|
Public API for ISO-TP (ISO 15765-2:2016) More...
Go to the source code of this file.
Data Structures | |
struct | isotp_msg_id |
ISO-TP message id struct. More... | |
struct | isotp_fc_opts |
ISO-TP frame control options struct. More... | |
Macros | |
#define | ISOTP_N_OK 0 |
Completed successfully. | |
#define | ISOTP_N_TIMEOUT_A -1 |
Ar/As has timed out. | |
#define | ISOTP_N_TIMEOUT_BS -2 |
Reception of next FC has timed out. | |
#define | ISOTP_N_TIMEOUT_CR -3 |
Cr has timed out. | |
#define | ISOTP_N_WRONG_SN -4 |
Unexpected sequence number. | |
#define | ISOTP_N_INVALID_FS -5 |
Invalid flow status received. | |
#define | ISOTP_N_UNEXP_PDU -6 |
Unexpected PDU received. | |
#define | ISOTP_N_WFT_OVRN -7 |
Maximum number of WAIT flowStatus PDUs exceeded. | |
#define | ISOTP_N_BUFFER_OVERFLW -8 |
FlowStatus OVFLW PDU was received. | |
#define | ISOTP_N_ERROR -9 |
General error. | |
#define | ISOTP_NO_FREE_FILTER -10 |
Implementation specific errors. | |
#define | ISOTP_NO_NET_BUF_LEFT -11 |
No net buffer left to allocate. | |
#define | ISOTP_NO_BUF_DATA_LEFT -12 |
Not sufficient space in the buffer left for the data. | |
#define | ISOTP_NO_CTX_LEFT -13 |
No context buffer left to allocate. | |
#define | ISOTP_RECV_TIMEOUT -14 |
Timeout for recv. | |
#define | ISOTP_FIXED_ADDR_SA_POS (CONFIG_ISOTP_FIXED_ADDR_SA_POS) |
Position of fixed source address (SA) | |
#define | ISOTP_FIXED_ADDR_SA_MASK (CONFIG_ISOTP_FIXED_ADDR_SA_MASK) |
Mask to obtain fixed source address (SA) | |
#define | ISOTP_FIXED_ADDR_TA_POS (CONFIG_ISOTP_FIXED_ADDR_TA_POS) |
Position of fixed target address (TA) | |
#define | ISOTP_FIXED_ADDR_TA_MASK (CONFIG_ISOTP_FIXED_ADDR_TA_MASK) |
Mask to obtain fixed target address (TA) | |
#define | ISOTP_FIXED_ADDR_PRIO_POS (CONFIG_ISOTP_FIXED_ADDR_PRIO_POS) |
Position of priority in fixed addressing mode. | |
#define | ISOTP_FIXED_ADDR_PRIO_MASK (CONFIG_ISOTP_FIXED_ADDR_PRIO_MASK) |
Mask for priority in fixed addressing mode. | |
#define | ISOTP_FIXED_ADDR_RX_MASK (CONFIG_ISOTP_FIXED_ADDR_RX_MASK) |
CAN filter RX mask to match any priority and source address (SA) | |
ISO-TP message ID flags | |
#define | ISOTP_MSG_EXT_ADDR BIT(0) |
Message uses ISO-TP extended addressing (first payload byte of CAN frame) | |
#define | ISOTP_MSG_FIXED_ADDR BIT(1) |
Message uses ISO-TP fixed addressing (according to SAE J1939). | |
#define | ISOTP_MSG_IDE BIT(2) |
Message uses extended (29-bit) CAN ID. | |
#define | ISOTP_MSG_FDF BIT(3) |
Message uses CAN FD format (FDF) | |
#define | ISOTP_MSG_BRS BIT(4) |
Message uses CAN FD Baud Rate Switch (BRS). | |
Typedefs | |
typedef void(* | isotp_tx_callback_t) (int error_nr, void *arg) |
Transmission callback. | |
Functions | |
int | isotp_bind (struct isotp_recv_ctx *rctx, const struct device *can_dev, const struct isotp_msg_id *rx_addr, const struct isotp_msg_id *tx_addr, const struct isotp_fc_opts *opts, k_timeout_t timeout) |
Bind an address to a receiving context. | |
void | isotp_unbind (struct isotp_recv_ctx *rctx) |
Unbind a context from the interface. | |
int | isotp_recv (struct isotp_recv_ctx *rctx, uint8_t *data, size_t len, k_timeout_t timeout) |
Read out received data from fifo. | |
int | isotp_recv_net (struct isotp_recv_ctx *rctx, struct net_buf **buffer, k_timeout_t timeout) |
Get the net buffer on data reception. | |
int | isotp_send (struct isotp_send_ctx *sctx, const struct device *can_dev, const uint8_t *data, size_t len, const struct isotp_msg_id *tx_addr, const struct isotp_msg_id *rx_addr, isotp_tx_callback_t complete_cb, void *cb_arg) |
Send data. | |
Public API for ISO-TP (ISO 15765-2:2016)
ISO-TP is a transport protocol for CAN (Controller Area Network)