Функция BluetoothGATTSetCharacteristicValue (bluetoothleapis.h)
Функция BluetoothGATTSetCharacteristicValue записывает указанное значение характеристики на устройство Bluetooth.
Синтаксис
HRESULT BluetoothGATTSetCharacteristicValue(
[in] HANDLE hDevice,
[in] PBTH_LE_GATT_CHARACTERISTIC Characteristic,
[in] PBTH_LE_GATT_CHARACTERISTIC_VALUE CharacteristicValue,
[in, optional] BTH_LE_GATT_RELIABLE_WRITE_CONTEXT ReliableWriteContext,
[in] ULONG Flags
);
Параметры
[in] hDevice
Дескриптор для службы.
[in] Characteristic
Указатель на BTH_LE_GATT_CHARACTERISTIC структуру, содержащую родительскую характеристику.
[in] CharacteristicValue
Указатель на BTH_LE_GATT_CHARACTERISTIC_VALUE структуру, содержащую значение характеристики.
[in, optional] ReliableWriteContext
BTH_LE_GATT_RELIABLE_WRITE_CONTEXT структура, содержащая контекст, описывающий надежную операцию записи, возвращенную при предыдущем вызове BluetoothGATTBeginReliableWrite.
[in] Flags
Флаги для изменения поведения BluetoothGATTSetCharacteristicValue:
Flag | Описание |
---|---|
BLUETOOTH_GATT_FLAG_NONE | У клиента нет конкретных требований GATT (по умолчанию). |
BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED | Клиент запрашивает передачу данных по зашифрованным каналам. |
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED | Клиент запрашивает передачу данных по каналу, прошедшему проверку подлинности. |
BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE | Запись без ответа. |
BLUETOOTH_GATT_FLAG_SIGNED_WRITE | Запись со знаком. Драйверы профилей должны использовать с BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE , чтобы выполнять подписанную запись без ответа. |
Возвращаемое значение
Функция BluetoothGATTSetCharacteristicValue возвращает следующие значения:
Код возврата | Описание |
---|---|
|
Операция выполнена успешно. |
|
Возвращается, если предоставляются как родительская служба, так и дескриптор службы, а иерархия служб не выполняет свертку до предоставленного дескриптора родительской службы. |
|
Был указан недопустимый параметр. |
|
Целевой сервер не предоставил соответствующий ответ сети. |
|
Истекло время ожидания запроса. |
|
Для операции не хватает памяти. |
|
В настоящее время уже выполняется надежная операция записи. |
|
Указанный дескриптор атрибута был недопустимым на этом сервере. |
|
Атрибут не может быть прочитан. |
|
Атрибут не может быть записан. |
|
Недопустимый атрибут PDU. |
|
Атрибут требует проверки подлинности, прежде чем его можно будет прочитать или записать. |
|
Сервер атрибутов не поддерживает запрос, полученный от клиента. |
|
Указанное смещение прошло после конца атрибута. |
|
Для чтения или записи атрибута требуется авторизация. |
|
Слишком много операций подготовки записей поставлено в очередь. |
|
Атрибут не найден в заданном диапазоне дескрипторов атрибута. |
|
Атрибут не может быть прочитан или записан с помощью запроса на чтение BLOB-объекта. |
|
Размер ключа шифрования, используемый для шифрования этой ссылки, недостаточен. |
|
Длина значения атрибута недопустима для операции. |
|
Запрошенный запрос атрибута обнаружил ошибку, которая была маловероятна и поэтому не может быть выполнена в соответствии с запросом. |
|
Атрибут требует шифрования, прежде чем его можно будет прочитать или записать. |
|
Тип атрибута не является поддерживаемым атрибутом группирования, как определено в спецификации более высокого уровня. |
|
Недостаточно ресурсов для выполнения запроса. |
|
Получено сообщение об ошибке, которая находится в зарезервированном диапазоне. |
Комментарии
Вызов BluetoothGATTSetCharacteristicValue после BluetoothGATTBeginReliableWrite уведомляет удаленное устройство Bluetooth о хранении этого запроса в очереди подготовки на устройстве.
Если требуется подписывание, операция не должна требовать ответа и не должна выполняться через безопасный канал.
Родительская характеристика возвращается из предыдущего вызова BluetoothGATTGetCharacteristics и не должна быть изменена. Поведение не определено, если это делает вызывающий объект.
Пример
BTH_LE_GATT_CHARACTERISTIC_VALUE newValue;
RtlZeroMemory(&newValue,(sizeof(newValue)));
newValue.DataSize = sizeof(valueData);
newValue.Data = (UCHAR*)&valueData;
// Set the new characteristic value
hr = BluetoothGATTSetCharacteristicValue(hDevice,
parentCharacteristic,
&newValue,
NULL,
BLUETOOTH_GATT_FLAG_NONE);
Требования
Минимальная версия клиента | Поддерживается в Windows 8 и более поздних версиях Windows. |
Целевая платформа | Универсальное |
Верхняя часть | bluetoothleapis.h |
Библиотека | BluetoothAPIs.lib |
DLL | BluetoothAPIs.dll |