پیکربندی رادیو

این ماژول شامل انتزاع پلت فرم برای پیکربندی رادیویی است.

خلاصه

کارکرد

otPlatRadioGetBusSpeed ( otInstance *aInstance)
uint32_t
سرعت اتوبوس را بر حسب بیت/ثانیه بین میزبان و تراشه رادیویی دریافت کنید.
otPlatRadioGetCaps ( otInstance *aInstance)
قابلیت های رادیویی را دریافت کنید.
otPlatRadioGetCcaEnergyDetectThreshold ( otInstance *aInstance, int8_t *aThreshold)
آستانه CCA ED رادیو را بر حسب dBm اندازه گیری شده در کانکتور آنتن به ازای بخش 10.1.4 IEEE 802.15.4 - 2015 دریافت کنید.
otPlatRadioGetFemLnaGain ( otInstance *aInstance, int8_t *aGain)
بهره Rx LNA FEM خارجی را بر حسب dBm دریافت می کند.
otPlatRadioGetIeeeEui64 ( otInstance *aInstance, uint8_t *aIeeeEui64)
void
IEEE EUI-64 را برای این رابط اختصاص داده شده توسط کارخانه دریافت می کند.
otPlatRadioGetNow ( otInstance *aInstance)
uint64_t
زمان فعلی را بر حسب میکروثانیه دریافت کنید که به یک ساعت رادیویی محلی یکنواخت پیوسته (عرض 64 بیت) ارجاع شده است.
otPlatRadioGetPromiscuous ( otInstance *aInstance)
bool
وضعیت حالت بی بند و باری را دریافت کنید.
otPlatRadioGetReceiveSensitivity ( otInstance *aInstance)
int8_t
مقدار حساسیت دریافت رادیو را دریافت کنید.
otPlatRadioGetTransmitPower ( otInstance *aInstance, int8_t *aPower)
قدرت ارسال رادیو را بر حسب dBm دریافت کنید.
otPlatRadioGetVersionString ( otInstance *aInstance)
const char *
رشته نسخه رادیویی را دریافت کنید.
otPlatRadioSetCcaEnergyDetectThreshold ( otInstance *aInstance, int8_t aThreshold)
آستانه CCA ED رادیو را بر حسب dBm تنظیم کنید که در کانکتور آنتن بر اساس بخش 10.1.4 IEEE 802.15.4 - 2015 اندازه گیری شده است.
otPlatRadioSetExtendedAddress ( otInstance *aInstance, const otExtAddress *aExtAddress)
void
Extended Address را برای فیلتر کردن آدرس تنظیم کنید.
otPlatRadioSetFemLnaGain ( otInstance *aInstance, int8_t aGain)
بهره Rx LNA FEM خارجی را بر حسب dBm تنظیم می کند.
otPlatRadioSetMacFrameCounter ( otInstance *aInstance, uint32_t aMacFrameCounter)
void
مقدار شمارنده فریم MAC فعلی را تنظیم می کند.
otPlatRadioSetMacFrameCounterIfLarger ( otInstance *aInstance, uint32_t aMacFrameCounter)
void
مقدار شمارنده قاب MAC فعلی را تنها در صورتی تنظیم می کند که مقدار داده شده جدید بزرگتر از مقدار فعلی باشد.
otPlatRadioSetMacKey ( otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
void
کلیدهای MAC و فهرست کلید را به روز کنید.
otPlatRadioSetPanId ( otInstance *aInstance, otPanId aPanId)
void
PAN ID را برای فیلتر آدرس تنظیم کنید.
otPlatRadioSetPromiscuous ( otInstance *aInstance, bool aEnable)
void
فعال یا غیرفعال کردن حالت غیرفعال
otPlatRadioSetRxOnWhenIdle ( otInstance *aInstance, bool aEnable)
void
حالت rx-on-when-idle را روی پلت فرم رادیویی تنظیم می کند.
otPlatRadioSetShortAddress ( otInstance *aInstance, otShortAddress aShortAddress)
void
آدرس کوتاه را برای فیلتر آدرس تنظیم کنید.
otPlatRadioSetTransmitPower ( otInstance *aInstance, int8_t aPower)
قدرت ارسال رادیو را بر حسب dBm تنظیم کنید.

کارکرد

otPlatRadioGetBusSpeed

uint32_t otPlatRadioGetBusSpeed(
  otInstance *aInstance
)

سرعت اتوبوس را بر حسب بیت/ثانیه بین میزبان و تراشه رادیویی دریافت کنید.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
سرعت گذرگاه بر حسب بیت/ثانیه بین میزبان و تراشه رادیویی. زمانی که MAC و لایه بالاتر و لایه Radio روی یک تراشه قرار دارند، 0 را برگردانید.

otPlatRadioGetCaps

otRadioCaps otPlatRadioGetCaps(
  otInstance *aInstance
)

قابلیت های رادیویی را دریافت کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
برمی گرداند
بردار بیت قابلیت رادیویی (به تعاریف OT_RADIO_CAP_* مراجعه کنید).

otPlatRadioGetCcaEnergyDetectThreshold

otError otPlatRadioGetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t *aThreshold
)

