nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Ta klasa udostępnia interfejs pojedynczego wątku do przenoszenia danych w górę stosu przez funkcje interfejsu platformy BleLayer lub przez obiekt WeaveConnection powiązany z punktem BLEEndPoint.

Podsumowanie

Istnieją 2 sposoby powiązania WeaveConnection (zdefiniowanego przez WeaveMessageLayer) z połączeniem BLE:

Po pierwsze, aplikacja może pasywnie odbierać przychodzące połączenie BLE i przez odpowiednią funkcję interfejsu platformy przekazać wygenerowany przez nią obiekt BLE_CONNECTION_OBJECT do BleLayer. W rezultacie BleLayer umieszcza obiekt BLE_CONNECTION_OBJECT w elemencie BLEEndPoint i powiadamia WeaveMessageLayer o otrzymaniu nowego połączenia BLE. Warstwa wiadomości umieszcza następnie nowy obiekt BLEEndPoint w WeaveConnection i przekazuje ten obiekt aplikacji przez wywołanie zwrotne OnConnectionReceived warstwy wiadomości.

Po drugie, aplikacja może aktywnie nawiązywać wychodzące połączenie 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 wiąże go z obiektem BLE_CONNECTION_OBJECT dla nowego połączenia BLE przez WeaveConnection::ConnectBle. Ta funkcja następnie określa typ bezpiecznej sesji określony przez zmienną członkowską typu uwierzytelniania WeaveConnection.

Dziedziczenie

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

Konstruktory 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
Połączenie po otrzymaniu potwierdzenia potwierdzenia w ramach GATT, które nie zostało obciążone.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Połączenie po otrzymaniu sygnału GATT.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Wywołuj po otrzymaniu żądania odczytu GATT.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Wywołuj po pomyślnym przesłaniu żądania subskrypcji GATT.
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łuj po pomyślnym żądaniu anulowania 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
Połączenie telefoniczne, gdy zaległe żądanie zapisu GATT otrzyma pozytywne potwierdzenie.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Wywołuj 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
)

Połączenie po otrzymaniu potwierdzenia potwierdzenia w ramach GATT, które czeka na sprawdzenie.

HandleIndicationReceived

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

Połączenie po otrzymaniu sygnału GATT.

HandleReadReceived

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

Wywołaj po otrzymaniu żądania odczytu GATT.

Platforma musi wywołać tę funkcję, gdy jakakolwiek poprzednia operacja wykonana przez BleLayer za pomocą BleAdapter zakończy się niepowodzeniem, na przykład charakterystyczne żądanie zapisu lub próba subskrypcji, albo gdy połączenie BLE zostanie zamknięte.

W większości przypadków spowoduje to zamknięcie powiązanego połączenia WeaveConnection z platformą Weave i powiadomienie platformy o porzuceniu bazowego połączenia BLE.

UWAGA: jeśli aplikacja wyraźnie zamyka połączenie BLE z powiązanym połączeniem WeaveConnection, tak aby zamknięcie połączenia BLE nie spowodowało wygenerowania wywołania Weave, należy wywołać metodę HandleConnectionError z parametrem err = BLE_ERROR_APP_CLOSED_CONNECTION, aby zapobiec wyciekom połączenia WeaveConnection i jego obiektu punktu końcowego.

HandleSubscribeComplete

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

Wywołuj po pomyślnym przesłaniu żądania subskrypcji GATT.

Platforma musi wywoływać tę funkcję w przypadku żądania anulowania subskrypcji GATT w przypadku dowolnej właściwości usługi Weave, czyli anulowania istniejącej subskrypcji GATT określonego w charakterze 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łuj po pomyślnym żądaniu anulowania 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
)

Połączenie telefoniczne, gdy zaległe żądanie zapisu GATT otrzyma pozytywne potwierdzenie.

HandleWriteReceived

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

Wywołuj po otrzymaniu żądania zapisu GATT.

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
)

Funkcje interfejsu platformy:

Konwencje wywołań: Weave przejmuje własność buforów PacketBuffer otrzymanych za pomocą tych funkcji i zwalnia je lub przekazuje własność stosu.

Po każdym wywołaniu nie ma żadnych gwarancji dotyczących czasu ważności argumentów UUID.

Wartość „true” (prawda) zwracana wartość oznacza, że stos Weave obsługuje odpowiedni komunikat lub wskaźnik stanu. „false” [fałsz] oznacza, że stos Weave nie zadziałał lub nie chce tego robić. W przypadku wartości „false” (fałsz) stos Weave nie zwolni ani nie przejmie własności żadnych argumentów PacketBuffer. Ta umowa pozwala platformie na przekazywanie zdarzeń BLE do Weave bez konieczności określania, jakie cechy są istotne dla Weave.

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

Jeśli ta funkcja zwraca wartość „prawda”, usługa Weave zaakceptowała połączenie BLE i umieszcza je w obiekcie WeaveConnection. Jeśli Weave zaakceptuje połączenie BLE, platforma MUSI powiadomić Weave o anulowaniu subskrypcji lub zamknięciu połączenia BLE albo gdy powiązane z nim połączenie WeaveConnection nie zostanie zamknięte ani zwolnione.

Wyłączono

BLE_ERROR Shutdown(
  void
)