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)
|
typedefvoid(*
|
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.