Compartir a través de


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
S_OK
La operación se ha completado correctamente.
ERROR_ACCESS_DENIED
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.
ERROR_INVALID_PARAMETER
Un parámetro no era válido.
ERROR_BAD_NET_RESP
El servidor de destino no proporcionó una respuesta de red adecuada.
ERROR_SEM_TIMEOUT
Se agota el tiempo de espera de la solicitud.
ERROR_NO_SYSTEM_RESOURCES
La operación se quedó sin memoria.
ERROR_INVALID_FUNCTION
Una operación de escritura confiable ya está en curso.
E_BLUETOOTH_ATT_INVALID_HANDLE
El identificador de atributo especificado no era válido en este servidor.
E_BLUETOOTH_ATT_READ_NOT_PERMITTED
El atributo no se puede leer.
E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED
El atributo no se puede escribir.
E_BLUETOOTH_ATT_INVALID_PDU
El atributo PDU no era válido.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION
El atributo requiere autenticación antes de que se pueda leer o escribir.
E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED
El servidor de atributos no admite la solicitud recibida del cliente.
E_BLUETOOTH_ATT_INVALID_OFFSET
Offset especificado fue pasado el final del atributo.
E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION
El atributo requiere autorización para que se pueda leer o escribir.
E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL
Se han puesto en cola demasiadas escrituras de preparación.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND
No se encontró ningún atributo dentro del intervalo de identificadores de atributo especificado.
E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG
El atributo no se puede leer ni escribir mediante la solicitud de blob de lectura.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE
El tamaño de clave de cifrado que se usa para cifrar este vínculo no es suficiente.
E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH
La longitud del valor del atributo no es válida para la operación.
E_BLUETOOTH_ATT_UNLIKELY
La solicitud de atributo solicitada ha encontrado un error poco probable y, por lo tanto, no se pudo completar como se solicitó.
E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION
El atributo requiere cifrado antes de que se pueda leer o escribir.
E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE
El tipo de atributo no es un atributo de agrupación admitido según lo definido por una especificación de capa superior.
E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES
Recursos insuficientes para completar la solicitud.
E_BLUETOOTH_ATT_UNKNOWN_ERROR
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

Consulte también

BTH_LE_GATT_CHARACTERISTIC

BTH_LE_GATT_CHARACTERISTIC_VALUE