Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Diese Klasse bietet eine Schnittstelle für einen einzelnen Thread, über die Daten entweder über die Schnittstellenfunktionen der Plattform BleLayer oder über ein WeaveConnection-Objekt, das mit einem BLEEndPoint verknüpft ist, nach unten geleitet werden.

Fazit

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 diesen Beleg generiert, über die entsprechende Plattformschnittstelle an BleLayer übergeben. Dadurch wird BleLayer von BLE_CONNECTION_OBJECT in BLEEndPoint umschlossen und WeaveMessageLayer benachrichtigt, dass eine neue BLE-Verbindung empfangen wurde. Die Nachrichtenebene umfasst dann das neue BLEEndPoint-Objekt in einem WeaveConnection und übergibt das Objekt über die Nachrichtenebene „OnConnectionReceived“ an die Anwendung.

Alternativ kann die Anwendung eine ausgehende BLE-Verbindung aufbauen, z.B. durch die Verbindung mit einem BLE-Peripheriegerät. Anschließend wird eine neue WeaveConnection über WeaveMessageLayer erstellt, dieser Verbindung ein Authentifizierungstyp zugewiesen und diese über die WeaveConnection::ConnectBle an die BLE_CONNECTION_OBJECT gewonnen. Mit dieser Funktion wird dann die sichere Sitzungsart festgelegt, die durch die Mitgliedsvariable des WeaveConnection-Authentifizierungstyps angegeben wird.

Übernahme

Direkt bekannte untergeordnete Klassen:
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl

Konstrukteur und Zerstörer

BleLayer(void)

Öffentliche Typen

@14 enum
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint) Typdef
void(*

Öffentliche Attribute

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[schreibgeschützt] 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 auf, wenn eine ausstehende GATT-Anzeige eine positive Belegbestätigung erhält.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Rufen Sie auf, wenn eine GATT-Anzeige empfangen wird.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Rufen Sie auf, wenn eine GATT-Leseanfrage empfangen wird.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Aufruf, 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
Aufruf, 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
Rufen Sie auf, wenn eine ausstehende GATT-Schreibanfrage eine positive Belegbestätigung erhält.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Rufen Sie auf, wenn eine GATT-Schreibanfrage empfangen wird.
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

BleConnectionReceived

void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)

Öffentliche Attribute

OnWeaveBleConnectReceived

BleConnectionReceivedFunct OnWeaveBleConnectReceived

Mobile AppState

void * mAppState

MState

enum nl::Ble::BleLayer::@14 mState

[schreibgeschützt] Aktueller Status

Öffentliche Funktionen

Blutschicht

 BleLayer(
  void
)

HandleConnectionError

void HandleConnectionError(
  BLE_CONNECTION_OBJECT connObj,
  BLE_ERROR err
)

AliasIndicationConfirmation

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

Rufen Sie auf, wenn eine ausstehende GATT-Anzeige eine positive Belegbestätigung erhält.

HandleIndicationReceived

bool HandleIndicationReceived(
  BLE_CONNECTION_OBJECT connObj,
  const WeaveBleUUID *svcId,
  const WeaveBleUUID *charId,
  PacketBuffer *pBuf
)

Rufen Sie auf, wenn eine GATT-Anzeige empfangen wird.

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 empfangen wird.

Die Plattform muss diese Funktion aufrufen, wenn ein zuvor von BleLayer über BleAdapter ausgeführter Vorgang fehlschlägt, z. B. eine charakteristische Schreibanfrage oder ein Aboversuch oder wenn eine BLE-Verbindung geschlossen wird.

In den meisten Fällen wird Weave 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 mit einer verknüpften WeaveConnection so schließt, dass das Schließen der BLE-Verbindung keinen Weave-Aufruf auslöst, muss „HandleConnectionError“ mit „err = BLE_ERROR_APP_CLOSED_CONNECTION“ aufgerufen werden. So wird das Leck von WeaveConnection und das zugehörige Endpunktobjekt verhindert.

AbonnierenAbonnieren

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

Aufruf, wenn eine GATT-Aboanfrage erfolgreich war.

Die Plattform muss diese Funktion aufrufen, wenn ein GATT-Abzug für eine Weave-Dienstfunktion angefordert wird, d. h., wenn ein vorhandenes GATT-Abo für ein Weave-Dienstmerkmal storniert wird.

Abonnieren/Empfangen empfangen

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

Aliasabschließen

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

Aufruf, wenn eine GATT-Abmeldeanfrage erfolgreich war.

Umgang mit E-Mails empfangen

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

Alias der Alias-Bestätigung

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

Rufen Sie auf, wenn eine ausstehende GATT-Schreibanfrage eine positive Belegbestä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 empfangen wird.

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
)

Planungsarbeit

nl::Weave::System::Error ScheduleWork(
  nl::Weave::System::Layer::TimerCompleteFunct aComplete,
  void *aAppState
)

Funktionen der Plattformoberfläche:

Konventionen für Aufrufe: Weave übernimmt die Inhaberschaft für die über diese Funktionen empfangenen Paketzwischenspeicher und gibt sie frei oder übergibt die Inhaberschaft an den Stack.

Abgesehen von den Aufrufen gibt es keine Garantien für die Lebensdauer von UUID-Argumenten.

&'true' Rückgabewert bedeutet, dass der Weave-Stack erfolgreich die entsprechende Meldung oder Statusanzeige verarbeitet hat. 'false' bedeutet, dass der Weave-Stack fehlgeschlagen ist oder sich nicht dafür entschieden hat. Für den Weave-Stack hat kein PacketBuffer-Argument freigegeben oder übernommen. Dieser Vertrag erlaubt es der Plattform, BLE-Ereignisse an Weave zu übergeben, ohne zu wissen, welche Merkmale das Weben betrifft.

Die Plattform muss diese Funktion aufrufen, wenn für eine Weave-Dienstkampagne 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 wird oder die zugrunde liegende BLE-Verbindung geschlossen wird. Andernfalls ist die zugehörige WeaveConnection niemals geschlossen oder freigegeben.

Heruntergefahren

BLE_ERROR Shutdown(
  void
)