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)
|
typedefvoid(*
|
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.