Infineon Logo AIROC BTSDK v4.4 - Documentation
 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Service Discovery Protocol (SDP)

The Service Discovery Protocol (SDP) allows a device to discover services offered by other devices, and their associated parameters. 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 the PSM that SDP uses.
 
#define SDP_DISC_ATTR_LEN_MASK   0x0FFF
 Masks for attr_value field of wiced_bt_sdp_discovery_attribute_t.
 
#define SDP_DISC_ATTR_TYPE(len_type)   (len_type >> 12)
 Masks for attr_len_type field of wiced_bt_sdp_discovery_attribute_t.
 
#define SDP_DISC_ATTR_LEN(len_type)   (len_type & SDP_DISC_ATTR_LEN_MASK)
 Masks for attr_len.
 
#define SDP_MAX_LIST_ELEMS   3
 Maximum number of protocol list items (list_elem in wiced_bt_sdp_protocol_elem_t)
 
#define SDP_MAX_UUID_FILTERS   3
 SDP Max UUID filters. More...
 
#define SDP_MAX_ATTR_FILTERS   12
 SDP Max Attribute filters. More...
 
#define SDP_MAX_PROTOCOL_PARAMS   2
 SDP Max Protocol Parameters. More...
 
#define SDP_UINT1(value)   (value)
 SDP attribute 1 byte.
 
#define SDP_UINT2(value)   (value) >> 8, (value) & 0xff
 SDP attribute 2 byte.
 
#define SDP_UINT4(value)   (value) >> 24, ((value) >> 16) & 0xff, ((value) >> 8) & 0xff, (value) & 0xff
 SDP attribute 4 byte.
 
#define SDP_UINT8(value)
 SDP attribute 8 byte. More...
 
#define SDP_BOOLEAN   SDP_UINT1
 SDP attribute BOOLEAN type.
 
#define SDP_ATTR_VALUE_UINT1(value)   (UINT_DESC_TYPE << 3) | SIZE_ONE_BYTE, SDP_UINT1(value)
 SDP attribute value UINT 1 byte.
 
#define SDP_ATTR_VALUE_UINT2(value)   (UINT_DESC_TYPE << 3) | SIZE_TWO_BYTES, SDP_UINT2(value)
 SDP attribute value UINT 2 byte.
 
#define SDP_ATTR_VALUE_UINT4(value)   (UINT_DESC_TYPE << 3) | SIZE_FOUR_BYTES, SDP_UINT4(value)
 SDP attribute value UINT 4 byte.
 
#define SDP_ATTR_VALUE_UINT8(value)   (UINT_DESC_TYPE << 3) | SIZE_EIGHT_BYTES, SDP_UINT8(value)
 SDP attribute value UINT 8 byte.
 
#define SDP_ATTR_VALUE_BOOLEAN(value)   (BOOLEAN_DESC_TYPE << 3), SDP_UINT1(value)
 SDP attribute value BOOLEAN type.
 
#define SDP_ATTR_VALUE_TEXT   (TEXT_STR_DESC_TYPE << 3) | SIZE_IN_NEXT_BYTE
 SDP attribute value text.
 
#define SDP_ATTR_VALUE_TEXT_1(len)   (TEXT_STR_DESC_TYPE << 3) | SIZE_IN_NEXT_BYTE, SDP_UINT1(len)
 SDP attribute value text 1 byte.
 
#define SDP_ATTR_VALUE_TEXT_2(len)   (TEXT_STR_DESC_TYPE << 3) | SIZE_IN_NEXT_WORD, SDP_UINT2(len)
 SDP attribute value text 2 byte.
 
#define SDP_ATTR_VALUE_TEXT_4(len)   (TEXT_STR_DESC_TYPE << 3) | SIZE_IN_NEXT_LONG, SDP_UINT4(len)
 SDP attribute value text 4 byte.
 
#define SDP_ATTR_UINT1(id, value)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_UINT1(value)
 SDP attribute id with 1 byte value.
 
