Condividi tramite


Funzione BluetoothGATTSetCharacteristicValue (bluetoothleapis.h)

La funzione BluetoothGATTSetCharacteristicValue scrive il valore di caratteristica specificato nel dispositivo Bluetooth.

Sintassi

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

Parametri

[in] hDevice

Gestire il servizio.

[in] Characteristic

Puntatore a BTH_LE_GATT_CHARACTERISTIC struttura contenente la caratteristica padre.

[in] CharacteristicValue

Puntatore alla struttura BTH_LE_GATT_CHARACTERISTIC_VALUE contenente il valore della caratteristica.

[in, optional] ReliableWriteContext

BTH_LE_GATT_RELIABLE_WRITE_CONTEXT struttura contenente il contesto che descrive l'operazione di scrittura affidabile restituita da una chiamata precedente a BluetoothGATTBeginReliableWrite.

[in] Flags

Flag per modificare il comportamento di BluetoothGATTSetCharacteristicValue:

Flag Descrizione
BLUETOOTH_GATT_FLAG_NONE Il client non ha requisiti GATT specifici (impostazione predefinita).
BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED Il client richiede la trasmissione dei dati su un canale crittografato.
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED Il client richiede che i dati vengano trasmessi tramite un canale autenticato.
BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE Scrivere senza risposta.
BLUETOOTH_GATT_FLAG_SIGNED_WRITE Scrittura firmata. I driver di profilo devono essere usati con BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE per produrre la scrittura firmata senza risposta.

Valore restituito

La funzione BluetoothGATTSetCharacteristicValue restituisce i valori seguenti:

Codice restituito Descrizione
S_OK
Operazione riuscita.
ERROR_ACCESS_DENIED
Restituito se vengono forniti sia un servizio padre che un handle di servizio e la gerarchia del servizio non viene implementata nell'handle del servizio padre fornito.
ERROR_INVALID_PARAMETER
Parametro non valido.
ERROR_BAD_NET_RESP
Il server di destinazione non ha fornito una risposta di rete appropriata.
ERROR_SEM_TIMEOUT
Timeout della richiesta.
ERROR_NO_SYSTEM_RESOURCES
L'operazione ha esaurito la memoria.
ERROR_INVALID_FUNCTION
Un'operazione di scrittura affidabile è già in corso.
E_BLUETOOTH_ATT_INVALID_HANDLE
L'handle dell'attributo specificato non è valido in questo server.
E_BLUETOOTH_ATT_READ_NOT_PERMITTED
Impossibile leggere l'attributo.
E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED
Impossibile scrivere l'attributo.
E_BLUETOOTH_ATT_INVALID_PDU
L'attributo PDU non è valido.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION
L'attributo richiede l'autenticazione prima di poter essere letto o scritto.
E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED
Il server attributi non supporta la richiesta ricevuta dal client.
E_BLUETOOTH_ATT_INVALID_OFFSET
L'offset specificato è passato alla fine dell'attributo.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION
L'attributo richiede l'autorizzazione prima di poter essere letto o scritto.
E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL
Troppe scritture di preparazione sono state accodate.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND
Nessun attributo trovato all'interno dell'intervallo di handle di attributi specificato.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG
L'attributo non può essere letto o scritto usando la richiesta BLOB di lettura.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE
Le dimensioni della chiave di crittografia usate per crittografare questo collegamento non sono sufficienti.
E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH
La lunghezza del valore dell'attributo non è valida per l'operazione.
E_BLUETOOTH_ATT_UNLIKELY
La richiesta di attributo richiesta ha rilevato un errore improbabile e pertanto non è stato possibile completare come richiesto.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION
L'attributo richiede la crittografia prima di poter essere letto o scritto.
E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE
Il tipo di attributo non è un attributo di raggruppamento supportato come definito da una specifica di livello superiore.
E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES
Risorse insufficienti per completare la richiesta.
E_BLUETOOTH_ATT_UNKNOWN_ERROR
Errore che si trova nell'intervallo riservato ricevuto.

Commenti

Chiamando BluetoothGATTSetCharacteristicValue dopo BluetoothGATTBeginReliableWrite, notifica al dispositivo Bluetooth remoto di archiviare questa richiesta in una coda di preparazione nel dispositivo.

Se è necessaria la firma, l'operazione non deve richiedere una risposta e non deve verificarsi su un canale sicuro.

La caratteristica padre viene restituita da una chiamata precedente a BluetoothGATTGetCharacteristics e non deve essere modificata. Il comportamento non è definito se il chiamante esegue questa operazione.

Esempio


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

Requisiti

   
Client minimo supportato Supportato in Windows 8 e versioni successive di Windows.
Piattaforma di destinazione Universale
Intestazione bluetoothleapis.h
Libreria BluetoothAPIs.lib
DLL BluetoothAPIs.dll

Vedi anche

BTH_LE_GATT_CHARACTERISTIC

BTH_LE_GATT_CHARACTERISTIC_VALUE