آستانه CCA ED رادیو را بر حسب dBm اندازه گیری شده در کانکتور آنتن به ازای بخش 10.1.4 IEEE 802.15.4 - 2015 دریافت کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[out] aThreshold
آستانه CCA ED بر حسب dBm.
ارزش های بازگشتی
OT_ERROR_NONE
آستانه CCA ED با موفقیت بازیابی شد.
OT_ERROR_INVALID_ARGS
aThreshold NULL بود.
OT_ERROR_NOT_IMPLEMENTED
پیکربندی آستانه ED CCA از طریق dBm اجرا نشده است.

otPlatRadioGetFemLnaGain

otError otPlatRadioGetFemLnaGain(
  otInstance *aInstance,
  int8_t *aGain
)

بهره Rx LNA FEM خارجی را بر حسب dBm دریافت می کند.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[out] aGain
افزایش Rx LNA FEM خارجی بر حسب dBm.
ارزش های بازگشتی
OT_ERROR_NONE
بهره LNA FEM خارجی با موفقیت بازیابی شد.
OT_ERROR_INVALID_ARGS
aGain NULL بود.
OT_ERROR_NOT_IMPLEMENTED
تنظیم LNA خارجی FEM اجرا نشده است.

otPlatRadioGetIeeeEui64

void otPlatRadioGetIeeeEui64(
  otInstance *aInstance,
  uint8_t *aIeeeEui64
)

IEEE EUI-64 را برای این رابط اختصاص داده شده توسط کارخانه دریافت می کند.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[out] aIeeeEui64
یک اشاره گر به IEEE EUI-64 اختصاص داده شده توسط کارخانه.

otPlatRadioGetNow

uint64_t otPlatRadioGetNow(
  otInstance *aInstance
)

زمان فعلی را بر حسب میکروثانیه دریافت کنید که به یک ساعت رادیویی محلی یکنواخت پیوسته (عرض 64 بیت) ارجاع شده است.

ساعت رادیویی نباید در طول زمان کارکرد دستگاه بسته شود. بنابراین، پیاده‌سازی‌ها باید سرریزهای داخلی شمارنده را شناسایی و جبران کنند. ساعت دارای یک دوره مشخص نیست و نباید هیچ گونه تنظیمات پیوسته یا ناپیوسته (مثلاً ثانیه های کبیسه) را اعمال کند. پیاده سازی ها باید زمان های خواب دستگاه را جبران کنند.

پیاده‌سازی‌ها ممکن است ساعت رادیویی را منضبط کنند و زمان‌های خواب را با هر وسیله‌ای جبران کنند (مثلاً با ترکیب یک RTC با دقت بالا/کم توان با یک شمارنده وضوح بالا) تا زمانی که ساعت ترکیبی در معرض تیک‌های وضوح میکروثانیه یکنواخت مداوم در محدوده دقت ارائه می‌کند. توسط otPlatRadioGetCslAccuracy اعلام شده است.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
زمان فعلی بر حسب میکروثانیه UINT64_MAX وقتی پلتفرم پشتیبانی نمی‌کند یا زمان رادیو آماده نیست.

otPlatRadioGetPromiscuous

bool otPlatRadioGetPromiscuous(
  otInstance *aInstance
)

وضعیت حالت بی بند و باری را دریافت کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
ارزش های بازگشتی
TRUE
حالت غیرقانونی فعال است.
FALSE
حالت غیرفعال است.

otPlatRadioGetReceiveSensitivity

