عملیات رادیویی

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

خلاصه

کارکرد

otPlatDiagRadioReceiveDone ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
درایور رادیو این روش را فراخوانی می کند تا ماژول تشخیص OpenThread را از فریم دریافتی مطلع کند.
otPlatDiagRadioTransmitDone ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
درایور رادیو این روش را فراخوانی می کند تا به ماژول تشخیص OpenThread اطلاع دهد که انتقال کامل شده است.
otPlatRadioAddCalibratedPower ( otInstance *aInstance, uint8_t aChannel, int16_t aActualPower, const uint8_t *aRawPowerSetting, uint16_t aRawPowerSettingLength)
یک توان کالیبره شده از کانال مشخص شده را به جدول کالیبراسیون توان اضافه کنید.
otPlatRadioAddSrcMatchExtEntry ( otInstance *aInstance, const otExtAddress *aExtAddress)
یک آدرس توسعه یافته به جدول مطابقت آدرس منبع اضافه کنید.
otPlatRadioAddSrcMatchShortEntry ( otInstance *aInstance, otShortAddress aShortAddress)
یک آدرس کوتاه به جدول مطابقت آدرس منبع اضافه کنید.
otPlatRadioClearCalibratedPowers ( otInstance *aInstance)
تمام توان های کالیبره شده را از جدول کالیبراسیون برق پاک کنید.
otPlatRadioClearSrcMatchExtEntries ( otInstance *aInstance)
void
تمام آدرس‌های توسعه‌یافته/طولانی را از جدول مطابقت آدرس منبع پاک کنید.
otPlatRadioClearSrcMatchExtEntry ( otInstance *aInstance, const otExtAddress *aExtAddress)
یک آدرس توسعه یافته را از جدول مطابقت آدرس منبع حذف کنید.
otPlatRadioClearSrcMatchShortEntries ( otInstance *aInstance)
void
تمام آدرس های کوتاه را از جدول مطابقت آدرس منبع پاک کنید.
otPlatRadioClearSrcMatchShortEntry ( otInstance *aInstance, otShortAddress aShortAddress)
یک آدرس کوتاه را از جدول مطابقت آدرس منبع حذف کنید.
otPlatRadioConfigureEnhAckProbing ( otInstance *aInstance, otLinkMetrics aLinkMetrics, otShortAddress aShortAddress, const otExtAddress *aExtAddress)
فعال/غیرفعال یا به روز رسانی Enhanced-ACK Based Probing در رادیو برای یک Initiator خاص.
otPlatRadioDisable ( otInstance *aInstance)
رادیو را غیرفعال کنید
otPlatRadioEnable ( otInstance *aInstance)
رادیو را فعال کنید
otPlatRadioEnableCsl ( otInstance *aInstance, uint32_t aCslPeriod, otShortAddress aShortAddr, const otExtAddress *aExtAddr)
گیرنده CSL را فعال یا غیرفعال کنید.
otPlatRadioEnableSrcMatch ( otInstance *aInstance, bool aEnable)
void
فعال/غیرفعال کردن ویژگی مطابقت آدرس منبع.
otPlatRadioEnergyScan ( otInstance *aInstance, uint8_t aScanChannel, uint16_t aScanDuration)
دنباله اسکن انرژی را در رادیو شروع کنید.
otPlatRadioEnergyScanDone ( otInstance *aInstance, int8_t aEnergyScanMaxRssi)
void
درایور رادیو این روش را فراخوانی می کند تا به OpenThread اطلاع دهد که اسکن انرژی کامل شده است.
otPlatRadioGetCoexMetrics ( otInstance *aInstance, otRadioCoexMetrics *aCoexMetrics)
معیارهای همزیستی رادیویی را دریافت کنید.
otPlatRadioGetCslAccuracy ( otInstance *aInstance)
uint8_t
دقت تخمینی بدترین حالت فعلی (حداکثر ± انحراف از فرکانس اسمی) ساعت رادیویی محلی را بر حسب واحد PPM بدست آورید.
otPlatRadioGetCslUncertainty ( otInstance *aInstance)
uint8_t
عدم قطعیت ثابت (یعنی
otPlatRadioGetPreferredChannelMask ( otInstance *aInstance)
uint32_t
ماسک کانال ترجیحی رادیویی را دریافت می کند که دستگاه ترجیح می دهد روی آن شکل بگیرد.
otPlatRadioGetRawPowerSetting ( otInstance *aInstance, uint8_t aChannel, uint8_t *aRawPowerSetting, uint16_t *aRawPowerSettingLength)
تنظیم قدرت خام برای کانال داده شده را دریافت کنید.
otPlatRadioGetRegion ( otInstance *aInstance, uint16_t *aRegionCode)
کد منطقه را دریافت کنید.
otPlatRadioGetRssi ( otInstance *aInstance)
int8_t
جدیدترین اندازه گیری RSSI را دریافت کنید.
otPlatRadioGetState ( otInstance *aInstance)
وضعیت فعلی رادیو را دریافت کنید.
otPlatRadioGetSupportedChannelMask ( otInstance *aInstance)
uint32_t
ماسک کانال رادیویی را که دستگاه مجاز به استفاده از آن است، دریافت کنید.
otPlatRadioGetTransmitBuffer ( otInstance *aInstance)
بافر فریم ارسال رادیویی را دریافت کنید.
otPlatRadioIsCoexEnabled ( otInstance *aInstance)
bool
بررسی کنید که آیا رادیو coex فعال است یا خیر.
otPlatRadioIsEnabled ( otInstance *aInstance)
bool
بررسی کنید که آیا رادیو فعال است یا خیر.
otPlatRadioReceive ( otInstance *aInstance, uint8_t aChannel)
رادیو را از حالت خواب به دریافت انتقال دهید (رادیو را روشن کنید).
otPlatRadioReceiveAt ( otInstance *aInstance, uint8_t aChannel, uint32_t aStart, uint32_t aDuration)
یک پنجره دریافت رادیو را در زمان و مدت زمان مشخصی برنامه ریزی کنید.
otPlatRadioReceiveDone ( otInstance *aInstance, otRadioFrame *aFrame, otError aError)
void
درایور رادیو این روش را فراخوانی می کند تا OpenThread را از فریم دریافتی مطلع کند.
otPlatRadioSetChannelMaxTransmitPower ( otInstance *aInstance, uint8_t aChannel, int8_t aMaxPower)
حداکثر توان ارسال را برای یک کانال خاص تنظیم کنید.
otPlatRadioSetChannelTargetPower ( otInstance *aInstance, uint8_t aChannel, int16_t aTargetPower)
توان هدف را برای کانال داده شده تنظیم کنید.
otPlatRadioSetCoexEnabled ( otInstance *aInstance, bool aEnabled)
کوکس رادیویی را فعال کنید.
otPlatRadioSetRegion ( otInstance *aInstance, uint16_t aRegionCode)
کد منطقه را تنظیم کنید.
otPlatRadioSleep ( otInstance *aInstance)
رادیو را از Receive به Sleep منتقل کنید (رادیو را خاموش کنید).
otPlatRadioTransmit ( otInstance *aInstance, otRadioFrame *aFrame)
دنباله ارسال را در رادیو شروع کنید.
otPlatRadioTxDone ( otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
درایور رادیویی این تابع را فراخوانی می‌کند تا به OpenThread اطلاع دهد که عملیات ارسال به پایان رسیده است و هم فریم ارسالی و هم در صورت وجود، قاب دریافتی را ارائه می‌کند.
otPlatRadioTxStarted ( otInstance *aInstance, otRadioFrame *aFrame)
void
درایور رادیو این روش را فراخوانی می کند تا به OpenThread اطلاع دهد که انتقال شروع شده است.
otPlatRadioUpdateCslSampleTime ( otInstance *aInstance, uint32_t aCslSampleTime)
void
زمان نمونه CSL را در درایور رادیو به روز کنید.

کارکرد

otPlatDiagRadioReceiveDone

void otPlatDiagRadioReceiveDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

درایور رادیو این روش را فراخوانی می کند تا ماژول تشخیص OpenThread را از فریم دریافتی مطلع کند.

زمانی استفاده می شود که تشخیص فعال باشد.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aFrame
اشاره گر به فریم دریافتی یا NULL در صورت عدم موفقیت عملیات دریافت.
[in] aError
OT_ERROR_NONE هنگامی که فریم با موفقیت دریافت شد، OT_ERROR_ABORT زمانی که دریافت متوقف شد و فریمی دریافت نشد، OT_ERROR_NO_BUFS زمانی که فریم به دلیل کمبود فضای بافر rx دریافت نشد.

otPlatDiagRadioTransmitDone

void otPlatDiagRadioTransmitDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

درایور رادیو این روش را فراخوانی می کند تا به ماژول تشخیص OpenThread اطلاع دهد که انتقال کامل شده است.

زمانی استفاده می شود که تشخیص فعال باشد.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aFrame
اشاره گر به فریمی که منتقل شد.
[in] aError
OT_ERROR_NONE هنگام ارسال فریم، OT_ERROR_CHANNEL_ACCESS_FAILURE tx نمی‌تواند به دلیل فعالیت در کانال انجام شود، OT_ERROR_ABORT زمانی که انتقال به دلایل دیگر متوقف شد.

otPlatRadioAddCalibratedPower

otError otPlatRadioAddCalibratedPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int16_t aActualPower,
  const uint8_t *aRawPowerSetting,
  uint16_t aRawPowerSettingLength
)

یک توان کالیبره شده از کانال مشخص شده را به جدول کالیبراسیون توان اضافه کنید.

وقتی پارامترهای ماژول‌های سخت‌افزار رادیویی روی aRawPowerSetting تنظیم می‌شوند، aActualPower توان خروجی اندازه‌گیری شده واقعی است.

تنظیم توان خام یک آرایه بایت مات است. OpenThread قالب تنظیم قدرت خام را تعریف نمی کند. قالب آن مربوط به سخت افزار رادیویی است و باید توسط توسعه دهندگان در درایور رادیویی پلت فرم تعریف شود. به عنوان مثال، اگر سخت افزار رادیویی شامل تراشه رادیویی و تراشه FEM باشد، تنظیم توان خام می تواند ترکیبی از ثبات رادیویی و مقدار بهره FEM باشد.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aChannel
کانال رادیویی
[in] aActualPower
قدرت واقعی در 0.01dBm.
[in] aRawPowerSetting
اشاره گر به آرایه بایت تنظیم توان خام.
[in] aRawPowerSettingLength
طول aRawPowerSetting .
ارزش های بازگشتی
OT_ERROR_NONE
توان کالیبره شده با موفقیت به جدول کالیبراسیون توان اضافه شد.
OT_ERROR_NO_BUFS
هیچ ورودی در جدول کالیبراسیون توان موجود نیست.
OT_ERROR_INVALID_ARGS
aChannel ، aActualPower یا aRawPowerSetting نامعتبر است یا aActualPower از قبل در جدول کالیبراسیون برق وجود دارد.
OT_ERROR_NOT_IMPLEMENTED
این ویژگی اجرا نشده است.

otPlatRadioAddSrcMatchExtEntry

otError otPlatRadioAddSrcMatchExtEntry(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

یک آدرس توسعه یافته به جدول مطابقت آدرس منبع اضافه کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aExtAddress
آدرس توسعه یافته ای که باید اضافه شود به ترتیب بایت اندکی ذخیره می شود.
ارزش های بازگشتی
OT_ERROR_NONE
آدرس توسعه یافته با موفقیت به جدول مطابقت منبع اضافه شد.
OT_ERROR_NO_BUFS
هیچ ورودی در جدول مطابقت منبع موجود نیست.

otPlatRadioAddSrcMatchShortEntry

otError otPlatRadioAddSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

یک آدرس کوتاه به جدول مطابقت آدرس منبع اضافه کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aShortAddress
آدرس کوتاهی که باید اضافه شود.
ارزش های بازگشتی
OT_ERROR_NONE
آدرس کوتاه با موفقیت به جدول مطابقت منبع اضافه شد.
OT_ERROR_NO_BUFS
هیچ ورودی در جدول مطابقت منبع موجود نیست.

otPlatRadioClearCalibratedPowers

otError otPlatRadioClearCalibratedPowers(
  otInstance *aInstance
)

تمام توان های کالیبره شده را از جدول کالیبراسیون برق پاک کنید.

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

otPlatRadioClearSrcMatchExtEntries

void otPlatRadioClearSrcMatchExtEntries(
  otInstance *aInstance
)

تمام آدرس‌های توسعه‌یافته/طولانی را از جدول مطابقت آدرس منبع پاک کنید.

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

otPlatRadioClearSrcMatchExtEntry

otError otPlatRadioClearSrcMatchExtEntry(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

یک آدرس توسعه یافته را از جدول مطابقت آدرس منبع حذف کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aExtAddress
آدرس توسعه یافته ای که باید حذف شود به ترتیب بایت اندکی ذخیره می شود.
ارزش های بازگشتی
OT_ERROR_NONE
آدرس توسعه یافته با موفقیت از جدول مطابقت منبع حذف شد.
OT_ERROR_NO_ADDRESS
آدرس توسعه‌یافته در جدول مطابقت آدرس منبع نیست.

otPlatRadioClearSrcMatchShortEntries

void otPlatRadioClearSrcMatchShortEntries(
  otInstance *aInstance
)

تمام آدرس های کوتاه را از جدول مطابقت آدرس منبع پاک کنید.

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

otPlatRadioClearSrcMatchShortEntry

otError otPlatRadioClearSrcMatchShortEntry(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

یک آدرس کوتاه را از جدول مطابقت آدرس منبع حذف کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aShortAddress
آدرس کوتاهی که باید حذف شود.
ارزش های بازگشتی
OT_ERROR_NONE
آدرس کوتاه با موفقیت از جدول مطابقت منبع حذف شد.
OT_ERROR_NO_ADDRESS
آدرس کوتاه در جدول مطابقت آدرس منبع نیست.

otPlatRadioConfigureEnhAckProbing

otError otPlatRadioConfigureEnhAckProbing(
  otInstance *aInstance,
  otLinkMetrics aLinkMetrics,
  otShortAddress aShortAddress,
  const otExtAddress *aExtAddress
)

فعال/غیرفعال یا به روز رسانی Enhanced-ACK Based Probing در رادیو برای یک Initiator خاص.

پس از پیکربندی Enhanced-ACK Based Probing توسط یک Probing Initiator خاص، Enhanced-ACK ارسال شده به آن گره باید شامل IE خاص فروشنده حاوی داده های Link Metrics باشد. این روش به رادیو اطلاع می‌دهد که برای جمع‌آوری داده‌های Link Metrics شروع/توقف کند و شامل IE خاص فروشنده است که حاوی داده‌های موجود در Enhanced-ACK ارسال شده به آن آغازگر کاوشگر است.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aLinkMetrics
این پارامتر مشخص می کند که چه معیارهایی باید پرس و جو شود. طبق مشخصات 4.11.3.4.4.6، حداکثر 2 معیار قابل تعیین است. اگر aLinkMetrics به صورت بیتی 0 باشد، کاوش غیرفعال می شود.
[in] aShortAddress
آدرس کوتاه آغازگر کاوشگر.
[in] aExtAddress
آدرس منبع توسعه یافته Probing Initiator. aExtAddr نباید NULL باشد.
ارزش های بازگشتی
OT_ERROR_NONE
کاوش مبتنی بر ACK با موفقیت پیکربندی شد.
OT_ERROR_INVALID_ARGS
aExtAddress NULL است.
OT_ERROR_NOT_FOUND
Initiator نشان داده شده توسط aShortAddress هنگام تلاش برای پاک کردن یافت نمی شود.
OT_ERROR_NO_BUFS
هیچ Initiator دیگری را نمی توان پشتیبانی کرد.
OT_ERROR_NOT_IMPLEMENTED
ویژگی اجرا نشده است.

otPlatRadioDisable

otError otPlatRadioDisable(
  otInstance *aInstance
)

رادیو را غیرفعال کنید

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

otPlatRadioEnable

otError otPlatRadioEnable(
  otInstance *aInstance
)

رادیو را فعال کنید

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

otPlatRadioEnableCsl

otError otPlatRadioEnableCsl(
  otInstance *aInstance,
  uint32_t aCslPeriod,
  otShortAddress aShortAddr,
  const otExtAddress *aExtAddr
)

گیرنده CSL را فعال یا غیرفعال کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aCslPeriod
دوره CSL، 0 برای غیرفعال کردن CSL. دوره CSL در واحد 10 نماد است.
[in] aShortAddr
آدرس منبع کوتاه همتا گیرنده CSL.
[in] aExtAddr
آدرس منبع توسعه یافته همتای گیرنده CSL.
ارزش های بازگشتی
kErrorNotImplemented
درایور رادیو از CSL پشتیبانی نمی کند.
kErrorFailed
سایر خطاهای خاص پلت فرم.
kErrorNone
CSL با موفقیت فعال یا غیرفعال شد.

otPlatRadioEnableSrcMatch

void otPlatRadioEnableSrcMatch(
  otInstance *aInstance,
  bool aEnable
)

فعال/غیرفعال کردن ویژگی مطابقت آدرس منبع.

ویژگی تطبیق آدرس منبع کنترل می کند که چگونه لایه رادیویی بیت "قاب در انتظار" را برای اکک های ارسال شده در پاسخ به دستورات درخواست داده از کودکان تعیین می کند.

در صورت غیرفعال شدن، لایه رادیویی باید «قاب در انتظار» را در تمام دستورات درخواست داده تنظیم کند.

اگر فعال باشد، لایه رادیویی از جدول تطبیق آدرس منبع استفاده می‌کند تا تعیین کند بیت «قاب در انتظار» را در یک فرمان درخواست داده تنظیم یا پاک کند.

جدول تطبیق آدرس منبع، فهرستی از فرزندانی را ارائه می دهد که برای آنها یک قاب در انتظار وجود دارد. یک آدرس کوتاه یا یک آدرس طولانی/طولانی می‌تواند به جدول مطابقت آدرس منبع اضافه شود.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aEnable
فعال/غیرفعال کردن ویژگی مطابقت آدرس منبع.

otPlatRadioEnergyScan

otError otPlatRadioEnergyScan(
  otInstance *aInstance,
  uint8_t aScanChannel,
  uint16_t aScanDuration
)

دنباله اسکن انرژی را در رادیو شروع کنید.

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

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aScanChannel
کانالی که در آن اسکن انرژی انجام می شود.
[in] aScanDuration
مدت زمان اسکن شدن کانال، بر حسب میلی ثانیه.
ارزش های بازگشتی
OT_ERROR_NONE
اسکن کانال با موفقیت شروع شد.
OT_ERROR_BUSY
رادیو در حال انجام اسکن انرژی است.
OT_ERROR_NOT_IMPLEMENTED
رادیو از اسکن انرژی پشتیبانی نمی کند.

otPlatRadioEnergyScanDone

void otPlatRadioEnergyScanDone(
  otInstance *aInstance,
  int8_t aEnergyScanMaxRssi
)

درایور رادیو این روش را فراخوانی می کند تا به OpenThread اطلاع دهد که اسکن انرژی کامل شده است.

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

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aEnergyScanMaxRssi
حداکثر RSSI که در کانال اسکن شده مشاهده می شود.

otPlatRadioGetCoexMetrics

otError otPlatRadioGetCoexMetrics(
  otInstance *aInstance,
  otRadioCoexMetrics *aCoexMetrics
)

معیارهای همزیستی رادیویی را دریافت کنید.

زمانی استفاده می شود که ویژگی OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE فعال باشد.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[out] aCoexMetrics
اشاره‌ای به ساختار معیارهای همزیستی.
ارزش های بازگشتی
OT_ERROR_NONE
معیارهای coex با موفقیت بازیابی شد.
OT_ERROR_INVALID_ARGS
aCoexMetrics NULL بود.

otPlatRadioGetCslAccuracy

uint8_t otPlatRadioGetCslAccuracy(
  otInstance *aInstance
)

دقت تخمینی بدترین حالت فعلی (حداکثر ± انحراف از فرکانس اسمی) ساعت رادیویی محلی را بر حسب واحد PPM بدست آورید.

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

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

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
جابجایی زمان‌بندی CSL rx/tx فعلی، در PPM.

otPlatRadioGetCslUncertainty

uint8_t otPlatRadioGetCslUncertainty(
  otInstance *aInstance
)

عدم قطعیت ثابت (یعنی

جیتر تصادفی) زمان رسیدن ارسال های CSL دریافتی توسط این دستگاه در واحد 10 میکروثانیه.

این نشان دهنده بدترین حالت انحراف ثابت مثبت یا منفی زمان رسیدن واقعی یک ارسال از زمان ارسال محاسبه شده نسبت به ساعت رادیویی محلی مستقل از زمان سپری شده است. علاوه بر عدم قطعیت انباشته شده در طول زمان سپری شده، نمونه کانال CSL ("پنجره RX") باید با دو برابر این انحراف گسترش یابد، به طوری که انتقال واقعی توسط گیرنده محلی در حضور لرزش زمان رسیدن تصادفی تضمین شود.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
عدم قطعیت CSL در واحدهای 10 ما.

otPlatRadioGetPreferredChannelMask

uint32_t otPlatRadioGetPreferredChannelMask(
  otInstance *aInstance
)

ماسک کانال ترجیحی رادیویی را دریافت می کند که دستگاه ترجیح می دهد روی آن شکل بگیرد.

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

otPlatRadioGetRawPowerSetting

otError otPlatRadioGetRawPowerSetting(
  otInstance *aInstance,
  uint8_t aChannel,
  uint8_t *aRawPowerSetting,
  uint16_t *aRawPowerSettingLength
)

تنظیم قدرت خام برای کانال داده شده را دریافت کنید.

لایه رادیویی پلتفرم باید تنظیمات توان خام را بر اساس قالب تعریف شده لایه رادیویی تجزیه کند و پارامترهای هر ماژول سخت افزار رادیویی را تنظیم کند.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aChannel
کانال رادیویی
[out] aRawPowerSetting
اشاره گر به آرایه بایت تنظیم توان خام.
[in,out] aRawPowerSettingLength
در ورودی، یک اشاره گر به اندازه aRawPowerSetting . در خروجی، یک اشاره گر به طول داده های تنظیم توان خام.
ارزش های بازگشتی
OT_ERROR_NONE
با موفقیت قدرت هدف را بدست آورد.
OT_ERROR_INVALID_ARGS
aChannel نامعتبر است، aRawPowerSetting یا aRawPowerSettingLength NULL است یا خیلی کوتاه است.
OT_ERROR_NOT_FOUND
تنظیم برق خام برای aChannel پیدا نشد.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

کد منطقه را دریافت کنید.

فرمت منطقه رادیویی نمایش 2 بایتی اسکی کد ISO 3166 آلفا-2 است.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[out] aRegionCode
منطقه رادیویی
ارزش های بازگشتی
OT_ERROR_INVALID_ARGS
aRegionCode nullptr است.
OT_ERROR_FAILED
سایر خطاهای خاص پلت فرم.
OT_ERROR_NONE
کد منطقه با موفقیت دریافت شد.
OT_ERROR_NOT_IMPLEMENTED
ویژگی اجرا نشده است.

otPlatRadioGetRssi

int8_t otPlatRadioGetRssi(
  otInstance *aInstance
)

جدیدترین اندازه گیری RSSI را دریافت کنید.

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

otPlatRadioGetState

otRadioState otPlatRadioGetState(
  otInstance *aInstance
)

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

مورد نیاز OpenThread نیست. ممکن است برای اشکال زدایی و/یا اهداف خاص برنامه استفاده شود.

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

otPlatRadioGetSupportedChannelMask

uint32_t otPlatRadioGetSupportedChannelMask(
  otInstance *aInstance
)

ماسک کانال رادیویی را که دستگاه مجاز به استفاده از آن است، دریافت کنید.

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

otPlatRadioGetTransmitBuffer

otRadioFrame * otPlatRadioGetTransmitBuffer(
  otInstance *aInstance
)

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

OpenThread فریم IEEE 802.15.4 را در این بافر تشکیل می دهد و سپس otPlatRadioTransmit() برای درخواست انتقال فراخوانی می کند.

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

otPlatRadioIsCoexEnabled

bool otPlatRadioIsCoexEnabled(
  otInstance *aInstance
)

بررسی کنید که آیا رادیو coex فعال است یا خیر.

زمانی استفاده می شود که ویژگی OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE فعال باشد.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
برمی گرداند
اگر کوکس رادیویی فعال باشد درست است، در غیر این صورت نادرست است.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

بررسی کنید که آیا رادیو فعال است یا خیر.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
برمی گرداند
اگر رادیو فعال باشد درست است، در غیر این صورت نادرست است.

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

رادیو را از حالت خواب به دریافت انتقال دهید (رادیو را روشن کنید).

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aChannel
کانال مورد استفاده برای دریافت
ارزش های بازگشتی
OT_ERROR_NONE
با موفقیت به Receive منتقل شد.
OT_ERROR_INVALID_STATE
رادیو غیرفعال یا در حال مخابره بود.

otPlatRadioReceiveAt

otError otPlatRadioReceiveAt(
  otInstance *aInstance,
  uint8_t aChannel,
  uint32_t aStart,
  uint32_t aDuration
)

یک پنجره دریافت رادیو را در زمان و مدت زمان مشخصی برنامه ریزی کنید.

جزئیات
مولفه های
[in] aChannel
کانال رادیویی که در آن دریافت می شود.
[in] aStart
زمان شروع پنجره دریافت نسبت به ساعت رادیویی محلی، به otPlatRadioGetNow مراجعه کنید. گیرنده رادیویی باید روشن و آماده دریافت اولین نماد SHR یک فریم در زمان شروع پنجره باشد.
[in] aDuration
مدت زمان پنجره دریافت بر حسب میکروثانیه که توسط ساعت رادیویی محلی اندازه گیری می شود. رادیو باید بعد از این مدت خاموش شود (یا در صورت نیاز به ارسال فریم ACK به حالت TX تبدیل شود) مگر اینکه هنوز به طور فعال فریم را دریافت کند. در حالت دوم، رادیو باید در حالت دریافت نگه داشته شود تا زمانی که دریافت فریم موفق یا ناموفق باشد.
ارزش های بازگشتی
OT_ERROR_NONE
پنجره دریافت با موفقیت برنامه ریزی شد.
OT_ERROR_FAILED
پنجره دریافت نمی تواند برنامه ریزی شود.

otPlatRadioReceiveDone

void otPlatRadioReceiveDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otError aError
)

درایور رادیو این روش را فراخوانی می کند تا OpenThread را از فریم دریافتی مطلع کند.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aFrame
اشاره گر به فریم دریافتی یا NULL در صورت عدم موفقیت عملیات دریافت.
[in] aError
OT_ERROR_NONE هنگامی که فریم با موفقیت دریافت شد، OT_ERROR_ABORT زمانی که دریافت متوقف شد و فریمی دریافت نشد، OT_ERROR_NO_BUFS زمانی که فریم به دلیل کمبود فضای بافر rx دریافت نشد.

otPlatRadioSetChannelMaxTransmitPower

otError otPlatRadioSetChannelMaxTransmitPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int8_t aMaxPower
)

حداکثر توان ارسال را برای یک کانال خاص تنظیم کنید.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aChannel
کانال رادیویی
[in] aMaxPower
حداکثر توان بر حسب دسی بل، عبور از OT_RADIO_RSSI_INVALID، این کانال را غیرفعال می کند.
ارزش های بازگشتی
OT_ERROR_NOT_IMPLEMENTED
ویژگی اجرا نشده است
OT_ERROR_INVALID_ARGS
کانال مشخص شده معتبر نیست.
OT_ERROR_FAILED
سایر خطاهای خاص پلت فرم.
OT_ERROR_NONE
حداکثر توان انتقال با موفقیت تنظیم شد.

otPlatRadioSetChannelTargetPower

otError otPlatRadioSetChannelTargetPower(
  otInstance *aInstance,
  uint8_t aChannel,
  int16_t aTargetPower
)

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

درایور رادیو باید توان خروجی واقعی را کمتر یا مساوی توان هدف و تا حد امکان نزدیک به توان هدف تنظیم کند.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aChannel
کانال رادیویی
[in] aTargetPower
توان هدف در 0.01dBm. عبور از INT16_MAX این کانال را برای استفاده از توان هدف غیرفعال می کند.
ارزش های بازگشتی
OT_ERROR_NONE
توان هدف را با موفقیت تنظیم کرد.
OT_ERROR_INVALID_ARGS
aChannel یا aTargetPower نامعتبر است.
OT_ERROR_NOT_IMPLEMENTED
ویژگی اجرا نشده است.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

کوکس رادیویی را فعال کنید.

زمانی استفاده می شود که ویژگی OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE فعال باشد.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aEnabled
TRUE برای فعال کردن coex رادیویی، FALSE در غیر این صورت.
ارزش های بازگشتی
OT_ERROR_NONE
با موفقیت فعال شد.
OT_ERROR_FAILED
coex رادیویی فعال نشد.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

کد منطقه را تنظیم کنید.

فرمت منطقه رادیویی نمایش 2 بایتی اسکی کد ISO 3166 آلفا-2 است.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aRegionCode
کد منطقه رادیویی aRegionCode >> 8 اولین char ascii است و aRegionCode & 0xff دومین علامت ascii است.
ارزش های بازگشتی
OT_ERROR_FAILED
سایر خطاهای خاص پلت فرم.
OT_ERROR_NONE
کد منطقه با موفقیت تنظیم شد.
OT_ERROR_NOT_IMPLEMENTED
ویژگی اجرا نشده است.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

انتقال رادیو از Receive به Sleep (رادیو را خاموش کنید).

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
ارزش های بازگشتی
OT_ERROR_NONE
با موفقیت به خواب منتقل شد.
OT_ERROR_BUSY
رادیو مخابره می کرد.
OT_ERROR_INVALID_STATE
رادیو غیرفعال شد

otPlatRadioTransmit

otError otPlatRadioTransmit(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

دنباله ارسال را در رادیو شروع کنید.

تماس گیرنده باید قاب IEEE 802.15.4 را در بافر ارائه شده توسط otPlatRadioGetTransmitBuffer() قبل از درخواست انتقال تشکیل دهد. کانال و توان انتقال نیز در ساختار otRadioFrame گنجانده شده است.

دنباله ارسال شامل موارد زیر است:

  1. انتقال رادیو به انتقال از یکی از حالت های زیر:
    • در صورت روشن بودن RX هنگامی که دستگاه بیکار است یا OT_RADIO_CAPS_SLEEP_TO_TX پشتیبانی نمی شود، دریافت کنید
    • در صورت خاموش بودن RX هنگامی که دستگاه بیکار است و OT_RADIO_CAPS_SLEEP_TO_TX پشتیبانی می شود، بخوابید.
  2. psdu را در کانال داده شده و در توان انتقال داده شده ارسال می کند.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aFrame
اشاره گر به فریمی که قرار است منتقل شود.
ارزش های بازگشتی
OT_ERROR_NONE
انتقال با موفقیت به Transmit انجام شد.
OT_ERROR_INVALID_STATE
رادیو در حالت Receive نبود.

otPlatRadioTxDone

void otPlatRadioTxDone(
  otInstance *aInstance,
  otRadioFrame *aFrame,
  otRadioFrame *aAckFrame,
  otError aError
)

درایور رادیویی این تابع را فراخوانی می‌کند تا به OpenThread اطلاع دهد که عملیات ارسال به پایان رسیده است و هم فریم ارسالی و هم در صورت وجود، قاب دریافتی را ارائه می‌کند.

وقتی رادیو قابلیت OT_RADIO_CAPS_TRANSMIT_SEC را ارائه می‌کند، لایه پلتفرم رادیویی aFrame با شمارنده قاب امنیتی و مقادیر شاخص کلیدی که توسط رادیو حفظ می‌شود، به‌روزرسانی می‌کند.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aFrame
اشاره گر به فریمی که منتقل شد.
[in] aAckFrame
یک اشاره گر به قاب ACK، اگر ACK دریافت نشد، NULL.
[in] aError
OT_ERROR_NONE هنگام ارسال فریم، OT_ERROR_NO_ACK زمانی که فریم ارسال شد اما ACK دریافت نشد، OT_ERROR_CHANNEL_ACCESS_FAILURE tx به دلیل فعالیت در کانال انجام نشد، OT_ERROR_ABORT زمانی که ارسال به دلایل دیگر متوقف شد.

otPlatRadioTxStarted

void otPlatRadioTxStarted(
  otInstance *aInstance,
  otRadioFrame *aFrame
)

درایور رادیو این روش را فراخوانی می کند تا به OpenThread اطلاع دهد که انتقال شروع شده است.

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

otPlatRadioUpdateCslSampleTime

void otPlatRadioUpdateCslSampleTime(
  otInstance *aInstance,
  uint32_t aCslSampleTime
)

زمان نمونه CSL را در درایور رادیو به روز کنید.

زمان نمونه در درایور رادیو به عنوان یک کپی برای محاسبه فاز هنگام ارسال ACK با CSL IE ذخیره می شود. نمونه CSL (پنجره) گیرنده CSL قبل و بعد از زمان نمونه گسترش می یابد. زمان نمونه CSL یک مُهر زمانی را در پنجره نمونه CSL نشان می‌دهد، زمانی که یک فریم باید در "شرایط ایده‌آل" دریافت شود، در صورتی که عدم دقت/دریفت ساعت وجود نداشته باشد.

جزئیات
مولفه های
[in] aInstance
ساختار نمونه OpenThread.
[in] aCslSampleTime
زمان نمونه بعدی، در میکروثانیه. زمانی است که انتظار می رود اولین نماد MHR فریم باشد.

منابع

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