nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Cette classe fournit une interface permettant à un seul thread de piloter des données vers le haut de la pile via les fonctions d'interface de la plate-forme BleLayer ou vers le bas de la pile via un objet WeaveConnection associé à un BLEEndPoint.

Résumé

Il existe deux façons d'associer une connexion WeaveConnection (définie par WeaveMessageLayer) à une connexion BLE:

Tout d'abord, l'application peut recevoir de manière passive une connexion BLE entrante et transmettre le BLE_CONNECTION_OBJECT spécifique à la plate-forme que cette réception génère à BleLayer via la fonction d'interface de la plate-forme correspondante. BleLayer encapsule ainsi l'objet BLE_CONNECTION_OBJECT dans un BLEEndPoint et informe WeaveMessageLayer qu'une nouvelle connexion BLE a été reçue. La couche de message encapsule ensuite le nouvel objet BLEEndPoint dans un WeaveConnection, puis transmet cet objet à l'application via le rappel OnConnectionReceived de la couche de message.

Deuxièmement, l'application peut établir activement une connexion BLE sortante, par exemple en se connectant à un périphérique BLE. Il crée ensuite un nouveau WeaveConnection via WeaveMessageLayer, attribue un type d'authentification à cette connexion et le lie au BLE_CONNECTION_OBJECT pour la nouvelle connexion BLE via WeaveConnection::ConnectBle. Cette fonction établit ensuite le type de session sécurisée spécifié par la variable de membre de type d'authentification de WeaveConnection.

Héritage

Sous-classes directes connues:
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl

Constructeurs et destructeurs

BleLayer(void)

Types publics

@14 énum
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint) typedef
void(*

Attributs publics

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[LECTURE SEULE] État actuel

Fonctions publiques

HandleConnectionError(BLE_CONNECTION_OBJECT connObj, BLE_ERROR err)
void
HandleIndicationConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Appelez lorsqu'une indication GATT en attente reçoit une confirmation de réception positive.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Appelez lorsqu'une indication GATT est reçue.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Appel lors de la réception d'une requête de lecture GATT.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Appel lorsqu'une requête d'abonnement GATT aboutit.
HandleSubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleUnsubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Appel quand une demande de désabonnement GATT aboutit.
HandleUnsubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleWriteConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Appel lorsqu'une demande d'écriture GATT en attente reçoit une confirmation de réception positive.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Appel lors de la réception d'une requête d'écriture 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
Fonctions de l'interface de la plate-forme:
Shutdown(void)

Types publics

@14

 @14

BleConnectionReceivedFunct

void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)

Attributs publics

OnWeaveBleConnectReceived

BleConnectionReceivedFunct OnWeaveBleConnectReceived

mAppState

void * mAppState

mState

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

[LECTURE SEULE] État actuel

Fonctions publiques

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
)

Appelez lorsqu'une indication GATT en attente reçoit une confirmation de réception positive.

HandleIndicationReceived

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

Appelez lorsqu'une indication GATT est reçue.

HandleReadReceived

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

Appel lors de la réception d'une requête de lecture GATT.

La plate-forme doit appeler cette fonction lorsqu'une opération précédente effectuée par BleLayer via BleAdapter échoue, comme une requête d'écriture de caractéristiques ou une tentative d'abonnement, ou lorsqu'une connexion BLE est fermée.

Dans la plupart des cas, Weave ferme alors la connexion WeaveConnection associée et avertit la plate-forme qu'elle a abandonné la connexion BLE sous-jacente.

REMARQUE: Si l'application ferme explicitement une connexion BLE avec une connexion WeaveConnection associée de sorte que la fermeture de la connexion BLE ne génère pas d'appel montant vers Weave, HandleConnectionError doit être appelé avec err = BLE_ERROR_APP_CLOSED_CONNECTION pour éviter la fuite de cette connexion WeaveConnection et de son objet de point de terminaison.

HandleSubscribeComplete

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

Appel lorsqu'une requête d'abonnement GATT aboutit.

La plate-forme doit appeler cette fonction lorsqu'un désabonnement GATT est demandé sur une caractéristique du service Weave, c'est-à-dire lorsqu'un abonnement GATT existant pour une caractéristique de service Weave est résilié.

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
)

Appel quand une demande de désabonnement GATT aboutit.

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
)

Appel lorsqu'une demande d'écriture GATT en attente reçoit une confirmation de réception positive.

HandleWriteReceived

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

Appel lors de la réception d'une requête d'écriture 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
)

Fonctions de l'interface de la plate-forme:

Conventions d'appel: Weave s'approprie les paquets de paquets reçus via ces fonctions et les libère ou les transfère dans la pile.

Au-delà de chaque appel, aucune garantie n'est fournie quant à la durée de vie des arguments UUID.

Une relation "vrai" La valeur renvoyée signifie que la pile Weave a réussi à traiter le message ou l'indication d'état correspondant. "false" signifie que la pile Weave a échoué ou a choisi de ne pas gérer cela. Si la valeur est "false", la pile Weave n'aura pas libéré ni pris possession des arguments PacketBuffer. Ce contrat permet à la plate-forme de transmettre des événements BLE à Weave sans avoir à connaître les caractéristiques importantes de Weave.

La plate-forme doit appeler cette fonction lorsqu'un abonnement GATT a été établi pour une caractéristique du service Weave.

Si cette fonction renvoie la valeur "true", Weave a accepté la connexion BLE et l'a encapsulée dans un objet WeaveConnection. Si Weave accepte une connexion BLE, la plate-forme DOIT avertir Weave si l'abonnement est résilié ou si la connexion BLE sous-jacente est fermée, ou si la connexion WeaveConnection associée ne sera jamais fermée ou libérée.

Arrêt

BLE_ERROR Shutdown(
  void
)