int8_t otPlatRadioGetReceiveSensitivity(
  otInstance *aInstance
)

مقدار حساسیت دریافت رادیو را دریافت کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
برمی گرداند
رادیو مقدار حساسیت را بر حسب dBm دریافت می کند.

otPlatRadioGetTransmitPower

otError otPlatRadioGetTransmitPower(
  otInstance *aInstance,
  int8_t *aPower
)

قدرت ارسال رادیو را بر حسب dBm دریافت کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[out] aPower
قدرت انتقال بر حسب dBm
ارزش های بازگشتی
OT_ERROR_NONE
توان انتقال با موفقیت بازیابی شد.
OT_ERROR_INVALID_ARGS
aPower NULL بود.
OT_ERROR_NOT_IMPLEMENTED
پیکربندی توان انتقال از طریق dBm اجرا نشده است.

otPlatRadioGetVersionString

const char * otPlatRadioGetVersionString(
  otInstance *aInstance
)

رشته نسخه رادیویی را دریافت کنید.

این یک عملکرد پلت فرم راننده رادیویی اختیاری است. اگر توسط درایور رادیو پلت فرم ارائه نشده باشد، OpenThread به جای آن از نسخه OpenThread استفاده می کند (

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
برمی گرداند
اشاره گر به نسخه رادیویی OpenThread.
همچنین ببینید:
otGetVersionString() ).

otPlatRadioSetCcaEnergyDetectThreshold

otError otPlatRadioSetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t aThreshold
)

آستانه CCA ED رادیو را بر حسب dBm تنظیم کنید که در کانکتور آنتن بر اساس بخش 10.1.4 IEEE 802.15.4 - 2015 اندازه گیری شده است.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aThreshold
آستانه CCA ED بر حسب dBm.
ارزش های بازگشتی
OT_ERROR_NONE
توان انتقال را با موفقیت تنظیم کرد.
OT_ERROR_INVALID_ARGS
آستانه داده شده خارج از محدوده است.
OT_ERROR_NOT_IMPLEMENTED
پیکربندی آستانه ED CCA از طریق dBm اجرا نشده است.

otPlatRadioSetExtendedAddress

