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)
|
typedefvoid(*
|
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.