|
Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
|
RFCOMM. More...
Data Structures | |
| struct | bt_rfcomm_dlc_ops |
| RFCOMM DLC operations structure. More... | |
| struct | bt_rfcomm_dlc |
| RFCOMM DLC structure. More... | |
| struct | bt_rfcomm_server |
| struct | bt_rfcomm_rpn |
| RFCOMM Remote Port Negotiation (RPN) structure. More... | |
Macros | |
| #define | BT_RFCOMM_HDR_MAX_SIZE 4 |
| RFCOMM Maximum Header Size. | |
| #define | BT_RFCOMM_FCS_SIZE 1 |
| RFCOMM FCS Size. | |
| #define | BT_RFCOMM_CREDITS_SIZE 1 |
| RFCOMM Credits Size. | |
| #define | BT_RFCOMM_OVERHEAD_SIZE (BT_RFCOMM_HDR_MAX_SIZE + BT_RFCOMM_FCS_SIZE + BT_RFCOMM_CREDITS_SIZE) |
| RFCOMM Overhead Size. | |
| #define | BT_RFCOMM_BUF_SIZE(mtu) |
| Helper to calculate needed buffer size for RFCOMM PDUs. | |
| #define | BT_RFCOMM_SET_LINE_SETTINGS(data, stop, parity) |
| Combine data bits, stop bits and parity into a single line settings byte. | |
| #define | BT_RFCOMM_RPN_FLOW_NONE 0x00 |
| #define | BT_RFCOMM_RPN_XON_CHAR 0x11 |
| #define | BT_RFCOMM_RPN_XOFF_CHAR 0x13 |
| #define | BT_RFCOMM_RPN_PARAM_MASK_ALL 0x3f7f |
| #define | BT_RFCOMM_RLS_NO_ERR (0x00U) |
| Remote Line Status value: No error. | |
| #define | BT_RFCOMM_RLS_ERR(err) |
| Remote Line Status value: error occurred. | |
| #define | BT_RFCOMM_RLS_ERR_OVERRUN_ERROR BIT(1) |
| Overrun Error - Received character overwrote an unread character. | |
| #define | BT_RFCOMM_RLS_ERR_PARITY_ERROR BIT(2) |
| Parity Error - Received character's parity was incorrect. | |
| #define | BT_RFCOMM_RLS_ERR_FRAMING_ERROR BIT(3) |
| Framing Error - a character did not terminate with a stop bit. | |
Typedefs | |
| typedef enum bt_rfcomm_role | bt_rfcomm_role_t |
| Role of RFCOMM session and dlc. | |
Functions | |
| int | bt_rfcomm_server_register (struct bt_rfcomm_server *server) |
| Register RFCOMM server. | |
| int | bt_rfcomm_server_unregister (struct bt_rfcomm_server *server) |
| Unregister RFCOMM server. | |
| int | bt_rfcomm_dlc_connect (struct bt_conn *conn, struct bt_rfcomm_dlc *dlc, uint8_t channel) |
| Connect RFCOMM channel. | |
| int | bt_rfcomm_dlc_send (struct bt_rfcomm_dlc *dlc, struct net_buf *buf) |
| Send data to RFCOMM. | |
| int | bt_rfcomm_dlc_disconnect (struct bt_rfcomm_dlc *dlc) |
| Disconnect RFCOMM dlc. | |
| struct net_buf * | bt_rfcomm_create_pdu (struct net_buf_pool *pool) |
| Allocate the buffer from pool after reserving head room for RFCOMM, L2CAP and ACL headers. | |
| int | bt_rfcomm_send_rpn_cmd (struct bt_rfcomm_dlc *dlc, struct bt_rfcomm_rpn *rpn) |
| Send Remote Port Negotiation command. | |
| int | bt_rfcomm_send_rls_cmd (struct bt_rfcomm_dlc *dlc, uint8_t line_status) |
| Send Remote Line Status Command. | |
RFCOMM.
| #define BT_RFCOMM_BUF_SIZE | ( | mtu | ) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Helper to calculate needed buffer size for RFCOMM PDUs.
Useful for creating buffer pools.
| mtu | Needed RFCOMM PDU MTU. |
| #define BT_RFCOMM_CREDITS_SIZE 1 |
#include <zephyr/bluetooth/classic/rfcomm.h>
RFCOMM Credits Size.
| #define BT_RFCOMM_FCS_SIZE 1 |
#include <zephyr/bluetooth/classic/rfcomm.h>
RFCOMM FCS Size.
| #define BT_RFCOMM_HDR_MAX_SIZE 4 |
#include <zephyr/bluetooth/classic/rfcomm.h>
RFCOMM Maximum Header Size.
The length could be 2 bytes, it depends on information length.
| #define BT_RFCOMM_OVERHEAD_SIZE (BT_RFCOMM_HDR_MAX_SIZE + BT_RFCOMM_FCS_SIZE + BT_RFCOMM_CREDITS_SIZE) |
#include <zephyr/bluetooth/classic/rfcomm.h>
RFCOMM Overhead Size.
The overhead size of RFCOMM includes the maximum header size, FCS size, and credits size.
For the field credits size, in the CFC supported case, the space of credits should be discounted from the maximum frame size. It is used to avoid the SDU length exceeding the maximum frame size if the credits field is included.
| #define BT_RFCOMM_RLS_ERR | ( | err | ) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Remote Line Status value: error occurred.
| err | Error code to be set in the RLS value; must be one of the following values: BT_RFCOMM_RLS_ERR_OVERRUN_ERROR, BT_RFCOMM_RLS_ERR_PARITY_ERROR, or BT_RFCOMM_RLS_ERR_FRAMING_ERROR. |
| #define BT_RFCOMM_RLS_ERR_FRAMING_ERROR BIT(3) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Framing Error - a character did not terminate with a stop bit.
| #define BT_RFCOMM_RLS_ERR_OVERRUN_ERROR BIT(1) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Overrun Error - Received character overwrote an unread character.
| #define BT_RFCOMM_RLS_ERR_PARITY_ERROR BIT(2) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Parity Error - Received character's parity was incorrect.
| #define BT_RFCOMM_RLS_NO_ERR (0x00U) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Remote Line Status value: No error.
| #define BT_RFCOMM_RPN_FLOW_NONE 0x00 |
#include <zephyr/bluetooth/classic/rfcomm.h>
| #define BT_RFCOMM_RPN_PARAM_MASK_ALL 0x3f7f |
#include <zephyr/bluetooth/classic/rfcomm.h>
| #define BT_RFCOMM_RPN_XOFF_CHAR 0x13 |
#include <zephyr/bluetooth/classic/rfcomm.h>
| #define BT_RFCOMM_RPN_XON_CHAR 0x11 |
#include <zephyr/bluetooth/classic/rfcomm.h>
| #define BT_RFCOMM_SET_LINE_SETTINGS | ( | data, | |
| stop, | |||
| parity ) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Combine data bits, stop bits and parity into a single line settings byte.
| data | Data bits value (0-3) |
| stop | Stop bits value (0-1) |
| parity | Parity value (0-7) |
| typedef enum bt_rfcomm_role bt_rfcomm_role_t |
#include <zephyr/bluetooth/classic/rfcomm.h>
Role of RFCOMM session and dlc.
Used only by internal APIs
| anonymous enum |
#include <zephyr/bluetooth/classic/rfcomm.h>
RFCOMM RPN baud rate values.
| anonymous enum |
#include <zephyr/bluetooth/classic/rfcomm.h>
RFCOMM RPN data bit values.
| Enumerator | |
|---|---|
| BT_RFCOMM_RPN_DATA_BITS_5 | |
| BT_RFCOMM_RPN_DATA_BITS_6 | |
| BT_RFCOMM_RPN_DATA_BITS_7 | |
| BT_RFCOMM_RPN_DATA_BITS_8 | |
| anonymous enum |
#include <zephyr/bluetooth/classic/rfcomm.h>
| Enumerator | |
|---|---|
| BT_RFCOMM_CHAN_HFP_HF | |
| BT_RFCOMM_CHAN_HFP_AG | |
| BT_RFCOMM_CHAN_HSP_AG | |
| BT_RFCOMM_CHAN_HSP_HS | |
| BT_RFCOMM_CHAN_SPP | |
| BT_RFCOMM_CHAN_DYNAMIC_START | |
| anonymous enum |
#include <zephyr/bluetooth/classic/rfcomm.h>
RFCOMM RPN parity bit values.
| Enumerator | |
|---|---|
| BT_RFCOMM_RPN_PARITY_NONE | |
| BT_RFCOMM_RPN_PARITY_ODD | |
| BT_RFCOMM_RPN_PARITY_EVEN | |
| BT_RFCOMM_RPN_PARITY_MARK | |
| BT_RFCOMM_RPN_PARITY_SPACE | |
| anonymous enum |
#include <zephyr/bluetooth/classic/rfcomm.h>
RFCOMM RPN stop bit values.
| Enumerator | |
|---|---|
| BT_RFCOMM_RPN_STOP_BITS_1 | |
| BT_RFCOMM_RPN_STOP_BITS_1_5 | |
| enum bt_rfcomm_role |
#include <zephyr/bluetooth/classic/rfcomm.h>
Role of RFCOMM session and dlc.
Used only by internal APIs
| Enumerator | |
|---|---|
| BT_RFCOMM_ROLE_ACCEPTOR | |
| BT_RFCOMM_ROLE_INITIATOR | |
| struct net_buf * bt_rfcomm_create_pdu | ( | struct net_buf_pool * | pool | ) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Allocate the buffer from pool after reserving head room for RFCOMM, L2CAP and ACL headers.
| pool | Which pool to take the buffer from. |
| int bt_rfcomm_dlc_connect | ( | struct bt_conn * | conn, |
| struct bt_rfcomm_dlc * | dlc, | ||
| uint8_t | channel ) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Connect RFCOMM channel.
Connect RFCOMM dlc by channel, once the connection is completed dlc connected() callback will be called. If the connection is rejected disconnected() callback is called instead.
| conn | Connection object. |
| dlc | Dlc object. |
| channel | Server channel to connect to. |
| int bt_rfcomm_dlc_disconnect | ( | struct bt_rfcomm_dlc * | dlc | ) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Disconnect RFCOMM dlc.
Disconnect RFCOMM dlc, if the connection is pending it will be canceled and as a result the dlc disconnected() callback is called.
| dlc | Dlc object. |
| int bt_rfcomm_dlc_send | ( | struct bt_rfcomm_dlc * | dlc, |
| struct net_buf * | buf ) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Send data to RFCOMM.
Send data from buffer to the dlc. Length should be less than or equal to mtu.
| dlc | Dlc object. |
| buf | Data buffer. |
| int bt_rfcomm_send_rls_cmd | ( | struct bt_rfcomm_dlc * | dlc, |
| uint8_t | line_status ) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Send Remote Line Status Command.
Send remote line status with specific rls value line_status to the RFCOMM DLC. For line_status, the BIT(4-7) are reserved and must be set to 0. The BIT(0-3) indicate the Line Status. If the BIT(0) is set to 0, there is no error occurred. If the BIT(0) is set to 1, the error is indicated by BIT(1-3) with the following values: BT_RFCOMM_RLS_ERR_OVERRUN_ERROR - Received character overwrote an unread character. BT_RFCOMM_RLS_ERR_PARITY_ERROR - Received character's parity was incorrect. BT_RFCOMM_RLS_ERR_FRAMING_ERROR - a character did not terminate with a stop bit.
line_status can be created using BT_RFCOMM_RLS_NO_ERR and BT_RFCOMM_RLS_ERR macros.
| dlc | Pointer to the RFCOMM DLC |
| line_status | Line Status value |
| int bt_rfcomm_send_rpn_cmd | ( | struct bt_rfcomm_dlc * | dlc, |
| struct bt_rfcomm_rpn * | rpn ) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Send Remote Port Negotiation command.
| dlc | Pointer to the RFCOMM DLC |
| rpn | Pointer to the RPN parameters to send |
| int bt_rfcomm_server_register | ( | struct bt_rfcomm_server * | server | ) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Register RFCOMM server.
Register RFCOMM server for a channel, each new connection is authorized using the accept() callback which in case of success shall allocate the dlc structure to be used by the new connection.
| server | Server structure. |
| int bt_rfcomm_server_unregister | ( | struct bt_rfcomm_server * | server | ) |
#include <zephyr/bluetooth/classic/rfcomm.h>
Unregister RFCOMM server.
Unregister RFCOMM server for a channel.
| server | Server structure. |