#define SDP_ATTR_UINT2(id, value)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_UINT2(value)
 SDP attribute id with 2 byte value.
 
#define SDP_ATTR_UINT4(id, value)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_UINT4(value)
 SDP attribute id with 4 byte value.
 
#define SDP_ATTR_UINT8(id, value)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_UINT8(value)
 SDP attribute id with 8 byte value.
 
#define SDP_ATTR_BOOLEAN(id, value)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_BOOLEAN(value)
 SDP attribute id with BOOLEAN value.
 
#define SDP_ATTR_ID   SDP_ATTR_VALUE_UINT2
 SDP attribute id.
 
#define SDP_ATTR_UUID16(uuid)   ((UUID_DESC_TYPE << 3) | SIZE_TWO_BYTES), SDP_UINT2(uuid)
 SDP attribute 16 bit UUID.
 
#define SDP_ATTR_TEXT(id, len)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_TEXT, (len)
 SDP attribute id with text.
 
#define SDP_ATTR_TEXT_1(id, len)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_TEXT_1(len)
 SDP attribute id with 1 byte text value.
 
#define SDP_ATTR_TEXT_2(id, len)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_TEXT_2(len)
 SDP attribute id with 2 byte text value.
 
#define SDP_ATTR_TEXT_4(id, len)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_TEXT_4(len)
 SDP attribute id with 4 byte text value.
 
#define SDP_ATTR_SEQUENCE_1(length)   ((DATA_ELE_SEQ_DESC_TYPE << 3) | SIZE_IN_NEXT_BYTE), (length)
 SDP attribute Sequence 1 byte.
 
#define SDP_ATTR_SEQUENCE_2(length)   ((DATA_ELE_SEQ_DESC_TYPE << 3) | SIZE_IN_NEXT_WORD), SDP_UINT2(length)
 SDP attribute Sequence 2 byte.
 
#define SDP_ATTR_SEQUENCE_4(length)   ((DATA_ELE_SEQ_DESC_TYPE << 3) | SIZE_IN_NEXT_LONG), SDP_UINT4(length)
 SDP attribute Sequence 4 byte.
 
#define SDP_ATTR_RECORD_HANDLE(handle)   SDP_ATTR_UINT4(ATTR_ID_SERVICE_RECORD_HDL, handle)
 Service Record Handle 0x0000.
 
#define SDP_ATTR_CLASS_ID(uuid)
 Service Class ID List 0x0001. More...
 
#define SDP_ATTR_SERVICE_RECORD_STATE(state)   SDP_ATTR_UINT4(ATTR_ID_SERVICE_RECORD_STATE, state)
 Service Record State 0x0002.
 
#define SDP_ATTR_SERVICE_ID(uuid)
 Service ID 0x0003. More...
 
#define SDP_ATTR_PROTOCOL_DESC_LIST(l2cap_chan)
 Protocol Descriptor List 0x0004 for L2CAP. More...
 
#define SDP_ATTR_SDP_PROTOCOL_DESC_LIST(l2cap_chan)
 Protocol Descriptor List 0x0004 for SDP. More...
 
#define SDP_ATTR_HIDP_PROTOCOL_DESC_LIST(l2cap_chan)
 Protocol Descriptor List 0x0004 for HIDP. More...
 
#define SDP_ATTR_RFCOMM_PROTOCOL_DESC_LIST(scn)
 Protocol Descriptor List 0x0004 for RFCOMM. More...
 
#define SDP_ATTR_BROWSE_LIST
 Browse Group List 0x0005. More...
 
#define SDP_ATTR_LANGUAGE_BASE_ATTR_ID_LIST
 Language Base 0x0006. More...
 
#define SDP_ATTR_SERVICE_INFO_TIME_TO_LIVE(seconds)   SDP_ATTR_UINT4(ATTR_ID_SERVICE_INFO_TIME_TO_LIVE, seconds)
 Service Info Time to Live 0x0007.
 
