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 أو تحريره مطلقًا.