Commonly used API's for both BE/EDR and LE L2CAP.
Functions | |
wiced_bool_t | wiced_bt_l2cap_register_fixed_channel (uint16_t fixed_cid, wiced_bt_l2cap_fixed_chnl_reg_t *p_freg) |
Register a fixed channel. More... | |
wiced_bool_t | wiced_bt_l2cap_deregister_fixed_channel (uint16_t fixed_cid) |
De-register a fixed channel. More... | |
wiced_bool_t | wiced_bt_l2cap_connect_fixed_chnl (uint16_t fixed_cid, wiced_bt_device_address_t bd_addr, wiced_bt_ble_address_type_t ble_addr_type) |
Connect an fixed signalling channel to a remote device. More... | |
uint16_t | wiced_bt_l2cap_send_fixed_chnl_data (uint16_t fixed_cid, wiced_bt_device_address_t rem_bda, uint8_t *p_data, uint16_t data_len) |
Write data on a fixed signalling channel. More... | |
wiced_bool_t | wiced_bt_l2cap_remove_fixed_chnl (uint16_t fixed_cid, wiced_bt_device_address_t rem_bda) |
Remove a fixed channel to a remote device. More... | |
wiced_bool_t | wiced_bt_l2cap_set_fixed_channel_timeout (wiced_bt_device_address_t rem_bda, uint16_t fixed_cid, uint16_t idle_timeout) |
Higher layers call this function to set the idle timeout for a fixed channel. More... | |
wiced_bool_t | wiced_bt_l2cap_ecrb_register (uint16_t psm, wiced_bt_l2cap_ecrb_cb_ptrs_t *p_ecrb_callbacks) |
Application calls this function to register support for enhanced credit-based channels. More... | |
wiced_bool_t | wiced_bt_l2cap_ecrb_deregister (uint16_t psm) |
Application calls this function to deregister support for enhanced credit-based channels. More... | |
int | wiced_bt_l2cap_ecrb_connect_req (uint16_t psm, wiced_bt_transport_t transport, wiced_bt_device_address_t bd_addr, wiced_bt_ble_address_type_t bd_addr_type, wiced_bt_ble_conn_mode_t conn_mode, uint16_t our_rx_mtu, uint16_t our_rx_mps, int num_channels, tDRB **p_rx_drb_list, wiced_bt_ecrb_cid_list_t lcid_list) |
Higher layers call this function to create up to 5 credit-based L2CAP connections on the same PSM. More... | |
void | wiced_bt_l2cap_ecrb_ConnectRsp (uint16_t result, uint8_t trans_id, int16_t our_rx_mtu, uint16_t our_rx_mps, wiced_bt_ecrb_cid_list_t lcid_list, tDRB **p_rx_drb_list) |
Higher layers call this function to accept incoming Enhanced Credit-based L2CAP channel establishment, for which they had gotten a connect indication callback. More... | |
wiced_bool_t | wiced_bt_l2cap_ecrb_reconfigure (uint16_t new_rx_mtu, int16_t new_rx_mps, int num_channels, wiced_bt_ecrb_cid_list_t lcid_list, tDRB **p_rx_drb_list) |
Higher layers call this function to reconfigure the MTU and or MPS of Enhanced Credit-based L2CAP channels. More... | |
wiced_bool_t | wiced_bt_l2cap_get_current_config (uint16_t lcid, wiced_bt_l2cap_cfg_information_t **pp_our_cfg, wiced_bt_l2cap_ch_cfg_bits_t *p_our_cfg_bits, wiced_bt_l2cap_cfg_information_t **pp_peer_cfg, wiced_bt_l2cap_ch_cfg_bits_t *p_peer_cfg_bits) |
This function returns configurations of L2CAP channel. More... | |
uint16_t | wiced_bt_l2cap_register (uint16_t psm, wiced_bt_l2cap_appl_information_t *p_cb_information) |
Other layers call this function to register for L2CAP services. More... | |
void | wiced_bt_l2cap_deregister (uint16_t psm) |
Other layers call this function to deregister for L2CAP services. More... | |
uint16_t | wiced_bt_l2cap_allocate_psm (void) |
Other layers call this function to find an unused PSM for L2CAP services. More... | |
wiced_bool_t | wiced_bt_l2cap_disconnect_req (uint16_t cid) |
Higher layers call this function to disconnect a channel. More... | |
wiced_bool_t | wiced_bt_l2cap_disconnect_rsp (uint16_t cid) |
Higher layers call this function to acknowledge the disconnection of a channel. More... | |
uint8_t | wiced_bt_l2cap_data_write (uint16_t cid, uint8_t *p_buf, uint16_t buf_len, uint16_t flags) |
Higher layers call this function to write data with extended. More... | |
wiced_bool_t | wiced_bt_l2cap_set_idle_timeout (uint16_t cid, uint16_t timeout, wiced_bool_t is_global) |
Higher layers call this function to set the idle timeout for a connection, or for all future connections. More... | |
wiced_bool_t | wiced_bt_l2cap_set_idle_timeout_by_bd_addr (wiced_bt_device_address_t bd_addr, uint16_t timeout, wiced_bt_transport_t transport) |
Higher layers call this function to set the idle timeout for a connection. More... | |
wiced_bool_t | wiced_bt_l2cap_get_bdaddrby_handle (uint16_t handle, wiced_bt_device_address_t bd_addr) |
Get BD address for the given HCI handle. More... | |
wiced_bool_t wiced_bt_l2cap_register_fixed_channel | ( | uint16_t | fixed_cid, |
wiced_bt_l2cap_fixed_chnl_reg_t * | p_freg | ||
) |
Register a fixed channel.
[in] | fixed_cid | : Fixed Channel # |
[in] | p_freg | : Channel Callbacks and config |
wiced_bool_t wiced_bt_l2cap_deregister_fixed_channel | ( | uint16_t | fixed_cid | ) |
De-register a fixed channel.
[in] | fixed_cid | : Fixed Channel # |
wiced_bool_t wiced_bt_l2cap_connect_fixed_chnl | ( | uint16_t | fixed_cid, |
wiced_bt_device_address_t | bd_addr, | ||
wiced_bt_ble_address_type_t | ble_addr_type | ||
) |
Connect an fixed signalling channel to a remote device.
[in] | fixed_cid | : Fixed CID |
[in] | bd_addr | : BD Address of remote |
[in] | ble_addr_type | : Address type |
uint16_t wiced_bt_l2cap_send_fixed_chnl_data | ( | uint16_t | fixed_cid, |
wiced_bt_device_address_t | rem_bda, | ||
uint8_t * | p_data, | ||
uint16_t | data_len | ||
) |
Write data on a fixed signalling channel.
[in] | fixed_cid | : Fixed CID |
[in] | rem_bda | : BD Address of remote |
[in] | p_data | : Pointer to data to send |
[in] | data_len | : Length of data to send |
wiced_bool_t wiced_bt_l2cap_remove_fixed_chnl | ( | uint16_t | fixed_cid, |
wiced_bt_device_address_t | rem_bda | ||
) |
Remove a fixed channel to a remote device.
[in] | fixed_cid | : Fixed CID |
[in] | rem_bda | : BD Address of remote Idle timeout to use (or 0xFFFF if don't care) |
wiced_bool_t wiced_bt_l2cap_set_fixed_channel_timeout | ( | wiced_bt_device_address_t | rem_bda, |
uint16_t | fixed_cid, | ||
uint16_t | idle_timeout | ||
) |
Higher layers call this function to set the idle timeout for a fixed channel.
The "idle timeout" is the amount of time that a connection can remain up with no L2CAP channels on it. A timeout of zero means that the connection will be torn down immediately when the last channel is removed. A timeout of 0xFFFF means no timeout. Values are in seconds. A bd_addr is the remote BD address. If bd_addr = BT_BD_ANY, then the idle timeouts for all active l2cap links will be changed.
[in] | rem_bda | : Remote BD address |
[in] | fixed_cid | : Fixed CID |
[in] | idle_timeout | : Idle timeout |
wiced_bool_t wiced_bt_l2cap_ecrb_register | ( | uint16_t | psm, |
wiced_bt_l2cap_ecrb_cb_ptrs_t * | p_ecrb_callbacks | ||
) |
Application calls this function to register support for enhanced credit-based channels.
The PSM must have been previously registered for BR and/or LE.
[in] | psm | : PSM value |
[in] | p_ecrb_callbacks | : callbacks for the credit based channel connections |
wiced_bool_t wiced_bt_l2cap_ecrb_deregister | ( | uint16_t | psm | ) |
Application calls this function to deregister support for enhanced credit-based channels.
The PSM must have been previously registered.
[in] | psm | PSM value |
int wiced_bt_l2cap_ecrb_connect_req | ( | uint16_t | psm, |
wiced_bt_transport_t | transport, | ||
wiced_bt_device_address_t | bd_addr, | ||
wiced_bt_ble_address_type_t | bd_addr_type, | ||
wiced_bt_ble_conn_mode_t | conn_mode, | ||
uint16_t | our_rx_mtu, | ||
uint16_t | our_rx_mps, | ||
int | num_channels, | ||
tDRB ** | p_rx_drb_list, | ||
wiced_bt_ecrb_cid_list_t | lcid_list | ||
) |
Higher layers call this function to create up to 5 credit-based L2CAP connections on the same PSM.
[in] | psm | PSM Value |
[in] | transport | Bluetooth transport for the connection |
[in] | bd_addr | : Bluetooth device address to connect |
[in] | bd_addr_type | BLE_ADDR_PUBLIC or BLE_ADDR_RANDOM |
[in] | conn_mode | : LE connection mode |
[in] | our_rx_mtu | Our RX MTU to be used for the channels |
[in] | our_rx_mps | Our RX MPS to be used for the channels |
our_rx_mps
must be less then wiced_bt_cfg_ble_t::ble_max_rx_pdu_size or wiced_bt_cfg_br_t::br_max_rx_pdu_size for LE and BR/EDR transports respectively [in] | num_channels | : Number of channels to be created |
[in] | p_rx_drb_list | list of the allocated tDRB 's, one for each num_channels |
our_rx_mtu
[out] | lcid_list | list of cids (channel ids) which will be started |
void wiced_bt_l2cap_ecrb_ConnectRsp | ( | uint16_t | result, |
uint8_t | trans_id, | ||
int16_t | our_rx_mtu, | ||
uint16_t | our_rx_mps, | ||
wiced_bt_ecrb_cid_list_t | lcid_list, | ||
tDRB ** | p_rx_drb_list | ||
) |
Higher layers call this function to accept incoming Enhanced Credit-based L2CAP channel establishment, for which they had gotten a connect indication callback.
[in] | result | : Result of the connection set by the application. L2CAP result codes (L2CAP_CONN_RESULT) |
[in] | trans_id | : trans_id received in the wiced_bt_l2cap_ecrb_connect_ind |
[in] | our_rx_mtu | Our RX MTU to be used for the channels |
[in] | our_rx_mps | Our RX MPS to be used for the channels |
our_rx_mps
must be less then wiced_bt_cfg_ble_t::ble_max_rx_pdu_size or wiced_bt_cfg_br_t::br_max_rx_pdu_size for LE and BR/EDR transports respectively [out] | lcid_list | list of cids (channel ids) which will be started as received in wiced_bt_l2cap_ecrb_connect_ind |
lcid_list
must match the CID list returned in the callback. The DRB pointer list must contain a valid DRB pointer for each non-zero CID in the list that the application accepts. [in] | p_rx_drb_list | : list of the allocated tDRB 's, one for each num_channels |
our_rx_mtu
wiced_bool_t wiced_bt_l2cap_ecrb_reconfigure | ( | uint16_t | new_rx_mtu, |
int16_t | new_rx_mps, | ||
int | num_channels, | ||
wiced_bt_ecrb_cid_list_t | lcid_list, | ||
tDRB ** | p_rx_drb_list | ||
) |
Higher layers call this function to reconfigure the MTU and or MPS of Enhanced Credit-based L2CAP channels.
[in] | new_rx_mtu | Our new RX MTU to be used for the channels |
new_rx_mtu
is zero, no change to MTU is requested. Otherwise new_rx_mtu
must be larger than the old MTU for all channels.[in] | new_rx_mps | Our new RX MPS to be used for the channels |
new_rx_mts
is zero, no change to MPS is requested. Otherwise new_rx_mps
must be larger than the old MPS for all channels. new_rx_mps
must be less then wiced_bt_cfg_ble_t::ble_max_rx_pdu_size or wiced_bt_cfg_br_t::br_max_rx_pdu_size for LE and BR/EDR transports respectively[in] | num_channels | : Number of channels to be created |
[in] | lcid_list | : list of channels to be reconfigured |
[in] | p_rx_drb_list | : list of the allocated tDRB 's, one for each num_channels |
new_rx_mtu
wiced_bool_t wiced_bt_l2cap_get_current_config | ( | uint16_t | lcid, |
wiced_bt_l2cap_cfg_information_t ** | pp_our_cfg, | ||
wiced_bt_l2cap_ch_cfg_bits_t * | p_our_cfg_bits, | ||
wiced_bt_l2cap_cfg_information_t ** | pp_peer_cfg, | ||
wiced_bt_l2cap_ch_cfg_bits_t * | p_peer_cfg_bits | ||
) |
This function returns configurations of L2CAP channel.
[in] | lcid | : Local CID |
[in] | pp_our_cfg | : pointer of our saved configuration options |
[in] | p_our_cfg_bits | : valid config in bitmap |
[in] | pp_peer_cfg | : pointer of peer's saved configuration options |
[in] | p_peer_cfg_bits | : valid config in bitmap |
uint16_t wiced_bt_l2cap_register | ( | uint16_t | psm, |
wiced_bt_l2cap_appl_information_t * | p_cb_information | ||
) |
Other layers call this function to register for L2CAP services.
[in] | psm | : PSM value |
[in] | p_cb_information | : L2CAP cb info |
void wiced_bt_l2cap_deregister | ( | uint16_t | psm | ) |
Other layers call this function to deregister for L2CAP services.
[in] | psm | : PSM value |
uint16_t wiced_bt_l2cap_allocate_psm | ( | void | ) |
Other layers call this function to find an unused PSM for L2CAP services.
wiced_bool_t wiced_bt_l2cap_disconnect_req | ( | uint16_t | cid | ) |
Higher layers call this function to disconnect a channel.
[in] | cid | : CID value |
wiced_bool_t wiced_bt_l2cap_disconnect_rsp | ( | uint16_t | cid | ) |
Higher layers call this function to acknowledge the disconnection of a channel.
[in] | cid | : CID value |
uint8_t wiced_bt_l2cap_data_write | ( | uint16_t | cid, |
uint8_t * | p_buf, | ||
uint16_t | buf_len, | ||
uint16_t | flags | ||
) |
Higher layers call this function to write data with extended.
[in] | cid | : CID value |
[in] | p_buf | : Input buffer |
[in] | buf_len | : p_buf buffer size |
[in] | flags | : refer L2CAP data write flags |
wiced_bool_t wiced_bt_l2cap_set_idle_timeout | ( | uint16_t | cid, |
uint16_t | timeout, | ||
wiced_bool_t | is_global | ||
) |
Higher layers call this function to set the idle timeout for a connection, or for all future connections.
The "idle timeout" is the amount of time that a connection can remain up with no L2CAP channels on it. A timeout of zero means that the connection will be torn down immediately when the last channel is removed. A timeout of 0xFFFF means no timeout. Values are in seconds.
[in] | cid | : CID value |
[in] | timeout | : Timeout value |
[in] | is_global | : TRUE, if global |
wiced_bool_t wiced_bt_l2cap_set_idle_timeout_by_bd_addr | ( | wiced_bt_device_address_t | bd_addr, |
uint16_t | timeout, | ||
wiced_bt_transport_t | transport | ||
) |
Higher layers call this function to set the idle timeout for a connection.
The "idle timeout" is the amount of time that a connection can remain up with no L2CAP channels on it. A timeout of zero means that the connection will be torn down immediately when the last channel is removed. A timeout of 0xFFFF means no timeout. Values are in seconds. A bd_addr is the remote BD address. If bd_addr = BT_BD_ANY, then the idle timeouts for all active l2cap links will be changed.
[in] | bd_addr | : BD Address |
[in] | timeout | : Timeout value |
[in] | transport | : Transport (BR-EDR or LE) |
wiced_bool_t wiced_bt_l2cap_get_bdaddrby_handle | ( | uint16_t | handle, |
wiced_bt_device_address_t | bd_addr | ||
) |
Get BD address for the given HCI handle.
[in] | handle | : HCI handle |
[in] | bd_addr | : Peer Bd Address |