nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Questa classe fornisce un'interfaccia per un singolo thread per trasferire i dati dallo stack tramite le funzioni di interfaccia della piattaforma BleLayer o dallo stack tramite un oggetto WeaveConnection associato a BLEEndPoint.

Riepilogo

Esistono due modi per associare una WeaveConnection (definita da WeaveMessagelayer) a una connessione BLE:

Innanzitutto, l'applicazione può ricevere passivamente una connessione BLE in entrata e passare il BLE_CONNECTION_OBJECT specifico della piattaforma che questa ricevuta genera a BleLayer tramite la funzione di interfaccia della piattaforma corrispondente. In questo modo BleLayer aggrega il BLE_CONNECTION_OBJECT a un BLEEndPoint e notifica a WeaveMessageLayer che è stata ricevuta una nuova connessione BLE. Il livello messaggio aggrega quindi il nuovo oggetto BLEEndPoint in una WeaveConnection e passa l'oggetto all'applicazione tramite il callback OnConnectionReceived del livello messaggio.

In secondo luogo, l'applicazione può creare attivamente una connessione BLE in uscita, ad esempio collegandosi a una periferica BLE. Quindi crea una nuova connessione WeaveConnection tramite WeaveMessageLayer, assegna un tipo di autenticazione a questa connessione e lo associa a BLE_CONNECTION_OBJECT per la nuova connessione BLE tramite WeaveConnection::ConnectBle. Questa funzione stabilisce quindi il tipo di sessione protetta specificato dalla variabile membro del tipo di autenticazione WeaveConnection.

Eredità

Sottoclassi note dirette:
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl

Costruttori e distruttori

BleLayer(void)

Tipi pubblici

@14 enum
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint) typedef
void(*

Attributi pubblici

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[SOLA LETTURA] Stato attuale

Funzioni pubbliche

HandleConnectionError(BLE_CONNECTION_OBJECT connObj, BLE_ERROR err)
void
HandleIndicationConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Chiamata quando un'indicazione GATT in sospeso riceve una conferma di ricezione positiva.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Chiamata quando viene ricevuta un'indicazione GATT.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Chiamata alla ricezione di una richiesta di lettura GATT.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Chiamata quando una richiesta di iscrizione GATT ha esito positivo.
HandleSubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleUnsubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Chiamata quando una richiesta di annullamento dell'iscrizione GATT ha esito positivo.
HandleUnsubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleWriteConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Chiamata quando una richiesta di scrittura GATT in sospeso riceve una conferma di ricezione positiva.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Chiamata alla ricezione di una richiesta di scrittura GATT.
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
Funzioni di interfaccia della piattaforma:
Shutdown(void)

Tipi pubblici

@14

 @14

BleConnectionReceivedFunct

void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)

Attributi pubblici

OnWeaveBleConnectReceived

BleConnectionReceivedFunct OnWeaveBleConnectReceived

mAppState

void * mAppState

mState

enum nl::Ble::BleLayer::@14 mState

[SOLA LETTURA] Stato attuale

Funzioni pubbliche

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
)

Chiamata quando un'indicazione GATT in sospeso riceve una conferma di ricezione positiva.

HandleIndicationReceived

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

Chiamata quando viene ricevuta un'indicazione GATT.

HandleReadReceived

bool HandleReadReceived(
  BLE_CONNECTION_OBJECT connObj,
  BLE_READ_REQUEST_CONTEXT requestContext,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId
)

Chiamata alla ricezione di una richiesta di lettura GATT.

La piattaforma deve chiamare questa funzione quando qualsiasi operazione precedente eseguita da BleLayer tramite BleAdapter non va a buon fine, ad esempio una richiesta di scrittura di una caratteristica o un tentativo di sottoscrizione oppure quando viene chiusa una connessione BLE.

Nella maggior parte dei casi, in questo modo verrà chiesto a Weave di chiudere la WeaveConnection associata e di notifica alla piattaforma che ha abbandonato la connessione BLE sottostante.

NOTA: se l'applicazione chiude esplicitamente una connessione BLE con una WeaveConnection associata, in modo che la chiusura della connessione BLE non generi un upcall a Weave, è necessario chiamare HandleConnectionError con err = BLE_ERROR_APP_CLOSED_CONNECTION per evitare la perdita di questa WeaveConnection e del relativo oggetto endpoint.

HandleSubscribeComplete

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

Chiamata quando una richiesta di iscrizione GATT ha esito positivo.

La piattaforma deve chiamare questa funzione quando viene richiesta un'annullamento dell'iscrizione GATT per una qualsiasi caratteristica del servizio Weave, ovvero quando un abbonamento GATT esistente su una caratteristica del servizio Weave viene annullato.

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
)

Chiamata quando una richiesta di annullamento dell'iscrizione GATT ha esito positivo.

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
)

Chiamata quando una richiesta di scrittura GATT in sospeso riceve una conferma di ricezione positiva.

HandleWriteReceived

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

Chiamata alla ricezione di una richiesta di scrittura GATT.

Inizia

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
)

Funzioni di interfaccia della piattaforma:

Convenzioni di chiamata: Weave assume la proprietà dei PacketBuffer ricevuti tramite queste funzioni e le libera o passa la proprietà dello stack.

Al di fuori di ogni chiamata, non viene fornita alcuna garanzia sulla durata degli argomenti UUID.

Un valore restituito "true" indica che lo stack Weave ha gestito correttamente il messaggio o l'indicazione di stato corrispondente. "false" indica che lo stack Weave ha avuto esito negativo o che ha scelto di non gestire questa situazione. Nel caso di "false", lo stack Weave non avrà liberato né preso la proprietà di alcun argomento PacketBuffer. Questo contratto consente alla piattaforma di trasmettere gli eventi BLE a Weave senza dover conoscere le caratteristiche che interessano Weave.

La piattaforma deve chiamare questa funzione quando è stato creato un abbonamento GATT per qualsiasi caratteristica del servizio Weave.

Se questa funzione restituisce true, Weave ha accettato la connessione BLE e l'ha aggregata in un oggetto WeaveConnection. Se Weave accetta una connessione BLE, la piattaforma DEVE inviare una notifica a Weave se l'abbonamento viene annullato o se la connessione BLE sottostante viene chiusa, oppure se la connessione WeaveConnection associata non verrà mai chiusa o liberata.

Arresto

BLE_ERROR Shutdown(
  void
)