Tizen Native API
5.0
|
Bluetooth GATT (Generic Attribute Profile) API provides common functions for GATT client and GATT server.
#include <bluetooth.h>
Two roles are defined for devices that implement GATT. The Server is the device that accepts incoming commands and requests from the client and sends responses, indications and notifications to a client. The Client is the device that initiates commands and requests towards the server and can receive responses, indications and notifications sent by the server. This API supports both Server role and Client role in GATT.
Bluetooth stack architecture has been changed. Thus, GATT APIs defined in Tizen 2.3 are deprecated and new GATT client APIs are defined.
This API is related with the following features:
It is recommended to design feature related codes in your application for reliability.
You can check if a device supports the related features for this API by using System Information, thereby controlling the procedure of your application.
To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.
More details on featuring your application can be found from Feature Element.
Functions | |
int | bt_gatt_get_value (bt_gatt_h gatt_handle, char **value, int *value_length) |
Gets the value of a characteristic or descriptor's GATT handle. | |
int | bt_gatt_get_int_value (bt_gatt_h gatt_handle, bt_data_type_int_e type, int offset, int *value) |
Gets the value of a characteristic or descriptor's GATT handle as an integer type. | |
int | bt_gatt_get_float_value (bt_gatt_h gatt_handle, bt_data_type_float_e type, int offset, float *value) |
Gets the value of a characteristic or descriptor's GATT handle as a float type. | |
int | bt_gatt_set_value (bt_gatt_h gatt_handle, const char *value, int value_length) |
Updates the value of a characteristic or descriptor's GATT handle. | |
int | bt_gatt_set_int_value (bt_gatt_h gatt_handle, bt_data_type_int_e type, int value, int offset) |
Updates the value of a characteristic or descriptor's GATT handle using a integer type's value. | |
int | bt_gatt_set_float_value (bt_gatt_h gatt_handle, bt_data_type_float_e type, int mantissa, int exponent, int offset) |
Updates the value of a characteristic or descriptor's GATT handle using a float type's value. | |
int | bt_gatt_get_uuid (bt_gatt_h gatt_handle, char **uuid) |
Gets the UUID of a service, characteristic or descriptor's GATT handle. | |
int | bt_gatt_get_type (bt_gatt_h gatt_handle, bt_gatt_type_e *gatt_type) |
Gets the type of GATT handle. | |
int | bt_gatt_service_get_characteristic (bt_gatt_h service, const char *uuid, bt_gatt_h *characteristic) |
Gets a characteristic's GATT handle which has specific UUID. | |
int | bt_gatt_service_foreach_characteristics (bt_gatt_h service, bt_gatt_foreach_cb callback, void *user_data) |
Invokes callback function on each characteristic that belongs to the specified service. | |
int | bt_gatt_service_get_included_service (bt_gatt_h service, const char *uuid, bt_gatt_h *included_service) |
Gets an included service's GATT handle which has specific UUID. | |
int | bt_gatt_service_foreach_included_services (bt_gatt_h service, bt_gatt_foreach_cb callback, void *user_data) |
Invokes callback function on each included service that belongs to the specified service. | |
int | bt_gatt_characteristic_get_service (bt_gatt_h characteristic, bt_gatt_h *service) |
Gets the service's GATT handle which the specified characteristic belongs to. | |
int | bt_gatt_characteristic_get_properties (bt_gatt_h characteristic, int *properties) |
Gets the properties which a characteristic's GATT handle has. | |
int | bt_gatt_characteristic_get_write_type (bt_gatt_h characteristic, bt_gatt_write_type_e *write_type) |
Gets the write type of the specified characteristic. | |
int | bt_gatt_characteristic_set_write_type (bt_gatt_h characteristic, bt_gatt_write_type_e write_type) |
Updates the write type of the specified characteristic. | |
int | bt_gatt_characteristic_get_descriptor (bt_gatt_h characteristic, const char *uuid, bt_gatt_h *descriptor) |
Gets a descriptor's GATT handle which has specific UUID. | |
int | bt_gatt_characteristic_foreach_descriptors (bt_gatt_h characteristic, bt_gatt_foreach_cb callback, void *user_data) |
Invokes callback function on each descriptor that belongs to the specified characteristic. | |
int | bt_gatt_descriptor_get_characteristic (bt_gatt_h descriptor, bt_gatt_h *characteristic) |
Gets the characteristic's GATT handle which the specified descriptor belongs to. | |
int | bt_gatt_characteristic_get_permissions (bt_gatt_h gatt_handle, int *permissions) |
Gets the permissions which a characteristic's GATT handle has. | |
int | bt_gatt_descriptor_get_permissions (bt_gatt_h gatt_handle, int *permissions) |
Gets the permissions which a descriptor's GATT handle has. | |
int | bt_gatt_characteristic_create (const char *uuid, int permissions, int properties, const char *value, int value_length, bt_gatt_h *characteristic) |
Creates the GATT characteristic. | |
int | bt_gatt_descriptor_create (const char *uuid, int permissions, const char *value, int value_length, bt_gatt_h *descriptor) |
Creates the GATT characteristic descriptor. | |
Typedefs | |
typedef bool(* | bt_gatt_foreach_cb )(int total, int index, bt_gatt_h gatt_handle, void *user_data) |
Called when you get GATT handles repeatedly. | |
typedef void(* | bt_hrp_connection_state_changed_cb )(int result, bool connected, const char *remote_address) |
Called when the connection state is changed. | |
typedef void(* | bt_gatt_connection_state_changed_cb )(int result, bool connected, const char *remote_address, void *user_data) |
Called when the connection state is changed. |
typedef void(* bt_gatt_connection_state_changed_cb)(int result, bool connected, const char *remote_address, void *user_data) |
Called when the connection state is changed.
This callback is called when the connection state is changed. When you called bt_gatt_connect() or bt_gatt_disconnect(), this callback is also called with error result even though these functions fail.
[in] | result | The result of changing the connection state. |
[in] | connected | The state to be changed, true means connected state, Otherwise, false. |
[in] | remote_address | The remote_address |
[in] | user_data | The user data passed from the callback registration function. |
typedef bool(* bt_gatt_foreach_cb)(int total, int index, bt_gatt_h gatt_handle, void *user_data) |
Called when you get GATT handles repeatedly.
[in] | total | The total number of GATT handles to be called |
[in] | index | The index of current GATT handle. It starts from 0. |
[in] | gatt_handle | The GATT handle |
[in] | user_data | The user data passed from the foreach function |
typedef void(* bt_hrp_connection_state_changed_cb)(int result, bool connected, const char *remote_address) |
Called when the connection state is changed.
This callback is called when the connection state is changed. When you called bt_gatt_connect() or bt_gatt_disconnect(), this callback is also called with error result even though these functions fail.
[in] | result | The result of changing the connection state. |
[in] | connected | The state to be changed, true means connected state, Otherwise, false. |
[in] | remote_address | The remote_address |
[in] | user_data | The user data passed from the callback registration function. |
enum bt_data_type_float_e |
enum bt_data_type_int_e |
Enumerations of the integer type for GATT handle's value.
enum bt_gatt_permission_e |
Enumerations of the attribute's permission.
enum bt_gatt_property_e |
Enumerations of the characteristic's property.
enum bt_gatt_type_e |
enum bt_gatt_write_type_e |
int bt_gatt_characteristic_create | ( | const char * | uuid, |
int | permissions, | ||
int | properties, | ||
const char * | value, | ||
int | value_length, | ||
bt_gatt_h * | characteristic | ||
) |
Creates the GATT characteristic.
[in] | uuid | The UUID of the characteristic |
[in] | permissions | the permissions of the characteristic |
[in] | properties | The properties of the characteristic |
[in] | value | The value(byte stream) of the characteristic |
[in] | value_length | The length of value |
[out] | characteristic | The GATT handle of the created characteristic |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_OUT_OF_MEMORY | Out of memory |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_characteristic_foreach_descriptors | ( | bt_gatt_h | characteristic, |
bt_gatt_foreach_cb | callback, | ||
void * | user_data | ||
) |
Invokes callback function on each descriptor that belongs to the specified characteristic.
[in] | characteristic | The characteristic's GATT handle |
[in] | callback | The function to be invoked on each descriptor |
[in] | user_data | The user data to be passed to callback function |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_characteristic_get_descriptor | ( | bt_gatt_h | characteristic, |
const char * | uuid, | ||
bt_gatt_h * | descriptor | ||
) |
Gets a descriptor's GATT handle which has specific UUID.
[in] | characteristic | The characteristic's GATT handle |
[in] | uuid | The descriptor's GATT handle which has this UUID will be returned if it exists |
[out] | descriptor | The descriptor's GATT handle which has uuid if it exists |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NO_DATA | No data available |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_characteristic_get_permissions | ( | bt_gatt_h | gatt_handle, |
int * | permissions | ||
) |
Gets the permissions which a characteristic's GATT handle has.
[in] | gatt_handle | The handle of a characteristic |
[out] | permissions | The permissions which a characteristic's GATT handle has |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_characteristic_get_properties | ( | bt_gatt_h | characteristic, |
int * | properties | ||
) |
Gets the properties which a characteristic's GATT handle has.
[in] | characteristic | The characteristic's GATT handle |
[out] | properties | The properties which a characteristic's GATT handle has |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_characteristic_get_service | ( | bt_gatt_h | characteristic, |
bt_gatt_h * | service | ||
) |
Gets the service's GATT handle which the specified characteristic belongs to.
[in] | characteristic | The characteristic's GATT handle |
[out] | service | The service's GATT handle which characteristic belongs to |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_characteristic_get_write_type | ( | bt_gatt_h | characteristic, |
bt_gatt_write_type_e * | write_type | ||
) |
Gets the write type of the specified characteristic.
[in] | characteristic | The characteristic's GATT handle |
[out] | write_type | The write type of the specified characteristic |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_characteristic_set_write_type | ( | bt_gatt_h | characteristic, |
bt_gatt_write_type_e | write_type | ||
) |
Updates the write type of the specified characteristic.
[in] | characteristic | The characteristic's GATT handle |
[in] | write_type | The write type to be updated |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_descriptor_create | ( | const char * | uuid, |
int | permissions, | ||
const char * | value, | ||
int | value_length, | ||
bt_gatt_h * | descriptor | ||
) |
Creates the GATT characteristic descriptor.
[in] | uuid | The UUID of the descriptor |
[in] | permissions | The permissions of the descriptor |
[in] | value | The value(byte stream) associated with the descriptor |
[in] | value_length | The length of value |
[out] | descriptor | The GATT handle of the created characteristic descriptor |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_OUT_OF_MEMORY | Out of memory |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_descriptor_get_characteristic | ( | bt_gatt_h | descriptor, |
bt_gatt_h * | characteristic | ||
) |
Gets the characteristic's GATT handle which the specified descriptor belongs to.
[in] | descriptor | The descriptor's GATT handle |
[out] | characteristic | The characteristic's GATT handle which descriptor belongs to |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_descriptor_get_permissions | ( | bt_gatt_h | gatt_handle, |
int * | permissions | ||
) |
Gets the permissions which a descriptor's GATT handle has.
[in] | gatt_handle | The handle of a descriptor |
[out] | permissions | The permissions which a descriptor's GATT handle has |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_get_float_value | ( | bt_gatt_h | gatt_handle, |
bt_data_type_float_e | type, | ||
int | offset, | ||
float * | value | ||
) |
Gets the value of a characteristic or descriptor's GATT handle as a float type.
[in] | gatt_handle | The handle of a characteristic or descriptor |
[in] | type | The type of a saved value in gatt_handle |
[in] | offset | The offset from where a value will be read from gatt_handle as an integer type |
[out] | value | The float type's value of gatt_handle |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_get_int_value | ( | bt_gatt_h | gatt_handle, |
bt_data_type_int_e | type, | ||
int | offset, | ||
int * | value | ||
) |
Gets the value of a characteristic or descriptor's GATT handle as an integer type.
[in] | gatt_handle | The handle of a characteristic or descriptor |
[in] | type | The type of a saved value in gatt_handle |
[in] | offset | The offset from where a value will be read from gatt_handle as an integer type |
[out] | value | The integer type's value of gatt_handle |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_get_type | ( | bt_gatt_h | gatt_handle, |
bt_gatt_type_e * | gatt_type | ||
) |
Gets the type of GATT handle.
[in] | gatt_handle | The GATT handle |
[out] | gatt_type | The type of gatt_handle |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_get_uuid | ( | bt_gatt_h | gatt_handle, |
char ** | uuid | ||
) |
Gets the UUID of a service, characteristic or descriptor's GATT handle.
[in] | gatt_handle | The handle of a service, characteristic or descriptor |
[out] | uuid | The string of the UUID of gatt_handle |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_get_value | ( | bt_gatt_h | gatt_handle, |
char ** | value, | ||
int * | value_length | ||
) |
Gets the value of a characteristic or descriptor's GATT handle.
[in] | gatt_handle | The handle of a characteristic or descriptor |
[out] | value | The value of gatt_handle. It is a byte stream type. |
[out] | value_length | The length of value |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_service_foreach_characteristics | ( | bt_gatt_h | service, |
bt_gatt_foreach_cb | callback, | ||
void * | user_data | ||
) |
Invokes callback function on each characteristic that belongs to the specified service.
[in] | service | The service's GATT handle |
[in] | callback | The function to be invoked on each characteristic |
[in] | user_data | The user data to be passed to callback function |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_service_foreach_included_services | ( | bt_gatt_h | service, |
bt_gatt_foreach_cb | callback, | ||
void * | user_data | ||
) |
Invokes callback function on each included service that belongs to the specified service.
[in] | service | The service's GATT handle |
[in] | callback | The function to be invoked on each included service |
[in] | user_data | The user data to be passed to the callback function |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_service_get_characteristic | ( | bt_gatt_h | service, |
const char * | uuid, | ||
bt_gatt_h * | characteristic | ||
) |
Gets a characteristic's GATT handle which has specific UUID.
[in] | service | The service's GATT handle |
[in] | uuid | The characteristic's GATT handle which has this UUID will be returned if it exists |
[out] | characteristic | The characteristic's GATT handle which has uuid if it exists |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NO_DATA | No data available |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_service_get_included_service | ( | bt_gatt_h | service, |
const char * | uuid, | ||
bt_gatt_h * | included_service | ||
) |
Gets an included service's GATT handle which has specific UUID.
[in] | service | The service's GATT handle |
[in] | uuid | The included service's GATT handle which has this UUID will be returned if it exists |
[out] | included_service | The included service's GATT handle which has uuid if it exists |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_NO_DATA | No data available |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_set_float_value | ( | bt_gatt_h | gatt_handle, |
bt_data_type_float_e | type, | ||
int | mantissa, | ||
int | exponent, | ||
int | offset | ||
) |
Updates the value of a characteristic or descriptor's GATT handle using a float type's value.
[in] | gatt_handle | The handle of a characteristic or descriptor |
[in] | type | mantissa and exponent will be saved in gatt_handle as this type |
[in] | mantissa | The mantissa of float type's value to be updated |
[in] | exponent | The exponent of float type's value to be updated |
[in] | offset | The offset from where mantissa and exponent will be saved in gatt_handle |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_OPERATION_FAILED | Operation failed |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_set_int_value | ( | bt_gatt_h | gatt_handle, |
bt_data_type_int_e | type, | ||
int | value, | ||
int | offset | ||
) |
Updates the value of a characteristic or descriptor's GATT handle using a integer type's value.
[in] | gatt_handle | The handle of a characteristic or descriptor |
[in] | type | value will be saved in gatt_handle as this type |
[in] | value | The integer type's value to be updated |
[in] | offset | The offset from where value will be saved in gatt_handle |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_OPERATION_FAILED | Operation failed |
BT_ERROR_NOT_SUPPORTED | Not supported |
int bt_gatt_set_value | ( | bt_gatt_h | gatt_handle, |
const char * | value, | ||
int | value_length | ||
) |
Updates the value of a characteristic or descriptor's GATT handle.
[in] | gatt_handle | The handle of a characteristic or descriptor |
[in] | value | The value to be updated |
[in] | value_length | The length of value |
BT_ERROR_NONE | Successful |
BT_ERROR_INVALID_PARAMETER | Invalid parameter |
BT_ERROR_OPERATION_FAILED | Operation failed |
BT_ERROR_NOT_SUPPORTED | Not supported |