Perform a Generic Attribute (GATT) call to retrieve the list of descriptors for a provided characteristic.
Synopsis:
#include <btapi/btgatt.h>
int bt_gatt_descriptors(int instance, const bt_gatt_characteristic_t *characteristic, bt_gatt_descriptor_t *descriptors, uint16_t size)
Arguments:
- instance
-
The identifier used to reference the connected primary service.
- characteristic
-
The characteristic for which descriptors are retrieved.
- descriptors
-
An array of descriptors to be populated if the function completes successfully.
- size
-
The size of the array passed to the function.
Library:
libbtapi (For the qcc command, use the -l btapi option to link against this library)
Description:
The descriptor provides a list of services. For the characteristic argument, if you provide a handle of 0x0000, then the first characteristic that matches the universally unique identifier (UUID) will be discovered.
Returns:
The number of descriptors retrieved when the function is successfully completed,
-1 with the
errno set otherwise. The error codes that can be returned are as follows:
- EACCESS: Insufficient authentication or authorization.
- EBUSY: The stack was busy performing another operation. You can try again later.
- EDEADLK: A potential deadlock has been avoided.
- EINVAL: The arguments passed are invalid or the connection to the remote Bluetooth-enabled device is unavailable.
- ENODEV: Unable to find the service connection defined by the instance argument.
- ENOMEM: Insufficient memory to perform the request.
- ENOSYS: The operation failed at the stack level.
- EPROTO: The operation failed because the response from remote Bluetooth-enabled device had a protocol error.
- ESRCH: The service connection was not available.
- ESRVRFAULT: An internal error has occurred.