3.0.0.0R11
Software Development Kit
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules
wiced_bt_dev.h File Reference

Data Structures

struct  wiced_bt_ble_phy_update_t
 
struct  wiced_bt_dev_ble_io_caps_req_t
 
struct  wiced_bt_dev_ble_pairing_info_t
 
struct  wiced_bt_dev_bonded_device_info_t
 
struct  wiced_bt_dev_br_edr_pairing_info_t
 
struct  wiced_bt_dev_bredr_io_caps_req_t
 
struct  wiced_bt_dev_bredr_io_caps_rsp_t
 
struct  wiced_bt_dev_cod_cond_t
 
struct  wiced_bt_dev_disabled_t
 
struct  wiced_bt_dev_enabled_t
 
struct  wiced_bt_dev_encryption_status_t
 
union  wiced_bt_dev_inq_filt_cond_t
 
struct  wiced_bt_dev_inq_parms_t
 
struct  wiced_bt_dev_inquiry_scan_result_t
 
struct  wiced_bt_dev_local_oob_t
 
struct  wiced_bt_dev_name_and_class_t
 
struct  wiced_bt_dev_pairing_cplt_t
 
union  wiced_bt_dev_pairing_info_t
 
struct  wiced_bt_dev_remote_oob_t
 
struct  wiced_bt_dev_rssi_result_t
 
struct  wiced_bt_dev_security_failed_t
 
struct  wiced_bt_dev_security_request_t
 
struct  wiced_bt_dev_user_cfm_req_t
 
struct  wiced_bt_dev_user_key_notif_t
 
struct  wiced_bt_dev_user_key_req_t
 
struct  wiced_bt_dev_user_keypress_t
 
struct  wiced_bt_dev_vendor_specific_command_complete_params_t
 
struct  wiced_bt_device_link_keys_t
 
struct  wiced_bt_local_identity_keys_t
 
union  wiced_bt_management_evt_data_t
 
struct  wiced_bt_power_mgmt_notification_t
 
struct  wiced_bt_public_key_t
 
struct  wiced_bt_sco_connected_t
 
struct  wiced_bt_sco_connection_change_t
 
struct  wiced_bt_sco_connection_request_t
 
struct  wiced_bt_sco_disconnected_t
 
struct  wiced_bt_smp_remote_oob_req_t
 
struct  wiced_bt_smp_sc_remote_oob_req_t
 
struct  wiced_bt_tx_power_result_t
 

Macros

#define BTM_BLE_ADVERT_MODE
 
#define BTM_BLE_CONN_MODE
 
#define BTM_BLE_SCAN_TYPE
 
#define BTM_EIR_UUID_ENUM
 
#define BTM_INQ_RES_IGNORE_RSSI   0x7f
 
#define BTM_LE_KEY_TYPES
 
#define BTM_LINK_TYPE_ESCO   HCI_LINK_TYPE_ESCO
 
#define BTM_LINK_TYPE_SCO   HCI_LINK_TYPE_SCO
 
#define BTM_OOB_REQ_TYPE
 
#define BTM_OOB_STATE
 
#define BTM_PIN_TYPE_VARIABLE   HCI_PIN_TYPE_VARIABLE
 
#define BTM_PM_STATUS_CODES
 
#define BTM_SEC_LEVEL
 
#define BTM_SEC_LINK_STATE
 
#define BTM_SECURITY_KEY_DATA_LEN   132
 
#define BTM_SECURITY_LOCAL_KEY_DATA_LEN   65
 

Typedefs

typedef uint8_t wiced_bt_ble_advert_mode_t
 
typedef uint8_t wiced_bt_ble_conn_mode_t
 
typedef uint8_t wiced_bt_ble_scan_type_t
 
typedef void( wiced_bt_connection_status_change_cback_t )(wiced_bt_device_address_t bd_addr, uint8_t *p_features, wiced_bool_t is_connected, uint16_t handle, wiced_bt_transport_t transport, uint8_t reason)
 
typedef uint8_t wiced_bt_dev_auth_req_t
 
typedef void( wiced_bt_dev_cmpl_cback_t )(void *p_data)
 
typedef uint8_t wiced_bt_dev_io_cap_t
 
typedef uint8_t wiced_bt_dev_le_auth_req_t
 
typedef uint8_t wiced_bt_dev_le_key_type_t
 
typedef UINT8 wiced_bt_dev_oob_data_req_type_t
 
typedef uint8_t wiced_bt_dev_oob_data_t
 
typedef uint8_t wiced_bt_dev_passkey_entry_type_t
 
typedef uint8_t wiced_bt_dev_power_mgmt_status_t
 
typedef wiced_result_t wiced_bt_dev_status_t
 
typedef void( wiced_bt_dev_vendor_specific_command_complete_cback_t )(wiced_bt_dev_vendor_specific_command_complete_params_t *p_command_complete_params)
 
typedef void( wiced_bt_hci_trace_cback_t )(wiced_bt_hci_trace_type_t type, uint16_t length, uint8_t *p_data)
 
typedef void( wiced_bt_inquiry_result_cback_t )(wiced_bt_dev_inquiry_scan_result_t *p_inquiry_result, uint8_t *p_eir_data)
 
typedef wiced_result_twiced_bt_management_cback_t )(wiced_bt_management_evt_t event, wiced_bt_management_evt_data_t *p_event_data)
 
typedef uint8_t wiced_bt_management_evt_t
 
typedef uint8_t wiced_bt_smp_status_t
 

Enumerations

enum  wiced_bt_ble_advert_mode_e {
  BTM_BLE_ADVERT_OFF, BTM_BLE_ADVERT_DIRECTED_HIGH, BTM_BLE_ADVERT_DIRECTED_LOW, BTM_BLE_ADVERT_UNDIRECTED_HIGH,
  BTM_BLE_ADVERT_UNDIRECTED_LOW, BTM_BLE_ADVERT_NONCONN_HIGH, BTM_BLE_ADVERT_NONCONN_LOW, BTM_BLE_ADVERT_DISCOVERABLE_HIGH,
  BTM_BLE_ADVERT_DISCOVERABLE_LOW
}
 