void otPlatRadioSetExtendedAddress(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

Extended Address را برای فیلتر کردن آدرس تنظیم کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aExtAddress
یک اشاره گر به آدرس IEEE 802.15.4 Extended Address به ترتیب بایت اندکی ذخیره شده است.

otPlatRadioSetFemLnaGain

otError otPlatRadioSetFemLnaGain(
  otInstance *aInstance,
  int8_t aGain
)

بهره Rx LNA FEM خارجی را بر حسب dBm تنظیم می کند.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aGain
افزایش Rx LNA FEM خارجی بر حسب dBm.
ارزش های بازگشتی
OT_ERROR_NONE
بهره LNA FEM خارجی را با موفقیت تنظیم کرد.
OT_ERROR_NOT_IMPLEMENTED
تنظیم بهره LNA FEM خارجی اجرا نشده است.

otPlatRadioSetMacFrameCounter

void otPlatRadioSetMacFrameCounter(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

مقدار شمارنده فریم MAC فعلی را تنظیم می کند.

زمانی استفاده می شود که رادیو قابلیت OT_RADIO_CAPS_TRANSMIT_SEC را ارائه دهد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aMacFrameCounter
مقدار شمارنده قاب MAC.

otPlatRadioSetMacFrameCounterIfLarger

void otPlatRadioSetMacFrameCounterIfLarger(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

مقدار شمارنده قاب MAC فعلی را تنها در صورتی تنظیم می کند که مقدار داده شده جدید بزرگتر از مقدار فعلی باشد.

زمانی استفاده می شود که رادیو قابلیت OT_RADIO_CAPS_TRANSMIT_SEC را ارائه دهد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aMacFrameCounter
مقدار شمارنده قاب MAC.

otPlatRadioSetMacKey

void otPlatRadioSetMacKey(
  otInstance *aInstance,
  uint8_t aKeyIdMode,
  uint8_t aKeyId,
  const otMacKeyMaterial *aPrevKey,
  const otMacKeyMaterial *aCurrKey,
  const otMacKeyMaterial *aNextKey,
  otRadioKeyType aKeyType
)

کلیدهای MAC و فهرست کلید را به روز کنید.

زمانی استفاده می شود که رادیو قابلیت OT_RADIO_CAPS_TRANSMIT_SEC را ارائه دهد.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aKeyIdMode
حالت شناسه کلید.
[in] aKeyId
شاخص کلید MAC فعلی.
[in] aPrevKey
اشاره گر به کلید MAC قبلی.
[in] aCurrKey
اشاره گر به کلید MAC فعلی.
[in] aNextKey
اشاره گر به کلید MAC بعدی.
[in] aKeyType
نوع کلید استفاده شده

otPlatRadioSetPanId

void otPlatRadioSetPanId(
  otInstance *aInstance,
  otPanId aPanId
)

PAN ID را برای فیلتر آدرس تنظیم کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aPanId
شناسه PAN IEEE 802.15.4.

otPlatRadioSetPromiscuous

void otPlatRadioSetPromiscuous(
  otInstance *aInstance,
  bool aEnable
)

فعال یا غیرفعال کردن حالت غیرفعال

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aEnable
TRUE برای فعال کردن یا FALSE برای غیرفعال کردن حالت بیجا.

otPlatRadioSetRxOnWhenIdle

void otPlatRadioSetRxOnWhenIdle(
  otInstance *aInstance,
  bool aEnable
)

حالت rx-on-when-idle را روی پلت فرم رادیویی تنظیم می کند.

اگر دستگاه در حالت rx-off-when-idle باشد، چند موقعیت وجود دارد که رادیو می تواند وارد حالت خواب شود، اما شناسایی این موقعیت ها و دستور دادن به رادیو برای ورود به حالت خواب برای SubMac سخت و پرهزینه است:

  • نهایی کردن یک کار دریافت فریم معمولی، مشروط بر اینکه:
    • فریم بدون خطا دریافت می شود و از فیلتر عبور می کند و ACK جعلی نیست.
    • ACK درخواست نمی شود یا به دلیل شرایط داخلی امکان انتقال ACK وجود ندارد.
  • نهایی کردن یک فریم ارسال یا انتقال یک فریم ACK، زمانی که ACK در فریم ارسال شده درخواست نشده باشد.
  • نهایی شدن عملیات دریافت ACK درخواستی به دلیل:
    • تاریخ انقضای ACK.
    • دریافت یک ACK نامعتبر یا نه یک قاب ACK.
    • دریافت ACK مناسب، مگر اینکه فریم ارسالی یک فرمان درخواست داده باشد و بیت در انتظار فریم روی ACK دریافتی روی true تنظیم شود. در این مورد، اجرای پلت فرم رادیویی باید گیرنده را تا زمان تعیین شده روشن نگه دارد که باعث شروع دوره بیکاری می شود. OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT را می توان به عنوان مرجع برای این مورد در نظر گرفت.
  • نهایی کردن یک کار مستقل CCA.
  • نهایی کردن یک عملیات CCA با نتیجه شلوغ در طول روش CSMA/CA.
  • نهایی کردن یک کار تشخیص انرژی
  • نهایی کردن یک پنجره دریافت رادیویی با otPlatRadioReceiveAt برنامه ریزی شده است.

اگر پلتفرمی از OT_RADIO_CAPS_RX_ON_WHEN_IDLE پشتیبانی می‌کند، باید از OT_RADIO_CAPS_CSMA_BACKOFF نیز پشتیبانی کند و دوره‌های بی‌کاری بعد از CCA را همانطور که در بالا توضیح داده شد مدیریت کند.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aEnable
TRUE برای نگه داشتن رادیو در حالت دریافت، FALSE برای قرار دادن در حالت Sleep در طول دوره های بیکار.

otPlatRadioSetShortAddress

void otPlatRadioSetShortAddress(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

آدرس کوتاه را برای فیلتر آدرس تنظیم کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aShortAddress
آدرس کوتاه IEEE 802.15.4.

otPlatRadioSetTransmitPower

otError otPlatRadioSetTransmitPower(
  otInstance *aInstance,
  int8_t aPower
)

قدرت ارسال رادیو را بر حسب dBm تنظیم کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aPower
قدرت انتقال بر حسب dBm
ارزش های بازگشتی
OT_ERROR_NONE
توان انتقال را با موفقیت تنظیم کرد.
OT_ERROR_NOT_IMPLEMENTED
پیکربندی توان انتقال از طریق dBm اجرا نشده است.

منابع

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