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)
|
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 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.