Bluetooth® SDP APIs
Overview
Bluetooth SDP reference APIs.
API Reference
Header File
This header file can be included with:
#include "esp_sdp_api.h"
This header file is a part of the API provided by the
btcomponent. To declare that your component depends onbt, add the following to your CMakeLists.txt:REQUIRES bt
or
PRIV_REQUIRES bt
Functions
- 
esp_err_t esp_sdp_register_callback(esp_sdp_cb_t callback)
 This function is called to init callbacks with SDP module.
- 参数:
 callback -- [in] pointer to the init callback function.
- 返回:
 ESP_OK: success
other: failed
- 
esp_err_t esp_sdp_init(void)
 This function is called to init SDP module. When the operation is completed, the callback function will be called with ESP_SDP_INIT_EVT. This function should be called after esp_bluedroid_enable() completes successfully.
- 返回:
 ESP_OK: success
other: failed
- 
esp_err_t esp_sdp_deinit(void)
 This function is called to de-initialize SDP module. The operation will remove all SDP records, then the callback function will be called with ESP_SDP_REMOVE_RECORD_COMP_EVT, and the number of ESP_SDP_REMOVE_RECORD_COMP_EVT is equal to the number of SDP records.When the operation is completed, the callback function will be called with ESP_SDP_DEINIT_EVT. This function should be called after esp_sdp_init() completes successfully.
- 返回:
 ESP_OK: success
other: failed
- 
esp_err_t esp_sdp_search_record(esp_bd_addr_t bd_addr, esp_bt_uuid_t uuid)
 This function is called to performs service discovery for the services provided by the given peer device. When the operation is completed, the callback function will be called with ESP_SDP_SEARCH_COMP_EVT. This function must be called after esp_sdp_init() successful and before esp_sdp_deinit().
- 参数:
 bd_addr -- [in] Remote device bluetooth device address.
uuid -- [in] Service UUID of the remote device.
- 返回:
 ESP_OK: success
other: failed
- 
esp_err_t esp_sdp_create_record(esp_bluetooth_sdp_record_t *record)
 This function is called to create SDP records. When the operation is completed, the callback function will be called with ESP_SDP_CREATE_RECORD_COMP_EVT. This function must be called after esp_sdp_init() successful and before esp_sdp_deinit().
- 参数:
 record -- [in] The SDP record to create.
- 返回:
 ESP_OK: success
other: failed
- 
esp_err_t esp_sdp_remove_record(int record_handle)
 This function is called to remove a SDP record. When the operation is completed, the callback function will be called with ESP_SDP_REMOVE_RECORD_COMP_EVT. This function must be called after esp_sdp_init() successful and before esp_sdp_deinit().
- 参数:
 record_handle -- [in] The SDP record handle.
- 返回:
 ESP_OK: success
other: failed
- 
esp_err_t esp_sdp_get_protocol_status(esp_sdp_protocol_status_t *status)
 This function is used to get the status of SDP.
- 参数:
 status -- [out] - sdp status
- 返回:
 ESP_OK: success
other: failed
Unions
- 
union esp_bluetooth_sdp_record_t
 - #include <esp_sdp_api.h>
SDP record parameters union.
Public Members
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 General info
- 
esp_bluetooth_sdp_raw_record_t raw
 Raw SDP search data for unknown UUIDs
- 
esp_bluetooth_sdp_mas_record_t mas
 Message Access Profile - Server
- 
esp_bluetooth_sdp_mns_record_t mns
 Message Access Profile - Client (Notification Server)
- 
esp_bluetooth_sdp_pse_record_t pse
 Phone Book Profile - Server
- 
esp_bluetooth_sdp_pce_record_t pce
 Phone Book Profile - Client
- 
esp_bluetooth_sdp_ops_record_t ops
 Object Push Profile
- 
esp_bluetooth_sdp_sap_record_t sap
 SIM Access Profile
- 
esp_bluetooth_sdp_dip_record_t dip
 Device Identification Profile
 - 
esp_bluetooth_sdp_hdr_overlay_t hdr
 
- 
union esp_sdp_cb_param_t
 - #include <esp_sdp_api.h>
SDP callback parameters union.
Public Members
- 
struct esp_sdp_cb_param_t::sdp_init_evt_param init
 SDP callback param of ESP_SDP_INIT_EVT
- 
struct esp_sdp_cb_param_t::sdp_deinit_evt_param deinit
 SDP callback param of ESP_SDP_DEINIT_EVT
- 
struct esp_sdp_cb_param_t::sdp_search_evt_param search
 SDP callback param of ESP_SDP_SEARCH_COMP_EVT
- 
struct esp_sdp_cb_param_t::sdp_create_record_evt_param create_record
 SDP callback param of ESP_SDP_CREATE_RECORD_COMP_EVT
