BLE

تتضمن هذه الوحدة تجريد النظام الأساسي للاتصال بمضيف BLE Host.

ملخّص

يجب أن يستخدم النظام الأساسي Bluetooth LE 4.2 أو إصدار أحدث.

تحديدات النوع

otBleRadioPacket typedef
يُمثِّل حزمة BLE.

الدوال

otPlatBleDisable(otInstance *aInstance)
إيقاف الراديو الذي يعمل بالبلوتوث منخفض الطاقة
otPlatBleEnable(otInstance *aInstance)
تفعيل راديو Bluetooth Low Energy
otPlatBleGapAdvStart(otInstance *aInstance, uint16_t aInterval)
لبدء إجراء الإعلان باستخدام تقنية BLE
otPlatBleGapAdvStop(otInstance *aInstance)
إيقاف إجراء إعلانات BLE.
otPlatBleGapDisconnect(otInstance *aInstance)
يتم قطع اتصال BLE.
otPlatBleGapOnConnected(otInstance *aInstance, uint16_t aConnectionId)
void
يستدعي برنامج تشغيل تقنية BLE هذه الطريقة لإبلاغ OpenThread باتصال جهاز BLE المركزي.
otPlatBleGapOnDisconnected(otInstance *aInstance, uint16_t aConnectionId)
void
يستدعي برنامج تشغيل BLE هذه الطريقة لإبلاغ OpenThread بأنه تم فصل جهاز BLE المركزي.
otPlatBleGattMtuGet(otInstance *aInstance, uint16_t *aMtu)
تستخدم القراءات حاليًا قيمة ATT_MTU.
otPlatBleGattOnMtuUpdate(otInstance *aInstance, uint16_t aMtu)
void
يستدعي برنامج تشغيل BLE هذه الطريقة لإبلاغ OpenThread بأنه تم تحديث ATT_MTU.
otPlatBleGattServerIndicate(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
يُرسِل مؤشر قيمة التعامل مع ATT.
otPlatBleGattServerOnWriteRequest(otInstance *aInstance, uint16_t aHandle, const otBleRadioPacket *aPacket)
void
يستدعي برنامج تشغيل تقنية BLE هذه الطريقة لإبلاغ OpenThread باستلام حزمة طلب كتابة ATT.

الهياكل

otBleRadioPacket

يُمثِّل حزمة BLE.

تحديدات النوع

otBleRadioPacket

struct otBleRadioPacket otBleRadioPacket

يُمثِّل حزمة BLE.

الدوال

otPlatBleDisable

otError otPlatBleDisable(
  otInstance *aInstance
)

إيقاف الراديو الذي يعمل بالبلوتوث منخفض الطاقة

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

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
قيم الإرجاع
OT_ERROR_NONE
تم النقل بنجاح إلى "غير مفعّلة".
OT_ERROR_FAILED
تعذر إيقاف الراديو BLE.

otPlatBleEnable

otError otPlatBleEnable(
  otInstance *aInstance
)

تفعيل راديو Bluetooth Low Energy

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
قيم الإرجاع
OT_ERROR_NONE
تم التفعيل بنجاح.
OT_ERROR_FAILED
تعذر تفعيل الراديو BLE.

otPlatBleGapAdvStart

otError otPlatBleGapAdvStart(
  otInstance *aInstance,
  uint16_t aInterval
)

لبدء إجراء الإعلان باستخدام تقنية BLE

سيستخدم جهاز BLE إعلانات غير مباشرة بدون تطبيق أي فلتر. يجب إرسال حزمة إعلانات BLE واحدة على جميع القنوات الإعلانية (37 و38 و39).

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aInterval
الفاصل بين حزم الإعلانات اللاحقة في وحدات OT_BLE_ADV_INTERVAL_UNIT. يجب أن يكون ضمن نطاق OT_BLE_ADV_INTERVAL_MIN وOT_BLE_ADV_INTERVAL_MAX أو OT_BLE_ADV_INTERVAL_DEFAULT لقيمة افتراضية محددة في وقت التجميع.
قيم الإرجاع
OT_ERROR_NONE
تم بدء الإجراء الإعلاني.
OT_ERROR_INVALID_STATE
جهاز BLE في حالة غير صالحة.
OT_ERROR_INVALID_ARGS
تم إدخال قيمة فاصل غير صالحة.

otPlatBleGapAdvStop

otError otPlatBleGapAdvStop(
  otInstance *aInstance
)

إيقاف إجراء إعلانات BLE.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
قيم الإرجاع
OT_ERROR_NONE
تم إيقاف الإجراء الإعلاني.
OT_ERROR_INVALID_STATE
جهاز BLE في حالة غير صالحة.

otPlatBleGapDisconnect

otError otPlatBleGapDisconnect(
  otInstance *aInstance
)

يتم قطع اتصال BLE.

سيستخدم جهاز BLE رمز السبب "اتصال تم إنهاؤه عن بُعد" (0x13) عند قطع الاتصال بجهاز BLE مشابه.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
قيم الإرجاع
OT_ERROR_NONE
تم بدء إجراء إلغاء الربط.
OT_ERROR_INVALID_STATE
جهاز BLE في حالة غير صالحة.

otPlatBleGapOnConnected

void otPlatBleGapOnConnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

يستدعي برنامج تشغيل تقنية BLE هذه الطريقة لإبلاغ OpenThread باتصال جهاز BLE المركزي.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aConnectionId
معرّف الاتصال المفتوح.

otPlatBleGapOnDisconnected

void otPlatBleGapOnDisconnected(
  otInstance *aInstance,
  uint16_t aConnectionId
)

يستدعي برنامج تشغيل BLE هذه الطريقة لإبلاغ OpenThread بأنه تم فصل جهاز BLE المركزي.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aConnectionId
معرّف الاتصال المغلق.

otPlatBleGattMtuGet

otError otPlatBleGattMtuGet(
  otInstance *aInstance,
  uint16_t *aMtu
)

تستخدم القراءات حاليًا قيمة ATT_MTU.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[out] aMtu
مؤشر لإخراج قيمة ATT_MTU الحالية.
قيم الإرجاع
OT_ERROR_NONE
تم وضع قيمة ATT_MTU في aMtu.
OT_ERROR_FAILED
لا يمكن لجهاز BLE تحديد ATT_MTU.

otPlatBleGattOnMtuUpdate

void otPlatBleGattOnMtuUpdate(
  otInstance *aInstance,
  uint16_t aMtu
)

يستدعي برنامج تشغيل BLE هذه الطريقة لإبلاغ OpenThread بأنه تم تحديث ATT_MTU.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aMtu
قيمة ATT_MTU المعدّلة

otPlatBleGattServerIndicate

otError otPlatBleGattServerIndicate(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

يُرسِل مؤشر قيمة التعامل مع ATT.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aHandle
مؤشر السمة المطلوب الإشارة إليها.
[in] aPacket
يحتوي المؤشر الذي يشير إلى الحزمة على قيمة سيتم الإشارة إليها.
قيم الإرجاع
OT_ERROR_NONE
تم إرسال مؤشر قيمة الاسم المعرِّف ATT.
OT_ERROR_INVALID_STATE
جهاز BLE في حالة غير صالحة.
OT_ERROR_INVALID_ARGS
تم إدخال قيمة اسم معرِّف أو بيانات أو طول بيانات غير صالحة.
OT_ERROR_NO_BUFS
لم يتم العثور على مخزن مؤقت داخلي.

otPlatBleGattServerOnWriteRequest

void otPlatBleGattServerOnWriteRequest(
  otInstance *aInstance,
  uint16_t aHandle,
  const otBleRadioPacket *aPacket
)

يستدعي برنامج تشغيل تقنية BLE هذه الطريقة لإبلاغ OpenThread باستلام حزمة طلب كتابة ATT.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aHandle
مؤشر السمة المراد كتابتها.
[in] aPacket
يحتوي المؤشر الذي يشير إلى الحزمة على قيمة ستتم كتابتها للسمة.

وحدات ماكرو

OT_BLE_ADV_INTERVAL_DEFAULT

 OT_BLE_ADV_INTERVAL_DEFAULT 100

الفاصل الزمني التلقائي لحزمة الإعلانات (بالمللي ثانية).

OT_BLE_ADV_INTERVAL_MAX

 OT_BLE_ADV_INTERVAL_MAX 0x4000

الحد الأقصى للفاصل الزمني المسموح به لحزمة الإعلان بوحدات OT_BLE_ADV_INTERVAL_UNIT (10.24 ثانية).

OT_BLE_ADV_INTERVAL_MIN

 OT_BLE_ADV_INTERVAL_MIN 0x0020

الحد الأدنى المسموح به للفاصل الزمني لحزمة الإعلان بوحدات OT_BLE_ADV_INTERVAL_UNIT (20 ملي ثانية).

OT_BLE_ADV_INTERVAL_UNIT

 OT_BLE_ADV_INTERVAL_UNIT OT_BLE_TIMESLOT_UNIT

الوحدة المستخدَمة لحساب مدة الفاصل (0.625 ملي ثانية).

OT_BLE_ATT_MTU_MAX

 OT_BLE_ATT_MTU_MAX 67

الحدّ الأقصى المسموح به لحجم وحدة النقل القصوى (MTU) لـ ATT (يجب أن يكون أكبر من = 23).

OT_BLE_DEFAULT_POWER

 OT_BLE_DEFAULT_POWER 0

قيمة الطاقة التلقائية لتقنية BLE

OT_BLE_TIMESLOT_UNIT

 OT_BLE_TIMESLOT_UNIT 625

مدة الفتحة الزمنية لطبقة PHY بالميكرو ثانية (0.625 ملي ثانية).

المراجِع

تنشأ المواضيع المرجعية لواجهة برمجة تطبيقات OpenThread من رمز المصدر المتاح على GitHub. للحصول على مزيد من المعلومات أو للمساهمة في مستنداتنا، يمكنك الاطّلاع على المراجع.