BLE

En este módulo, se incluye la abstracción de la plataforma para la comunicación del host BLE.

Resumen

La plataforma debe implementar Bluetooth LE 4.2 o una versión posterior.

Typedefs

otBleRadioPacket typedef
Representa un paquete BLE.

remotas

otPlatBleDisable(otInstance *aInstance)
Inhabilita la radio Bluetooth de bajo consumo.
otPlatBleEnable(otInstance *aInstance)
Habilita la radio Bluetooth de bajo consumo.
otPlatBleGapAdvStart(otInstance *aInstance, uint16_t aInterval)
Inicia el procedimiento de publicidad BLE.
otPlatBleGapAdvStop(otInstance *aInstance)
Detiene el procedimiento de publicidad BLE.
otPlatBleGapDisconnect(otInstance *aInstance)
Desconecta la conexión BLE.
otPlatBleGapOnConnected(otInstance *aInstance, uint16_t aConnectionId)
void
El controlador BLE llama a este método para notificar a OpenThread que se conectó un dispositivo central BLE.
otPlatBleGapOnDisconnected(otInstance *aInstance, uint16_t aConnectionId)
void
El controlador BLE llama a este método para notificar a OpenThread que se desconectó el dispositivo central de BLE.
otPlatBleGattMtuGet(otInstance *aInstance, uint16_t *aMtu)
Las lecturas actualmente usan un valor de ATT_MTU.
otPlatBleGattOnMtuUpdate(otInstance *aInstance, uint16_t aMtu)
void
El controlador BLE llama a este método para notificar a OpenThread que se actualizó ATT_MTU.
otPlatBleGattServerIndicate(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
Envía una indicación del valor del controlador de ATT.
otPlatBleGattServerOnWriteRequest(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
void
El controlador BLE llama a este método para notificar a OpenThread que se recibió un paquete de solicitud de escritura de ATT.

Structs

otBleRadioPacket

Representa un paquete BLE.

Typedefs

otBleRadioPacket

struct otBleRadioPacket otBleRadioPacket

Representa un paquete BLE.

remotas

otPlatBleDisable

otError otPlatBleDisable(
  otInstance *aInstance
)

Inhabilita la radio Bluetooth de bajo consumo.

Cuando se inhabilita, la pila BLE vaciará las colas de eventos y no generará eventos nuevos. El periférico BLE está apagado o en un estado de suspensión de bajo consumo. Se debe liberar cualquier memoria dinámica que use la pila, pero la memoria estática puede permanecer reservada.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
Valores que se muestran
OT_ERROR_NONE
Se realizó correctamente la transición a inhabilitada.
OT_ERROR_FAILED
No se pudo inhabilitar la radio BLE.

otPlatBleEnable

otError otPlatBleEnable(
  otInstance *aInstance
)

Habilita la radio Bluetooth de bajo consumo.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
Valores que se muestran
OT_ERROR_NONE
Se habilitó correctamente.
OT_ERROR_FAILED
No se pudo habilitar la radio BLE.

otPlatBleGapAdvStart

otError otPlatBleGapAdvStart(
  otInstance *aInstance,
  uint16_t aInterval
)

Inicia el procedimiento de publicidad BLE.

El dispositivo BLE debe usar publicidad no dirigida sin filtro aplicado. Se debe enviar un único paquete de publicidad BLE en todos los canales de publicidad (37, 38 y 39).

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aInterval
El intervalo entre los paquetes de anuncios posteriores en unidades OT_BLE_ADV_INTERVAL_UNIT. Debe estar dentro del rango de OT_BLE_ADV_INTERVAL_MIN y OT_BLE_ADV_INTERVAL_MAX o OT_BLE_ADV_INTERVAL_DEFAULT para un valor predeterminado establecido en el tiempo de compilación.
Valores que se muestran
OT_ERROR_NONE
Se inició el procedimiento de publicidad.
OT_ERROR_INVALID_STATE
El dispositivo BLE tiene un estado no válido.
OT_ERROR_INVALID_ARGS
El valor de intervalo no es válido.

otPlatBleGapAdvStop

otError otPlatBleGapAdvStop(
  otInstance *aInstance
)

Detiene el procedimiento de publicidad BLE.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
Valores que se muestran
OT_ERROR_NONE
Se detuvo el procedimiento de publicidad.
OT_ERROR_INVALID_STATE
El dispositivo BLE tiene un estado no válido.

otPlatBleGapDisconnect

otError otPlatBleGapDisconnect(
  otInstance *aInstance
)

Desconecta la conexión BLE.

El dispositivo BLE debe usar el código de motivo de conexión terminada por el usuario remoto (0x13) cuando se desconecte del dispositivo BLE de intercambio de tráfico.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
Valores que se muestran
OT_ERROR_NONE
Se inició el procedimiento de desconexión.
OT_ERROR_INVALID_STATE
El dispositivo BLE tiene un estado no válido.

otPlatBleGapOnConnected

void otPlatBleGapOnConnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

El controlador BLE llama a este método para notificar a OpenThread que se conectó un dispositivo central BLE.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aConnectionId
El identificador de la conexión abierta.

otPlatBleGapOnDisconnected

void otPlatBleGapOnDisconnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

El controlador BLE llama a este método para notificar a OpenThread que se desconectó el dispositivo central de BLE.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aConnectionId
El identificador de la conexión cerrada.

otPlatBleGattMtuGet

otError otPlatBleGattMtuGet(
  otInstance *aInstance,
  uint16_t *aMtu
)

Las lecturas actualmente usan un valor de ATT_MTU.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[out] aMtu
Un puntero para generar el valor ATT_MTU actual.
Valores que se muestran
OT_ERROR_NONE
Se colocó el valor ATT_MTU en aMtu.
OT_ERROR_FAILED
El dispositivo BLE no puede determinar su ATT_MTU.

otPlatBleGattOnMtuUpdate

void otPlatBleGattOnMtuUpdate(
  otInstance *aInstance,
  uint16_t aMtu
)

El controlador BLE llama a este método para notificar a OpenThread que se actualizó ATT_MTU.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aMtu
El valor ATT_MTU actualizado.

otPlatBleGattServerIndicate

otError otPlatBleGattServerIndicate(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

Envía una indicación del valor del controlador de ATT.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aHandle
Controlador del atributo que se indicará.
[in] aPacket
Un puntero al paquete contiene el valor que se debe indicar.
Valores que se muestran
OT_ERROR_NONE
Se envió la indicación del valor del identificador de ATT.
OT_ERROR_INVALID_STATE
El dispositivo BLE tiene un estado no válido.
OT_ERROR_INVALID_ARGS
El valor del identificador, los datos o la longitud de los datos no son válidos.
OT_ERROR_NO_BUFS
No se encontró ningún búfer interno disponible.

otPlatBleGattServerOnWriteRequest

void otPlatBleGattServerOnWriteRequest(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

El controlador BLE llama a este método para notificar a OpenThread que se recibió un paquete de solicitud de escritura de ATT.

Detalles
Parámetros
[in] aInstance
Estructura de instancias de OpenThread
[in] aHandle
Es el controlador del atributo que se escribirá.
[in] aPacket
Un puntero al paquete contiene el valor que se escribirá en el atributo.

Macros

OT_BLE_ADV_INTERVAL_DEFAULT

 OT_BLE_ADV_INTERVAL_DEFAULT 100

Es el intervalo predeterminado para el paquete de anuncios (ms).

OT_BLE_ADV_INTERVAL_MAX

 OT_BLE_ADV_INTERVAL_MAX 0x4000

Intervalo máximo permitido para paquetes publicitarios en unidades OT_BLE_ADV_INTERVAL_UNIT (10.24 s).

OT_BLE_ADV_INTERVAL_MIN

 OT_BLE_ADV_INTERVAL_MIN 0x0020

Intervalo mínimo permitido para paquetes de anuncios en unidades OT_BLE_ADV_INTERVAL_UNIT (20 ms).

OT_BLE_ADV_INTERVAL_UNIT

 OT_BLE_ADV_INTERVAL_UNIT OT_BLE_TIMESLOT_UNIT

Unidad que se usa para calcular la duración del intervalo (0.625 ms).

OT_BLE_ATT_MTU_MAX

 OT_BLE_ATT_MTU_MAX 67

Tamaño máximo permitido de la MTU de ATT (debe ser >= 23).

OT_BLE_DEFAULT_POWER

 OT_BLE_DEFAULT_POWER 0

Valor predeterminado de la energía para BLE.

OT_BLE_TIMESLOT_UNIT

 OT_BLE_TIMESLOT_UNIT 625

Duración del intervalo de tiempo en la capa PHY, en microsegundos (0.625 ms).

Recursos

Los temas de referencia de la API de OpenThread se originan a partir del código fuente, disponible en GitHub. Para obtener más información o contribuir a nuestra documentación, consulta Recursos.