- 
struct esp_sdp_cb_param_t::sdp_remove_record_evt_param remove_record
 SDP callback param of ESP_SDP_REMOVE_RECORD_COMP_EVT
- 
struct sdp_create_record_evt_param
 - #include <esp_sdp_api.h>
ESP_SDP_CREATE_RECORD_COMP_EVT.
 
- 
struct sdp_deinit_evt_param
 - #include <esp_sdp_api.h>
ESP_SDP_DEINIT_EVT.
Public Members
- 
esp_sdp_status_t status
 Status
 - 
esp_sdp_status_t status
 
- 
struct sdp_init_evt_param
 - #include <esp_sdp_api.h>
ESP_SDP_INIT_EVT.
Public Members
- 
esp_sdp_status_t status
 Status
 - 
esp_sdp_status_t status
 
- 
struct sdp_remove_record_evt_param
 - #include <esp_sdp_api.h>
ESP_SDP_REMOVE_RECORD_COMP_EVT.
 
- 
struct sdp_search_evt_param
 - #include <esp_sdp_api.h>
ESP_SDP_SEARCH_COMP_EVT.
Public Members
- 
esp_sdp_status_t status
 Status
- 
esp_bd_addr_t remote_addr
 Remote device address
- 
esp_bt_uuid_t sdp_uuid
 Service uuid
- 
int record_count
 Number of SDP records
- 
esp_bluetooth_sdp_record_t *records
 SDP records
 - 
esp_sdp_status_t status
 
 - 
struct esp_sdp_cb_param_t::sdp_init_evt_param init
 
Structures
- 
struct esp_sdp_protocol_status_t
 SDP protocol status parameters.
- 
struct bluetooth_sdp_hdr_overlay
 SDP header structure.
Public Members
- 
esp_bluetooth_sdp_types_t type
 SDP type
- 
esp_bt_uuid_t uuid
 UUID type, include uuid and uuid length, only needed to be set for RAW record creation
- 
uint32_t service_name_length
 Service name length
- 
char *service_name
 Service name
- 
int32_t rfcomm_channel_number
 RFCOMM channel number, if not used set to -1
- 
int32_t l2cap_psm
 L2CAP psm, if not used set to -1
- 
int32_t profile_version
 Profile version
- 
int user1_ptr_len
 User data1 length, only used for searching RAW record
- 
uint8_t *user1_ptr
 User data1 pointer to the raw SDP response data, only used for searching RAW record
- 
esp_bluetooth_sdp_types_t type
 
- 
struct bluetooth_sdp_raw_record
 Raw SDP record.
Public Members
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 General info
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 
- 
struct bluetooth_sdp_mas_record
 Message Access Profile - Server parameters.
Public Members
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 General info
- 
uint32_t mas_instance_id
 MAS Instance ID
- 
uint32_t supported_features
 Map supported features
- 
uint32_t supported_message_types
 Supported message types
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 
- 
struct bluetooth_sdp_mns_record
 Message Access Profile - Client (Notification Server) parameters.
Public Members
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 General info
- 
uint32_t supported_features
 Supported features
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 
- 
struct bluetooth_sdp_pse_record
 Phone Book Profile - Server parameters.
Public Members
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 General info
- 
uint32_t supported_features
 PBAP Supported Features
- 
uint32_t supported_repositories
 Supported Repositories
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 
- 
struct bluetooth_sdp_pce_record
 Phone Book Profile - Client parameters.
Public Members
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 General info
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 
- 
struct bluetooth_sdp_ops_record
 Object Push Profile parameters.
Public Members
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 General info
- 
int supported_formats_list_len
 Supported formats list length
- 
uint8_t supported_formats_list[SDP_OPP_SUPPORTED_FORMATS_MAX_LENGTH]
 Supported formats list
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 
- 
struct bluetooth_sdp_sap_record
 SIM Access Profile parameters.
Public Members
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 General info
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 
- 
struct bluetooth_sdp_dip_record
 Device Identification Profile parameters.
备注
Only one primary Device Identification service record can be added in the SDP database. If primary Device Identification service is created multiple times, only the last one will take effect.
Public Members
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 General info
- 
uint16_t vendor
 Vendor ID
- 
uint16_t vendor_id_source
 Vendor ID source, 0x0001 for Bluetooth, 0x0002 for USB, other values reserved, see
esp_sdp_vendor_id_source_t
- 
uint16_t product
 Product ID
- 
uint16_t version
 Release version in format 0xJJMN(JJ – major number, M – minor number, N – sub-minor number)
- 
bool primary_record
 Indicate if the record is primary, shall set to true if there is a only single device record, others shall be set to false
- 
esp_bluetooth_sdp_hdr_overlay_t hdr
 
Macros
- 
ESP_SDP_SERVER_NAME_MAX
 Service name max length