enum  wiced_bt_ble_conn_mode_e { BLE_CONN_MODE_OFF, BLE_CONN_MODE_LOW_DUTY, BLE_CONN_MODE_HIGH_DUTY }
 
enum  wiced_bt_ble_scan_type_e { BTM_BLE_SCAN_TYPE_NONE, BTM_BLE_SCAN_TYPE_HIGH_DUTY, BTM_BLE_SCAN_TYPE_LOW_DUTY }
 
enum  wiced_bt_connectability_mode_e { BTM_NON_CONNECTABLE = 0, BTM_CONNECTABLE = 1 }
 
enum  wiced_bt_dev_auth_req_e {
  BTM_AUTH_SINGLE_PROFILE_NO = 0, BTM_AUTH_SINGLE_PROFILE_YES = 1, BTM_AUTH_ALL_PROFILES_NO = 2, BTM_AUTH_ALL_PROFILES_YES = 3,
  BTM_AUTH_SINGLE_PROFILE_GENERAL_BONDING_NO = 4, BTM_AUTH_SINGLE_PROFILE_GENERAL_BONDING_YES = 5
}
 
enum  wiced_bt_dev_filter_cond_e { BTM_CLR_INQUIRY_FILTER = 0, BTM_FILTER_COND_DEVICE_CLASS = HCI_FILTER_COND_DEVICE_CLASS, BTM_FILTER_COND_BD_ADDR = HCI_FILTER_COND_BD_ADDR }
 
enum  wiced_bt_dev_io_cap_e {
  BTM_IO_CAPABILITIES_DISPLAY_ONLY, BTM_IO_CAPABILITIES_DISPLAY_AND_YES_NO_INPUT, BTM_IO_CAPABILITIES_KEYBOARD_ONLY, BTM_IO_CAPABILITIES_NONE,
  BTM_IO_CAPABILITIES_BLE_DISPLAY_AND_KEYBOARD_INPUT
}
 
enum  wiced_bt_dev_le_auth_req_e {
  BTM_LE_AUTH_REQ_NO_BOND = 0x00, BTM_LE_AUTH_REQ_BOND = 0x01, BTM_LE_AUTH_REQ_MITM = 0x04, BTM_LE_AUTH_REQ_SC_ONLY = 0x08,
  BTM_LE_AUTH_REQ_SC_BOND = (BTM_LE_AUTH_REQ_SC_ONLY|BTM_LE_AUTH_REQ_BOND), BTM_LE_AUTH_REQ_SC_MITM = (BTM_LE_AUTH_REQ_SC_ONLY|BTM_LE_AUTH_REQ_MITM), BTM_LE_AUTH_REQ_SC_MITM_BOND = (BTM_LE_AUTH_REQ_SC_ONLY|BTM_LE_AUTH_REQ_MITM|BTM_LE_AUTH_REQ_BOND)
}
 
enum  wiced_bt_dev_le_key_type_e {
  BTM_LE_KEY_PENC = (1 << 0), BTM_LE_KEY_PID = (1 << 1), BTM_LE_KEY_PCSRK = (1 << 2), BTM_LE_KEY_LENC = (1 << 3),
  BTM_LE_KEY_LID = (1 << 4), BTM_LE_KEY_LCSRK = (1 << 5)
}
 
enum  wiced_bt_dev_oob_data_e {
  BTM_OOB_NONE, BTM_OOB_PRESENT_192, BTM_OOB_PRESENT_256, BTM_OOB_PRESENT_192_256,
  BTM_OOB_UNKNOWN
}
 
enum  wiced_bt_dev_oob_data_req_type_e { , BTM_OOB_PEER, BTM_OOB_LOCAL, BTM_OOB_BOTH }
 
enum  wiced_bt_dev_passkey_entry_type_e {
  BTM_PASSKEY_ENTRY_STARTED, BTM_PASSKEY_DIGIT_ENTERED, BTM_PASSKEY_DIGIT_ERASED, BTM_PASSKEY_DIGIT_CLEARED,
  BTM_PASSKEY_ENTRY_COMPLETED
}
 
enum  wiced_bt_dev_power_mgmt_status_e {
  BTM_PM_STS_ACTIVE = HCI_MODE_ACTIVE, BTM_PM_STS_HOLD = HCI_MODE_HOLD, BTM_PM_STS_SNIFF = HCI_MODE_SNIFF, BTM_PM_STS_PARK = HCI_MODE_PARK,
  BTM_PM_STS_SSR, BTM_PM_STS_PENDING, BTM_PM_STS_ERROR
}
 
enum  wiced_bt_discoverability_mode_e { BTM_NON_DISCOVERABLE = 0, BTM_LIMITED_DISCOVERABLE = 1, BTM_GENERAL_DISCOVERABLE = 2 }
 
enum  wiced_bt_hci_trace_type_t { HCI_TRACE_EVENT, HCI_TRACE_COMMAND, HCI_TRACE_INCOMING_ACL_DATA, HCI_TRACE_OUTGOING_ACL_DATA }
 
enum  wiced_bt_inquiry_mode_e { BTM_INQUIRY_NONE = 0, BTM_GENERAL_INQUIRY = 0x01, BTM_LIMITED_INQUIRY = 0x02 }
 
