Infineon Logo AIROC BTSDK v4.7 - Documentation
 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
wiced_bt_sdp.h File Reference

Bluetooth SDP Application Programming Interface. More...

Data Structures

struct  wiced_bt_sdp_discovery_attribute_value_t
 Attribute value. More...
 
struct  t_sdp_discovery_attr
 SDP Attribute. More...
 
struct  sdp_discovery_record_t
 Discovery record from SDP search result. More...
 
struct  wiced_bt_sdp_discovery_db_t
 Discovery database (used for performing service searches and holding search results) More...
 
struct  wiced_bt_sdp_protocol_elem_t
 This structure is used to add protocol lists and find protocol elements. More...
 

Macros

#define SDP_PSM   0x0001
 
#define SDP_DISC_ATTR_LEN_MASK   0x0FFF
 
#define SDP_DISC_ATTR_TYPE(len_type)   (len_type >> 12)
 
#define SDP_DISC_ATTR_LEN(len_type)   (len_type & SDP_DISC_ATTR_LEN_MASK)
 
#define SDP_MAX_LIST_ELEMS   3
 
#define SDP_UINT1(value)   (value)
 
#define SDP_UINT2(value)   (value) >> 8, (value) & 0xff
 
#define SDP_UINT4(value)   (value) >> 24, ((value) >> 16) & 0xff, ((value) >> 8) & 0xff, (value) & 0xff
 
#define SDP_UINT8(value)
 
#define SDP_BOOLEAN   SDP_UINT1
 
#define SDP_ATTR_VALUE_UINT1(value)   (UINT_DESC_TYPE << 3) | SIZE_ONE_BYTE, SDP_UINT1(value)
 
#define SDP_ATTR_VALUE_UINT2(value)   (UINT_DESC_TYPE << 3) | SIZE_TWO_BYTES, SDP_UINT2(value)
 
#define SDP_ATTR_VALUE_UINT4(value)   (UINT_DESC_TYPE << 3) | SIZE_FOUR_BYTES, SDP_UINT4(value)
 
#define SDP_ATTR_VALUE_UINT8(value)   (UINT_DESC_TYPE << 3) | SIZE_EIGHT_BYTES, SDP_UINT8(value)
 
#define SDP_ATTR_VALUE_BOOLEAN(value)   (BOOLEAN_DESC_TYPE << 3), SDP_UINT1(value)
 
#define SDP_ATTR_VALUE_TEXT_1(len)   (TEXT_STR_DESC_TYPE << 3) | SIZE_IN_NEXT_BYTE, SDP_UINT1(len)
 
#define SDP_ATTR_VALUE_TEXT_2(len)   (TEXT_STR_DESC_TYPE << 3) | SIZE_IN_NEXT_WORD, SDP_UINT2(len)
 
#define SDP_ATTR_VALUE_TEXT_4(len)   (TEXT_STR_DESC_TYPE << 3) | SIZE_IN_NEXT_LONG, SDP_UINT4(len)
 
#define SDP_ATTR_UINT1(id, value)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_UINT1(value)
 
#define SDP_ATTR_UINT2(id, value)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_UINT2(value)
 
#define SDP_ATTR_UINT4(id, value)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_UINT4(value)
 
#define SDP_ATTR_UINT8(id, value)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_UINT8(value)
 
#define SDP_ATTR_BOOLEAN(id, value)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_BOOLEAN(value)
 
#define SDP_ATTR_ID   SDP_ATTR_VALUE_UINT2
 
#define SDP_ATTR_UUID16(uuid)   ((UUID_DESC_TYPE << 3) | SIZE_TWO_BYTES), SDP_UINT2(uuid)
 
#define SDP_ATTR_TEXT_1(id, len)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_TEXT_1(len)
 
#define SDP_ATTR_TEXT_2(id, len)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_TEXT_2(len)
 
#define SDP_ATTR_TEXT_4(id, len)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_TEXT_4(len)
 
#define SDP_ATTR_SEQUENCE_1(length)   ((DATA_ELE_SEQ_DESC_TYPE << 3) | SIZE_IN_NEXT_BYTE), (length)
 
#define SDP_ATTR_SEQUENCE_2(length)   ((DATA_ELE_SEQ_DESC_TYPE << 3) | SIZE_IN_NEXT_WORD), SDP_UINT2(length)
 
