nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

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

Riepilogo

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

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

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

Eredità

Sottoclassi note direttamente:
  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
Chiama 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
Chiama quando viene ricevuta un'indicazione GATT.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Chiama quando viene ricevuta una richiesta di lettura GATT.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Chiama quando una richiesta di abbonamento al 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
Chiama quando una richiesta di annullamento dell'iscrizione da 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
Chiama 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
Chiama quando viene ricevuta 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 dell'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
)

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

Chiama quando viene ricevuta un'indicazione GATT.

HandleReadReceived

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

Chiama quando viene ricevuta una richiesta di lettura GATT.

La piattaforma deve chiamare questa funzione quando qualsiasi operazione precedente eseguita dal BleLayer tramite BleAdapter non riesce, ad esempio una caratteristica richiesta di scrittura o un tentativo di abbonamento, oppure quando viene chiusa una connessione BLE.

Nella maggior parte dei casi, in questo modo Weave chiuderà la WeaveConnection associata e comunicherà 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, HandleConnectionError deve essere chiamato con err = BLE_ERROR_APP_CLOSED_CONNECTION per evitare la perdita di questa WeaveConnection e del suo oggetto del punto di arrivo.

HandleSubscribeComplete

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

Chiama quando una richiesta di abbonamento al GATT ha esito positivo.

La piattaforma deve richiamare questa funzione quando viene richiesta l'annullamento dell'iscrizione al GATT per qualsiasi caratteristica del servizio Weave, ovvero quando un abbonamento GATT esistente a 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
)

Chiama quando una richiesta di annullamento dell'iscrizione da 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
)

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

Chiama quando viene ricevuta una richiesta di scrittura GATT.

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
)

Funzioni dell'interfaccia della piattaforma:

Convenzioni di chiamata: Weave acquisisce la proprietà dei PacketBuffer ricevuti attraverso queste funzioni e li libera o trasferirà la proprietà dello stack.

Dopo ogni chiamata, non vengono fornite garanzie per la durata degli argomenti UUID.

Un valore "true" significa che lo stack Weave ha gestito correttamente il messaggio o l'indicazione di stato corrispondente. "false" significa che lo stack Weave non è riuscito o ha scelto di non gestirlo. In caso di valore "false", lo stack Weave non avrà liberato o acquisito la proprietà di alcun argomento PacketBuffer. Questo contratto consente alla piattaforma di trasmettere eventi BLE a Weave senza dover sapere quali caratteristiche sono di interesse per Weave.

La piattaforma deve richiamare questa funzione dopo aver sottoscritto un abbonamento al GATT per qualsiasi caratteristica del servizio Weave.

Se questa funzione restituisce true, Weave ha accettato la connessione BLE e l'ha sottoposta a wrapping 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 la WeaveConnection associata non verrà mai chiusa né liberata.

Arresto

BLE_ERROR Shutdown(
  void
)