enum  wiced_bt_management_evt_e {
  BTM_ENABLED_EVT, BTM_DISABLED_EVT, BTM_POWER_MANAGEMENT_STATUS_EVT, BTM_PIN_REQUEST_EVT,
  BTM_USER_CONFIRMATION_REQUEST_EVT, BTM_PASSKEY_NOTIFICATION_EVT, BTM_PASSKEY_REQUEST_EVT, BTM_KEYPRESS_NOTIFICATION_EVT,
  BTM_PAIRING_IO_CAPABILITIES_BR_EDR_REQUEST_EVT, BTM_PAIRING_IO_CAPABILITIES_BR_EDR_RESPONSE_EVT, BTM_PAIRING_IO_CAPABILITIES_BLE_REQUEST_EVT, BTM_PAIRING_COMPLETE_EVT,
  BTM_ENCRYPTION_STATUS_EVT, BTM_SECURITY_REQUEST_EVT, BTM_SECURITY_FAILED_EVT, BTM_SECURITY_ABORTED_EVT,
  BTM_READ_LOCAL_OOB_DATA_COMPLETE_EVT, BTM_REMOTE_OOB_DATA_REQUEST_EVT, BTM_PAIRED_DEVICE_LINK_KEYS_UPDATE_EVT, BTM_PAIRED_DEVICE_LINK_KEYS_REQUEST_EVT,
  BTM_LOCAL_IDENTITY_KEYS_UPDATE_EVT, BTM_LOCAL_IDENTITY_KEYS_REQUEST_EVT, BTM_BLE_SCAN_STATE_CHANGED_EVT, BTM_BLE_ADVERT_STATE_CHANGED_EVT,
  BTM_SMP_REMOTE_OOB_DATA_REQUEST_EVT, BTM_SMP_SC_REMOTE_OOB_DATA_REQUEST_EVT, BTM_SMP_SC_LOCAL_OOB_DATA_NOTIFICATION_EVT, BTM_SCO_CONNECTED_EVT,
  BTM_SCO_DISCONNECTED_EVT, BTM_SCO_CONNECTION_REQUEST_EVT, BTM_SCO_CONNECTION_CHANGE_EVT, BTM_BLE_CONNECTION_PARAM_UPDATE,
  BTM_BLE_PHY_UPDATE_EVT, BTM_LPM_STATE_LOW_POWER
}
 
enum  wiced_bt_sec_flags_e { BTM_SEC_LINK_ENCRYPTED = 0x01, BTM_SEC_LINK_PAIRED_WITHOUT_MITM = 0x02, BTM_SEC_LINK_PAIRED_WITH_MITM = 0x04 }
 
enum  wiced_bt_sec_level_e {
  BTM_SEC_NONE = 0x0000, BTM_SEC_IN_AUTHENTICATE = 0x0002, BTM_SEC_OUT_AUTHENTICATE = 0x0010, BTM_SEC_ENCRYPT = 0x0024,
  BTM_SEC_SECURE_CONNECTION = 0x0040
}
 
enum  wiced_bt_smp_status_e {
  SMP_SUCCESS = 0, SMP_PASSKEY_ENTRY_FAIL = 0x01, SMP_OOB_FAIL = 0x02, SMP_PAIR_AUTH_FAIL = 0x03,
  SMP_CONFIRM_VALUE_ERR = 0x04, SMP_PAIR_NOT_SUPPORT = 0x05, SMP_ENC_KEY_SIZE = 0x06, SMP_INVALID_CMD = 0x07,
  SMP_PAIR_FAIL_UNKNOWN = 0x08, SMP_REPEATED_ATTEMPTS = 0x09, SMP_INVALID_PARAMETERS = 0x0A, SMP_DHKEY_CHK_FAIL = 0x0B,
  SMP_NUMERIC_COMPAR_FAIL = 0x0C, SMP_BR_PAIRING_IN_PROGR = 0x0D, SMP_XTRANS_DERIVE_NOT_ALLOW = 0x0E , SMP_PAIR_INTERNAL_ERR = (SMP_MAX_FAIL_RSN_PER_SPEC + 0x01),
  SMP_UNKNOWN_IO_CAP = (SMP_MAX_FAIL_RSN_PER_SPEC + 0x02), SMP_INIT_FAIL = (SMP_MAX_FAIL_RSN_PER_SPEC + 0x03), SMP_CONFIRM_FAIL = (SMP_MAX_FAIL_RSN_PER_SPEC + 0x04), SMP_BUSY = (SMP_MAX_FAIL_RSN_PER_SPEC + 0x05),
  SMP_ENC_FAIL = (SMP_MAX_FAIL_RSN_PER_SPEC + 0x06), SMP_STARTED = (SMP_MAX_FAIL_RSN_PER_SPEC + 0x07), SMP_RSP_TIMEOUT = (SMP_MAX_FAIL_RSN_PER_SPEC + 0x08), SMP_FAIL = (SMP_MAX_FAIL_RSN_PER_SPEC + 0x09),
  SMP_CONN_TOUT = (SMP_MAX_FAIL_RSN_PER_SPEC + 0x0A)
}
 

Functions

wiced_result_t wiced_bt_cancel_inquiry (void)
 
wiced_result_t wiced_bt_dev_add_device_to_address_resolution_db (wiced_bt_device_link_keys_t *p_link_keys)
 
wiced_bool_t wiced_bt_dev_allow_host_sleep (void)
 
wiced_result_t wiced_bt_dev_cancel_sniff_mode (wiced_bt_device_address_t remote_bda)
 
void wiced_bt_dev_confirm_req_reply (wiced_result_t res, wiced_bt_device_address_t bd_addr)
 
wiced_result_t wiced_bt_dev_delete_bonded_device (wiced_bt_device_address_t bd_addr)
 
wiced_result_t wiced_bt_dev_get_ble_keys (wiced_bt_device_address_t bd_addr, wiced_bt_dev_le_key_type_t *p_key_mask)
 
wiced_result_t wiced_bt_dev_get_bonded_devices (wiced_bt_dev_bonded_device_info_t *p_paired_device_list, uint16_t *p_num_devices)
 
wiced_bool_t wiced_bt_dev_get_low_power_mode (void)
 
wiced_result_t wiced_bt_dev_get_role (wiced_bt_device_address_t remote_bd_addr, UINT8 *p_role, wiced_bt_transport_t transport)
 
wiced_bool_t wiced_bt_dev_get_security_state (wiced_bt_device_address_t bd_addr, uint8_t *p_sec_flags)
 
void wiced_bt_dev_pass_key_req_reply (wiced_result_t res, wiced_bt_device_address_t bd_addr, uint32_t passkey)
 
void wiced_bt_dev_pin_code_reply (wiced_bt_device_address_t bd_addr, wiced_result_t res, uint8_t pin_len, uint8_t *p_pin)
 
void wiced_bt_dev_read_local_addr (wiced_bt_device_address_t bd_addr)
 
