nl:: Ble:: BleLayer

#include <src/ble/BleLayer.h>

توفر هذه الفئة واجهة لسلسلة محادثات واحدة لتعزيز البيانات إما عبر الحزمة عبر وظائف واجهة النظام الأساسي BleLayer، أو أسفل الحزمة عبر كائن WeaveConnection المرتبط بـ BLEEndPoint.

الملخّص

هناك طريقتان لربط WeaveConnection (المحدّد من خلال WeaveMessageLayer) باتصال BLE:

أولاً، يمكن للتطبيق تلقي اتصال BLE الوارد بشكل سلبي وتسليم BLE_CONNECTION_OBJECT الخاص بالنظام الأساسي الذي ينشئه هذا الإيصال إلى BleLayer عبر وظيفة واجهة النظام الأساسي المقابلة. يؤدي ذلك إلى حدوث BleLayer لالتفاف BLE_CONNECTION_OBJECT في BLEEndPoint، وإشعار WeaveMessageLayer باستلام اتصال BLE جديد. وبعد ذلك، تغلِّف طبقة الرسالة العنصر الجديد BLEEndPoint في اتصال WeaveConnection، وتسلِّم هذا العنصر إلى التطبيق عبر استدعاء OnConnectionReceived على طبقة الرسالة.

ثانيًا، يمكن للتطبيق تشكيل اتصال BLE صادر، كربطه بملحق BLE مثلاً. بعد ذلك، يتم إنشاء اتصال WeaveConnection جديد عبر WeaveMessageLayer، ويُحدِّد نوع مصادقة لهذا الاتصال ويربطه بـ BLE_CONNECTION_OBJECT لاتصال BLE الجديد عبر WeaveConnection::ConnectBle. بعد ذلك، تنشئ هذه الوظيفة نوع الجلسة الآمنة الذي يحدده متغير عضو نوع المصادقة WeaveConnection's.

الاكتساب

