تشغيل الراديو

تتضمن هذه الوحدة فكرة مجرّدة عن العمليات الإذاعية.

ملخّص

الدوال

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)
تفعيل/إيقاف أو تحديث "الاستقصاء المستند إلى ACK" في الراديو لمنشئ معيّن
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)
نقل الراديو من الاستلام إلى وضع السكون (إيقاف الراديو).
otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
ابدأ تسلسل الإرسال على الراديو.
otPlatRadioTxDone(otInstance *aInstance, otRadioFrame *aFrame, otRadioFrame *aAckFrame, otError aError)
void
يستدعي برنامج تشغيل اللاسلكي هذه الدالة لإبلاغ OpenThread باكتمال عملية الإرسال، مع تقديم كل من الإطار الذي تم إرساله، وكذلك إطار ack (إن أمكن) الذي تم استلامه.
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
مؤشر إلى الإطار الذي تم استلامه أو فارغ في حال فشل عملية الاستلام.
[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
)

يمكنك إضافة قوة معايرة للقناة المحدّدة إلى جدول معايرة الطاقة.

وaActualPower هي الطاقة الناتجة عن القياس الفعلية عند ضبط معلَمات وحدات الأجهزة اللاسلكية على aRawPowerSetting.

إعداد الطاقة الأولي هو مصفوفة بايت مبهمة. لا يحدد OpenThread تنسيق إعداد الطاقة الأولي. ويكون تنسيقه مرتبطًا بأجهزة لاسلكية ويجب أن يحدّدها المطوّرون في برنامج تشغيل الراديو على النظام الأساسي. على سبيل المثال، إذا كان الجهاز اللاسلكي يحتوي على كل من شريحة الراديو وشريحة FEM، يمكن أن يكون إعداد الطاقة الأولية مزيجًا من سجل الطاقة اللاسلكية وقيمة اكتساب FEM.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aChannel
قناة الراديو
[in] aActualPower
الطاقة الفعلية بـ 0.01 ديسيبل ملي واط.
[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
)

تفعيل/إيقاف أو تحديث "الاستقصاء المستند إلى ACK" في الراديو لمنشئ معيّن

بعد ضبط الفحص المستند إلى ACK بواسطة أداة محددة للفحص، يجب أن يشتمل ACK المحسّن الذي تم إرساله إلى تلك العقدة على IE الخاص بالمورّد والذي يحتوي على بيانات Link Metrics (مقاييس الرابط). توجِّه هذه الطريقة الراديو لبدء/إيقاف جمع بيانات "مقاييس الرابط" وتضمين بيانات IE الخاصة بالمورّدين والتي تحتوي على البيانات في Enhanced-ACK المُرسلة إلى "أداة بدء الفحص".

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aLinkMetrics
تحدد هذه المعلمة المقاييس التي تحتاج إلى طلب بحث عنها. وفقًا للمواصفات 4.11.3.4.4.6، يمكن تحديد مقياسين على الأكثر. وسيتم إيقاف الفحص إذا كانت قيمة aLinkMetrics هي 0 على مستوى البت.
[in] aShortAddress
تمثّل هذه السمة العنوان القصير لجهة بدء عملية الفحص.
[in] aExtAddress
عنوان المصدر الموسَّع لجهة بدء التحقيق. يجب ألا يكون aExtAddr NULL.
قيم الإرجاع
OT_ERROR_NONE
تم ضبط الفحص المستند إلى ACK بنجاح.
OT_ERROR_INVALID_ARGS
aExtAddress هي NULL.
OT_ERROR_NOT_FOUND
لم يتم العثور على أداة البدء التي تمت الإشارة إليها من خلال aShortAddress عند محاولة محو البيانات.
OT_ERROR_NO_BUFS
لا يمكن توفير المزيد من أداة البدء.
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
)

الحصول على مقاييس تواجد الأفراد في المنزل.

يتم استخدامه عندما تكون الميزة OPENTalk_CONFIG_PLATFORM_Adaptive_COEX_ENABLE مفعّلة.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[out] aCoexMetrics
يشير ذلك المصطلح إلى مؤشر لبنية مقاييس التواجد المشترك.
قيم الإرجاع
OT_ERROR_NONE
تم استرداد مقاييس Coex بنجاح.
OT_ERROR_INVALID_ARGS
aCoexMetrics كانت فارغة.

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 فارغة أو قصيرة جدًا.
OT_ERROR_NOT_FOUND
لم يتم العثور على إعداد الطاقة الأولية لجهاز aChannel.

otPlatRadioGetRegion

otError otPlatRadioGetRegion(
  otInstance *aInstance,
  uint16_t *aRegionCode
)

احصل على رمز المنطقة.

إنّ تنسيق منطقة الراديو هو تمثيل ascii بحجم 2 بايت لرمز ISO 3166 alpha-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 بالديسيبل ميلي واط عندما يكون صالحًا. 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 اللاسلكية مفعَّلة أم لا.

يتم استخدامه عندما تكون الميزة OPENTalk_CONFIG_PLATFORM_Adaptive_COEX_ENABLE مفعّلة.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
المرتجعات
TRUE في حالة تمكين تبادل المعلومات الثنائي، والخطأ FALSE في الحالات الأخرى.

