nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Cette classe fournit une interface pour un seul thread afin de faire remonter les données dans la pile via les fonctions de l'interface de la plate-forme BleLayer ou vers le bas de la pile via un objet WeaveConnection associé à une BLEEndPoint.

Résumé

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

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

Deuxièmement, l'application peut créer activement une connexion BLE sortante, par exemple en se connectant à un périphérique BLE. Elle crée ensuite une nouvelle connexion WeaveConnection via WeaveMessageLayer, attribue un type d'authentification à cette connexion et la lie à 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 enum
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-le lorsqu'une indication GATT en cours reçoit une confirmation de réception positive.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Appeler 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 lorsqu'une demande de lecture GATT est reçue.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Appel lorsqu'une demande 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ée lorsqu'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
Appelez la méthode lorsqu'une demande d'écriture GATT en attente reçoit une confirmation positive.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Appel lorsqu'une demande d'écriture GATT est reçue.
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 d'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-le lorsqu'une indication GATT en cours reçoit une confirmation de réception positive.

HandleIndicationReceived

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

Appeler 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 lorsqu'une demande de lecture GATT est reçue.

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

Dans la plupart des cas, ce message invite Weave à fermer la connexion WeaveConnection associée et informe 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 supérieur à Weave, HandleConnectionError doit être appelé avec err = BLE_ERROR_APP_CLOSED_CONNECTION pour éviter la fuite de cette connexion WeaveConnection et de son objet point final.

HandleSubscribeComplete

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

Appel lorsqu'une demande d'abonnement GATT aboutit.

La plate-forme doit appeler cette fonction lorsqu'un désabonnement GATT est demandé pour n'importe quelle caractéristique d'un service Weave, c'est-à-dire lorsqu'un abonnement GATT existant pour une caractéristique de service Weave est annulé.

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ée lorsqu'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
)

Appelez la méthode lorsqu'une demande d'écriture GATT en attente reçoit une confirmation positive.

HandleWriteReceived

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

Appel lorsqu'une demande d'écriture GATT est reçue.

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 d'interface de la plate-forme:

Conventions d'appel: Weave s'approprie les PacketBuffers reçus via ces fonctions, et les libère ou transmet la propriété à la pile.

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

Une valeur renvoyée "true" signifie que la pile Weave a bien géré le message ou l'indication d'état correspondant. La valeur "false" signifie que la pile Weave a échoué ou a choisi de ne pas gérer ce problème. Si la valeur est "false", la pile Weave n'a pas libéré ni pris possession d'arguments PacketBuffer. Ce contrat permet à la plate-forme de transmettre des événements BLE à Weave sans avoir besoin de savoir quelles caractéristiques sont importantes pour Weave.

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

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 ni libérée.

Arrêt

BLE_ERROR Shutdown(
  void
)