10#ifndef ZEPHYR_INCLUDE_BLUETOOTH_RFCOMM_H_
11#define ZEPHYR_INCLUDE_BLUETOOTH_RFCOMM_H_
29#define BT_RFCOMM_HDR_MAX_SIZE 4
31#define BT_RFCOMM_FCS_SIZE 1
40#define BT_RFCOMM_BUF_SIZE(mtu) \
41 BT_L2CAP_BUF_SIZE(BT_RFCOMM_HDR_MAX_SIZE + BT_RFCOMM_FCS_SIZE + (mtu))
123#if defined(CONFIG_BT_RFCOMM_DLC_STACK_SIZE)
202#define BT_RFCOMM_SET_LINE_SETTINGS(data, stop, parity) ((data & 0x3) | \
203 ((stop & 0x1) << 2) | \
204 ((parity & 0x7) << 3))
206#define BT_RFCOMM_RPN_FLOW_NONE 0x00
207#define BT_RFCOMM_RPN_XON_CHAR 0x11
208#define BT_RFCOMM_RPN_XOFF_CHAR 0x13
211#define BT_RFCOMM_RPN_PARAM_MASK_ALL 0x3f7f
Bluetooth data buffer API.
Bluetooth connection handling.
bt_security_t
Security level.
Definition conn.h:814
enum bt_rfcomm_role bt_rfcomm_role_t
Role of RFCOMM session and dlc.
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.
bt_rfcomm_role
Role of RFCOMM session and dlc.
Definition rfcomm.h:93
int bt_rfcomm_send_rpn_cmd(struct bt_rfcomm_dlc *dlc, struct bt_rfcomm_rpn *rpn)
Send Remote Port Negotiation command.
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_server_register(struct bt_rfcomm_server *server)
Register RFCOMM server.
@ BT_RFCOMM_RPN_DATA_BITS_5
Definition rfcomm.h:173
@ BT_RFCOMM_RPN_DATA_BITS_7
Definition rfcomm.h:175
@ BT_RFCOMM_RPN_DATA_BITS_6
Definition rfcomm.h:174
@ BT_RFCOMM_RPN_DATA_BITS_8
Definition rfcomm.h:176
@ BT_RFCOMM_RPN_PARITY_NONE
Definition rfcomm.h:187
@ BT_RFCOMM_RPN_PARITY_ODD
Definition rfcomm.h:188
@ BT_RFCOMM_RPN_PARITY_EVEN
Definition rfcomm.h:189
@ BT_RFCOMM_RPN_PARITY_MARK
Definition rfcomm.h:190
@ BT_RFCOMM_RPN_PARITY_SPACE
Definition rfcomm.h:191
@ BT_RFCOMM_RPN_STOP_BITS_1_5
Definition rfcomm.h:182
@ BT_RFCOMM_RPN_STOP_BITS_1
Definition rfcomm.h:181
@ BT_RFCOMM_CHAN_SPP
Definition rfcomm.h:49
@ BT_RFCOMM_CHAN_DYNAMIC_START
Definition rfcomm.h:50
@ BT_RFCOMM_CHAN_HFP_HF
Definition rfcomm.h:45
@ BT_RFCOMM_CHAN_HSP_HS
Definition rfcomm.h:48
@ BT_RFCOMM_CHAN_HFP_AG
Definition rfcomm.h:46
@ BT_RFCOMM_CHAN_HSP_AG
Definition rfcomm.h:47
@ BT_RFCOMM_ROLE_INITIATOR
Definition rfcomm.h:95
@ BT_RFCOMM_ROLE_ACCEPTOR
Definition rfcomm.h:94
@ BT_RFCOMM_RPN_BAUD_RATE_4800
Definition rfcomm.h:161
@ BT_RFCOMM_RPN_BAUD_RATE_19200
Definition rfcomm.h:164
@ BT_RFCOMM_RPN_BAUD_RATE_7200
Definition rfcomm.h:162
@ BT_RFCOMM_RPN_BAUD_RATE_230400
Definition rfcomm.h:168
@ BT_RFCOMM_RPN_BAUD_RATE_38400
Definition rfcomm.h:165
@ BT_RFCOMM_RPN_BAUD_RATE_9600
Definition rfcomm.h:163
@ BT_RFCOMM_RPN_BAUD_RATE_2400
Definition rfcomm.h:160
@ BT_RFCOMM_RPN_BAUD_RATE_57600
Definition rfcomm.h:166
@ BT_RFCOMM_RPN_BAUD_RATE_115200
Definition rfcomm.h:167
#define K_KERNEL_STACK_MEMBER(sym, size)
Define an embedded stack memory region.
Definition thread_stack.h:279
Bluetooth L2CAP handling.
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
RFCOMM DLC operations structure.
Definition rfcomm.h:56
void(* sent)(struct bt_rfcomm_dlc *dlc, int err)
DLC sent callback.
Definition rfcomm.h:88
void(* recv)(struct bt_rfcomm_dlc *dlc, struct net_buf *buf)
DLC recv callback.
Definition rfcomm.h:81
void(* disconnected)(struct bt_rfcomm_dlc *dlc)
DLC disconnected callback.
Definition rfcomm.h:74
void(* connected)(struct bt_rfcomm_dlc *dlc)
DLC connected callback.
Definition rfcomm.h:64
RFCOMM DLC structure.
Definition rfcomm.h:99
struct bt_rfcomm_dlc_ops * ops
Definition rfcomm.h:110
struct k_fifo tx_queue
Definition rfcomm.h:104
uint8_t dlci
Definition rfcomm.h:117
uint16_t mtu
Definition rfcomm.h:116
struct k_sem tx_credits
Definition rfcomm.h:107
struct k_work_delayable rtx_work
Definition rfcomm.h:101
bt_rfcomm_role_t role
Definition rfcomm.h:114
bt_security_t required_sec_level
Definition rfcomm.h:113
uint8_t state
Definition rfcomm.h:118
uint8_t rx_credit
Definition rfcomm.h:119
struct k_thread tx_thread
Definition rfcomm.h:122
struct bt_rfcomm_session * session
Definition rfcomm.h:109
RFCOMM Remote Port Negotiation (RPN) structure.
Definition rfcomm.h:214
uint16_t param_mask
Definition rfcomm.h:221
uint8_t baud_rate
Definition rfcomm.h:216
uint8_t line_settings
Definition rfcomm.h:217
uint8_t xoff_char
Definition rfcomm.h:220
uint8_t flow_control
Definition rfcomm.h:218
uint8_t xon_char
Definition rfcomm.h:219
uint8_t dlci
Definition rfcomm.h:215
uint8_t channel
Server Channel.
Definition rfcomm.h:139
int(* accept)(struct bt_conn *conn, struct bt_rfcomm_server *server, struct bt_rfcomm_dlc **dlc)
Server accept callback.
Definition rfcomm.h:152
Thread Structure.
Definition thread.h:262
A structure used to submit work after a delay.
Definition kernel.h:4079
Network buffer pool representation.
Definition net_buf.h:1078
Network buffer representation.
Definition net_buf.h:1006