nl:: Ble:: BleLayer
#include <src/ble/BleLayer.h>
Bu sınıf, tek bir iş parçacığının verileri BleLayer platform arayüzü işlevleri aracılığıyla yığında yukarı veya bir BLEEndPoint ile ilişkilendirilmiş WeaveConnection nesnesi aracılığıyla yığında aşağı çekmesi için bir arayüz sağlar.
Özet
Bir WeaveConnection'ı (WeaveMessageKatman tarafından tanımlanır) BLE bağlantısıyla ilişkilendirmenin iki yolu vardır:
İlk olarak, uygulama gelen bir BLE bağlantısını pasif olarak alabilir ve bu makbuzun oluşturduğu platforma özgü BLE_CONNECTION_OBJECT'yi ilgili platform arayüzü işlevi aracılığıyla BleLayer'a aktarabilir. Bu, BleLayer'ın BLE_CONNECTION_OBJECT öğesini bir BLEEndPoint içinde sarmalamasına ve WeaveMessageKatman'a yeni bir BLE bağlantısının alındığını bildirmesine neden olur. Ardından mesaj katmanı, yeni BLEEndPoint nesnesini bir WeaveConnection içine sarmalar ve mesaj katmanının OnConnectionReceived geri çağırması aracılığıyla bu nesneyi uygulamaya aktarır.
İkinci olarak uygulama, aktif şekilde giden bir BDE bağlantısı oluşturabilir (ör. bir BLE çevre birimine bağlanarak). Daha sonra, WeaveMessageKatmanlar aracılığıyla yeni bir WeaveConnection hesabı oluşturur, bu bağlantıya bir kimlik doğrulama türü atar ve WeaveConnection::ConnectBle üzerinden yeni BLE bağlantısı için BLE_CONNECTION_OBJECT bağlantısını kullanır. Daha sonra bu işlev, WeaveConnection'ın kimlik doğrulama türü üye değişkeni tarafından belirtilen güvenli oturum türünü belirler.
Devralma
Doğrudan Bilinen Alt Sınıflar:nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
Oluşturucular ve Yıkıcılar |
|
---|---|
BleLayer(void)
|
Herkese açık türler |
|
---|---|
@14
|
enum |
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)
|
typedefvoid(*
|
Herkese açık özellikler |
|
---|---|
OnWeaveBleConnectReceived
|
BleConnectionReceivedFunct
|
mAppState
|
void *
|
mState
|
enum nl::Ble::BleLayer::@14
[SALT OKUNUR] Geçerli durum
|
Herkese açık işlevler |
|
---|---|
HandleConnectionError(BLE_CONNECTION_OBJECT connObj, BLE_ERROR err)
|
void
|
HandleIndicationConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
Kalıcı bir GATT göstergesi olumlu bir makbuz onayı aldığında arayın.
|
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
|
bool
GATT göstergesi alındığında ara.
|
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
GATT okuma isteği alındığında arama.
|
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
GATT abonelik isteği başarılı olduğunda çağırın.
|
HandleSubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
|
HandleUnsubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
GATT abonelikten çıkma isteği başarılı olduğunda çağırın.
|
HandleUnsubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
|
HandleWriteConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
|
bool
Bekleyen bir GATT yazma isteği olumlu bir makbuz onayı aldığında ara.
|
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
|
bool
GATT yazma isteği alındığında çağrı yap.
|
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
Platform arayüzü işlevleri:
|
Shutdown(void)
|
Herkese açık türler
@14
@14
BleConnectionReceivedFunct
void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)
Herkese açık özellikler
OnWeaveBleConnectReceived
BleConnectionReceivedFunct OnWeaveBleConnectReceived
mAppState
void * mAppState
mState
enum nl::Ble::BleLayer::@14 mState
[SALT OKUNUR] Geçerli durum
Herkese açık işlevler
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 )
Kalıcı bir GATT göstergesi olumlu bir makbuz onayı aldığında arayın.
HandleIndicationReceived
bool HandleIndicationReceived( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf )
GATT göstergesi alındığında ara.
HandleReadReceived
bool HandleReadReceived( BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId )
GATT okuma isteği alındığında arama.
BleAdapter aracılığıyla BleLayer tarafından gerçekleştirilen önceki herhangi bir işlem (ör. özellik yazma isteği veya abone olma denemesi) başarısız olduğunda ya da bir BDE bağlantısı kapatıldığında platform bu işlevi çağırmalıdır.
Çoğu durumda bu işlem, Weave'den ilişkili WeaveConnection'ı kapatmasını ister ve platforma temel BDE bağlantısını terk ettiğini bildirir.
NOT: Uygulama, ilişkili bir WeaveConnection ile bir BLE bağlantısını açık bir şekilde kapatır ve BLE bağlantısı kapanışı Weave'a çağrı oluşturmazsa, bu WeaveConnection'ın ve uç noktası nesnesinin sızdırılmasını önlemek için HandleConnectionError çağrılması err = BLE_ERROR_APP_CLOSED_CONNECTION ile yapılmalıdır.
HandleSubscribeComplete
bool HandleSubscribeComplete( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId )
GATT abonelik isteği başarılı olduğunda çağırın.
Herhangi bir Weave hizmet özelliği kapsamında GATT aboneliği iptali istendiğinde, yani bir Weave hizmet özelliğindeki mevcut GATT aboneliği iptal edildiğinde platform bu işlevi çağırmalıdır.
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 )
GATT abonelikten çıkma isteği başarılı olduğunda çağırın.
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 )
Bekleyen bir GATT yazma isteği olumlu bir makbuz onayı aldığında ara.
HandleWriteReceived
bool HandleWriteReceived( BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf )
GATT yazma isteği alındığında çağrı yap.
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 )
Platform arayüzü işlevleri:
Çağrı kuralları: Weave, bu işlevler aracılığıyla alınan PacketBuffers'ın sahipliğini alır ve bunları serbest bırakır veya yığını artırır.
Her çağrı dışında, UUID bağımsız değişkenlerinin ömrüne dair hiçbir garanti verilmez.
"true" (doğru) dönüş değeri, Weave yığınının ilgili mesaj veya durum göstergesiyle başarıyla işlendiği anlamına gelir. "false" (yanlış) Weave yığınının başarısız olduğu veya bunu yapmamayı seçtiği anlamına gelir. "Yanlış" durumunda Weave yığını, hiçbir PacketBuffer bağımsız değişkenini serbest bırakmayacak veya sahipliğini almayacaktır. Bu sözleşme, platformun Weave'in hangi özellikleri önemsediğini bilmeye gerek kalmadan BDE etkinliklerini Weave'a iletmesine olanak tanır.
Herhangi bir Weave hizmet özelliğine GATT aboneliği oluşturulduğunda platform bu işlevi çağırmalıdır.
Bu işlev true değerini döndürürse Weave, BLE bağlantısını kabul etmiş ve bir WeaveConnection nesnesine sarmalamıştır. Weave bir BDE bağlantısını kabul ediyorsa platformun, abonelik iptal edilmesi veya temel BLE bağlantısının kapatılması ya da ilişkili WeaveConnection'ın hiçbir zaman kapatılmaması veya serbest bırakılmaması durumunda Weave'e bunu bildirmesi GEREKİR.