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)
|
typedefvoid(*
|
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.