otPlatRadioIsEnabled

bool otPlatRadioIsEnabled(
  otInstance *aInstance
)

تحقق مما إذا كان الراديو مفعَّلاً أم لا.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
المرتجعات
TRUE في حالة تمكين الراديو، وFALSE في الحالات الأخرى.

otPlatRadioReceive

otError otPlatRadioReceive(
  otInstance *aInstance,
  uint8_t aChannel
)

نقل الراديو من وضع "السكون" إلى "الاستلام" (فعِّل الراديو).

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aChannel
القناة المطلوب استخدامها لتلقّي الرسائل
قيم الإرجاع
OT_ERROR_NONE
تم النقل بنجاح إلى "استلام".
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
مدة فترة الاستقبال بالميكرو ثانية، وفقًا لقياس ساعة الراديو المحلية ينبغي إيقاف تشغيل الراديو (أو تبديله إلى وضع TX إذا لزم الأمر إرسال إطار ACK) بعد هذه المدة ما لم يكن الجهاز لا يزال يتلقى إطارًا بشكل نشط. وفي الحالة الثانية، سيظل اللاسلكي في وضع الاستقبال إلى أن ينجح استقبال الإطار أو يفشل.
قيم الإرجاع
OT_ERROR_NONE
تمت جدولة فترة الاستلام بنجاح.
OT_ERROR_FAILED
تعذَّرت جدولة فترة الاستلام.

otPlatRadioReceiveDone

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

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

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aFrame
مؤشر إلى الإطار الذي تم استلامه أو فارغ في حال فشل عملية الاستلام.
[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.01 ديسيبل ملي واط سيؤدي اجتياز معيار INT16_MAX إلى إيقاف استخدام هذه القناة للطاقة المستهدفة.
قيم الإرجاع
OT_ERROR_NONE
تم ضبط الطاقة المستهدفة بنجاح.
OT_ERROR_INVALID_ARGS
قيمة aChannel أو aTargetPower غير صالحة.
OT_ERROR_NOT_IMPLEMENTED
لم يتم تنفيذ الميزة.

otPlatRadioSetCoexEnabled

otError otPlatRadioSetCoexEnabled(
  otInstance *aInstance,
  bool aEnabled
)

تفعيل وصلة الراديو.

يتم استخدامه عندما تكون الميزة OPENTalk_CONFIG_PLATFORM_Adaptive_COEX_ENABLE مفعّلة.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aEnabled
TRUE لتمكين تكامل الراديو، أو FALSE في الحالات الأخرى.
قيم الإرجاع
OT_ERROR_NONE
تم التفعيل بنجاح.
OT_ERROR_FAILED
تعذر تفعيل مشترك الراديو.

otPlatRadioSetRegion

otError otPlatRadioSetRegion(
  otInstance *aInstance,
  uint16_t aRegionCode
)

اضبط رمز المنطقة.

إنّ تنسيق منطقة الراديو هو تمثيل ascii بحجم 2 بايت لرمز ISO 3166 alpha-2.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aRegionCode
رمز منطقة الراديو. aRegionCode >> 8 هو حرف ASCII الأول وaRegionCode & 0xff هو حرف Ascii الثاني.
قيم الإرجاع
OT_ERROR_FAILED
أخطاء أخرى متعلّقة بالنظام الأساسي
OT_ERROR_NONE
تم ضبط رمز المنطقة بنجاح.
OT_ERROR_NOT_IMPLEMENTED
لم يتم تنفيذ الميزة.

otPlatRadioSleep

otError otPlatRadioSleep(
  otInstance *aInstance
)

نقل الراديو من الاستلام إلى وضع السكون (إيقاف الراديو).

التفاصيل
المَعلمات
[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
تم النقل إلى الإرسال بنجاح.
OT_ERROR_INVALID_STATE
لم يكن الراديو في حالة الاستلام.

otPlatRadioTxDone

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

يستدعي برنامج تشغيل اللاسلكي هذه الدالة لإبلاغ OpenThread باكتمال عملية الإرسال، مع تقديم كل من الإطار الذي تم إرساله، وكذلك إطار ack (إن أمكن) الذي تم استلامه.

عندما يوفّر الراديو إمكانية OT_RADIO_CAPS_TRANSMIT_SEC، تُحدِّث طبقة النظام الأساسي للراديو aFrame بعدّاد إطار الأمان وقيم الفهرس الرئيسية التي يحفظها الاتصال اللاسلكي.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aFrame
مؤشر إلى الإطار الذي تم إرساله.
[in] aAckFrame
مؤشر إلى إطار ACK، فارغ في حال عدم تلقي ACK.
[in] aError
OT_ERROR_NONE عند إرسال الإطار، OT_ERROR_NO_ACK عند إرسال الإطار ولكن لم يتم استلام ACK، تعذر حدوث OT_ERROR_CHANNEL_ACCESS_FAILURE بسبب نشاط على القناة، 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 للحالات التي يجب فيها استلام الإطار في "الظروف المثالية" إذا لم يكن هناك خطأ أو تغيُّر سرعة الساعة.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aCslSampleTime
وقت العيّنة التالي، بالميكرو ثانية هو الوقت الذي يكون فيه أول رمز MHR للإطار متوقعًا.

المراجِع

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