Compartilhar via


Função BluetoothGATTSetCharacteristicValue (bluetoothleapis.h)

A função BluetoothGATTSetCharacteristicValue grava o valor de característica especificado no dispositivo Bluetooth.

Sintaxe

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
);

Parâmetros

[in] hDevice

Identificador para o serviço.

[in] Characteristic

Ponteiro para BTH_LE_GATT_CHARACTERISTIC estrutura que contém a característica pai.

[in] CharacteristicValue

Ponteiro para BTH_LE_GATT_CHARACTERISTIC_VALUE estrutura que contém o valor de característica.

[in, optional] ReliableWriteContext

BTH_LE_GATT_RELIABLE_WRITE_CONTEXT estrutura que contém o contexto que descreve a operação de gravação confiável retornada de uma chamada anterior para BluetoothGATTBeginReliableWrite.

[in] Flags

Sinalizadores para modificar o comportamento de BluetoothGATTSetCharacteristicValue:

Sinalizador Descrição
BLUETOOTH_GATT_FLAG_NONE O cliente não tem requisitos de GATT específicos (padrão).
BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED O cliente solicita que os dados sejam transmitidos por um canal criptografado.
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED O cliente solicita que os dados sejam transmitidos por um canal autenticado.
BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE Escreva sem resposta.
BLUETOOTH_GATT_FLAG_SIGNED_WRITE Gravação assinada. Os drivers de perfil devem usar com BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE para produzir gravação assinada sem resposta.

Valor retornado

A função BluetoothGATTSetCharacteristicValue retorna os seguintes valores:

Código de retorno Descrição
S_OK
A operação foi concluída com sucesso.
ERROR_ACCESS_DENIED
Retornado se um serviço pai e um identificador de serviço forem fornecidos e a hierarquia de serviço não for acumulada no identificador de serviço pai fornecido.
ERROR_INVALID_PARAMETER
Um parâmetro era inválido.
ERROR_BAD_NET_RESP
O servidor de destino não forneceu uma resposta de rede apropriada.
ERROR_SEM_TIMEOUT
A solicitação atingiu o tempo limite.
ERROR_NO_SYSTEM_RESOURCES
A operação ficou sem memória.
ERROR_INVALID_FUNCTION
Uma operação de gravação confiável já está em andamento.
E_BLUETOOTH_ATT_INVALID_HANDLE
O identificador de atributo dado não era válido neste servidor.
E_BLUETOOTH_ATT_READ_NOT_PERMITTED
O atributo não pode ser lido.
E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED
O atributo não pode ser gravado.
E_BLUETOOTH_ATT_INVALID_PDU
O atributo PDU era inválido.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION
O atributo requer autenticação antes de ser lido ou gravado.
E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED
O servidor de atributos não dá suporte à solicitação recebida do cliente.
E_BLUETOOTH_ATT_INVALID_OFFSET
O deslocamento especificado foi passado do final do atributo.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION
O atributo requer autorização antes de ser lido ou gravado.
E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL
Muitas gravações de preparação foram enfileiradas.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND
Nenhum atributo encontrado no intervalo de identificador de atributo fornecido.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG
O atributo não pode ser lido ou gravado usando a Solicitação de Blob de Leitura.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE
O tamanho da chave de criptografia usado para criptografar esse link é insuficiente.
E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH
O comprimento do valor do atributo é inválido para a operação.
E_BLUETOOTH_ATT_UNLIKELY
A solicitação de atributo solicitada encontrou um erro improvável e, portanto, não pôde ser concluído conforme solicitado.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION
O atributo requer criptografia antes de ser lido ou gravado.
E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE
O tipo de atributo não é um atributo de agrupamento com suporte, conforme definido por uma especificação de camada superior.
E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES
Recursos insuficientes para concluir a solicitação.
E_BLUETOOTH_ATT_UNKNOWN_ERROR
Um erro que está no intervalo reservado foi recebido.

Comentários

Chamar BluetoothGATTSetCharacteristicValue após BluetoothGATTBeginReliableWrite notifica o dispositivo Bluetooth remoto para armazenar essa solicitação em uma fila de preparação no dispositivo.

Se a assinatura for necessária, a operação não deverá exigir uma resposta e não deverá ocorrer em um canal seguro.

A característica pai é retornada de uma chamada anterior para BluetoothGATTGetCharacteristics e não deve ser alterada. O comportamento será indefinido se o chamador fizer isso.

Exemplo


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);

Requisitos

   
Cliente mínimo com suporte Com suporte no Windows 8 e versões posteriores do Windows.
Plataforma de Destino Universal
Cabeçalho bluetoothleapis.h
Biblioteca BluetoothAPIs.lib
DLL BluetoothAPIs.dll

Confira também

BTH_LE_GATT_CHARACTERISTIC

BTH_LE_GATT_CHARACTERISTIC_VALUE