wiced_result_t wiced_bt_dev_read_local_oob_data (void)
 
wiced_result_t wiced_bt_dev_read_rssi (wiced_bt_device_address_t remote_bda, wiced_bt_transport_t transport, wiced_bt_dev_cmpl_cback_t *p_cback)
 
wiced_result_t wiced_bt_dev_read_tx_power (wiced_bt_device_address_t remote_bda, wiced_bt_transport_t transport, wiced_bt_dev_cmpl_cback_t *p_cback)
 
wiced_result_t wiced_bt_dev_register_connection_status_change (wiced_bt_connection_status_change_cback_t *p_wiced_bt_connection_status_change_cback)
 
void wiced_bt_dev_register_hci_trace (wiced_bt_hci_trace_cback_t *p_cback)
 
wiced_bt_dev_status_t wiced_bt_dev_register_vendor_specific_event (wiced_bt_dev_vendor_specific_event_callback_t *p_event_callback, wiced_bool_t is_register)
 
void wiced_bt_dev_remote_oob_data_reply (wiced_result_t res, wiced_bt_device_address_t bd_addr, wiced_bool_t is_extended_oob_data, BT_OCTET16 c_192, BT_OCTET16 r_192, BT_OCTET16 c_256, BT_OCTET16 r_256)
 
wiced_result_t wiced_bt_dev_remove_device_from_address_resolution_db (wiced_bt_device_link_keys_t *p_link_keys)
 
wiced_result_t wiced_bt_dev_sec_bond (wiced_bt_device_address_t bd_addr, wiced_bt_ble_address_type_t bd_addr_type, wiced_bt_transport_t transport, uint8_t pin_len, uint8_t *p_pin)
 
wiced_result_t wiced_bt_dev_sec_bond_cancel (wiced_bt_device_address_t bd_addr)
 
void wiced_bt_dev_send_key_press_notif (wiced_bt_device_address_t bd_addr, wiced_bt_dev_passkey_entry_type_t type)
 
wiced_result_t wiced_bt_dev_set_advanced_connection_params (wiced_bt_dev_inquiry_scan_result_t *p_inquiry_scan_result)
 
wiced_result_t wiced_bt_dev_set_connectability (uint8_t page_mode, uint16_t window, uint16_t interval)
 
wiced_result_t wiced_bt_dev_set_discoverability (uint8_t inq_mode, uint16_t duration, uint16_t interval)
 
wiced_result_t wiced_bt_dev_set_encryption (wiced_bt_device_address_t bd_addr, wiced_bt_transport_t transport, void *p_ref_data)
 
wiced_result_t wiced_bt_dev_set_low_power_mode (wiced_bool_t enable_low_power)
 
wiced_result_t wiced_bt_dev_set_sniff_mode (wiced_bt_device_address_t remote_bda, uint16_t min_period, uint16_t max_period, uint16_t attempt, uint16_t timeout)
 
wiced_result_t wiced_bt_dev_set_sniff_subrating (wiced_bt_device_address_t remote_bda, uint16_t max_latency, uint16_t min_remote_timeout, uint16_t min_local_timeout)
 
wiced_result_t wiced_bt_dev_vendor_specific_command (uint16_t opcode, uint8_t param_len, uint8_t *p_param_buf, wiced_bt_dev_vendor_specific_command_complete_cback_t *p_cback)
 
wiced_result_t wiced_bt_dev_write_eir (uint8_t *p_buff, uint16_t len)
 
void wiced_bt_set_local_bdaddr (wiced_bt_device_address_t bd_addr)
 
wiced_result_t wiced_bt_set_tx_power (wiced_bt_device_address_t bd_addr, int power)
 
wiced_bool_t wiced_bt_smp_create_local_sc_oob_data (wiced_bt_device_address_t bd_addr, wiced_bt_ble_address_type_t bd_addr_type)
 
void wiced_bt_smp_sc_oob_reply (uint8_t *p_oob_data)
 
wiced_result_t wiced_bt_start_inquiry (wiced_bt_dev_inq_parms_t *p_inqparms, wiced_bt_inquiry_result_cback_t *p_inquiry_result_cback)
 

Detailed Description

Bluetooth Management (BTM) Application Programming Interface

The BTM consists of several management entities:

  1. Device Control - controls the local device
  2. Device Discovery - manages inquiries, discover database
  3. ACL Channels - manages ACL connections (BR/EDR and LE)
  4. SCO Channels - manages SCO connections
  5. Security - manages all security functionality
  6. Power Management - manages park, sniff, hold, etc.

Macro Definition Documentation

#define BTM_BLE_ADVERT_MODE

advertisement type (used when calling wiced_bt_start_advertisements)

#define BTM_BLE_CONN_MODE

scan mode used in initiating

#define BTM_BLE_SCAN_TYPE

Scan duty cycle (used for BTM_BLE_SCAN_STATE_CHANGED_EVT and wiced_bt_dev_create_connection)

#define BTM_EIR_UUID_ENUM

