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
bt
component. 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.
Parameters
callback -- [in] pointer to the init callback function.
Returns
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.
Returns
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.
Returns
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().
Parameters
bd_addr -- [in] Remote device bluetooth device address.
uuid -- [in] Service UUID of the remote device.
Returns
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().
Parameters
record -- [in] The SDP record to create.
Returns
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().
Parameters
record_handle -- [in] The SDP record handle.
Returns
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_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
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_crate_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_crate_record_evt_param
#include <esp_sdp_api.h>
ESP_SDP_CREATE_RECORD_COMP_EVT.
Public Members
esp_sdp_status_t status
status
int record_handle
SDP record handle
struct sdp_deinit_evt_param
#include <esp_sdp_api.h>
ESP_SDP_DEINIT_EVT.
Public Members
esp_sdp_status_t status
status
struct sdp_init_evt_param
#include <esp_sdp_api.h>
ESP_SDP_INIT_EVT.
Public Members
esp_sdp_status_t status
status
struct sdp_remove_record_evt_param
#include <esp_sdp_api.h>
ESP_SDP_REMOVE_RECORD_COMP_EVT.
Public Members
esp_sdp_status_t status
status
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
Structures
struct bluetooth_sdp_hdr_overlay
Some signals need additional pointers, hence we introduce a generic way to handle these pointers.
Public Members
esp_bluetooth_sdp_types_t type
SDP type
esp_bt_uuid_t uuid
UUID type, include uuid and uuid length
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
see esp_bluetooth_sdp_ops_record_t
uint8_t *user1_ptr
see esp_bluetooth_sdp_ops_record_t
int user2_ptr_len
see esp_bluetooth_sdp_ops_record_t
uint8_t *user2_ptr
see esp_bluetooth_sdp_ops_record_t
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
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
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
struct bluetooth_sdp_pce_record
Phone Book Profile - Client parameters.
Public Members
esp_bluetooth_sdp_hdr_overlay_t hdr
General info
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
struct bluetooth_sdp_sap_record
SIM Access Profile parameters.
Public Members
esp_bluetooth_sdp_hdr_overlay_t hdr
General info
Macros
ESP_SDP_SERVER_NAME_MAX
Service name max length
SDP_OPP_SUPPORTED_FORMATS_MAX_LENGTH
OPP supported format list maximum length
Type Definitions
typedef struct bluetooth_sdp_hdr_overlay esp_bluetooth_sdp_hdr_overlay_t
Some signals need additional pointers, hence we introduce a generic way to handle these pointers.
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 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
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 deinitialized, 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
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