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.

الاكتساب

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

الشركات المصنّعة والمُصنّعة

BleLayer(void)

الأنواع العامة

@14 تعداد
BleConnectionReceivedFunct)(BLEEndPoint *newEndPoint) تعريف الكتابة
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

 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
)

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

HandleIndicationReceived

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

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

HandleReadReceived

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

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

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

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

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

HandleSubscribeComplete

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

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

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

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.

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
)

يمكنك الاتصال عندما يتلقّى طلب كتابة مستند إلى GATT تأكيد إيصال إيجابي.

HandleWriteReceived

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

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

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
)

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

اصطلاحات الاستدعاء: يحصل Weave على ملكية PacketBuffers التي يتم استلامها من خلال هذه الدوال، وستعمل على تحريرها أو تمرير ملكية الحزمة.

بالإضافة إلى كل طلب، لا يتم تقديم أي ضمانات بشأن مدة بقاء وسيطات المعرّف الفريد العالمي (UUID).

"صحيح" تعني القيمة التي يتم إرجاعها أن حزمة Weave قد تعاملت بنجاح مع الرسالة أو إشارة الحالة المقابلة. "خطأ" تعني أن مكدس Weave إما فشل أو اختار عدم التعامل مع هذا. في حالة "false"، لن يحرر مكدس Weave أو يحصل على ملكية أي وسيطات على PacketBuffer. يسمح هذا العقد للمنصة بتمرير أحداث BLE إلى Weave بدون الحاجة إلى معرفة الخصائص التي يهتم بها Weave.

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

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

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

BLE_ERROR Shutdown(
  void
)