#define SDP_ATTR_SERVICE_AVAILABILITY(availability)   SDP_ATTR_UINT1(ATTR_ID_SERVICE_AVAILABILITY, availability)
 Service Availability 0x0008.
 
#define SDP_ATTR_PROFILE_DESC_LIST(uuid, version)
 BT Profile Descriptor List 0x0009. More...
 
#define SDP_ATTR_DOCUMENTATION_URL(len)   SDP_ATTR_TEXT_1(ATTR_ID_DOCUMENTATION_URL, len)
 Documentation URL 0x000A.
 
#define SDP_ATTR_CLIENT_EXECUTABLE_URL(len)   SDP_ATTR_TEXT_1(ATTR_ID_CLIENT_EXE_URL, len)
 Client Executable URL 0x000B.
 
#define SDP_ATTR_ICON_URL(len)   SDP_ATTR_TEXT_1(ATTR_ID_ICON_URL, len)
 Icon URL 0x000C.
 
#define SDP_ATTR_SERVICE_NAME(len)   SDP_ATTR_TEXT_1(ATTR_ID_SERVICE_NAME, len)
 Service Name LANGUAGE_BASE_ID (0x0100) + 0x0000 = 0x0100.
 
#define SDP_ATTR_SERVICE_DESCRIPTION(len)   SDP_ATTR_TEXT_1(ATTR_ID_SERVICE_DESCRIPTION, len)
 Service Description LANGUAGE_BASE_ID (0x0100) + 0x0001 = 0x0101.
 
#define SDP_ATTR_PROVIDER_NAME(len)   SDP_ATTR_TEXT_1(ATTR_ID_PROVIDER_NAME, len)
 Provider Name LANGUAGE_BASE_ID (0x0100) + 0x0002 = 0x0102.
 
#define SDP_ATTR_GROUP_ID(uuid)
 Group ID 0x0200. More...
 
#define SDP_ATTR_VERSION_NUMBER_LIST(version)   SDP_ATTR_UINT2(ATTR_ID_SPECIFICATION_ID, version)
 Version Number List 0x0200.
 
#define SDP_ATTR_SERVICE_DATABASE_STATE(state)   SDP_ATTR_UINT4(ATTR_ID_VENDOR_ID, state)
 Service Database State 0x0201.
 

Typedefs

typedef void( wiced_bt_sdp_discovery_complete_cback_t )(uint16_t sdp_result)
 Service discovery complete callback. 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 (const uint8_t *p_sdp_db, uint16_t size)
 Initialize local SDP server database (database generated using WICED BT Designer) 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)
 Initialize discovery database prior to performing service discovery (using wiced_bt_sdp_service_search_request or wiced_bt_sdp_service_search_request ). More...
 
wiced_bool_t wiced_bt_sdp_cancel_service_search (wiced_bt_sdp_discovery_db_t *p_db)
 Cancel service search request. 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)
 Initiate service search on remote device. 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)
 Initiate combined service search and attribute request on remote device. 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)
 Parse results from service search. 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)
 Parse SDP record. 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)
 Parse results from service search. 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)
 Parse results from service search. 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)
 Parse SDP record. 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)
 Parse SDP record. 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)
 Parse SDP record. 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)
 Parse SDP record. More...
 

Detailed Description

The Service Discovery Protocol (SDP) allows a device to discover services offered by other devices, and their associated parameters.

For example, when you use a mobile phone with a Bluetooth headset, the phone uses SDP to determine which Bluetooth profiles the headset can use (Headset Profile, Hands Free Profile, Advanced Audio Distribution Profile (A2DP) etc.) and the protocol multiplexer settings needed for the phone to connect to the headset using each of them. Each service is identified by a Universally Unique Identifier (UUID), with official services (Bluetooth profiles) assigned a short form UUID (16 bits rather than the full 128).

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_UUID16(uuid)
SDP attribute 16 bit UUID.
Definition: wiced_bt_sdp.h:236
#define SDP_ATTR_SEQUENCE_1(length)
SDP attribute Sequence 1 byte.
Definition: wiced_bt_sdp.h:248
#define SDP_ATTR_ID
SDP attribute id.
Definition: wiced_bt_sdp.h:233

