nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

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

Resumen

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

Primero, 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 une el BLE_CONNECTION_OBJECT en un BLEEndPoint y notifica a WeaveMessageLayer que se recibió una nueva conexión BLE. La capa de mensaje une el nuevo objeto BLEEndPoint en una WeaveConnection y entrega este objeto a la aplicación a través de la devolución de llamada OnConnectionReceived de la capa de mensajes.

En segundo lugar, la aplicación puede formar de manera activa una conexión BLE saliente, p.ej., conectándose a un periférico BLE. Luego, crea una WeaveConnection nueva a través de WeaveMessageLayer, asigna un tipo de autenticación a esta conexión y la vincula al BLE_CONNECTION_OBJECT para la nueva conexión BLE a través de WeaveConnection::ConnectBle. Luego, esta función establece el tipo de sesión seguro especificado por la variable de miembro de tipo de autenticación de WeaveConnection.

Herencia

Subclases conocidas directas:
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl{/10

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
[READ-ONLY] 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
Llama cuando un indicador de GATT pendiente recibe una confirmación de recepción positiva.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Llamar cuando se reciba una indicación de GATT.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Llama cuando se recibe una solicitud de lectura de GATT.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Llamar cuando se realice correctamente una solicitud de suscripción a 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 realice correctamente una solicitud para anular la suscripción en 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
Llama cuando una solicitud de escritura pendiente de GATT recibe una confirmación de recepción positiva.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Llama cuando se recibe una solicitud de escritura de 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

Estado de las apps para dispositivos móviles

void * mAppState

Estado m

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

[READ-ONLY] Estado actual

Funciones públicas

BleLayer

 BleLayer(
  void
)

Error de HandleConnection

void HandleConnectionError(
  BLE_CONNECTION_OBJECT connObj,
  BLE_ERROR err
)

Confirmación de identificación del controlador

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

Llama cuando un indicador de GATT pendiente recibe una confirmación de recepción positiva.

HandleIndicationReceived

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

Llamar cuando se reciba una indicación de GATT.

HandleReadReceived

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

Llama cuando se recibe una solicitud de lectura de GATT.

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

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

NOTA: Si la aplicación cierra de forma explícita 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_CONNECTION para evitar la filtración de esta WeaveConnection y su objeto de extremo.

NombreDeSuscríbeteSuscríbete

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

Llamar cuando se realice correctamente una solicitud de suscripción a GATT.

La plataforma debe llamar a esta función cuando se solicita una suscripción a GATT en una función de servicio de Weave. Es decir, cuando se cancela una suscripción existente de GATT a una característica de servicio de Weave.

HandleSubscribeReceived

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

HandleOverrideComplete

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

Llama cuando se realice correctamente una solicitud para anular la suscripción en GATT.

HandleAnular la recepción de

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

Confirmación de escritura de controladores

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

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

HandleWriteReceived

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

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

Programar Trabajo

nl::Weave::System::Error ScheduleWork(
  nl::Weave::System::Layer::TimerCompleteFunct aComplete,
  void *aAppState
)

Funciones de la interfaz de la plataforma:

Convenciones de llamada: Weave asume la propiedad de los PacketBuffers recibidos mediante estas funciones, por lo que las libera o pasa la propiedad a la pila.

Más allá de cada llamada, no se proporcionan garantías sobre el ciclo de vida de los argumentos del UUID.

Si el valor que se muestra es un valor "true", significa que la pila de Weave procesó correctamente el mensaje o la indicación de estado correspondientes. 'false' significa que la pila de Weave falló o eligió no controlar esto. En caso de ser falso, la pila de Weave no habrá liberado ni propiedad de ningún argumento de PacketBuffer. Este contrato permite que la plataforma transfiera eventos BLE a Weave sin necesidad de conocer las características que Weave le interesan.

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

Si esta función muestra el valor verdadero, Weave aceptó la conexión BLE y la envolvió en un objeto WeaveConnection. Si Weave acepta una conexión BLE, la plataforma DEBE notificar a Weave si se cancela la suscripción, se cierra la conexión BLE subyacente o si la WeaveConnection asociada nunca se cierra ni se libera.

Cierre

BLE_ERROR Shutdown(
  void
)