BLE

Este módulo inclui a abstração da plataforma para comunicação do host BLE.

Resumo

A plataforma precisa implementar o Bluetooth LE 4.2 ou uma versão mais recente.

Typedefs

otBleRadioPacket typedef
Representa um pacote BLE.

Funções

otPlatBleDisable(otInstance *aInstance)
Desativa o rádio Bluetooth Low Energy.
otPlatBleEnable(otInstance *aInstance)
Ativar o rádio Bluetooth Low Energy.
otPlatBleGapAdvStart(otInstance *aInstance, uint16_t aInterval)
Inicia o procedimento de publicidade de BLE.
otPlatBleGapAdvStop(otInstance *aInstance)
Interrompe o procedimento de publicidade de BLE.
otPlatBleGapDisconnect(otInstance *aInstance)
Desconecta a conexão BLE.
otPlatBleGapOnConnected(otInstance *aInstance, uint16_t aConnectionId)
void
O driver de BLE chama esse método para notificar o OpenThread de que um dispositivo central de BLE foi conectado.
otPlatBleGapOnDisconnected(otInstance *aInstance, uint16_t aConnectionId)
void
O driver de BLE chama esse método para notificar o OpenThread que o dispositivo central de BLE foi desconectado.
otPlatBleGattMtuGet(otInstance *aInstance, uint16_t *aMtu)
No momento, as leituras usam o valor de ATT_MTU.
otPlatBleGattOnMtuUpdate(otInstance *aInstance, uint16_t aMtu)
void
O driver BLE chama esse método para notificar o OpenThread que a ATT_MTU foi atualizada.
otPlatBleGattServerIndicate(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
Envia indicação de valor do identificador do ATT.
otPlatBleGattServerOnWriteRequest(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
void
O driver BLE chama esse método para notificar o OpenThread de que um pacote de solicitação de gravação ATT foi recebido.

Estruturas

otBleRadioPacket

Representa um pacote BLE.

Typedefs

otBleRadioPacket

struct otBleRadioPacket otBleRadioPacket

Representa um pacote BLE.

Funções

otPlatBleDisable

otError otPlatBleDisable(
  otInstance *aInstance
)

Desativa o rádio Bluetooth Low Energy.

Quando desativada, a pilha de BLE limpa as filas de eventos e não gera novos eventos. O periférico de BLE está desativado ou em um estado de suspensão de baixa energia. Qualquer memória dinâmica usada pela pilha precisa ser liberada, mas a memória estática pode permanecer reservada.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Valores de retorno
OT_ERROR_NONE
Transição para desativada com sucesso.
OT_ERROR_FAILED
Não foi possível desativar o rádio BLE.

otPlatBleEnable

otError otPlatBleEnable(
  otInstance *aInstance
)

Ativar o rádio Bluetooth Low Energy.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Valores de retorno
OT_ERROR_NONE
Ativado com sucesso.
OT_ERROR_FAILED
Não foi possível ativar o rádio BLE.

otPlatBleGapAdvStart

otError otPlatBleGapAdvStart(
  otInstance *aInstance,
  uint16_t aInterval
)

Inicia o procedimento de publicidade de BLE.

O dispositivo BLE precisa usar publicidade não direcionada sem nenhum filtro aplicado. Um único pacote de publicidade BLE precisa ser enviado em todos os canais de publicidade (37, 38 e 39).

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aInterval
O intervalo entre pacotes de publicidade subsequentes em unidades OT_BLE_ADV_INTERVAL_UNIT. Precisa estar dentro do intervalo OT_BLE_ADV_INTERVAL_MIN e OT_BLE_ADV_INTERVAL_MAX ou por OT_BLE_ADV_INTERVAL_DEFAULT para um valor padrão definido no tempo de compilação.
Valores de retorno
OT_ERROR_NONE
O procedimento de publicidade foi iniciado.
OT_ERROR_INVALID_STATE
O dispositivo de BLE está em estado inválido.
OT_ERROR_INVALID_ARGS
Um valor de intervalo inválido foi fornecido.

otPlatBleGapAdvStop

otError otPlatBleGapAdvStop(
  otInstance *aInstance
)

Interrompe o procedimento de publicidade de BLE.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Valores de retorno
OT_ERROR_NONE
O procedimento de publicidade foi interrompido.
OT_ERROR_INVALID_STATE
O dispositivo de BLE está em estado inválido.

otPlatBleGapDisconnect

otError otPlatBleGapDisconnect(
  otInstance *aInstance
)

Desconecta a conexão BLE.

O dispositivo BLE precisa usar o código de motivo da conexão encerrada pelo usuário remoto (0x13) ao se desconectar do dispositivo BLE de peering.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
Valores de retorno
OT_ERROR_NONE
O procedimento de desconexão foi iniciado.
OT_ERROR_INVALID_STATE
O dispositivo de BLE está em estado inválido.

otPlatBleGapOnConnected

void otPlatBleGapOnConnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

O driver de BLE chama esse método para notificar o OpenThread de que um dispositivo central de BLE foi conectado.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aConnectionId
O identificador da conexão aberta.

otPlatBleGapOnDisconnected

void otPlatBleGapOnDisconnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

O driver de BLE chama esse método para notificar o OpenThread que o dispositivo central de BLE foi desconectado.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aConnectionId
O identificador da conexão encerrada.

otPlatBleGattMtuGet

otError otPlatBleGattMtuGet(
  otInstance *aInstance,
  uint16_t *aMtu
)

No momento, as leituras usam o valor de ATT_MTU.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[out] aMtu
Um ponteiro para produzir o valor ATT_MTU atual.
Valores de retorno
OT_ERROR_NONE
O valor de ATT_MTU foi colocado em aMtu.
OT_ERROR_FAILED
O dispositivo BLE não conseguiu determinar a ATT_MTU.

otPlatBleGattOnMtuUpdate

void otPlatBleGattOnMtuUpdate(
  otInstance *aInstance,
  uint16_t aMtu
)

O driver BLE chama esse método para notificar o OpenThread que a ATT_MTU foi atualizada.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aMtu
O valor de ATT_MTU atualizado.

otPlatBleGattServerIndicate

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

Envia indicação de valor do identificador do ATT.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aHandle
Identificador do atributo a ser indicado.
[in] aPacket
Um ponteiro para o pacote contém o valor a ser indicado.
Valores de retorno
OT_ERROR_NONE
A indicação de valor do identificador do ATT foi enviada.
OT_ERROR_INVALID_STATE
O dispositivo de BLE está em estado inválido.
OT_ERROR_INVALID_ARGS
Foi fornecido um valor de identificador inválido, dados ou comprimento de dados.
OT_ERROR_NO_BUFS
Nenhum buffer interno disponível foi encontrado.

otPlatBleGattServerOnWriteRequest

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

O driver BLE chama esse método para notificar o OpenThread de que um pacote de solicitação de gravação ATT foi recebido.

Detalhes
Parâmetros
[in] aInstance
A estrutura da instância do OpenThread.
[in] aHandle
Identificador do atributo a ser escrito.
[in] aPacket
Um ponteiro para o pacote contém o valor a ser gravado no atributo.

Macros

OT_BLE_ADV_INTERVAL_DEFAULT

 OT_BLE_ADV_INTERVAL_DEFAULT 100

Intervalo padrão para pacote de publicidade (ms).

OT_BLE_ADV_INTERVAL_MAX

 OT_BLE_ADV_INTERVAL_MAX 0x4000

Intervalo máximo permitido para o pacote de publicidade em unidades OT_BLE_ADV_INTERVAL_UNIT (10,24s).

OT_BLE_ADV_INTERVAL_MIN

 OT_BLE_ADV_INTERVAL_MIN 0x0020

Intervalo mínimo permitido para o pacote de publicidade em unidades OT_BLE_ADV_INTERVAL_UNIT (20ms).

OT_BLE_ADV_INTERVAL_UNIT

 OT_BLE_ADV_INTERVAL_UNIT OT_BLE_TIMESLOT_UNIT

Unidade usada para calcular a duração do intervalo (0,625ms).

OT_BLE_ATT_MTU_MAX

 OT_BLE_ATT_MTU_MAX 67

Tamanho máximo da MTU de ATT permitido (precisa ser maior ou igual a 23).

OT_BLE_DEFAULT_POWER

 OT_BLE_DEFAULT_POWER 0

Valor de potência padrão para BLE.

OT_BLE_TIMESLOT_UNIT

 OT_BLE_TIMESLOT_UNIT 625

Duração do slot na camada PHY em microssegundos (0,625ms).

Recursos

Os tópicos de Referência da API OpenThread são originados do código-fonte, disponível no GitHub. Para mais informações ou para contribuir com nossa documentação, consulte Recursos.