#define SDP_ATTR_SEQUENCE_4(length)   ((DATA_ELE_SEQ_DESC_TYPE << 3) | SIZE_IN_NEXT_LONG), SDP_UINT4(length)
 
#define SDP_ATTR_RECORD_HANDLE(handle)   SDP_ATTR_UINT4(ATTR_ID_SERVICE_RECORD_HDL, handle)
 
#define SDP_ATTR_CLASS_ID(uuid)
 
#define SDP_ATTR_SERVICE_RECORD_STATE(state)   SDP_ATTR_UINT4(ATTR_ID_SERVICE_RECORD_STATE, state)
 
#define SDP_ATTR_SERVICE_ID(uuid)
 
#define SDP_ATTR_PROTOCOL_DESC_LIST(l2cap_chan)
 
#define SDP_ATTR_SDP_PROTOCOL_DESC_LIST(l2cap_chan)
 
#define SDP_ATTR_HIDP_PROTOCOL_DESC_LIST(l2cap_chan)
 
#define SDP_ATTR_RFCOMM_PROTOCOL_DESC_LIST(scn)
 
#define SDP_ATTR_BROWSE_LIST
 
#define SDP_ATTR_LANGUAGE_BASE_ATTR_ID_LIST
 
#define SDP_ATTR_SERVICE_INFO_TIME_TO_LIVE(seconds)   SDP_ATTR_UINT4(ATTR_ID_SERVICE_INFO_TIME_TO_LIVE, seconds)
 
#define SDP_ATTR_SERVICE_AVAILABILITY(availability)   SDP_ATTR_UINT1(ATTR_ID_SERVICE_AVAILABILITY, availability)
 
#define SDP_ATTR_PROFILE_DESC_LIST(uuid, version)
 
#define SDP_ATTR_DOCUMENTATION_URL(len)   SDP_ATTR_TEXT_1(ATTR_ID_DOCUMENTATION_URL, len)
 
#define SDP_ATTR_CLIENT_EXECUTABLE_URL(len)   SDP_ATTR_TEXT_1(ATTR_ID_CLIENT_EXE_URL, len)
 
#define SDP_ATTR_ICON_URL(len)   SDP_ATTR_TEXT_1(ATTR_ID_ICON_URL, len)
 
#define SDP_ATTR_SERVICE_NAME(len)   SDP_ATTR_TEXT_1(ATTR_ID_SERVICE_NAME, len)
 
#define SDP_ATTR_SERVICE_DESCRIPTION(len)   SDP_ATTR_TEXT_1(ATTR_ID_SERVICE_DESCRIPTION, len)
 
#define SDP_ATTR_PROVIDER_NAME(len)   SDP_ATTR_TEXT_1(ATTR_ID_PROVIDER_NAME, len)
 
#define SDP_ATTR_GROUP_ID(uuid)
 
#define SDP_ATTR_VERSION_NUMBER_LIST(version)
 
#define SDP_ATTR_SERVICE_DATABASE_STATE(state)   SDP_ATTR_UINT4(ATTR_ID_VENDOR_ID, state)
 

Typedefs

typedef void( wiced_bt_sdp_discovery_complete_cback_t )(uint16_t sdp_result)
 Function wiced_bt_sdp_discovery_complete_cback_t. More...
 
typedef struct t_sdp_discovery_attr wiced_bt_sdp_discovery_attribute_t
 SDP Attribute.
 
typedef struct
sdp_discovery_record_t 
wiced_bt_sdp_discovery_record_t
 Discovery record from SDP search result.
 

Enumerations

