nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Class ini menyediakan antarmuka untuk thread tunggal guna mendorong data ke atas melalui fungsi antarmuka platform BleLayer, atau menuruni tumpukan melalui objek WeaveConnection yang terkait dengan BLEEndPoint.

Ringkasan

Ada dua cara untuk mengaitkan WeaveConnection (ditentukan oleh WeaveMessageLayer) dengan koneksi BLE:

Pertama, aplikasi dapat menerima koneksi BLE yang masuk secara pasif dan memberikan BLE_CONNECTION_PRIVACY khusus platform yang dihasilkan oleh tanda terima ini ke BleLayer melalui fungsi antarmuka platform yang sesuai. Hal ini menyebabkan BleLayer menggabungkan BLE_CONNECTION_GOAL dalam BLEEndPoint, dan memberi tahu WeaveMessageLayer bahwa koneksi BLE baru telah diterima. Lapisan pesan kemudian menggabungkan objek BLEEndPoint baru di WeaveConnection, dan menyerahkan objek ini ke aplikasi melalui callback OnConnectionReceived lapisan pesan.

Kedua, aplikasi dapat secara aktif membentuk koneksi BLE keluar, misalnya, dengan terhubung ke periferal BLE. Alat ini kemudian membuat WeaveConnection baru melalui WeaveMessageLayer, menetapkan jenis autentikasi ke koneksi ini, dan mengikatnya ke BLE_CONNECTION_CONNECTION untuk koneksi BLE baru melalui WeaveConnection::ConnectBle. Fungsi ini kemudian membuat jenis sesi aman yang ditentukan oleh variabel anggota jenis otentikasi WeaveConnection.

Inheritance

Subclass Langsung yang Diketahui:
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl
  nl::Weave::DeviceLayer::Internal::BLEManagerImpl

Konstruktor dan Destruktor

BleLayer(void)

Jenis publik

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

Atribut publik

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[HANYA BACA] Status saat ini

Fungsi publik

HandleConnectionError(BLE_CONNECTION_OBJECT connObj, BLE_ERROR err)
void
HandleIndicationConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Panggil saat indikasi GATT yang tidak berlaku menerima konfirmasi tanda terima positif.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Memanggil saat indikasi GATT diterima.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Memanggil saat permintaan baca GATT diterima.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Panggil saat permintaan berlangganan GATT berhasil.
HandleSubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleUnsubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Panggil saat permintaan berhenti berlangganan GATT berhasil.
HandleUnsubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleWriteConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
Lakukan panggilan telepon saat permintaan tulis GATT yang belum terselesaikan menerima konfirmasi tanda terima positif.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Memanggil saat permintaan tulis GATT diterima.
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
Fungsi antarmuka platform:
Shutdown(void)

Jenis publik

@14

 @14

BleConnectionReceivedFunct

void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)

Atribut publik

OnWeaveBleConnectReceived

BleConnectionReceivedFunct OnWeaveBleConnectReceived

mAppState

void * mAppState

mState

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

[HANYA BACA] Status saat ini

Fungsi publik

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
)

Panggil saat indikasi GATT yang tidak berlaku menerima konfirmasi tanda terima positif.

HandleIndicationReceived

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

Memanggil saat indikasi GATT diterima.

HandleReadReceived

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

Memanggil saat permintaan baca GATT diterima.

Platform harus memanggil fungsi ini jika operasi yang sebelumnya dilakukan oleh BleLayer melalui BleAdapter gagal, seperti permintaan tulis karakteristik atau upaya berlangganan, atau saat koneksi BLE ditutup.

Dalam kebanyakan kasus, hal ini akan meminta Weave untuk menutup WeaveConnection terkait dan memberi tahu platform tersebut bahwa platform telah mengabaikan koneksi BLE yang mendasarinya.

CATATAN: jika aplikasi secara eksplisit menutup koneksi BLE dengan WeaveConnection terkait sehingga koneksi BLE ditutup tidak akan menghasilkan upcall ke Weave, HandleConnectionError harus dipanggil dengan err = BLE_ERROR_APP_CLOSED_CONNECTION untuk mencegah kebocoran WeaveConnection ini dan objek titik akhirnya.

HandleSubscribeComplete

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

Panggil saat permintaan berlangganan GATT berhasil.

Platform harus memanggil fungsi ini saat berhenti berlangganan GATT diminta pada karakteristik layanan Weave apa pun, yaitu saat langganan GATT yang ada di karakteristik layanan Weave dibatalkan.

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
)

Panggil saat permintaan berhenti berlangganan GATT berhasil.

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
)

Lakukan panggilan telepon saat permintaan tulis GATT yang belum terselesaikan menerima konfirmasi tanda terima positif.

HandleWriteReceived

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

Memanggil saat permintaan tulis GATT diterima.

Inisiasi

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
)

Fungsi antarmuka platform:

Konvensi panggilan: Weave mengambil alih kepemilikan PacketBuffers yang diterima melalui fungsi ini, dan akan membebaskannya atau meneruskan kepemilikan atas stack.

Di luar setiap panggilan, tidak ada jaminan yang diberikan selama masa aktif argumen UUID.

Nilai hasil 'benar' berarti stack Weave berhasil menangani pesan atau indikasi status yang sesuai. 'false' berarti tumpukan Weave gagal atau memilih untuk tidak menanganinya. Jika bernilai 'false', stack Weave tidak akan membebaskan atau mengambil alih kepemilikan argumen PacketBuffer apa pun. Kontrak ini memungkinkan platform untuk meneruskan peristiwa BLE ke Weave tanpa perlu mengetahui karakteristik mana yang menjadi perhatian Weave.

Platform harus memanggil fungsi ini saat langganan GATT telah dibuat ke karakteristik layanan Weave apa pun.

Jika fungsi ini menghasilkan nilai benar (true), Weave telah menerima koneksi BLE dan menggabungkannya ke dalam objek WeaveConnection. Jika Weave menerima koneksi BLE, platform HARUS memberi tahu Weave jika langganan dibatalkan atau koneksi BLE yang mendasarinya ditutup, atau WeaveConnection terkait tidak akan pernah ditutup atau dibebaskan.

Nonaktif

BLE_ERROR Shutdown(
  void
)