Browse Group List 0x0005.

#define SDP_ATTR_CLASS_ID (   uuid)
Value:
SDP_ATTR_ID(ATTR_ID_SERVICE_CLASS_ID_LIST), SDP_ATTR_SEQUENCE_1(3), \
#define SDP_ATTR_UUID16(uuid)
SDP attribute 16 bit UUID.
Definition: wiced_bt_sdp.h:236
#define SDP_ATTR_SEQUENCE_1(length)
SDP attribute Sequence 1 byte.
Definition: wiced_bt_sdp.h:248
#define SDP_ATTR_ID
SDP attribute id.
Definition: wiced_bt_sdp.h:233

Service Class ID List 0x0001.

#define SDP_ATTR_GROUP_ID (   uuid)
Value:
SDP_ATTR_ID(ATTR_ID_GROUP_ID), \
#define SDP_ATTR_UUID16(uuid)
SDP attribute 16 bit UUID.
Definition: wiced_bt_sdp.h:236
#define SDP_ATTR_ID
SDP attribute id.
Definition: wiced_bt_sdp.h:233

Group ID 0x0200.

#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_UUID16(UUID_PROTOCOL_L2CAP), \
SDP_ATTR_ID(l2cap_chan), \
SDP_ATTR_UUID16(UUID_PROTOCOL_HIDP)
#define SDP_ATTR_UUID16(uuid)
SDP attribute 16 bit UUID.
Definition: wiced_bt_sdp.h:236
#define SDP_ATTR_SEQUENCE_1(length)
SDP attribute Sequence 1 byte.
Definition: wiced_bt_sdp.h:248
#define SDP_ATTR_ID
SDP attribute id.
Definition: wiced_bt_sdp.h:233

Protocol Descriptor List 0x0004 for 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_SEQUENCE_1(length)
SDP attribute Sequence 1 byte.
Definition: wiced_bt_sdp.h:248
#define SDP_ATTR_VALUE_UINT2(value)
SDP attribute value UINT 2 byte.
Definition: wiced_bt_sdp.h:204
#define SDP_ATTR_ID
SDP attribute id.
Definition: wiced_bt_sdp.h:233

Language Base 0x0006.

#define SDP_ATTR_PROFILE_DESC_LIST (   uuid,
  version 
)
Value:
SDP_ATTR_ID(ATTR_ID_BT_PROFILE_DESC_LIST), SDP_ATTR_SEQUENCE_1(8), \
#define SDP_ATTR_UUID16(uuid)
SDP attribute 16 bit UUID.
Definition: wiced_bt_sdp.h:236
#define SDP_ATTR_SEQUENCE_1(length)
SDP attribute Sequence 1 byte.
Definition: wiced_bt_sdp.h:248
#define SDP_ATTR_VALUE_UINT2(value)
SDP attribute value UINT 2 byte.
Definition: wiced_bt_sdp.h:204
#define SDP_ATTR_ID
SDP attribute id.
Definition: wiced_bt_sdp.h:233

BT Profile Descriptor List 0x0009.

#define SDP_ATTR_PROTOCOL_DESC_LIST (   l2cap_chan)
Value:
SDP_ATTR_ID(ATTR_ID_PROTOCOL_DESC_LIST), SDP_ATTR_SEQUENCE_1(13), \
SDP_ATTR_UUID16(UUID_PROTOCOL_L2CAP), \
SDP_ATTR_UUID16(l2cap_chan)
#define SDP_ATTR_UUID16(uuid)
SDP attribute 16 bit UUID.
Definition: wiced_bt_sdp.h:236
#define SDP_ATTR_SEQUENCE_1(length)
SDP attribute Sequence 1 byte.
Definition: wiced_bt_sdp.h:248
#define SDP_ATTR_VALUE_UINT2(value)
SDP attribute value UINT 2 byte.
Definition: wiced_bt_sdp.h:204
#define SDP_ATTR_ID
SDP attribute id.
Definition: wiced_bt_sdp.h:233