BTM service definitions (used for storing EIR data to bit mask

#define BTM_INQ_RES_IGNORE_RSSI   0x7f

RSSI value not supplied (ignore it)

#define BTM_LE_KEY_TYPES

LE Key type

#define BTM_LINK_TYPE_ESCO   HCI_LINK_TYPE_ESCO

Link type eSCO

#define BTM_LINK_TYPE_SCO   HCI_LINK_TYPE_SCO

SCO link type Link type SCO

#define BTM_OOB_REQ_TYPE

Type of OOB data required

#define BTM_OOB_STATE

OOB Data status

#define BTM_PIN_TYPE_VARIABLE   HCI_PIN_TYPE_VARIABLE

PIN types

#define BTM_PM_STATUS_CODES

Power Management status codes

#define BTM_SEC_LEVEL

Security Service Levels [bit mask]. Encryption should not be used without authentication.

#define BTM_SEC_LINK_STATE

security flags for current BR/EDR link

#define BTM_SECURITY_KEY_DATA_LEN   132

Size of security keys Security key data length (used by wiced_bt_device_link_keys_t structure)

#define BTM_SECURITY_LOCAL_KEY_DATA_LEN   65

Local security key data length (used by wiced_bt_local_identity_keys_t structure)

Typedef Documentation

typedef uint8_t wiced_bt_ble_advert_mode_t

Advertisement type (see wiced_bt_ble_advert_mode_e)

typedef uint8_t wiced_bt_ble_conn_mode_t

Conn mode (see wiced_bt_ble_conn_mode_e)

typedef uint8_t wiced_bt_ble_scan_type_t

scan type (see wiced_bt_ble_scan_type_e)

typedef void( wiced_bt_connection_status_change_cback_t)(wiced_bt_device_address_t bd_addr, uint8_t *p_features, wiced_bool_t is_connected, uint16_t handle, wiced_bt_transport_t transport, uint8_t reason)

Connection status change callback

Callback for Bluetooth Management event notifications. Registered using wiced_bt_register_connection_status_change()

Parameters
[in]bd_addr: BD Address of remote
[in]p_features
[in]is_connected: TRUE if connected
[in]handle: Connection handle
[in]transport: BT_TRANSPORT_BR_EDR or BT_TRANSPORT_LE
[in]reason: status for acl connection change HCI_SUCCESS HCI_ERR_PAGE_TIMEOUT HCI_ERR_MEMORY_FULL HCI_ERR_CONNECTION_TOUT HCI_ERR_PEER_USER HCI_ERR_CONN_CAUSE_LOCAL_HOST HCI_ERR_LMP_RESPONSE_TIMEOUT HCI_ERR_CONN_FAILED_ESTABLISHMENT
Returns
voidconnection status change callback
typedef uint8_t wiced_bt_dev_auth_req_t

BR/EDR authentication requirement (see wiced_bt_dev_auth_req_e)

typedef void( wiced_bt_dev_cmpl_cback_t)(void *p_data)

Synchronous BTM operation is complete.

Parameters
p_data: Operation dependent data
Returns
Nothing
typedef uint8_t wiced_bt_dev_io_cap_t

IO capabilities (see wiced_bt_dev_io_cap_e)

typedef uint8_t wiced_bt_dev_le_auth_req_t

BLE authentication requirement (see wiced_bt_dev_le_auth_req_e)

typedef uint8_t wiced_bt_dev_le_key_type_t

LE key type (see wiced_bt_dev_le_key_type_e)

typedef uint8_t wiced_bt_dev_oob_data_t

OOB data (see wiced_bt_dev_oob_data_e)

Bluetooth pairing keypress value (see wiced_bt_dev_passkey_entry_type_e)

Power management status (see wiced_bt_dev_power_mgmt_status_e)

Result/Status for wiced_bt_dev Result/Status for wiced_bt_dev

typedef void( wiced_bt_dev_vendor_specific_command_complete_cback_t)(wiced_bt_dev_vendor_specific_command_complete_params_t *p_command_complete_params)

Vendor specific command complete

Parameters
p_command_complete_params: Command complete parameters
Returns
Nothing
typedef void( wiced_bt_hci_trace_cback_t)(wiced_bt_hci_trace_type_t type, uint16_t length, uint8_t *p_data)

HCI trace callback

Callback for HCI traces Registered using wiced_bt_dev_register_hci_trace()

Parameters
[in]type: Trace type
[in]length: Length of the trace data
[in]p_data: Pointer to the data
Returns
void
typedef void( wiced_bt_inquiry_result_cback_t)(wiced_bt_dev_inquiry_scan_result_t *p_inquiry_result, uint8_t *p_eir_data)

Inquiry result callback.

Parameters
p_inquiry_result: Inquiry result data (NULL if inquiry is complete)
p_eir_data: Extended inquiry response data
Returns
Nothinginquiry result callback
typedef wiced_result_t( wiced_bt_management_cback_t)(wiced_bt_management_evt_t event, wiced_bt_management_evt_data_t *p_event_data)

Bluetooth Management callback

Callback for Bluetooth Management event notifications. Registered using wiced_bt_stack_init()

Parameters
event: Event ID
p_event_data: Event data
Returns
Status of event handling
typedef uint8_t wiced_bt_management_evt_t

Bluetooth management events (see wiced_bt_management_evt_e)

typedef uint8_t wiced_bt_smp_status_t

SMP Pairing status (see wiced_bt_smp_status_e)

Enumeration Type Documentation

Enumerator
BTM_BLE_ADVERT_OFF 

Stop advertising

BTM_BLE_ADVERT_DIRECTED_HIGH 

Directed advertisement (high duty cycle)

BTM_BLE_ADVERT_DIRECTED_LOW 

Directed advertisement (low duty cycle)

BTM_BLE_ADVERT_UNDIRECTED_HIGH 

Undirected advertisement (high duty cycle)

BTM_BLE_ADVERT_UNDIRECTED_LOW 

Undirected advertisement (low duty cycle)

BTM_BLE_ADVERT_NONCONN_HIGH 

Non-connectable advertisement (high duty cycle)

BTM_BLE_ADVERT_NONCONN_LOW 

Non-connectable advertisement (low duty cycle)

BTM_BLE_ADVERT_DISCOVERABLE_HIGH 

discoverable advertisement (high duty cycle)

BTM_BLE_ADVERT_DISCOVERABLE_LOW 

discoverable advertisement (low duty cycle)

Enumerator
BLE_CONN_MODE_OFF 

Stop initiating

BLE_CONN_MODE_LOW_DUTY 

slow connection scan parameter

BLE_CONN_MODE_HIGH_DUTY 

fast connection scan parameter

Enumerator
BTM_BLE_SCAN_TYPE_NONE 

Stop scanning

BTM_BLE_SCAN_TYPE_HIGH_DUTY 

High duty cycle scan

BTM_BLE_SCAN_TYPE_LOW_DUTY 

Low duty cycle scan

Enumerator
BTM_NON_CONNECTABLE 

Not connectable

BTM_CONNECTABLE 

BR/EDR connectable

BR/EDR Authentication requirement

Enumerator
BTM_AUTH_SINGLE_PROFILE_NO 

MITM Protection Not Required - Single Profile/non-bonding. Numeric comparison with automatic accept allowed

BTM_AUTH_SINGLE_PROFILE_YES 

MITM Protection Required - Single Profile/non-bonding. Use IO Capabilities to determine authentication procedure

BTM_AUTH_ALL_PROFILES_NO 

MITM Protection Not Required - All Profiles/dedicated bonding. Numeric comparison with automatic accept allowed

BTM_AUTH_ALL_PROFILES_YES 

MITM Protection Required - All Profiles/dedicated bonding. Use IO Capabilities to determine authentication procedure

BTM_AUTH_SINGLE_PROFILE_GENERAL_BONDING_NO 

MITM Protection Not Required - Single Profiles/general bonding. Numeric comparison with automatic accept allowed

BTM_AUTH_SINGLE_PROFILE_GENERAL_BONDING_YES 

MITM Protection Required - Single Profiles/general bonding. Use IO Capabilities to determine authentication procedure

Enumerator
BTM_CLR_INQUIRY_FILTER 

No inquiry filter

BTM_FILTER_COND_DEVICE_CLASS 

Filter on device class

BTM_FILTER_COND_BD_ADDR 

Filter on device addr

Pairing IO Capabilities

Enumerator
BTM_IO_CAPABILITIES_DISPLAY_ONLY 

Display Only

BTM_IO_CAPABILITIES_DISPLAY_AND_YES_NO_INPUT 

Display Yes/No

BTM_IO_CAPABILITIES_KEYBOARD_ONLY 

Keyboard Only

BTM_IO_CAPABILITIES_NONE 

No Input, No Output

BTM_IO_CAPABILITIES_BLE_DISPLAY_AND_KEYBOARD_INPUT 

Keyboard display (For BLE SMP)

LE Authentication requirement

Enumerator
BTM_LE_AUTH_REQ_NO_BOND 

Not required - No Bond

BTM_LE_AUTH_REQ_BOND 

Required - General Bond

BTM_LE_AUTH_REQ_MITM 

MITM required - Auth Y/N

BTM_LE_AUTH_REQ_SC_ONLY 

LE Secure Connection, no MITM, no Bonding

BTM_LE_AUTH_REQ_SC_BOND 

LE Secure Connection, no MITM, Bonding

BTM_LE_AUTH_REQ_SC_MITM 

LE Secure Connection, MITM, no Bonding

BTM_LE_AUTH_REQ_SC_MITM_BOND 

LE Secure Connection, MITM, Bonding

Enumerator
BTM_LE_KEY_PENC 

encryption information of peer device

BTM_LE_KEY_PID 

identity key of the peer device

BTM_LE_KEY_PCSRK 

peer SRK

BTM_LE_KEY_LENC 

master role security information:div

BTM_LE_KEY_LID 

master device ID key

BTM_LE_KEY_LCSRK 

local CSRK has been deliver to peer

Enumerator
BTM_OOB_NONE 

No OOB data

BTM_OOB_PRESENT_192 

OOB data present (from the P-192 public key)

BTM_OOB_PRESENT_256 

OOB data present (from the P-256 public key)

BTM_OOB_PRESENT_192_256 

OOB data present (from the P-192 and P-256 public keys)

BTM_OOB_UNKNOWN 

OOB data unknown

Enumerator
BTM_OOB_PEER 

Peer OOB data requested

BTM_OOB_LOCAL 

Local OOB data requested

BTM_OOB_BOTH 

Both local and peer OOB data requested

Pairing keypress types

Enumerator
BTM_PASSKEY_ENTRY_STARTED 

passkey entry started

BTM_PASSKEY_DIGIT_ENTERED 

passkey digit entered

BTM_PASSKEY_DIGIT_ERASED 

passkey digit erased

BTM_PASSKEY_DIGIT_CLEARED 

passkey cleared

BTM_PASSKEY_ENTRY_COMPLETED 

passkey entry completed

Enumerator
BTM_PM_STS_ACTIVE 

Active

BTM_PM_STS_HOLD 

Hold

BTM_PM_STS_SNIFF 

Sniff

BTM_PM_STS_PARK 

Park

BTM_PM_STS_SSR 

Sniff subrating notification

BTM_PM_STS_PENDING 

Pending (waiting for status from controller)

BTM_PM_STS_ERROR 

Error (controller returned error)

Enumerator
BTM_NON_DISCOVERABLE 

Non discoverable

BTM_LIMITED_DISCOVERABLE 

Limited BR/EDR discoverable

BTM_GENERAL_DISCOVERABLE 

General BR/EDR discoverable

HCI trace types

Enumerator
HCI_TRACE_EVENT 

HCI event data from controller to the host

HCI_TRACE_COMMAND 

HCI command data from host to controller

HCI_TRACE_INCOMING_ACL_DATA 

HCI incoming acl data

HCI_TRACE_OUTGOING_ACL_DATA 

HCI outgoing acl data

Enumerator
BTM_INQUIRY_NONE 

Stop inquiry

BTM_GENERAL_INQUIRY 

General inquiry

BTM_LIMITED_INQUIRY 

Limited inquiry

Bluetooth Management events

Enumerator
BTM_ENABLED_EVT 

Bluetooth controller and host stack enabled. Event data: wiced_bt_dev_enabled_t

BTM_DISABLED_EVT 

Bluetooth controller and host stack disabled. Event data: NULL

BTM_POWER_MANAGEMENT_STATUS_EVT 

Power management status change. Event data: wiced_bt_power_mgmt_notification_t

BTM_PIN_REQUEST_EVT 

PIN request (used only with legacy devices). Event data: wiced_bt_dev_name_and_class_t

BTM_USER_CONFIRMATION_REQUEST_EVT 

received USER_CONFIRMATION_REQUEST event (respond using wiced_bt_dev_confirm_req_reply). Event data: wiced_bt_dev_user_cfm_req_t

BTM_PASSKEY_NOTIFICATION_EVT 

received USER_PASSKEY_NOTIFY event. Event data: wiced_bt_dev_user_key_notif_t

BTM_PASSKEY_REQUEST_EVT 

received USER_PASSKEY_REQUEST event (respond using wiced_bt_dev_pass_key_req_reply). Event data: wiced_bt_dev_user_key_req_t

BTM_KEYPRESS_NOTIFICATION_EVT 

received KEYPRESS_NOTIFY event. Event data: wiced_bt_dev_user_keypress_t

BTM_PAIRING_IO_CAPABILITIES_BR_EDR_REQUEST_EVT 

Requesting IO capabilities for BR/EDR pairing. Event data: wiced_bt_dev_bredr_io_caps_req_t

BTM_PAIRING_IO_CAPABILITIES_BR_EDR_RESPONSE_EVT 

Received IO capabilities response for BR/EDR pairing. Event data: wiced_bt_dev_bredr_io_caps_rsp_t

BTM_PAIRING_IO_CAPABILITIES_BLE_REQUEST_EVT 

Requesting IO capabilities for BLE pairing. Event data: wiced_bt_dev_ble_io_caps_req_t

BTM_PAIRING_COMPLETE_EVT 

received SIMPLE_PAIRING_COMPLETE event. Event data: wiced_bt_dev_pairing_cplt_t

BTM_ENCRYPTION_STATUS_EVT 

Encryption status change. Event data: wiced_bt_dev_encryption_status_t

BTM_SECURITY_REQUEST_EVT 

Security request (respond using wiced_bt_ble_security_grant). Event data: wiced_bt_dev_security_request_t

BTM_SECURITY_FAILED_EVT 

Security procedure/authentication failed. Event data: wiced_bt_dev_security_failed_t

BTM_SECURITY_ABORTED_EVT 

Security procedure aborted locally, or unexpected link drop. Event data: wiced_bt_dev_name_and_class_t

BTM_READ_LOCAL_OOB_DATA_COMPLETE_EVT 

Result of reading local OOB data (wiced_bt_dev_read_local_oob_data). Event data: wiced_bt_dev_local_oob_t

BTM_REMOTE_OOB_DATA_REQUEST_EVT 

OOB data from remote device (respond using wiced_bt_dev_remote_oob_data_reply). Event data: wiced_bt_dev_remote_oob_t

BTM_PAIRED_DEVICE_LINK_KEYS_UPDATE_EVT 

Updated remote device link keys (store device_link_keys to NV memory). Event data: wiced_bt_device_link_keys_t

BTM_PAIRED_DEVICE_LINK_KEYS_REQUEST_EVT 

Request for stored remote device link keys (restore device_link_keys from NV memory). If successful, return WICED_BT_SUCCESS. Event data: wiced_bt_device_link_keys_t

BTM_LOCAL_IDENTITY_KEYS_UPDATE_EVT 

Update local identity key (stored local_identity_keys NV memory). Event data: wiced_bt_local_identity_keys_t

BTM_LOCAL_IDENTITY_KEYS_REQUEST_EVT 

Request local identity key (get local_identity_keys from NV memory). If successful, return WICED_BT_SUCCESS. Event data: wiced_bt_local_identity_keys_t

BTM_BLE_SCAN_STATE_CHANGED_EVT 

BLE scan state change. Event data: wiced_bt_ble_scan_type_t

BTM_BLE_ADVERT_STATE_CHANGED_EVT 

BLE advertisement state change. Event data: wiced_bt_ble_advert_mode_t

BTM_SMP_REMOTE_OOB_DATA_REQUEST_EVT 

SMP remote oob data request. Reply using wiced_bt_smp_oob_data_reply. Event data: wiced_bt_smp_remote_oob_req_t

BTM_SMP_SC_REMOTE_OOB_DATA_REQUEST_EVT 

LE secure connection remote oob data request. Reply using wiced_bt_smp_sc_oob_reply. Event data: wiced_bt_smp_sc_remote_oob_req_t

BTM_SMP_SC_LOCAL_OOB_DATA_NOTIFICATION_EVT 

LE secure connection local OOB data (wiced_bt_smp_create_local_sc_oob_data). Event data: #wiced_bt_smp_sc_local_oob_t

BTM_SCO_CONNECTED_EVT 

SCO connected event. Event data: wiced_bt_sco_connected_t

BTM_SCO_DISCONNECTED_EVT 

SCO disconnected event. Event data: wiced_bt_sco_disconnected_t

BTM_SCO_CONNECTION_REQUEST_EVT 

SCO connection request event. Event data: wiced_bt_sco_connection_request_t

BTM_SCO_CONNECTION_CHANGE_EVT 

SCO connection change event. Event data: wiced_bt_sco_connection_change_t

BTM_BLE_CONNECTION_PARAM_UPDATE 

BLE connection parameter update. Event data: wiced_bt_ble_conn_param_update_t

BTM_BLE_PHY_UPDATE_EVT 

BLE Physical link update. Event data: wiced_bt_ble_phy_update_t

BTM_LPM_STATE_LOW_POWER 

BT device wake has been deasserted

Enumerator
BTM_SEC_LINK_ENCRYPTED 

Link encrypted

BTM_SEC_LINK_PAIRED_WITHOUT_MITM 

Paired without man-in-the-middle protection

BTM_SEC_LINK_PAIRED_WITH_MITM 

Link with man-in-the-middle protection

Enumerator
BTM_SEC_NONE 

Nothing required

BTM_SEC_IN_AUTHENTICATE 

Inbound call requires authentication

BTM_SEC_OUT_AUTHENTICATE 

Outbound call requires authentication

BTM_SEC_ENCRYPT 

Requires encryption (inbound and outbound)

BTM_SEC_SECURE_CONNECTION 

Secure Connections Mode (P-256 based Secure Simple Pairing and Authentication)

SMP Pairing status codes

Enumerator
SMP_SUCCESS 

Success

SMP_PASSKEY_ENTRY_FAIL 

Passkey entry failed

SMP_OOB_FAIL 

OOB failed

SMP_PAIR_AUTH_FAIL 

Authentication failed

SMP_CONFIRM_VALUE_ERR 

Value confirmation failed

SMP_PAIR_NOT_SUPPORT 

Not supported

SMP_ENC_KEY_SIZE 

Encryption key size failure

SMP_INVALID_CMD 

Invalid command

SMP_PAIR_FAIL_UNKNOWN 

Unknown failure

SMP_REPEATED_ATTEMPTS 

Repeated attempts

SMP_INVALID_PARAMETERS 

Invalid parameters

SMP_DHKEY_CHK_FAIL 

DH Key check failed

SMP_NUMERIC_COMPAR_FAIL 

Numeric comparison failed

SMP_BR_PAIRING_IN_PROGR 

BR paIring in progress

SMP_XTRANS_DERIVE_NOT_ALLOW 

Cross transport key derivation not allowed

SMP_PAIR_INTERNAL_ERR 

Internal error

SMP_UNKNOWN_IO_CAP 

unknown IO capability, unable to decide associatino model

SMP_INIT_FAIL 

Initialization failed

SMP_CONFIRM_FAIL 

Confirmation failed

SMP_BUSY 

Busy

SMP_ENC_FAIL 

Encryption failed

SMP_STARTED 

Started

SMP_RSP_TIMEOUT 

Response timeout

SMP_FAIL 

Generic failure

SMP_CONN_TOUT 

Connection timeout

Function Documentation

wiced_result_t wiced_bt_dev_add_device_to_address_resolution_db ( wiced_bt_device_link_keys_t p_link_keys)

Function wiced_bt_dev_add_device_to_address_resolution_db

             add link key information to internal address resolution db
Parameters
[in]p_link_keys: link keys information stored in application side
Returns
wiced_result_t
wiced_bool_t wiced_bt_dev_allow_host_sleep ( void  )

Function wiced_bt_dev_allow_host_sleep

             Read Host-Wake line to see if it is ok for Host to sleep
Returns
WICED_TRUE if it is ok for Host to sleep WICED_FALSE otherwise
wiced_result_t wiced_bt_dev_delete_bonded_device ( wiced_bt_device_address_t  bd_addr)

Function wiced_bt_dev_delete_bonded_device

remove bonding with remote device with assigned bd_addr

Parameters
[in]bd_addr: bd_addr of remote device to be removed from bonding list
Returns
wiced_result_t
wiced_result_t wiced_bt_dev_get_ble_keys ( wiced_bt_device_address_t  bd_addr,
wiced_bt_dev_le_key_type_t p_key_mask 
)

Function wiced_bt_dev_get_ble_keys

             get le key mask from stored key information of nv ram
Parameters
[in]bd_addr: remote bd address
[out]p_key_mask: ble key mask stored
Returns
wiced_result_t
wiced_result_t wiced_bt_dev_get_bonded_devices ( wiced_bt_dev_bonded_device_info_t p_paired_device_list,
uint16_t *  p_num_devices 
)

Function wiced_bt_dev_get_bonded_devices

             get bonded device list
Parameters
[out]p_paired_device_list: array for getting bd address of bonded devices
in/out]p_num_devices : list size of p_pared_device_list total number of bonded devices stored
Returns
wiced_result_t
wiced_bool_t wiced_bt_dev_get_low_power_mode ( void  )

