nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Esta clase proporciona una interfaz para que un solo subproceso dirija datos, ya sea hacia arriba en la pila a través de las funciones de la interfaz de la plataforma BleLayer o hacia abajo por la pila a través de un objeto WeaveConnection asociado con un BLEEndPoint.

Resumen

Existen dos maneras de asociar una conexión de WeaveConnection (definida por WeaveMessageLayer) con una conexión BLE:

En primer lugar, la aplicación puede recibir de forma pasiva una conexión BLE entrante y entregar el BLE_CONNECTION_OBJECT específico de la plataforma que este recibo genera a BleLayer a través de la función de interfaz de la plataforma correspondiente. Esto hace que BleLayer una el BLE_CONNECT_OBJECT en un BLEEndPoint y notifique a WeaveMessageLayer que se recibió una nueva conexión de BLE. Luego, la capa de mensaje une el nuevo objeto BLEEndPoint en un WeaveConnection y entrega este objeto a la aplicación a través de la devolución de llamada OnConnectionReceived de la capa del mensaje.

En segundo lugar, la aplicación puede establecer una conexión BLE de salida de forma activa, por ejemplo, a través de un periférico BLE. Luego, crea una nueva WeaveConnection a través de WeaveMessageLayer, asigna un tipo de autenticación a esta conexión y la vincula a BLE_CONNECT_OBJECT para la nueva conexión BLE mediante WeaveConnection::ConnectBle. Luego, esta función establece el tipo de sesión segura especificado por la variable de miembro del tipo de autenticación de WeaveConnection.

Herencia

Subclases directas conocidas:
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl

Constructores y destructores

BleLayer(void)

Tipos públicos

@14 enum
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint) typedef
void(*

Atributos públicos

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[SOLO LECTURA] Estado actual

Funciones públicas

HandleConnectionError(BLE_CONNECTION_OBJECT connObj, BLE_ERROR err)
void
HandleIndicationConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Llame cuando una indicación GATT pendiente reciba una confirmación positiva del recibo.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Llamada cuando se recibe una indicación GATT.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Llamada cuando se recibe una solicitud de lectura GATT.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Llama cuando se realiza correctamente una solicitud de suscripción 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
Llama cuando se realiza correctamente una solicitud de anulación de suscripción 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
Llamada cuando una solicitud de escritura GATT pendiente recibe una confirmación positiva de recepción.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Llamada cuando se recibe una solicitud de escritura 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
Funciones de la interfaz de la plataforma:
Shutdown(void)

Tipos públicos

@14

 @14

BleConnectionReceivedFunct

void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)

Atributos públicos

OnWeaveBleConnectReceived

BleConnectionReceivedFunct OnWeaveBleConnectReceived

mAppState

void * mAppState

mState

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

[SOLO LECTURA] Estado actual

Funciones públicas

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
)

Llame cuando una indicación GATT pendiente reciba una confirmación positiva del recibo.

HandleIndicationReceived

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

Llamada cuando se recibe una indicación GATT.

HandleReadReceived

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

Llamada cuando se recibe una solicitud de lectura GATT.

La plataforma debe llamar a esta función cuando falla cualquier operación anterior que realizó BleLayer a través de BleAdapter, como una solicitud de escritura de característica o un intento de suscripción, o cuando se cierra una conexión de BLE.

En la mayoría de los casos, esto hará que Weave cierre la WeaveConnection asociada y notifique a la plataforma que abandonó la conexión BLE subyacente.

NOTA: Si la aplicación cierra explícitamente una conexión BLE con una WeaveConnection asociada de modo que el cierre de la conexión BLE no genere una llamada ascendente a Weave, se debe llamar a HandleConnectionError con err = BLE_ERROR_APP_CLOSED_CONNECT para evitar que se filtre este WeaveConnection y su objeto de punto final.

HandleSubscribeComplete

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

Llama cuando se realiza correctamente una solicitud de suscripción GATT.

La plataforma debe llamar a esta función cuando se solicita una anulación de la suscripción a GATT en cualquier característica de servicio de Weave, es decir, cuando se cancela una suscripción de GATT existente en una característica de servicio de 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
)

Llama cuando se realiza correctamente una solicitud de anulación de suscripción 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
)

Llamada cuando una solicitud de escritura GATT pendiente recibe una confirmación positiva de recepción.

HandleWriteReceived

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

Llamada cuando se recibe una solicitud de escritura 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
)

Funciones de la interfaz de la plataforma:

Convenciones de llamada: Weave toma la propiedad de los PacketBuffers recibidos a través de estas funciones y los libera o transfiere la propiedad a la pila.

Además de cada llamada, no se proporcionan garantías con respecto a la vida útil de los argumentos de UUID.

Si el valor que se muestra es “verdadero”, significa que la pila de Weave manejó correctamente el mensaje o la indicación de estado correspondiente. “false” significa que la pila de Weave falló o eligió no controlar esto. Si se establece como "false", la pila de Weave no liberará ni tomará la propiedad de ningún argumento de PacketBuffer. Este contrato permite que la plataforma pase eventos BLE a Weave sin necesidad de saber qué características le interesan a Weave.

La plataforma debe llamar a esta función cuando se establece una suscripción GATT a cualquier característica de servicio de Weave.

Si esta función muestra el valor "true", significa que Weave aceptó la conexión BLE y la une a un objeto WeaveConnection. Si Weave acepta una conexión BLE, la plataforma DEBE notificar a Weave si se cancela la suscripción o si se cierra la conexión BLE subyacente. De lo contrario, nunca se cerrará ni se liberará la conexión BLE asociada.

Cierre

BLE_ERROR Shutdown(
  void
)