Infineon Logo AIROC BTSDK v4.9 - 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   (TEXT_STR_DESC_TYPE << 3) | SIZE_IN_NEXT_BYTE
 
#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(id, len)   SDP_ATTR_ID(id), SDP_ATTR_VALUE_TEXT, (len)
 
#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)   SDP_ATTR_UINT2(ATTR_ID_SPECIFICATION_ID, 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.