Function wiced_bt_dev_get_low_power_mode

             Get Current low-power mode of device
Returns
TRUE if Low-power mode is enabled
wiced_result_t wiced_bt_dev_get_role ( wiced_bt_device_address_t  remote_bd_addr,
UINT8 p_role,
wiced_bt_transport_t  transport 
)

Function wiced_bt_dev_get_role

             This function is called to get the role of the local device
             for the ACL connection with the specified remote device
Parameters
[in]remote_bd_addr: BD address of remote device
[in]transport: BT_TRANSPORT_BR_EDR or BT_TRANSPORT_LE
[out]p_role: Role of the local device
Returns
WICED_BT_UNKNOWN_ADDR if no active link with bd addr specified
wiced_bool_t wiced_bt_dev_get_security_state ( wiced_bt_device_address_t  bd_addr,
uint8_t *  p_sec_flags 
)

Function wiced_bt_dev_get_security_state

             Get security flags for the device
Parameters
[in]bd_addr: peer address
[out]p_sec_flags: security flags (see wiced_bt_sec_flags_e)
Returns
TRUE if successful
void wiced_bt_dev_register_hci_trace ( wiced_bt_hci_trace_cback_t p_cback)

Function wiced_bt_dev_register_hci_trace

Register to get the hci traces

Parameters
[in]p_cback: Callback for hci traces
Returns
void
wiced_result_t wiced_bt_dev_remove_device_from_address_resolution_db ( wiced_bt_device_link_keys_t p_link_keys)

