nl :: Ble :: BleLayer
#include <src/ble/BleLayer.h>
Esta classe fornece uma interface para um único fio para conduzir dados, quer para cima da pilha através dos BleLayer funções interface da plataforma, ou para baixo da pilha por meio de um objecto associado com um WeaveConnection BLEEndPoint .
Resumo
Existem duas maneiras de associar um WeaveConnection (definido pelo WeaveMessageLayer) a uma conexão BLE:
Em primeiro lugar, a aplicação pode passivamente receber uma ligação de entrada e BLE entregar o BLE_CONNECTION_OBJECT específico da plataforma que este gera a recepção BleLayer através da função de interface de plataforma correspondente. Isso faz com que BleLayer para embrulhar o BLE_CONNECTION_OBJECT em um BLEEndPoint , e notificar WeaveMessageLayer que um novo conneciotn BLE foi recebido. A camada de mensagem, em seguida, envolve o novo BLEEndPoint objeto em um WeaveConnection, e as mãos esse objeto para a aplicação via callback 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 um novo WeaveConnection por meio de WeaveMessageLayer, atribui um tipo de autenticação a essa conexão e o vincula ao 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 [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 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 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 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
[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 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.
Plataforma deve chamar esta função quando qualquer operação anterior realizada pelo BleLayer via BleAdapter falhar, como um pedido de gravação característica ou subscrever tentativa, ou quando uma conexão BLE está fechado.
Na maioria dos casos, isso fará com 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 o 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 inscrição 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 êxito 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 a necessidade de 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 )