nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Diese Klasse bietet eine Schnittstelle für einen einzelnen Thread, um Daten entweder über die BleLayer-Plattformfunktionen oder über ein WeaveConnection-Objekt, das mit einem BLEEndPoint verknüpft ist, im Stack nach oben zu verschieben.

Zusammenfassung

Es gibt zwei Möglichkeiten, eine WeaveConnection (definiert durch die 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 Beleg generiert, über die entsprechende Plattformschnittstellenfunktion an BleLayer übergeben. Dies bewirkt, dass BleLayer BLE_CONNECTION_OBJECT in einem BLEEndPoint umschließt und WeaveMessageLayer darüber informiert, dass eine neue BLE-Verbindung eingegangen ist. Die Nachrichtenebene schließt dann das neue BLEEndPoint-Objekt in eine WeaveConnection ein und übergibt dieses Objekt über den OnConnectionReceived-Callback der Anwendung an die Anwendung.

Zweitens kann die Anwendung aktiv eine ausgehende BLE-Verbindung herstellen, z.B. durch eine Verbindung zu einem BLE-Peripheriegerät. Anschließend erstellt sie über die WeaveMessageLayer eine neue WeaveConnection, weist dieser Verbindung einen Authentifizierungstyp zu und bindet sie über WeaveConnection::ConnectBle an BLE_CONNECTION_OBJECT für die neue BLE-Verbindung. Diese Funktion richtet dann den sicheren Sitzungstyp ein, der von der Member-Variable des Authentifizierungstyps der WeaveConnection angegeben wird.

Übernahme

Direkte bekannte Unterklassen:
  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 ein offener GATT-Hinweis 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-Meldung empfangen wird.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Aufruf, wenn eine GATT-Leseanfrage eingeht.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Aufruf, wenn eine GATT-Aboanfrage erfolgreich ist
HandleSubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleUnsubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Aufruf, wenn eine GATT-Abmeldung erfolgreich ist.
HandleUnsubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleWriteConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Rufen Sie ihn an, 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 Plattform:
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 ein offener GATT-Hinweis 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-Meldung empfangen wird.

HandleReadReceived

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

Aufruf, wenn eine GATT-Leseanfrage eingeht.

Die Plattform muss diese Funktion aufrufen, wenn eine vorherige Operation, die von BleLayer über BleAdapter ausgeführt wurde (z. B. eine charakteristische Schreibanfrage oder ein Abonnementversuch) fehlschlägt oder wenn eine BLE-Verbindung geschlossen wird.

In den meisten Fällen wird Weave dadurch aufgefordert, die zugehörige WeaveConnection zu schließen und die Plattform darüber zu informieren, dass die zugrunde liegende BLE-Verbindung abgebrochen wurde.

HINWEIS: Wenn die Anwendung eine BLE-Verbindung explizit mit einer zugehörigen WeaveConnection schließt, sodass das Schließen der BLE-Verbindung keinen Upaufruf an Weave generiert, muss HandleConnectionError mit err = BLE_ERROR_APP_CLOSED_CONNECTION aufgerufen werden, um das Datenleck dieser WeaveConnection und ihres Endpunktobjekts zu verhindern.

HandleSubscribeComplete

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

Aufruf, wenn eine GATT-Aboanfrage erfolgreich ist

Die Plattform muss diese Funktion aufrufen, wenn eine GATT-Abmeldung für eine Weave-Diensteigenschaft angefordert wird, d. h. wenn ein bestehendes GATT-Abo für eine Weave-Diensteigenschaft 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
)

Aufruf, wenn eine GATT-Abmeldung erfolgreich ist.

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
)

Rufen Sie ihn an, 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 Plattform:

Aufrufkonventionen: Weave übernimmt die Inhaberschaft der über diese Funktionen empfangenen PacketBuffers und gibt sie kostenlos oder gibt sie an den Stack weiter.

Über jeden Aufruf hinaus wird die Lebensdauer von UUID-Argumenten nicht garantiert.

Der Rückgabewert „true“ bedeutet, dass der Weave-Stack die entsprechende Nachricht oder Statusanzeige erfolgreich verarbeitet hat. „false“ bedeutet, dass der Weave-Stapel entweder fehlgeschlagen ist oder nicht bearbeitet wurde. Bei „false“ hat der Weave-Stack keine PacketBuffer-Argumente freigegeben oder übernommen. Dieser Vertrag ermöglicht es der Plattform, BLE-Ereignisse an Weave weiterzugeben, ohne zu wissen, welche Eigenschaften Weave wichtig sind.

Die Plattform muss diese Funktion aufrufen, wenn für eine Weave-Diensteigenschaft ein GATT-Abo eingerichtet wurde.

Wenn diese Funktion „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 niemals geschlossen oder freigegeben.

Herunterfahren

BLE_ERROR Shutdown(
  void
)