nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Essa classe fornece uma interface para uma única linha de execução a fim de impulsionar os dados para cima da pilha por meio das funções de interface da plataforma BleLayer ou para baixo da pilha por meio de um objeto WeaveConnection associado a um BLEEndPoint.

Resumo

Há duas maneiras de associar uma WeaveConnection (definida 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 específico da plataforma que esse recibo gera para a BleLayer por meio da função da interface de plataforma correspondente. Isso faz com que o BleLayer una o BLE_CONNECTION_OBJECT em um BLEEndPoint e notifica o WeaveMessageLayer de que um novo conexão de BLE foi recebido. Em seguida, a camada de mensagens une o novo objeto BLEEndPoint em um WeaveConnection e o entrega ao aplicativo por meio do callback OnConnectionReceived da camada da mensagem.

Em segundo lugar, o aplicativo pode formar ativamente uma conexão BLE de saída, por exemplo, ao se conectar a um periférico BLE. Em seguida, ele cria um novo WeaveConnection pelo WeaveMessageLayer, atribui um tipo de autenticação a essa conexão e o vincula ao BLE_CONNECTION_OBJECT para a nova conexão BLE via WeaveConnection::ConnectBle. Essa função estabelece o tipo de sessão segura especificado pela variável de membro do 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 destruidores

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 de recebimento positiva.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Chame 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 GATT for recebida.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Chame quando uma solicitação de inscrição 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 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
Chame quando uma solicitação de gravação GATT pendente receber 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 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 de recebimento positiva.

HandleIndicationReceived

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

Chame 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 GATT for recebida.

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

Na maioria dos casos, isso fará com que o Weave feche a WeaveConnection associada e notifique a plataforma de que 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 uma chamada de 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 ponto final.

HandleSubscribeComplete

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

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

A plataforma precisa chamar essa função quando um cancelamento de inscrição GATT é solicitado em qualquer característica do serviço do Weave, ou seja, quando uma assinatura GATT existente em uma característica desse serviço é 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 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
)

Chame quando uma solicitação de gravação GATT pendente receber 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 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 se apropria dos PackageBuffers recebidos por essas funções e os libera ou transmite a propriedade para a pilha.

Além de cada chamada, nenhuma garantia é fornecida quanto ao ciclo de vida dos argumentos UUID.

Um "true" valor de retorno significa que a pilha do Weave manipulou com êxito a mensagem ou a indicação de estado correspondente. "falso" significa que a pilha do Weave falhou ou escolheu não lidar com isso. No caso de "false", a pilha do Weave não terá liberado ou assumido a propriedade de nenhum argumento PackageBuffer. Esse contrato permite que a plataforma transmita eventos BLE para o Weave sem precisar saber com quais características o Weave se preocupa.

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

Se essa função retornar verdadeiro, o Weave aceitou a conexão BLE e a uniu em um objeto WeaveConnection. Se o Weave aceitar uma conexão BLE, a plataforma PRECISA notificar o Weave caso a assinatura seja cancelada, a conexão BLE subjacente seja fechada, ou a WeaveConnection associada nunca será encerrada ou liberada.

Encerramento

BLE_ERROR Shutdown(
  void
)