nl:: Ledakan:: BleLayer
#include <src/ble/BleLayer.h>
Class ini menyediakan antarmuka untuk thread tunggal untuk mendorong data baik melalui stack melalui fungsi antarmuka platform BleLayer, atau ke 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 masuk secara pasif dan memberikan 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 BLE conneciotn 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 menghubungkan ke periferal BLE. Kemudian, WeaveConnection baru akan dibuat 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.
Warisan
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)
|
typedefvoid(*
|
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
Memanggil saat indikasi GATT yang diterima 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
Memanggil 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
Memanggil 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
Panggil 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
OnWeaveBleConnectDiterima
BleConnectionReceivedFunct OnWeaveBleConnectReceived
mAppState
void * mAppState
Negara Bagian
enum nl::Ble::BleLayer::@14 mState
[HANYA BACA] Status saat ini
Fungsi publik
Musik BleLayer
BleLayer( void )
HandleConnectionError
void HandleConnectionError( BLE_CONNECTION_OBJECT connObj, BLE_ERROR err )
HandleIndicationKonfirmasi
bool HandleIndicationConfirmation( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId )
Memanggil saat indikasi GATT yang diterima menerima konfirmasi tanda terima positif.
HandleIndikasiDiterima
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 saat operasi sebelumnya yang dilakukan oleh BleLayer melalui BleAdapter gagal, seperti permintaan tulis karakteristik atau upaya berlangganan, atau ketika koneksi BLE ditutup.
Biasanya, tindakan ini akan meminta Weave menutup WeaveConnection terkait dan memberi tahu platform bahwa ia telah mengabaikan koneksi BLE yang mendasarinya.
CATATAN: jika aplikasi secara eksplisit menutup koneksi BLE dengan WeaveConnection yang dikaitkan sehingga penutupan 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.
MenanganiSubscribeComplete
bool HandleSubscribeComplete( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId )
Memanggil saat permintaan berlangganan GATT berhasil.
Platform harus memanggil fungsi ini saat berhenti berlangganan GATT diminta pada karakteristik layanan Weave, yaitu ketika langganan GATT yang ada pada karakteristik layanan Weave dibatalkan.
HandleSubscribeReceived
bool HandleSubscribeReceived( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId )
MenanganiUnsubscribeComplete
bool HandleUnsubscribeComplete( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId )
Memanggil 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 )
Panggil 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.
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 )
Menjadwalkan Pekerjaan
nl::Weave::System::Error ScheduleWork( nl::Weave::System::Layer::TimerCompleteFunct aComplete, void *aAppState )
Fungsi antarmuka platform:
Konvensi pemanggilan: Weave mengambil alih kepemilikan Paket yang diterima melalui fungsi ini, dan akan mengosongkan atau meneruskan kepemilikan ke stack.
Di luar setiap panggilan, tidak ada jaminan terkait masa aktif argumen UUID.
A 'true' nilai kembali berarti tumpukan Weave berhasil menangani pesan atau indikasi status yang sesuai. 'false' berarti tumpukan Weave gagal atau memilih untuk tidak menanganinya. Dalam kasus 'false,' tumpukan Weave tidak akan membebaskan atau mengambil alih kepemilikan argumen PacketBuffer apa pun. Kontrak ini memungkinkan platform meneruskan peristiwa BLE ke Weave tanpa perlu mengetahui karakteristik mana yang menjadi perhatian Weave.
Platform harus memanggil fungsi ini saat langganan GATT telah ditetapkan ke karakteristik layanan Weave.
Jika fungsi ini menampilkan 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 yang terkait tidak akan pernah ditutup atau dibebaskan.