الفئات الفرعية المعروفة مباشرةً:
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl
nl::Weave::DeviceLayer::Internal::BLEManagerImpl{/10

الماكينات والبناء

BleLayer(void)

الأنواع المتاحة للجميع

@14 تعداد
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint) typedef
void(*

السمات العامة

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[READ-ONLY] الحالة الحالية

وظائف عامة

HandleConnectionError(BLE_CONNECTION_OBJECT connObj, BLE_ERROR err)
void
HandleIndicationConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
الاتصال عند تلقّي مؤشر GATT معلّق لتأكيد إيصال إيجابي.
HandleIndicationReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
الاتصال عند تلقّي مؤشر GATT
HandleReadReceived(BLE_CONNECTION_OBJECT connObj, BLE_READ_REQUEST_CONTEXT requestContext, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
الاتصال عند تلقّي طلب قراءة GATT.
HandleSubscribeComplete(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
الاتصال عند نجاح طلب الاشتراك في GATT.
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.
HandleUnsubscribeReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
HandleWriteConfirmation(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId)
bool
يمكنك الاتصال عند تلقّي طلب كتابي في GATT لتأكيد الإيصال بشكل إيجابي.
HandleWriteReceived(BLE_CONNECTION_OBJECT connObj, const WeaveBleUUID *svcId, const WeaveBleUUID *charId, PacketBuffer *pBuf)
bool
الاتصال عند تلقّي طلب كتابة GATT.
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
وظائف واجهة النظام الأساسي:
Shutdown(void)

الأنواع المتاحة للجميع

@14

 @14

BleConnectionReceivedFunct

void(* BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint)

السمات العامة

OnWeaveBleConnectReceived

BleConnectionReceivedFunct OnWeaveBleConnectReceived

mAppState

void * mAppState

mState

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

[READ-ONLY] الحالة الحالية

وظائف عامة

طبقة متعددة

 BleLayer(
  void
)

خطأ في الاتصال

void HandleConnectionError(
  BLE_CONNECTION_OBJECT connObj,
  BLE_ERROR err
)

تأكيد مؤشر المقبض

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

الاتصال عند تلقّي مؤشر GATT معلّق لتأكيد إيصال إيجابي.

تم استلام مؤشر المقبض

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

الاتصال عند تلقّي مؤشر GATT

اسم الحساب الذي تم استلامه

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

الاتصال عند تلقّي طلب قراءة GATT.

يجب أن يستدعي النظام الأساسي هذه الدالة عندما يتعذّر تنفيذ أي عملية سابقة تم إجراؤها من خلال BleLayer عبر BleAdaptiveer، مثل طلب كتابة مميّزة أو محاولة الاشتراك، أو عند إغلاق اتصال BLE.

في معظم الحالات، سيسمح ذلك لشركة Weave بإغلاق اتصال WeaveConnection المرتبط به وإشعاره بأنه تخلى عن اتصال BLE الأساسي.

ملاحظة: إذا تم إغلاق اتصال BLE بشكل صريح باستخدام اتصال WeaveConnection مرتبط، لن يؤدي اتصال BLE لإغلاقه إلى استدعاء Weave، يجب استدعاء HandleConnectionError باستخدام خطأ = BLE_ERROR_APP_CLOSED_CONNECTION لمنع تسرب WeaveConnection وكائن نقطة النهاية هذا.

مقبض الاشتراك

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

الاتصال عند نجاح طلب الاشتراك في GATT.

يجب أن يستدعي النظام الأساسي هذه الوظيفة عندما يُطلب إلغاء اشتراك GATT في أي سمة من سمات خدمة Weave، أي عندما يتم إلغاء اشتراك GATT حالي في إحدى خصائص خدمة Weave.

تأكيد حالة الاشتراك

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

معالجة إلغاء الاشتراك

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

الاتصال عند نجاح طلب إلغاء اشتراك GATT.

مقبض إلغاء الاشتراك المُستلَم

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

تأكيد الكتابة اليدوية

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

يمكنك الاتصال عند تلقّي طلب كتابي في GATT لتأكيد الإيصال بشكل إيجابي.

مُقبَل الكتابة

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

الاتصال عند تلقّي طلب كتابة GATT.

إنيت

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
)

الجدول الزمني للعمل

nl::Weave::System::Error ScheduleWork(
  nl::Weave::System::Layer::TimerCompleteFunct aComplete,
  void *aAppState
)

وظائف واجهة النظام الأساسي:

اصطلاحات الاتصال: تحصل Weave على ملكية PacketBuffers المُستلَمة من خلال هذه الوظائف وستُخليها أو تنقل الملكية إلى الحزمة.

بالإضافة إلى كل مكالمة، لا يتم تقديم أي ضمانات بشأن مدة بقاء UUID.

وتعني القيمة 'true' أن القيمة المعروضة لحزمة Weave تتعامل بنجاح مع الرسالة أو مؤشر الحالة المقابل. 'false' تعني أن حزمة Weave قد تعذّرت أو تم اختيار عدم التعامل معها. في حالة وجود #39;false&&#39؛ لن يتم تجميع حزمة Weave أو الحصول على ملكية أي وسيطات PacketBuffer. يتيح هذا العقد للمنصة تمرير أحداث BLE إلى Weave بدون الحاجة إلى معرفة خصائص Weave التي تهتم بها.

يجب أن يستدعي النظام الأساسي هذه الوظيفة عندما يتم إنشاء اشتراك GATT لأي سمة من ميزات خدمة Weave.

إذا عرضت هذه الدالة القيمة true، قد قبِل Weave اتصال BLE ولفّه في كائن WeaveConnection. في حال قبول Weave اتصال BLE، يجب على النظام الأساسي إشعار Weave إذا تم إلغاء الاشتراك أو تم إغلاق اتصال BLE الأساسي أو لن يتم مطلقًا إغلاق WeaveConnection أو تحريره.

إيقاف التشغيل

BLE_ERROR Shutdown(
  void
)