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.

Herunterfahren

BLE_ERROR Shutdown(
  void
)