nl::Ble::BleLayer

#include <src/ble/BleLayer.h>

Bu sınıf, tek bir ileti dizisi için verileri BleLayer platform arayüzü işlevleri aracılığıyla yığına veya yığın halinde BLEEndPoint ile ilişkili bir WeaveConnection nesnesine yönlendirmek amacıyla bir arayüz sağlar.

Özet

WeaveConnection (WeaveMessageLayer tarafından tanımlanır) ile BLE bağlantısını 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şleviyle BleLayer'a verebilir. Bu işlem, BleLayer'ın BLE_CONNECTION_OBJECT'yi bir BLEEndPoint'te sarmalamasına ve WeaveMessageLayer'ın yeni bir BLE çıkışı alındığını bilmesine neden olur. Ardından, mesaj katmanı yeni BLEEndPoint nesnesini bir WeaveConnection nesnesine sarmalar ve bu nesneyi, ileti katmanı OnConnectionReceived geri çağırma yoluyla uygulamaya gönderir.

İkinci olarak, uygulama etkin bir şekilde giden BLE çevre birimi oluşturabilir (ör. bir BLE çevre birimine bağlanarak). Ardından WeaveMessageLayer üzerinden yeni bir WeaveConnection oluşturur, bu bağlantıya bir kimlik doğrulama türü atar ve WeaveConnection::ConnectBle üzerinden yeni BLE bağlantısı için bunu BLE_CONNECTION_OBJECT'e bağlar. Bu işlev daha sonra WeaveConnection's kimlik doğrulama türü üye değişkeni tarafından belirtilen güvenli oturum türünü oluşturur.

Devralma

Doğrudan Bilinen Alt Sınıflar:
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer:I:Pl:BiManager

İnşaat Ustaları ve Yıkıcılar

BleLayer(void)

Herkese açık türler

@14 enum
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint) Tür
void(*

Herkese açık özellikler

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[SALT OKUMA] 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
Bekleyen bir GATT göstergesi pozitif bir makbuz onayı aldığında arayın.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Bir GATT göstergesi alındığında arama yapın.
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
GATT okuma isteği alındığında arayın.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
GATT abone isteği başarılı olduğunda arayı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 e-posta listesinden çıkma isteği başarılı olduğunda arayı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 arayın.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
Bir GATT yazma isteği alındığında arayın.
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

mobil uygulama durumu

void * mAppState

mState

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

[SALT OKUMA] Geçerli durum

Herkese açık işlevler

Blelayer

 BleLayer(
  void
)

HandleConnectionHatası

void HandleConnectionError(
  BLE_CONNECTION_OBJECT connObj,
  BLE_ERROR err
)

Herkese Açık Kullanıcı Doğrulaması

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

Bekleyen bir GATT göstergesi pozitif bir makbuz onayı aldığında arayın.

Herkese Açık Kullanıcı Adı

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

Bir GATT göstergesi alındığında arama yapın.

Herkese Açık Kullanıcı Adı

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

GATT okuma isteği alındığında arayın.

Platform, BleAdapter aracılığıyla BleLayer tarafından yürütülen önceki bir işlem başarısız olduğunda (ör. tipik bir yazma isteği veya abone olma girişimi olduğunda) ya da BLE bağlantısı kapatıldığında bu işlevi çağırmalıdır.

Çoğu durumda bu işlem, Weave'e ilişkili WeaveConnection'ı kapatmasını ve söz konusu platformun, alttaki BLE bağlantısını terk ettiğini bildirmesini ister.

NOT: Uygulama, ilişkili bir WeaveConnection nesnesine sahip olan bir BLE bağlantısını açık şekilde kapatıyorsa, BLE bağlantısının kapanması Weave'e bir geri çağırma üretemeyecektir. Bu WeaveConnection ve uç noktası nesnesinin sızdırılmasını önlemek için HandleConnectionError err = BLE_ERROR_APP_CLOSED_CONNECTION olarak çağrılmalıdır.

Herkese Açık Abone

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

GATT abone isteği başarılı olduğunda arayın.

Herhangi bir Weave hizmet kalitesinde GATT aboneliği iptali istendiğinde (yani Weave hizmet özelliğindeki mevcut bir GATT aboneliği iptal edildiğinde) platform bu işlevi çağırmalıdır.

Herkese Açık Kullanıcı Adı

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

Herkese Açık Kullanıcı Adı Tamamlandı

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

GATT e-posta listesinden çıkma isteği başarılı olduğunda arayın.

Herkese Açık Kullanıcı Adı

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

HandleWriteOnayı

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

Bekleyen bir GATT yazma isteği olumlu bir makbuz onayı aldığında arayın.

HandleWriteReceived

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

Bir GATT yazma isteği alındığında arayın.

Başlangıç

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
)

Planlamaİşi

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 serbest bırakır veya yığına aktarır.

Her aramanın ötesinde, UUID bağımsız değişkenlerinin kullanım ömrü boyunca herhangi bir garanti verilmez.

&&33;true' return değeri, Weave yığınının ilgili mesajı veya durum göstergesini başarıyla işlediği anlamına gelir. 'false' Weave yığınının başarısız olduğu veya bunu işlememeyi seçtiği anlamına gelir. 'false,' olması durumunda, Weave yığını herhangi bir PacketBuffer bağımsız değişkenini serbest bırakmaz veya sahipliğini üstlenmez. Bu sözleşme, Weave'in hangi özelliklere önem verdiğini bilmesine gerek kalmadan platformun BDE etkinliklerini aktarmasına olanak tanır.

Herhangi bir Weave hizmet kalitesi için GATT aboneliği kurulduğunda platform bu işlevi çağırmalıdır.

Bu işlev true (doğru) döndürürse Weave, BLE bağlantısını kabul etmiş ve bunu bir WeaveConnection nesnesine sarmıştır. Weave, BLE bağlantısını kabul ederse platform, abonelik iptal edildiğinde veya alttaki BLE bağlantısı kapatıldığında Weave'i bilgilendirmelidir, aksi takdirde ilişkili WeaveConnection özelliği kapatılmaz veya serbest kalmaz.

Kapat

BLE_ERROR Shutdown(
  void
)