Protocol Descriptor List 0x0004 for L2CAP.

#define SDP_ATTR_RFCOMM_PROTOCOL_DESC_LIST (   scn)
Value:
SDP_ATTR_ID(ATTR_ID_PROTOCOL_DESC_LIST), SDP_ATTR_SEQUENCE_1(12), \
SDP_ATTR_UUID16(UUID_PROTOCOL_L2CAP), \
SDP_ATTR_UUID16(UUID_PROTOCOL_RFCOMM), \
#define SDP_ATTR_UUID16(uuid)
SDP attribute 16 bit UUID.
Definition: wiced_bt_sdp.h:236
#define SDP_ATTR_SEQUENCE_1(length)
SDP attribute Sequence 1 byte.
Definition: wiced_bt_sdp.h:248
#define SDP_ATTR_VALUE_UINT1(value)
SDP attribute value UINT 1 byte.
Definition: wiced_bt_sdp.h:202
#define SDP_ATTR_ID
SDP attribute id.
Definition: wiced_bt_sdp.h:233

Protocol Descriptor List 0x0004 for RFCOMM.

#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_UUID16(UUID_PROTOCOL_L2CAP), \
SDP_ATTR_ID(l2cap_chan), \
SDP_ATTR_UUID16(UUID_PROTOCOL_SDP)
#define SDP_ATTR_UUID16(uuid)
SDP attribute 16 bit UUID.
Definition: wiced_bt_sdp.h:236
#define SDP_ATTR_SEQUENCE_1(length)
SDP attribute Sequence 1 byte.
Definition: wiced_bt_sdp.h:248
#define SDP_ATTR_ID
SDP attribute id.
Definition: wiced_bt_sdp.h:233

Protocol Descriptor List 0x0004 for SDP.

#define SDP_ATTR_SERVICE_ID (   uuid)
Value:
SDP_ATTR_ID(ATTR_ID_SERVICE_ID), SDP_ATTR_SEQUENCE_1(3), \
#define SDP_ATTR_UUID16(uuid)
SDP attribute 16 bit UUID.
Definition: wiced_bt_sdp.h:236
#define SDP_ATTR_SEQUENCE_1(length)
SDP attribute Sequence 1 byte.
Definition: wiced_bt_sdp.h:248
#define SDP_ATTR_ID
SDP attribute id.
Definition: wiced_bt_sdp.h:233

Service ID 0x0003.

#define SDP_MAX_ATTR_FILTERS   12

SDP Max Attribute filters.

num_attr field of wiced_bt_sdp_init_discovery_db API should be less than SDP_MAX_ATTR_FILTERS

#define SDP_MAX_PROTOCOL_PARAMS   2

SDP Max Protocol Parameters.

num_params field in wiced_bt_sdp_protocol_elem_t structure

#define SDP_MAX_UUID_FILTERS   3

SDP Max UUID filters.

num_uuid field of wiced_bt_sdp_init_discovery_db API should be less than SDP_MAX_UUID_FILTERS

#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

SDP attribute 8 byte.

Typedef Documentation

typedef void( wiced_bt_sdp_discovery_complete_cback_t)(uint16_t sdp_result)

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.

Function Documentation

wiced_bool_t wiced_bt_sdp_cancel_service_search ( wiced_bt_sdp_discovery_db_t p_db)

Cancel service search request.

Parameters
[in]p_db: Discovery database of the request being cancelled
Returns
TRUE if discovery cancelled, FALSE if a matching activity is not found.
wiced_bool_t wiced_bt_sdp_db_init ( const uint8_t *  p_sdp_db,
uint16_t  size 
)

Initialize local SDP server database (database generated using WICED BT Designer)

