nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Ta klasa udostępnia interfejs pojedynczego wątku do kierowania danych w górę stosu za pomocą funkcji interfejsu platformy BleLayer lub w dół stosu za pomocą obiektu WeaveConnection powiązanego z BLEEndPoint.

Podsumowanie

Istnieją 2 sposoby powiązania WeaveConnection (zdefiniowane za pomocą WeaveMessageLayer) z połączeniem BLE:

Pierwsza aplikacja może pasywnie odebrać przychodzące połączenie BLE i przekazać powiązany z platformą BLE_CONNECTION_OBJECT, który ten rachunek generuje ten rachunek, do BleLayer przez odpowiednią funkcję interfejsu platformy. Powoduje to, że obiekt BleLayer pakuje obiekt BLE_CONNECTION_OBJECT w obiekt BLEEndPoint i wysyła powiadomienie WeaveMessageLayer o odebraniu nowego połączenia BLE. Warstwa wiadomości opakowuje nowy obiekt BLEEndPoint w elemencie WeaveConnection i przekazuje ten obiekt aplikacji za pomocą wywołania zwrotnego OnConnectionReceived w warstwie wiadomości.

Poza tym aplikacja może aktywnie tworzyć wychodzące połączenia BLE, np. przez połączenie z urządzeniem peryferyjnym BLE. Następnie tworzy nowe połączenie WeaveConnection za pomocą WeaveMessageLayer, przypisuje do tego połączenia typ uwierzytelniania i przypisuje je do BLE_CONNECTION_OBJECT dla nowego połączenia BLE przez WeaveConnection::ConnectBle. Ta funkcja określa typ bezpiecznej sesji określony przez zmienną typu uwierzytelniania WeaveConnection.

Dziedziczenie

Bezpośrednie znane podklasy:
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl

Konstruktorzy i niszczyciele

BleLayer(void)

Typy publiczne

@14 enum | typ wyliczeniowy
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint) typedef
void(*

Atrybuty publiczne

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[TYLKO DO ODCZYTU] Bieżący stan

Funkcje publiczne

HandleConnectionError(BLE_CONNECTION_OBJECT connObj, BLE_ERROR err)
void
HandleIndicationConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Zadzwoń, gdy pojawi się komunikat GATT, który potwierdzi potwierdzenie odbioru.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Zadzwoń po otrzymaniu wskaźnika GATT.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Wywołuje po otrzymaniu żądania odczytu GATT.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Wywołuje, gdy prośba o subskrypcję w GATT zostanie zrealizowana.
HandleSubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleUnsubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Wywołuje po zrealizowaniu prośby o anulowanie subskrypcji GATT.
HandleUnsubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleWriteConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Zadzwoń, gdy oczekująca prośba o wypisanie GATT otrzyma potwierdzenie odbioru.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Wywołuje po otrzymaniu żądania zapisu 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
Funkcje interfejsu platformy:
Shutdown(void)

Typy publiczne

@14

 @14

BleConnectionReceivedFunct

void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)

Atrybuty publiczne

OnWeaveBleConnectReceived

BleConnectionReceivedFunct OnWeaveBleConnectReceived

mAppState

void * mAppState

mState

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

[TYLKO DO ODCZYTU] Bieżący stan

Funkcje publiczne

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
)

Zadzwoń, gdy pojawi się komunikat GATT, który potwierdzi potwierdzenie odbioru.

HandleIndicationReceived

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

Zadzwoń po otrzymaniu wskaźnika GATT.

HandleReadReceived

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

Wywołuje po otrzymaniu żądania odczytu GATT.

Platforma musi wywoływać tę funkcję, gdy jakakolwiek wcześniejsza operacja wykonana przez BleLayer za pomocą BleAdaptera zawiedzie, na przykład w wyniku żądania charakterystycznego zapisu, próby subskrypcji lub gdy połączenie BLE zostanie zamknięte.

W większości przypadków spowoduje to zamknięcie powiązanej z nią platformy WeaveConnection i powiadomienie platformy, że porzuciła połączenie BLE.

UWAGA: jeśli aplikacja wyraźnie zamyka połączenie BLE z powiązanym kanałem WeaveConnection w taki sposób, że zamknięcie połączenia BLE nie spowoduje wywołania wywołania Weave, metoda HandleConnectionError musi być wywoływana z błędem = BLE_ERROR_APP_CLOSED_CONNECTION, aby zapobiec wyciekowi tego połączenia WeaveConnection i jego obiektu punktu końcowego.

HandleSubscribeComplete

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

Wywołuje, gdy prośba o subskrypcję w GATT zostanie zrealizowana.

Platforma musi wywoływać tę funkcję, gdy zostanie wysłane żądanie anulowania subskrypcji GATT w przypadku dowolnej cechy usługi Weave, czyli w przypadku anulowania dotychczasowej subskrypcji GATT w obrębie cechy usługi Weave.

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
)

Wywołuje po zrealizowaniu prośby o anulowanie subskrypcji GATT.

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
)

Zadzwoń, gdy oczekująca prośba o wypisanie GATT otrzyma potwierdzenie odbioru.

HandleWriteReceived

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

Wywołuje po otrzymaniu żądania zapisu GATT.

Zainicjuj

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
)

Funkcje interfejsu platformy:

Konwencje wywoływania: Weave przejmuje własność buforów pakietów otrzymanych za pomocą tych funkcji i uwalnia je lub przekazuje prawo własności do stosu.

Oprócz każdego wywołania nie ma gwarancji co do okresu ważności argumentów UUID.

Zwracana wartość „true” oznacza, że stos Weave prawidłowo obsługiwał odpowiedni komunikat lub informację o stanie. Wartość „false” (fałsz) oznacza, że stos Weave zakończył się niepowodzeniem lub nie został przeprowadzony. W przypadku wartości „false” (fałsz) stos Weave nie zwolni żadnego argumentu PacketBuffer ani nie przejmie prawa własności do niego. Dzięki niej platforma może przekazywać zdarzenia BLE do Weave bez konieczności wiedzy o tym, na jakich cechach Weave zależy.

Platforma musi wywołać tę funkcję po ustanowieniu subskrypcji GATT na potrzeby dowolnej cechy usługi Weave.

Jeśli ta funkcja zwraca wartość „true” (prawda), aplikacja Weave zaakceptowała połączenie BLE i umieściła je w obiekcie WeaveConnection. Jeśli Weave akceptuje połączenie BLE, platforma MUSI powiadomić Weave o anulowaniu subskrypcji lub zamknięciu bazowego połączenia BLE. Dodatkowo powiązane połączenie WeaveConnection nigdy nie zostanie zamknięte ani uwolnione.

Wyłączono

BLE_ERROR Shutdown(
  void
)