BLE

این ماژول شامل انتزاع پلتفرم برای ارتباط BLE Host است.

خلاصه

پلتفرم باید بلوتوث LE 4.2 یا بالاتر را پیاده سازی کند.

Typedefs

otBleRadioPacket typedef
یک بسته BLE را نشان می دهد.

کارکرد

otPlatBleDisable ( otInstance *aInstance)
رادیو بلوتوث کم مصرف را غیرفعال کنید.
otPlatBleEnable ( otInstance *aInstance)
رادیوی کم مصرف بلوتوث را فعال کنید.
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 را نشان می دهد.

Typedefs

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
)

رادیو بلوتوث کم مصرف را فعال کنید.

جزئیات
مولفه های
[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

فاصله پیش‌فرض برای بسته تبلیغاتی (ms).

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.625ms).

OT_BLE_ATT_MTU_MAX

 OT_BLE_ATT_MTU_MAX 67

حداکثر اندازه مجاز ATT MTU (باید >= 23 باشد).

OT_BLE_DEFAULT_POWER

 OT_BLE_DEFAULT_POWER 0

مقدار توان پیش فرض برای BLE.

OT_BLE_TIMESLOT_UNIT

 OT_BLE_TIMESLOT_UNIT 625

مدت زمان اسلات روی لایه PHY در میکروثانیه (0.625 میلی ثانیه).

منابع

موضوعات مرجع OpenThread API از کد منبع موجود در GitHub سرچشمه می گیرند. برای اطلاعات بیشتر، یا مشارکت در اسناد ما، به منابع مراجعه کنید.