nl:: Ble:: BleLayer
#include <src/ble/BleLayer.h>
Diese Klasse bietet eine Schnittstelle für einen einzelnen Thread, um Daten entweder über die Funktionen der BleLayer-Plattform nach oben oder über ein WeaveConnection-Objekt, das mit einem BLEEndPoint verknüpft ist, in den Stack nach oben zu treiben.
Zusammenfassung
Es gibt zwei Möglichkeiten, eine WeaveConnection (definiert durch WeaveMessageLayer) mit einer BLE-Verbindung zu verknüpfen:
Erstens kann die Anwendung passiv eine eingehende BLE-Verbindung empfangen und das plattformspezifische BLE_CONNECTION_OBJECT, das dieser Empfang generiert, über die entsprechende Plattformschnittstellenfunktion an BleLayer übergeben. Dies führt dazu, dass BleLayer das BLE_CONNECTION_OBJECT in einen BLEEndPoint zusammenfasst und WeaveMessageLayer darüber benachrichtigt, dass ein neuer BLE-Kontakt empfangen wurde. Die Nachrichtenebene umschließt dann das neue BLEEndPoint-Objekt in einer WeaveConnection und übergibt es der Anwendung über den OnConnectionReceived-Callback der Nachrichtenebene.
Zweitens kann die Anwendung aktiv eine ausgehende BLE-Verbindung herstellen, z.B. über eine Verbindung zu einem BLE-Peripheriegerät. Anschließend erstellt sie über WeaveMessageLayer eine neue WeaveConnection, weist dieser Verbindung einen Authentifizierungstyp zu und bindet sie über WeaveConnection::ConnectBle an das BLE_CONNECTION_OBJECT für die neue BLE-Verbindung. Diese Funktion bestimmt dann den Typ der sicheren Sitzung, der durch die Member-Variable des Authentifizierungstyps von WeaveConnection angegeben wird.
Übernahme
Direkte bekannte abgeleitete Klassen:nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
Konstruktoren und Zerstörer |
|
---|---|
BleLayer(void)
|
Öffentliche Typen |
|
---|---|
@14
|
enum |
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)
|
typedef.void(*
|
Öffentliche Attribute |
|
---|---|
OnWeaveBleConnectReceived
|
BleConnectionReceivedFunct
|
mAppState
|
void *
|
mState
|
enum nl::Ble::BleLayer::@14
[READ-ONLY] Aktueller Status
|
Öffentliche Funktionen |
|
---|---|
HandleConnectionError(BLE_CONNECTION_OBJECT connObj, BLE_ERROR err)
|
void
|
HandleIndicationConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
Rufen Sie an, wenn eine ausstehende GATT-Anzeige eine positive Empfangsbestätigung erhält.
|
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
|
bool
Rufen Sie an, wenn eine GATT-Anzeige eingeht.
|
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
Rufen Sie auf, wenn eine GATT-Leseanfrage eingeht.
|
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
Aufrufen, wenn eine GATT-Aboanfrage erfolgreich war.
|
HandleSubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
|
HandleUnsubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
Rufen Sie auf, wenn eine GATT-Abmeldeanfrage erfolgreich war.
|
HandleUnsubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
|
HandleWriteConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
Aufruf, wenn eine ausstehende GATT-Schreibanfrage eine positive Empfangsbestätigung erhält
|
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
|
bool
Rufen Sie auf, wenn eine GATT-Schreibanfrage eingeht.
|
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
Funktionen der Plattformoberfläche:
|
Shutdown(void)
|
Öffentliche Typen
@14
@14
BleConnectionReceivedFunct
void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)
Öffentliche Attribute
OnWeaveBleConnectReceived
BleConnectionReceivedFunct OnWeaveBleConnectReceived
mAppState
void * mAppState
mState
enum nl::Ble::BleLayer::@14 mState
[READ-ONLY] Aktueller Status
Öffentliche Funktionen
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 )
Rufen Sie an, wenn eine ausstehende GATT-Anzeige eine positive Empfangsbestätigung erhält.
HandleIndicationReceived
bool HandleIndicationReceived( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf )
Rufen Sie an, wenn eine GATT-Anzeige eingeht.
HandleReadReceived
bool HandleReadReceived( BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId )
Rufen Sie auf, wenn eine GATT-Leseanfrage eingeht.
Die Plattform muss diese Funktion aufrufen, wenn ein vorheriger Vorgang, der vom BleLayer über BleAdapter ausgeführt wurde, fehlschlägt, z. B. eine charakteristische Schreibanfrage oder einen Aboversuch, oder wenn eine BLE-Verbindung geschlossen wird.
In den meisten Fällen wird Weave dann aufgefordert, die zugehörige WeaveConnection zu schließen, und die Plattform wird benachrichtigt, dass die zugrunde liegende BLE-Verbindung getrennt wurde.
HINWEIS: Wenn die Anwendung eine BLE-Verbindung mit einer zugehörigen WeaveConnection explizit schließt, sodass beim Schließen der BLE-Verbindung kein Upcall für Weave generiert wird, muss HandleConnectionError mit err = BLE_ERROR_APP_CLOSED_CONNECTION aufgerufen werden, um das Datenleck zwischen WeaveConnection und seinem Endpunktobjekt zu verhindern.
HandleSubscribeComplete
bool HandleSubscribeComplete( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId )
Aufrufen, wenn eine GATT-Aboanfrage erfolgreich war.
Die Plattform muss diese Funktion aufrufen, wenn ein GATT-Abo für ein Weave-Dienstmerkmal angefordert wird, d. h. wenn ein bestehendes GATT-Abo für ein Weave-Dienstmerkmal gekündigt wird.
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 )
Rufen Sie auf, wenn eine GATT-Abmeldeanfrage erfolgreich war.
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 )
Aufruf, wenn eine ausstehende GATT-Schreibanfrage eine positive Empfangsbestätigung erhält
HandleWriteReceived
bool HandleWriteReceived( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf )
Rufen Sie auf, wenn eine GATT-Schreibanfrage eingeht.
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 )
Funktionen der Plattformoberfläche:
Aufrufkonventionen: Weave übernimmt die Eigentümerschaft für PacketBuffers, die über diese Funktionen empfangen wurden, und gibt sie kostenlos oder gibt die Eigentümerschaft an den Stapel weiter.
Nach jedem Aufruf wird die Lebensdauer von UUID-Argumenten nicht garantiert.
Ein „wahr“ Rückgabewert bedeutet, dass der Weave-Stack die entsprechende Nachricht oder Statusanzeige erfolgreich verarbeitet hat. „false“ bedeutet, dass der Weave-Stack entweder fehlgeschlagen ist oder sich dafür entschieden hat, dies nicht zu verarbeiten. Bei „false“ Der Weave-Stack hat keine PacketBuffer-Argumente freigegeben oder die Inhaberschaft dafür übernommen. Durch diesen Vertrag kann die Plattform BLE-Ereignisse an Weave übergeben, ohne wissen zu müssen, welche Eigenschaften Weave wichtig sind.
Die Plattform muss diese Funktion aufrufen, wenn ein GATT-Abo für eine Weave-Diensteigenschaft abgeschlossen wurde.
Wenn diese Funktion den Wert „true“ zurückgibt, hat Weave die BLE-Verbindung akzeptiert und in ein WeaveConnection-Objekt eingebunden. Wenn Weave eine BLE-Verbindung akzeptiert, muss die Plattform Weave benachrichtigen, wenn das Abo gekündigt oder die zugrunde liegende BLE-Verbindung beendet wird. Andernfalls wird die zugehörige WeaveConnection nie geschlossen oder freigegeben.