nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Class ini menyediakan antarmuka untuk satu thread guna mendorong data ke atas stack melalui fungsi antarmuka platform BleLayer, atau ke bawah stack 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 secara pasif yang masuk dan menyerahkan BLE_CONNECTION_OBJECT khusus platform yang dihasilkan tanda terima ini ke BleLayer melalui fungsi antarmuka platform yang sesuai. Hal ini menyebabkan BleLayer menggabungkan BLE_CONNECTION_OBJECT dalam BLEEndPoint, dan memberi tahu WeaveMessageLayer bahwa koneksi BLE baru telah diterima. Lapisan pesan kemudian menggabungkan objek BLEEndPoint baru dalam WeaveConnection, dan memberikan objek ini ke aplikasi melalui callback OnConnectionReceived di lapisan pesan.

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

Inheritance

Subclass yang Dikenal Langsung:
  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] Negara bagian 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
Hubungi saat indikasi GATT yang belum dibayar menerima konfirmasi tanda terima positif.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Menelepon 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
Lakukan panggilan 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 saat permintaan tulis GATT yang belum diproses 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 tahun

 @14

BleConnectionReceivedFunct

void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)

Atribut publik

OnWeaveBleConnectReceived

BleConnectionReceivedFunct OnWeaveBleConnectReceived

mAppState

void * mAppState

mState

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

[HANYA BACA] Negara bagian 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
)

Hubungi saat indikasi GATT yang belum dibayar menerima konfirmasi tanda terima positif.

HandleIndicationReceived

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

Menelepon 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 saat operasi sebelumnya yang dilakukan oleh BleLayer melalui BleAdapter gagal, seperti permintaan tulis karakteristik atau upaya berlangganan, atau saat koneksi BLE ditutup.

Dalam kebanyakan kasus, tindakan ini akan meminta Weave menutup WeaveConnection dan memberi tahu platform bahwa platform tersebut telah meninggalkan koneksi BLE yang mendasarinya.

CATATAN: jika aplikasi secara eksplisit menutup koneksi BLE dengan WeaveConnection yang terkait sehingga koneksi BLE 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
)

Lakukan panggilan saat permintaan berlangganan GATT berhasil.

Platform harus memanggil fungsi ini ketika permintaan berhenti berlangganan GATT diminta pada karakteristik layanan Weave, yaitu saat langganan GATT yang ada pada 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 saat permintaan tulis GATT yang belum diproses 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.

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
)

Fungsi antarmuka platform:

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

Di luar setiap panggilan, tidak ada jaminan mengenai masa berlaku argumen UUID.

A 'true' (benar) nilai yang ditampilkan berarti tumpukan Weave berhasil menangani indikasi pesan atau status yang sesuai. 'false' (salah) berarti tumpukan Weave gagal atau memilih untuk tidak menangani ini. Jika 'false', tumpukan Weave tidak akan membebaskan atau mengambil kepemilikan argumen PacketBuffer apa pun. Kontrak ini memungkinkan platform untuk meneruskan peristiwa BLE ke Weave tanpa perlu mengetahui karakteristik mana yang penting bagi Weave.

Platform harus memanggil fungsi ini saat langganan GATT telah ditetapkan untuk karakter layanan Weave apa pun.

Jika fungsi ini menghasilkan nilai benar (true), Weave telah menerima koneksi BLE dan menggabungkannya 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
)