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