enum  wiced_bt_sdp_result_t {
  WICED_BT_SDP_SUCCESS = WICED_BT_SUCCESS, WICED_BT_SDP_INVALID_VERSION = 0x0001, WICED_BT_SDP_INVALID_SERV_REC_HDL = 0x0002, WICED_BT_SDP_INVALID_REQ_SYNTAX = 0x0003,
  WICED_BT_SDP_INVALID_PDU_SIZE = 0x0004, WICED_BT_SDP_INVALID_CONT_STATE = 0x0005, WICED_BT_SDP_NO_RESOURCES = 0x0006, WICED_BT_SDP_DI_REG_FAILED = 0x0007,
  WICED_BT_SDP_DI_DISC_FAILED = 0x0008, WICED_BT_SDP_NO_DI_RECORD_FOUND = 0x0009, WICED_BT_SDP_ERR_ATTR_NOT_PRESENT = 0x000A, WICED_BT_SDP_ILLEGAL_PARAMETER = 0x000B,
  WICED_BT_SDP_NO_RECS_MATCH = 0xFFF0, WICED_BT_SDP_CONN_FAILED = 0xFFF1, WICED_BT_SDP_CFG_FAILED = 0xFFF2, WICED_BT_SDP_GENERIC_ERROR = 0xFFF3,
  WICED_BT_SDP_DB_FULL = 0xFFF4, WICED_BT_SDP_INVALID_PDU = 0xFFF5, WICED_BT_SDP_SECURITY_ERR = 0xFFF6, WICED_BT_SDP_CONN_REJECTED = 0xFFF7,
  WICED_BT_SDP_CANCEL = 0xFFF8
}
 SDP result - Success code and error codes. More...
 

Functions

wiced_bool_t wiced_bt_sdp_db_init (uint8_t *p_sdp_db, uint16_t size)
 Function wiced_bt_sdp_db_init. More...
 
wiced_bool_t wiced_bt_sdp_init_discovery_db (wiced_bt_sdp_discovery_db_t *p_db, uint32_t len, uint16_t num_uuid, wiced_bt_uuid_t *p_uuid_list, uint16_t num_attr, uint16_t *p_attr_list)
 Function wiced_bt_sdp_init_discovery_db. More...
 
wiced_bool_t wiced_bt_sdp_cancel_service_search (wiced_bt_sdp_discovery_db_t *p_db)
 Function wiced_bt_sdp_cancel_service_search. More...
 
wiced_bool_t wiced_bt_sdp_service_search_request (uint8_t *p_bd_addr, wiced_bt_sdp_discovery_db_t *p_db, wiced_bt_sdp_discovery_complete_cback_t *p_cb)
 Function wiced_bt_sdp_service_search_request. More...
 
wiced_bool_t wiced_bt_sdp_service_search_attribute_request (uint8_t *p_bd_addr, wiced_bt_sdp_discovery_db_t *p_db, wiced_bt_sdp_discovery_complete_cback_t *p_cb)
 Function wiced_bt_sdp_service_search_attribute_request. More...
 
wiced_bt_sdp_discovery_record_twiced_bt_sdp_find_attribute_in_db (wiced_bt_sdp_discovery_db_t *p_db, uint16_t attr_id, wiced_bt_sdp_discovery_record_t *p_start_rec)
 Function wiced_bt_sdp_find_attribute_in_db. More...
 
wiced_bt_sdp_discovery_attribute_twiced_bt_sdp_find_attribute_in_rec (wiced_bt_sdp_discovery_record_t *p_rec, uint16_t attr_id)
 Function wiced_bt_sdp_find_attribute_in_rec. More...
 
wiced_bt_sdp_discovery_record_twiced_bt_sdp_find_service_in_db (wiced_bt_sdp_discovery_db_t *p_db, uint16_t service_uuid, wiced_bt_sdp_discovery_record_t *p_start_rec)
 Function wiced_bt_sdp_find_service_in_db. More...
 
wiced_bt_sdp_discovery_record_twiced_bt_sdp_find_service_uuid_in_db (wiced_bt_sdp_discovery_db_t *p_db, wiced_bt_uuid_t *p_uuid, wiced_bt_sdp_discovery_record_t *p_start_rec)
 Function wiced_bt_sdp_find_service_uuid_in_db. More...
 
wiced_bool_t wiced_bt_sdp_find_protocol_list_elem_in_rec (wiced_bt_sdp_discovery_record_t *p_rec, uint16_t layer_uuid, wiced_bt_sdp_protocol_elem_t *p_elem)
 Function wiced_bt_sdp_find_protocol_list_elem_in_rec. More...
 
wiced_bool_t wiced_bt_sdp_find_protocol_lists_elem_in_rec (wiced_bt_sdp_discovery_record_t *p_rec, uint16_t layer_uuid, wiced_bt_sdp_protocol_elem_t *p_elem)
 Function wiced_bt_sdp_find_protocol_lists_elem_in_rec. More...
 