Function wiced_bt_dev_remove_device_from_address_resolution_db

             remove link key information from internal address resolution db
Parameters
[in]p_link_keys: link keys information stored in application side
Returns
wiced_result_t
wiced_result_t wiced_bt_dev_set_low_power_mode ( wiced_bool_t  enable_low_power)

Function wiced_bt_dev_set_low_power_mode

             Enable or Disable low-power mode of device
Parameters
[in]enable_low_power: 0 to disable, 1 to enable
Returns
WICED_BT_SUCCESS if successful WICED_BT_UNSUPPORTED if Low-power Mode not supported by bluetooth stack WICED_BT_ERROR if setting low-power mode failed
void wiced_bt_set_local_bdaddr ( wiced_bt_device_address_t  bd_addr)

Function wiced_bt_set_local_bdaddr

             Set Local Bluetooth Device Address
Parameters
[in]bd_addr: device address to use
Returns
void
wiced_result_t wiced_bt_set_tx_power ( wiced_bt_device_address_t  bd_addr,
int  power 
)

Function wiced_bt_set_tx_power This command will adjust the transmit power attenuation on a per connection basis.

Parameters
[in]bd_addr: Remote device address
[in]power: input power to be set , range should be between -28 to 4 dbm Min Val is 4dbm and Max val is -28
Returns
WICED_BT_SUCCESS if successful WICED_BT_NO_RESOURCES if could not allocate resources to start the command WICED_BT_UNSUPPORTED if set tx power is not supported by bluetooth stack