Función BluetoothGATTSetCharacteristicValue (bluetoothleapis.h)
La función BluetoothGATTSetCharacteristicValue escribe el valor de característica especificado en el dispositivo Bluetooth.
Sintaxis
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 del servicio.
[in] Characteristic
Puntero a BTH_LE_GATT_CHARACTERISTIC estructura que contiene la característica primaria.
[in] CharacteristicValue
Puntero a BTH_LE_GATT_CHARACTERISTIC_VALUE estructura que contiene el valor de característica.
[in, optional] ReliableWriteContext
BTH_LE_GATT_RELIABLE_WRITE_CONTEXT estructura que contiene el contexto que describe la operación de escritura confiable devuelta desde una llamada anterior a BluetoothGATTBeginReliableWrite.
[in] Flags
Marcas para modificar el comportamiento de BluetoothGATTSetCharacteristicValue:
Marca | Descripción |
---|---|
BLUETOOTH_GATT_FLAG_NONE | El cliente no tiene requisitos gatt específicos (valor predeterminado). |
BLUETOOTH_GATT_FLAG_CONNECTION_ENCRYPTED | El cliente solicita que los datos se transmitan a través de un canal cifrado. |
BLUETOOTH_GATT_FLAG_CONNECTION_AUTHENTICATED | El cliente solicita que los datos se transmitan a través de un canal autenticado. |
BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE | Escribir sin respuesta. |
BLUETOOTH_GATT_FLAG_SIGNED_WRITE | Escritura firmada. Los controladores de perfil deben usar con BLUETOOTH_GATT_FLAG_WRITE_WITHOUT_RESPONSE para generar escritura firmada sin una respuesta. |
Valor devuelto
La función BluetoothGATTSetCharacteristicValue devuelve los valores siguientes:
Código devuelto | Descripción |
---|---|
|
La operación se ha completado correctamente. |
|
Se devuelve si se proporciona un servicio primario y un identificador de servicio y la jerarquía de servicios no se acumula en el identificador de servicio primario proporcionado. |
|
Un parámetro no era válido. |
|
El servidor de destino no proporcionó una respuesta de red adecuada. |
|
Se agota el tiempo de espera de la solicitud. |
|
La operación se quedó sin memoria. |
|
Una operación de escritura confiable ya está en curso. |
|
El identificador de atributo especificado no era válido en este servidor. |
|
El atributo no se puede leer. |
|
El atributo no se puede escribir. |
|
El atributo PDU no era válido. |
|
El atributo requiere autenticación antes de que se pueda leer o escribir. |
|
El servidor de atributos no admite la solicitud recibida del cliente. |
|
Offset especificado fue pasado el final del atributo. |
|
El atributo requiere autorización para que se pueda leer o escribir. |
|
Se han puesto en cola demasiadas escrituras de preparación. |
|
No se encontró ningún atributo dentro del intervalo de identificadores de atributo especificado. |
|
El atributo no se puede leer ni escribir mediante la solicitud de blob de lectura. |
|
El tamaño de clave de cifrado que se usa para cifrar este vínculo no es suficiente. |
|
La longitud del valor del atributo no es válida para la operación. |
|
La solicitud de atributo solicitada ha encontrado un error poco probable y, por lo tanto, no se pudo completar como se solicitó. |
|
El atributo requiere cifrado antes de que se pueda leer o escribir. |
|
El tipo de atributo no es un atributo de agrupación admitido según lo definido por una especificación de capa superior. |
|
Recursos insuficientes para completar la solicitud. |
|
Error que se encuentra en el intervalo reservado. |
Comentarios
Al llamar a BluetoothGATTSetCharacteristicValue después de BluetoothGATTBeginReliableWrite, se notifica al dispositivo Bluetooth remoto para almacenar esta solicitud en una cola de preparación en el dispositivo.
Si se requiere la firma, la operación no debe requerir una respuesta y no debe producirse a través de un canal seguro.
La característica primaria se devuelve de una llamada anterior a BluetoothGATTGetCharacteristics y no se debe modificar. El comportamiento no está definido si el autor de la llamada lo hace.
Ejemplo
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 compatible | Compatible con Windows 8 y versiones posteriores de Windows. |
Plataforma de destino | Universal |
Encabezado | bluetoothleapis.h |
Library | BluetoothAPIs.lib |
Archivo DLL | BluetoothAPIs.dll |