|
Zephyr Project API 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)