nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Essa classe oferece uma interface para que uma única linha de execução direcione os dados para cima na pilha com as funções de interface da plataforma BleLayer ou para a pilha por meio de um objeto WeaveConnection associado a um BLEEndPoint.

Resumo

Há duas maneiras de associar um WeaveConnection (definido pelo WeaveMessageLayer) a uma conexão BLE:

Primeiro, o aplicativo pode receber passivamente uma conexão BLE de entrada e entregar o BLE_CONNECTION_OBJECT gerado por esse comprovante para BleLayer por meio da função da interface da plataforma correspondente. Isso faz com que BleLayer una o BLE_CONNECTION_OBJECT em um BLEEndPoint e notifique o WeaveMessageLayer de que um novo conexão de BLE foi recebido. A camada de mensagem envolve o novo objeto BLEEndPoint em um WeaveConnection e entrega esse objeto ao aplicativo por meio do callback OnConnectionReceived da camada de mensagem.

Segundo, o aplicativo pode formar ativamente uma conexão BLE de saída, por exemplo, conectando-se a um periférico BLE. Em seguida, cria um novo WeaveConnection pela WeaveMessageLayer, atribui um tipo de autenticação a essa conexão e o vincula ao BLE_CONNECTION_OBJECT para a nova conexão de BLE via WeaveConnection::ConnectBle. Essa função estabelece então o tipo de sessão segura especificado pela variável de membro de tipo de autenticação do WeaveConnection.

Herança

Subclasses conhecidas diretas:
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl

Construtores e destrutores

BleLayer(void)

Tipos públicos

@14 enum
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint) typedef
void(*

Atributos públicos

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[SOMENTE LEITURA] Estado atual

Funções públicas

HandleConnectionError(BLE_CONNECTION_OBJECT connObj, BLE_ERROR err)
void
HandleIndicationConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Ligue quando uma indicação GATT pendente receber uma confirmação positiva de recebimento.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Ligue quando uma indicação GATT for recebida.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Chame quando uma solicitação de leitura do GATT for recebida.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Chame quando uma solicitação de assinatura GATT for bem-sucedida.
HandleSubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleUnsubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Chame quando uma solicitação de cancelamento de inscrição do GATT for bem-sucedida.
HandleUnsubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleWriteConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Ligue quando uma solicitação de gravação de GATT pendente recebe uma confirmação de recebimento positiva.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Chame quando uma solicitação de gravação do GATT for recebida.
Init(BlePlatformDelegate *platformDelegate, BleApplicationDelegate *appDelegate, Weave::System::Layer *systemLayer)
NewBleEndPoint(BLEEndPoint **retEndPoint, BLE_CONNECTION_OBJECT connObj, BleRole role, bool autoClose)
ScheduleWork(nl::Weave::System::Layer::TimerCompleteFunct aComplete, void *aAppState)
nl::Weave::System::Error
Funções da interface da plataforma:
Shutdown(void)

Tipos públicos

@14

 @14

BleConnectionReceivedFunct

void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)

Atributos públicos

OnWeaveBleConnectReceived

BleConnectionReceivedFunct OnWeaveBleConnectReceived

mAppState

void * mAppState

mState

enum nl::Ble::BleLayer::@14 mState

[SOMENTE LEITURA] Estado atual

Funções públicas

BleLayer

 BleLayer(
  void
)

HandleConnectionError

void HandleConnectionError(
  BLE_CONNECTION_OBJECT connObj,
  BLE_ERROR err
)

HandleIndicationConfirmation

bool HandleIndicationConfirmation(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

Ligue quando uma indicação GATT pendente receber uma confirmação positiva de recebimento.

HandleIndicationReceived

bool HandleIndicationReceived(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId,
  PacketBuffer *pBuf
)

Ligue quando uma indicação GATT for recebida.

HandleReadReceived

bool HandleReadReceived(
  BLE_CONNECTION_OBJECT connObj,
  BLE_READ_REQUEST_CONTEXT requestContext,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

Chame quando uma solicitação de leitura do GATT for recebida.

A plataforma precisa chamar essa função quando qualquer operação anterior realizada pelo BleLayer usando o BleAdapter falha, como uma solicitação de gravação característica ou tentativa de inscrição, ou quando uma conexão BLE é encerrada.

Na maioria dos casos, isso faz com que o Weave feche o WeaveConnection associado e notifica a plataforma de que ela abandonou a conexão BLE subjacente.

OBSERVAÇÃO: se o aplicativo fechar explicitamente uma conexão BLE com um WeaveConnection associado de modo que o fechamento da conexão BLE não gere um upcall para o Weave, o HandleConnectionError precisará ser chamado com err = BLE_ERROR_APP_CLOSED_CONNECTION para evitar o vazamento desse WeaveConnection e do objeto de destino dele.

HandleSubscribeComplete

bool HandleSubscribeComplete(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

Chame quando uma solicitação de assinatura GATT for bem-sucedida.

A plataforma precisa chamar essa função quando uma cancelamento de inscrição do GATT é solicitada em qualquer característica do serviço Weave, ou seja, quando uma assinatura GATT existente em uma característica do serviço Weave é cancelada.

HandleSubscribeReceived

bool HandleSubscribeReceived(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

HandleUnsubscribeComplete

bool HandleUnsubscribeComplete(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

Chame quando uma solicitação de cancelamento de inscrição do GATT for bem-sucedida.

HandleUnsubscribeReceived

bool HandleUnsubscribeReceived(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

HandleWriteConfirmation

bool HandleWriteConfirmation(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

Ligue quando uma solicitação de gravação de GATT pendente recebe uma confirmação de recebimento positiva.

HandleWriteReceived

bool HandleWriteReceived(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId,
  PacketBuffer *pBuf
)

Chame quando uma solicitação de gravação do GATT for recebida.

Init

BLE_ERROR Init(
  BlePlatformDelegate *platformDelegate,
  BleApplicationDelegate *appDelegate,
  Weave::System::Layer *systemLayer
)

NewBleEndPoint

BLE_ERROR NewBleEndPoint(
  BLEEndPoint **retEndPoint,
  BLE_CONNECTION_OBJECT connObj,
  BleRole role,
  bool autoClose
)

ScheduleWork

nl::Weave::System::Error ScheduleWork(
  nl::Weave::System::Layer::TimerCompleteFunct aComplete,
  void *aAppState
)

Funções da interface da plataforma:

Convenções de chamada: o Weave assume a propriedade dos pacotesBuffers recebidos por essas funções e os libera ou passa a propriedade para a pilha.

Além de cada chamada, não são fornecidas garantias em relação ao ciclo de vida dos argumentos UUID.

Um valor de retorno "verdadeiro" significa que a pilha Weave processou a mensagem ou a indicação de estado correspondente. "falso" significa que a pilha Weave falhou ou escolheu não lidar com isso. Caso seja "false", a pilha Weave não terá liberado ou assumir a propriedade de nenhum argumento PackageBuffer. Este contrato permite que a plataforma transmita eventos de BLE ao Weave sem precisar saber quais características são importantes para ele.

A plataforma precisa chamar essa função quando uma assinatura GATT tiver sido estabelecida para qualquer característica do serviço Weave.

Se a função retornar verdadeiro, isso significa que o Weave aceitou a conexão BLE e a envolveu em um objeto WeaveConnection. Se o Weave aceitar uma conexão BLE, a plataforma PRECISA notificar o Weave se a assinatura for cancelada ou se a conexão BLE subjacente for encerrada. Caso contrário, o WeaveConnection associado nunca será encerrado ou liberado.

Desligamento

BLE_ERROR Shutdown(
  void
)