wiced_bool_t wiced_bt_sdp_find_profile_version_in_rec (wiced_bt_sdp_discovery_record_t *p_rec, uint16_t profile_uuid, uint16_t *p_version)
 Function wiced_bt_sdp_find_profile_version_in_rec. More...
 
wiced_bool_t wiced_bt_sdp_find_service_uuid_in_rec (wiced_bt_sdp_discovery_record_t *p_rec, wiced_bt_uuid_t *p_uuid)
 Function wiced_bt_sdp_find_service_uuid_in_rec. More...
 

Detailed Description

Bluetooth SDP Application Programming Interface.

Macro Definition Documentation

#define SDP_ATTR_BROWSE_LIST
Value:
SDP_ATTR_ID(ATTR_ID_BROWSE_GROUP_LIST), SDP_ATTR_SEQUENCE_1(3), \
SDP_ATTR_UUID16(UUID_SERVCLASS_PUBLIC_BROWSE_GROUP)
#define SDP_ATTR_CLASS_ID (   uuid)
Value:
SDP_ATTR_ID(ATTR_ID_SERVICE_CLASS_ID_LIST), SDP_ATTR_SEQUENCE_1(3), \
SDP_ATTR_UUID16(uuid)
uint8_t uuid[16]
UUID of the node to provision.
Definition: wiced_bt_mesh_core.h:137
#define SDP_ATTR_GROUP_ID (   uuid)
Value:
SDP_ATTR_ID(ATTR_ID_GROUP_ID), SDP_ATTR_SEQUENCE_1(3), \
SDP_ATTR_UUID16(uuid)
uint8_t uuid[16]
UUID of the node to provision.
Definition: wiced_bt_mesh_core.h:137
#define SDP_ATTR_HIDP_PROTOCOL_DESC_LIST (   l2cap_chan)
Value:
SDP_ATTR_ID(ATTR_ID_PROTOCOL_DESC_LIST), SDP_ATTR_SEQUENCE_1(13), \
SDP_ATTR_SEQUENCE_1(6), \
SDP_ATTR_UUID16(UUID_PROTOCOL_L2CAP), \
SDP_ATTR_ID(l2cap_chan), \
SDP_ATTR_SEQUENCE_1(3), \
SDP_ATTR_UUID16(UUID_PROTOCOL_HIDP)
#define SDP_ATTR_LANGUAGE_BASE_ATTR_ID_LIST
Value:
SDP_ATTR_ID(ATTR_ID_LANGUAGE_BASE_ATTR_ID_LIST), SDP_ATTR_SEQUENCE_1(9), \
SDP_ATTR_VALUE_UINT2(LANG_ID_CODE_ENGLISH), \
SDP_ATTR_VALUE_UINT2(LANG_ID_CHAR_ENCODE_UTF8), \
SDP_ATTR_VALUE_UINT2(LANGUAGE_BASE_ID)
#define SDP_ATTR_PROFILE_DESC_LIST (   uuid,
  version 
)
Value:
SDP_ATTR_ID(ATTR_ID_BT_PROFILE_DESC_LIST), SDP_ATTR_SEQUENCE_1(8), \
SDP_ATTR_SEQUENCE_1(6), \
SDP_ATTR_UUID16(uuid), \
SDP_ATTR_VALUE_UINT2(version)
uint8_t uuid[16]
UUID of the node to provision.
Definition: wiced_bt_mesh_core.h:137
#define SDP_ATTR_PROTOCOL_DESC_LIST (   l2cap_chan)
Value:
SDP_ATTR_ID(ATTR_ID_PROTOCOL_DESC_LIST), SDP_ATTR_SEQUENCE_1(13), \
SDP_ATTR_SEQUENCE_1(6), \
SDP_ATTR_UUID16(UUID_PROTOCOL_L2CAP), \
SDP_ATTR_VALUE_UINT2(1), \
SDP_ATTR_SEQUENCE_1(3), \
SDP_ATTR_UUID16(l2cap_chan)
#define SDP_ATTR_RFCOMM_PROTOCOL_DESC_LIST (   scn)
Value:
SDP_ATTR_ID(ATTR_ID_PROTOCOL_DESC_LIST), SDP_ATTR_SEQUENCE_1(12), \
SDP_ATTR_SEQUENCE_1(3), \
SDP_ATTR_UUID16(UUID_PROTOCOL_L2CAP), \
SDP_ATTR_SEQUENCE_1(5), \
SDP_ATTR_UUID16(UUID_PROTOCOL_RFCOMM), \
SDP_ATTR_VALUE_UINT1(scn)
#define SDP_ATTR_SDP_PROTOCOL_DESC_LIST (   l2cap_chan)
Value:
SDP_ATTR_ID(ATTR_ID_PROTOCOL_DESC_LIST), SDP_ATTR_SEQUENCE_1(13), \
SDP_ATTR_SEQUENCE_1(6), \
SDP_ATTR_UUID16(UUID_PROTOCOL_L2CAP), \
SDP_ATTR_ID(l2cap_chan), \
SDP_ATTR_SEQUENCE_1(3), \
SDP_ATTR_UUID16(UUID_PROTOCOL_SDP)
#define SDP_ATTR_SERVICE_ID (   uuid)
Value:
SDP_ATTR_ID(ATTR_ID_SERVICE_ID), SDP_ATTR_SEQUENCE_1(3), \
SDP_ATTR_UUID16(uuid)
uint8_t uuid[16]
UUID of the node to provision.
Definition: wiced_bt_mesh_core.h:137
#define SDP_ATTR_VERSION_NUMBER_LIST (   version)
Value:
SDP_ATTR_ID(ATTR_ID_SPECIFICATION_ID), SDP_ATTR_SEQUENCE_1(3), \
SDP_ATTR_VALUE_UINT2(version)
#define SDP_UINT8 (   value)
Value:
(value) >> 56, ((value) >> 48) & 0xff, ((value >> 40) >> 8) & 0xff, \
(value >> 32) & 0xff, ((value) >> 24) & 0xff, ((value) >> 16) & 0xff, \
((value) >> 8) & 0xff, (value) & 0xff
uint8_t * value
pointer to the property value
Definition: wiced_bt_mesh_cfg.h:193

