En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl :: Ble :: BleLayer

#include <src/ble/BleLayer.h>

Esta clase proporciona una interfaz para un solo hilo a la unidad de datos ya sea hacia arriba de la pila a través de los BleLayer funciones de interfaz de la plataforma, o hacia abajo de la pila a través de un objeto WeaveConnection asociado con un BLEEndPoint .

Resumen

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

En primer lugar, la aplicación puede recibir pasivamente una conexión BLE entrante y la mano del BLE_CONNECTION_OBJECT plataforma específica que genera este recibo a BleLayer a través de la función de interfaz de la plataforma correspondiente. Esto hace que BleLayer para envolver el BLE_CONNECTION_OBJECT en un BLEEndPoint , y notificar WeaveMessageLayer que un nuevo conneciotn BLE se ha recibido. La capa de mensajes luego se envuelve el nuevo BLEEndPoint objeto en un WeaveConnection, y las manos este objeto a la aplicación a través de devolución de llamada OnConnectionReceived de la capa de mensajes.

En segundo lugar, la aplicación puede formar activamente una conexión BLE saliente, por ejemplo, conectándose a 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_CONNECTION_OBJECT para la nueva conexión BLE a través de WeaveConnection :: ConnectBle. Esta función luego establece el tipo de sesión segura 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

Constructores y Destructores

BleLayer (void)

Tipos públicos

@14 enumeración
BleConnectionReceivedFunct )(BLEEndPoint *newEndPoint) typedef
void(*

Atributos públicos

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

Funciones publicas

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 sobresaliente reciba una confirmación de recibo positiva.
HandleIndicationReceived ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Llame cuando se reciba una indicación GATT.
HandleReadReceived ( BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Llame cuando se reciba una solicitud de lectura de GATT.
HandleSubscribeComplete ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Llame cuando una solicitud de suscripción al GATT tenga éxito.
HandleSubscribeReceived ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleUnsubscribeComplete ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Llame cuando una solicitud de cancelación de suscripción del GATT tenga éxito.
HandleUnsubscribeReceived ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleWriteConfirmation ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Llame cuando una solicitud de escritura del GATT pendiente reciba una confirmación de recibo positiva.
HandleWriteReceived ( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Llame cuando se reciba una solicitud de escritura del 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 publicas

BleLayer

 BleLayer(
  void
)

HandleConnectionError

void HandleConnectionError(
  BLE_CONNECTION_OBJECT connObj,
  BLE_ERROR err
)

MangoIndicaciónConfirmación

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

Llame cuando una indicación GATT sobresaliente reciba una confirmación de recibo positiva.

HandleIndicationReceived

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

Llame cuando se reciba una indicación GATT.

HandleReadReceived

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

Llame cuando se reciba una solicitud de lectura de GATT.

Plataforma debe llamar a esta función cuando cualquier operación realizada anteriormente por el BleLayer través BleAdapter falla, tales como una petición de escritura característica o suscribirse intento, o cuando una conexión BLE está cerrada.

En la mayoría de los casos, esto hará que Weave cierre la WeaveConnection asociada y notifique a esa plataforma que ha abandonado 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 generará una llamada ascendente a Weave, debe llamarse HandleConnectionError con err = BLE_ERROR_APP_CLOSED_CONNECTION para evitar la fuga de esta WeaveConnection y su objeto de punto final.

ManejarSuscribirseCompletar

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

Llame cuando una solicitud de suscripción al GATT tenga éxito.

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

HandleSubscribeReceived

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

ManejarAnular suscripciónCompletar

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

Llame cuando tenga éxito una solicitud de cancelación de suscripción del 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
)

Llame cuando una solicitud de escritura del GATT pendiente reciba una confirmación de recibo positiva.

HandleWriteReceived

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

Llame cuando se reciba una solicitud de escritura del GATT.

En eso

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 se apropia de los PacketBuffers recibidos a través de estas funciones y los liberará o pasará la propiedad a la pila.

Más allá de cada llamada, no se proporcionan garantías en cuanto a la duración de los argumentos UUID.

Un valor de retorno 'verdadero' significa que la pila de Weave manejó exitosamente el mensaje o indicación de estado correspondiente. 'falso' significa que la pila de Weave falló o eligió no manejar esto. En caso de 'falso', la pila Weave no habrá liberado ni tomado posesión de ningún argumento 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 haya establecido una suscripción al GATT a cualquier característica del servicio Weave.

Si esta función devuelve verdadero, Weave ha aceptado la conexión BLE y la ha envuelto en 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, o la WeaveConnection asociada nunca se cerrará o liberará.

Cerrar

BLE_ERROR Shutdown(
  void
)