- 
SDP_OPP_SUPPORTED_FORMATS_MAX_LENGTH
 OPP supported format list maximum length
- 
ESP_SDP_UUID_MAP_MAS
 Message Access Service UUID
- 
ESP_SDP_UUID_MAP_MNS
 Message Notification Service UUID
- 
ESP_SDP_UUID_PBAP_PSE
 Phone Book Server Equipment UUID
- 
ESP_SDP_UUID_PBAP_PCE
 Phone Book Client Equipment UUID
- 
ESP_SDP_UUID_OPP
 Object Push Profile UUID
- 
ESP_SDP_UUID_SAP
 SIM Access Profile UUID
- 
ESP_SDP_UUID_DIP
 Device Identification Profile UUID
- 
ESP_SDP_BUILD_BT_UUID16(uuid16_val)
 
Type Definitions
- 
typedef struct bluetooth_sdp_hdr_overlay esp_bluetooth_sdp_hdr_overlay_t
 SDP header structure.
- 
typedef struct bluetooth_sdp_raw_record esp_bluetooth_sdp_raw_record_t
 Raw SDP record.
- 
typedef struct bluetooth_sdp_mas_record esp_bluetooth_sdp_mas_record_t
 Message Access Profile - Server parameters.
- 
typedef struct bluetooth_sdp_mns_record esp_bluetooth_sdp_mns_record_t
 Message Access Profile - Client (Notification Server) parameters.
- 
typedef struct bluetooth_sdp_pse_record esp_bluetooth_sdp_pse_record_t
 Phone Book Profile - Server parameters.
- 
typedef struct bluetooth_sdp_pce_record esp_bluetooth_sdp_pce_record_t
 Phone Book Profile - Client parameters.
- 
typedef struct bluetooth_sdp_ops_record esp_bluetooth_sdp_ops_record_t
 Object Push Profile parameters.
- 
typedef struct bluetooth_sdp_sap_record esp_bluetooth_sdp_sap_record_t
 SIM Access Profile parameters.
- 
typedef struct bluetooth_sdp_dip_record esp_bluetooth_sdp_dip_record_t
 Device Identification Profile parameters.
备注
Only one primary Device Identification service record can be added in the SDP database. If primary Device Identification service is created multiple times, only the last one will take effect.
- 
typedef void (*esp_sdp_cb_t)(esp_sdp_cb_event_t event, esp_sdp_cb_param_t *param)
 SDP callback function type.
- Param event:
 Event type
- Param param:
 Point to callback parameter, currently is union type
Enumerations
- 
enum esp_sdp_status_t
 Values:
- 
enumerator ESP_SDP_SUCCESS
 Successful operation.
- 
enumerator ESP_SDP_FAILURE
 Generic failure.
- 
enumerator ESP_SDP_NO_RESOURCE
 No more resource
- 
enumerator ESP_SDP_NEED_INIT
 SDP module shall init first
- 
enumerator ESP_SDP_NEED_DEINIT
 SDP module shall deinit first
- 
enumerator ESP_SDP_NO_CREATE_RECORD
 No record created
- 
enumerator ESP_SDP_SUCCESS
 
- 
enum esp_sdp_cb_event_t
 SDP callback function events.
Values:
- 
enumerator ESP_SDP_INIT_EVT
 When SDP is initialized, the event comes
- 
enumerator ESP_SDP_DEINIT_EVT
 When SDP is de-initialized, the event comes
- 
enumerator ESP_SDP_SEARCH_COMP_EVT
 When SDP search complete, the event comes
- 
enumerator ESP_SDP_CREATE_RECORD_COMP_EVT
 When create SDP records complete, the event comes
- 
enumerator ESP_SDP_REMOVE_RECORD_COMP_EVT
 When remove a SDP record complete, the event comes
- 
enumerator ESP_SDP_INIT_EVT
 
- 
enum esp_bluetooth_sdp_types_t
 SDP record type.
Values:
- 
enumerator ESP_SDP_TYPE_RAW
 Used to carry raw SDP search data for unknown UUIDs
- 
enumerator ESP_SDP_TYPE_MAP_MAS
 Message Access Profile - Server
- 
enumerator ESP_SDP_TYPE_MAP_MNS
 Message Access Profile - Client (Notification Server)
- 
enumerator ESP_SDP_TYPE_PBAP_PSE
 Phone Book Profile - Server
- 
enumerator ESP_SDP_TYPE_PBAP_PCE
 Phone Book Profile - Client
- 
enumerator ESP_SDP_TYPE_OPP_SERVER
 Object Push Profile
- 
enumerator ESP_SDP_TYPE_SAP_SERVER
 SIM Access Profile
- 
enumerator ESP_SDP_TYPE_DIP_SERVER
 Device Identification Profile
- 
enumerator ESP_SDP_TYPE_RAW