nl :: Ble :: BleLayer
#include <src/ble/BleLayer.h>
Esta classe fornece uma interface para um único thread para direcionar dados tanto para cima na pilha por meio das funções de interface da plataforma BleLayer , quanto para baixo na pilha por meio de um objeto WeaveConnection associado a um BLEEndPoint .
Resumo
Existem 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 específico da plataforma que esse recibo gera para o BleLayer por meio da função de interface de plataforma correspondente. Isso faz com que o BleLayer envolva o BLE_CONNECTION_OBJECT em um BLEEndPoint e notifique o WeaveMessageLayer de que uma nova conexão BLE foi recebida. A camada de mensagem então envolve o novo objeto BLEEndPoint em um WeaveConnection e entrega esse objeto ao aplicativo por meio do retorno de chamada OnConnectionReceived da camada de mensagem.
Em segundo lugar, o aplicativo pode formar ativamente uma conexão BLE de saída, por exemplo, conectando-se a um periférico BLE. Em seguida, ele cria uma nova WeaveConnection por meio de WeaveMessageLayer, atribui um tipo de autenticação a essa conexão e a vincula a BLE_CONNECTION_OBJECT para a nova conexão BLE por meio de WeaveConnection :: ConnectBle. Essa função então estabelece o tipo de sessão segura especificado pela variável de membro do tipo de autenticação do WeaveConnection.
Herança
Subclasses diretamente conhecidas: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 [READ-ONLY] 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 pendente do GATT receber uma confirmação de recebimento positiva. |
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 GATT for recebida. |
HandleSubscribeComplete ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId) | bool Chame quando uma solicitação de assinatura do 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 assinatura 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 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 de 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
[READ-ONLY] 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 pendente do GATT receber uma confirmação de recebimento positiva.
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 GATT for recebida.
A plataforma deve chamar esta função quando qualquer operação anterior realizada pelo BleLayer via BleAdapter falhar, como uma solicitação de gravação de característica ou tentativa de assinatura, ou quando uma conexão BLE for fechada.
Na maioria dos casos, isso solicitará que o Weave feche o WeaveConnection associado e notifique essa plataforma de que abandonou a conexão BLE subjacente.
NOTA: se o aplicativo fecha explicitamente uma conexão BLE com um WeaveConnection associado de forma que o fechamento da conexão BLE não gere um upcall para Weave, HandleConnectionError deve ser chamado com err = BLE_ERROR_APP_CLOSED_CONNECTION para evitar o vazamento deste WeaveConnection e seu objeto de ponto final.
HandleSubscribeComplete
bool HandleSubscribeComplete( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId )
Chame quando uma solicitação de assinatura do GATT for bem-sucedida.
A plataforma deve chamar esta função quando um cancelamento de assinatura do GATT é solicitado em qualquer característica do serviço Weave, ou seja, quando uma assinatura existente do GATT 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 assinatura 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 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.
Iniciar
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 de interface da plataforma:
Convenções de chamada: Weave assume a propriedade dos PacketBuffers recebidos por meio dessas funções e os liberará ou passará a propriedade para cima na pilha.
Além de cada chamada, nenhuma garantia é fornecida quanto ao tempo de vida dos argumentos UUID.
Um valor de retorno 'verdadeiro' significa que a pilha do Weave tratou com sucesso a mensagem ou indicação de estado correspondente. 'false' significa que a pilha do Weave falhou ou optou por não lidar com isso. No caso de 'falso', a pilha do Weave não terá liberado ou assumido a propriedade de quaisquer argumentos do PacketBuffer. Este contrato permite que a plataforma passe eventos BLE para a Weave sem precisar saber com quais características a Weave se preocupa.
A plataforma deve chamar esta função quando uma assinatura GATT for estabelecida para qualquer característica do serviço Weave.
Se esta função retornar verdadeiro, o Weave aceitou a conexão BLE e a envolveu em um objeto WeaveConnection. Se a Weave aceitar uma conexão BLE, a plataforma DEVE notificar a Weave se a assinatura for cancelada ou se a conexão BLE subjacente for fechada, ou a WeaveConnection associada nunca será fechada ou liberada.
Desligar
BLE_ERROR Shutdown( void )