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 CONneciotn جديد. تلفّ طبقة الرسالة بعد ذلك كائن 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) typedef
void(*

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

OnWeaveBleConnectReceived
BleConnectionReceivedFunct
mAppState
void *
mState
enum nl::Ble::BleLayer::@14
[قراءة فقط] الحالة الحالية

الدوال العامة

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

[قراءة فقط] الحالة الحالية

الدوال العامة

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 لمنع تسرُّب كائن WeaveConnection هذا وكائن نقطة النهاية الخاص به.

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.

إنت

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 على ملكية الحزم التي يتم استلامها من خلال هذه الدوال، ويحررها أو يتنازل عن ملكيتها.

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

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

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

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

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

BLE_ERROR Shutdown(
  void
)