Parameters
[in]p_sdp_dbFirst element in database array
[in]sizesize (in bytes) of SDP database
Returns
TRUE if successful, FALSE otherwise
wiced_bt_sdp_discovery_record_t* wiced_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 
)

Parse results from service search.

Look next record in discovery database containing attribute ID.

Parameters
[in]p_db: Discovery results database
[in]attr_id: Attribute ID to find
[in]p_start_rec: Starting record to search from (if NULL, start from beginning of database)
Returns
Pointer to matching record, or NULL
wiced_bt_sdp_discovery_attribute_t* wiced_bt_sdp_find_attribute_in_rec ( wiced_bt_sdp_discovery_record_t p_rec,
uint16_t  attr_id 
)

Parse SDP record.

Look for requested attribute in the service record.

Parameters
[in]p_rec: Service record
[in]attr_id: Attribute ID to find
Returns
Pointer to matching attribute entry, or NULL
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 
)

Parse SDP record.

Look for version of requested profile.

Parameters
[in]p_rec: Service record
[in]profile_uuidProfile to find
[out]p_version: Major/minor version of profile (if found)
Returns
TRUE if found, FALSE if not
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 
)

Parse SDP record.

Look for requested protocol list element in the service record.

Parameters
[in]p_rec: Service record
[in]layer_uuid: protocol list element to find
[out]p_elem: protocol list element (if found)
Returns
TRUE if found, else FALSE
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 
)

Parse SDP record.

Look for requested protocol lists element in the service record.

Parameters
[in]p_rec: Service record
[in]layer_uuid: protocol lists element to find
[out]p_elem: protocol lists element (if found)
Returns
TRUE if found, else FALSE
wiced_bt_sdp_discovery_record_t* wiced_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 
)

Parse results from service search.

Look next record in discovery database containing requested service UUID (specified using uint16_t)

Parameters
[in]p_db: Discovery results database
[in]service_uuidService to find
[in]p_start_rec: Starting record to search from (if NULL, start from beginning of database)
Returns
Pointer to matching record, or NULL
wiced_bt_sdp_discovery_record_t* wiced_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 
)

Parse results from service search.

Look next record in discovery database containing requested service UUID (specified using wiced_bt_uuid_t structure)

Parameters
[in]p_db: Discovery results database
[in]p_uuid: Service to find
[in]p_start_rec: Starting record to search from (if NULL, start from beginning of database)
Returns
Pointer to matching record, or NULL
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 
)

Parse SDP record.

Look for service UUID

Parameters
[in]p_rec: Service record
[out]p_uuid: Service UUID of the record
Returns
TRUE if found, FALSE if not
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 
)

Initialize discovery database prior to performing service discovery (using wiced_bt_sdp_service_search_request or wiced_bt_sdp_service_search_request ).

Provides a list of UUIDs and/or attribute IDs to search for.

Parameters
[in]p_db: Discovery database to initialize
[in]len: size of discovery database
[in]num_uuid: Number of UUIDs in p_uuid_list
[in]p_uuid_list: UUIDs to add to discovery database
[in]num_attr: Number of attributes in p_attr_list
[in]p_attr_list: Attributes to add to discovery database
Returns
TRUE if successful, FALSE if one or more parameters are bad
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 
)

Initiate combined service search and attribute request on remote device.

Parameters
[in]p_bd_addr: Remote device address
[in]p_db: Discovery database of UUIDs and attribute IDs to search for (intialized using wiced_bt_sdp_init_discovery_db )
[in]p_cb: Callback for discovery results
Returns
TRUE if discovery started, FALSE if failed.
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 
)

Initiate service search on remote device.

Parameters
[in]p_bd_addr: Remote device address
[in]p_db: Discovery database of UUIDs and attribute IDs to search for (intialized using wiced_bt_sdp_init_discovery_db )
[in]p_cb: Callback for discovery results
Returns
TRUE if discovery started, FALSE if failed.