Typedef Documentation

typedef void( wiced_bt_sdp_discovery_complete_cback_t)(uint16_t sdp_result)

Function wiced_bt_sdp_discovery_complete_cback_t.

Service discovery complete callback.

If discovery was successful, the discovery results database (provided when wiced_bt_sdp_service_search_request or wiced_bt_sdp_service_search_attribute_request was called) will be filled.

Use the wiced_bt_sdp_find_* utility functions to parse the results.

Parameters
[in]sdp_result: SDP result code (see wiced_bt_sdp_result_t)
Returns
Nothing

Enumeration Type Documentation

SDP result - Success code and error codes.

Enumerator
WICED_BT_SDP_SUCCESS 

SDP - Result: Success.

WICED_BT_SDP_INVALID_VERSION 

SDP - invalid version.

WICED_BT_SDP_INVALID_SERV_REC_HDL 

SDP - invalid service record.

WICED_BT_SDP_INVALID_REQ_SYNTAX 

SDP - invalid request syntax.

WICED_BT_SDP_INVALID_PDU_SIZE 

SDP - invalid PDU size.

WICED_BT_SDP_INVALID_CONT_STATE 

SDP - invalid controller state.

WICED_BT_SDP_NO_RESOURCES 

SDP - no resources.

WICED_BT_SDP_DI_REG_FAILED 

SDP - registration failed.

WICED_BT_SDP_DI_DISC_FAILED 

SDP - discovery failed.

WICED_BT_SDP_NO_DI_RECORD_FOUND 

SDP - no record found.

WICED_BT_SDP_ERR_ATTR_NOT_PRESENT 

SDP - no attribute present.

WICED_BT_SDP_ILLEGAL_PARAMETER 

SDP - Illegal parameter.

WICED_BT_SDP_NO_RECS_MATCH 

SDP - No records match.

WICED_BT_SDP_CONN_FAILED 

SDP - Connection failed.

WICED_BT_SDP_CFG_FAILED 

SDP - Configuration failed.

WICED_BT_SDP_GENERIC_ERROR 

SDP - Generic error.

WICED_BT_SDP_DB_FULL 

SDP - DB full.

WICED_BT_SDP_INVALID_PDU 

SDP - Invalid PDU.

WICED_BT_SDP_SECURITY_ERR 

SDP - Security Error.

WICED_BT_SDP_CONN_REJECTED 

SDP - Connection rejected.

WICED_BT_SDP_CANCEL 

SDP - cancel.