الإعدادات

تتضمن هذه الوحدة تجريد النظام الأساسي للتخزين غير المتطاير للإعدادات.

ملخّص

عمليات التعداد

anonymous enum{
  OT_SETTINGS_KEY_ACTIVE_DATASET = 0x0001,
  OT_SETTINGS_KEY_PENDING_DATASET = 0x0002,
  OT_SETTINGS_KEY_NETWORK_INFO = 0x0003,
  OT_SETTINGS_KEY_PARENT_INFO = 0x0004,
  OT_SETTINGS_KEY_CHILD_INFO = 0x0005,
  OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY = 0x0007,
  OT_SETTINGS_KEY_DAD_INFO = 0x0008,
  OT_SETTINGS_KEY_SRP_ECDSA_KEY = 0x000b,
  OT_SETTINGS_KEY_SRP_CLIENT_INFO = 0x000c,
  OT_SETTINGS_KEY_SRP_SERVER_INFO = 0x000d,
  OT_SETTINGS_KEY_BR_ULA_PREFIX = 0x000f,
  OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES = 0x0010,
  OT_SETTINGS_KEY_BORDER_AGENT_ID = 0x0011
}
تعداد
تحدد مفاتيح الإعدادات.

الدوال

otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
لإضافة قيمة إلى إعداد
otPlatSettingsDeinit(otInstance *aInstance)
void
إجراء أي إلغاء تهيئة للنظام الفرعي للإعدادات، إذا لزم الأمر.
otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
يؤدي إلى إزالة إعداد من مخزن الإعدادات.
otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength)
لاسترجاع قيمة إعداد
otPlatSettingsInit(otInstance *aInstance, const uint16_t *aSensitiveKeys, uint16_t aSensitiveKeysLength)
void
إجراء أي إعداد للنظام الفرعي للإعدادات، إذا لزم الأمر
otPlatSettingsSet(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
تحدِّد قيمة أحد الإعدادات أو تستبدلها
otPlatSettingsWipe(otInstance *aInstance)
void
يؤدي إلى إزالة جميع الإعدادات من مخزن الإعدادات.

عمليات التعداد

تعداد مجهول

 anonymous enum

تحدد مفاتيح الإعدادات.

ملاحظة: عند إضافة مفتاح إعدادات جديد، إذا كانت الإعدادات المقابلة للمفتاح تحتوي على معلومات حساسة للأمان، على مطوّر البرامج إضافة المفتاح إلى المصفوفة aSensitiveKeys التي يتم ضبطها في otPlatSettingsInit().

أماكن إقامة
OT_SETTINGS_KEY_ACTIVE_DATASET

مجموعة البيانات التشغيلية النشطة.

OT_SETTINGS_KEY_BORDER_AGENT_ID

معرّف جهاز التوجيه/وكيل الحدود الفريد

OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES

البادئات المحلية على الرابط في البرازيل

OT_SETTINGS_KEY_BR_ULA_PREFIX

بادئة BR ULA.

OT_SETTINGS_KEY_CHILD_INFO

معلومات الطفل:

OT_SETTINGS_KEY_DAD_INFO

معلومات عن اكتشاف العنوان (DAD) مكرّرة.

OT_SETTINGS_KEY_NETWORK_INFO

معلومات شبكة مؤشر الترابط

OT_SETTINGS_KEY_PARENT_INFO

معلومات الوالدَين

OT_SETTINGS_KEY_PENDING_DATASET

مجموعة بيانات تشغيلية معلّقة.

OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY

مفتاح SLAAC لإنشاء معرّف IID مبهم دلاليًا.

OT_SETTINGS_KEY_SRP_CLIENT_INFO

معلومات عميل SRP (عنوان خادم SRP المحدد).

OT_SETTINGS_KEY_SRP_ECDSA_KEY

زوج مفاتيح ECDSA (العام/الخاص) لعميل SRP.

OT_SETTINGS_KEY_SRP_SERVER_INFO

معلومات خادم SRP (منفذ UDP).

الدوال

otPlatSettingsAdd

otError otPlatSettingsAdd(
  otInstance *aInstance,
  uint16_t aKey,
  const uint8_t *aValue,
  uint16_t aValueLength
)

لإضافة قيمة إلى إعداد

لإضافة القيمة إلى الإعداد المحدَّد بواسطة aKey، بدون استبدال أي قيم حالية.

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

قد يؤدي استدعاء هذه الدالة بنجاح إلى إعادة ترتيب الإعدادات غير ذات الصلة ذات القيم المتعددة.

تضمن حزمة OpenThread استخدام طريقة otPlatSettingsAdd() على aKey التي تمت إدارتها سابقًا من خلال otPlatSettingsAdd() (أي تحتوي على عنصر واحد أو أكثر) أو فارغة و/أو محذوفة بالكامل (لا تحتوي على أي قيمة).

يمكن لطبقة النظام الأساسي الاعتماد على هذه الحقيقة واستخدامها لتحسين عملية تنفيذها.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aKey
المفتاح المرتبط بالإعداد الذي تريد تغييره.
[in] aValue
يشير إلى المكان الذي يجب قراءة القيمة الجديدة للإعداد منه. يجب ألا تكون القيمة فارغة إذا كانت القيمة aValueLength غير صفرية.
[in] aValueLength
طول البيانات المشار إليها بـ aValue. قد يكون صفرًا.
قيم الإرجاع
OT_ERROR_NONE
تمت إضافة الإعداد المحدّد أو تم إعداده لإضافته.
OT_ERROR_NOT_IMPLEMENTED
لم يتم تنفيذ هذه الدالة على هذا النظام الأساسي.
OT_ERROR_NO_BUFS
ليست هناك مساحة متبقية لتخزين الإعداد المحدد.

otPlatSettingsDeinit

void otPlatSettingsDeinit(
  otInstance *aInstance
)

إجراء أي إلغاء تهيئة للنظام الفرعي للإعدادات، إذا لزم الأمر.

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

otPlatSettingsDelete

otError otPlatSettingsDelete(
  otInstance *aInstance,
  uint16_t aKey,
  int aIndex
)

يؤدي إلى إزالة إعداد من مخزن الإعدادات.

لحذف قيمة معيّنة من الإعداد الذي يحدِّده مفتاح من مخزن الإعدادات.

وتجدُر الإشارة إلى أنّ عملية التنفيذ الأساسية لا تتطلّب الحفاظ على ترتيب العناصر المرتبطة بمفتاح معيّن.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aKey
المفتاح المرتبط بالإعداد المطلوب.
[in] aIndex
فهرس القيمة المطلوب إزالتها. وفي حال ضبطها على -1، ستتم إزالة جميع قيم aKey هذه.
قيم الإرجاع
OT_ERROR_NONE
تم العثور على المفتاح والفهرس المحدّدَين وتمّت إزالتهما بنجاح.
OT_ERROR_NOT_FOUND
لم يتم العثور على المفتاح أو الفهرس المحدد في مخزن الإعدادات.
OT_ERROR_NOT_IMPLEMENTED
لم يتم تنفيذ هذه الدالة على هذا النظام الأساسي.

otPlatSettingsGet

otError otPlatSettingsGet(
  otInstance *aInstance,
  uint16_t aKey,
  int aIndex,
  uint8_t *aValue,
  uint16_t *aValueLength
)

لاسترجاع قيمة إعداد

لاسترجاع قيمة الإعداد المحددة بواسطة aKey وكتابتها على الذاكرة المشار إليها بواسطة aValue. ثم تكتب هذه الدالة الطول إلى العدد الصحيح الذي يشير إليه aValueLength. القيمة الأولية لـ aValueLength هي الحد الأقصى لعدد وحدات البايت التي يمكن كتابتها في aValue.

يمكن استخدامها للتحقّق من وجود مفتاح بدون جلب القيمة من خلال ضبط aValue وaValueLength على "فارغ". يمكنك أيضًا التحقق من طول الإعداد بدون جلبه من خلال تعيين قيمة فقط إلى NULL.

يُرجى العلم أنّ تنفيذ مساحة التخزين الأساسية غير مطلوب للحفاظ على ترتيب الإعدادات ذات القيم المتعدّدة. قد يتغير ترتيب هذه القيم بعد أي عملية كتابة إلى المخزن.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aKey
المفتاح المرتبط بالإعداد المطلوب.
[in] aIndex
فهرس العنصر المحدّد المطلوب الحصول عليه.
[out] aValue
يشير إلى المكان الذي يجب كتابة قيمة الإعداد فيه. يمكن ضبطها على "NULL" (فارغ) في حال اختبار مدى توفّر إعداد أو طوله فقط.
[in,out] aValueLength
يشير هذا المصطلح إلى مؤشر لطول القيمة. عند استدعاء هذا المؤشر، يجب أن يشير إلى عدد صحيح يحتوي على الحد الأقصى لحجم القيمة التي يمكن كتابتها في aValue. وفي المقابل، تتم كتابة الطول الفعلي للإعداد. قد يتم ضبطه على "فارغ" في حال إجراء فحص تواجد الأفراد في المنزل.
قيم الإرجاع
OT_ERROR_NONE
تم العثور على الإعداد المحدّد واسترجاعه بنجاح.
OT_ERROR_NOT_FOUND
لم يتم العثور على الإعداد المحدد في مخزن الإعدادات.
OT_ERROR_NOT_IMPLEMENTED
لم يتم تنفيذ هذه الدالة على هذا النظام الأساسي.

otPlatSettingsInit

void otPlatSettingsInit(
  otInstance *aInstance,
  const uint16_t *aSensitiveKeys,
  uint16_t aSensitiveKeysLength
)

إجراء أي إعداد للنظام الفرعي للإعدادات، إذا لزم الأمر

ويضبط هذا الإعداد أيضًا المفاتيح الحساسة التي يجب تخزينها في المنطقة الآمنة.

يُرجى العلم أنّه يجب عدم إطلاق الذكرى التي تشير إليها العلامة aSensitiveKeys قبل تدمير aInstance.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aSensitiveKeys
مؤشر يشير إلى مصفوفة تحتوي على قائمة بالمفاتيح الحساسة. يمكن أن تكون القيمة فارغة فقط إذا كانت قيمة aSensitiveKeysLength هي 0، ما يعني عدم توفُّر مفاتيح حساسة.
[in] aSensitiveKeysLength
عدد الإدخالات في مصفوفة aSensitiveKeys.

otPlatSettingsSet

otError otPlatSettingsSet(
  otInstance *aInstance,
  uint16_t aKey,
  const uint8_t *aValue,
  uint16_t aValueLength
)

تحدِّد قيمة أحد الإعدادات أو تستبدلها

تضبط قيمة أحد الإعدادات التي يتم تحديدها بواسطة aKey أو تستبدلها.

قد يؤدي استدعاء هذه الدالة بنجاح إلى إعادة ترتيب الإعدادات غير ذات الصلة ذات القيم المتعددة.

يضمن تكديس OpenThread استخدام الإجراء otPlatSettingsSet() لعنصر aKey الذي سبق ضبطه باستخدام otPlatSettingsSet() (أي يحتوي على قيمة واحدة) أو أنّه فارغ و/أو محذوف تمامًا (لا يحتوي على أي قيمة).

يمكن لطبقة النظام الأساسي الاعتماد على هذه الحقيقة واستخدامها لتحسين عملية تنفيذها.

التفاصيل
المَعلمات
[in] aInstance
بنية النسخة الافتراضية OpenThread
[in] aKey
المفتاح المرتبط بالإعداد الذي تريد تغييره.
[in] aValue
يشير إلى المكان الذي يجب قراءة القيمة الجديدة للإعداد منه. يجب ألا تكون القيمة فارغة إذا كانت القيمة aValueLength غير صفرية.
[in] aValueLength
طول البيانات المشار إليها بواسطة aValue. قد يكون صفرًا.
قيم الإرجاع
OT_ERROR_NONE
تم تغيير الإعداد المحدد أو تنظيمه.
OT_ERROR_NOT_IMPLEMENTED
لم يتم تنفيذ هذه الدالة على هذا النظام الأساسي.
OT_ERROR_NO_BUFS
ليست هناك مساحة متبقية لتخزين الإعداد المحدد.

otPlatSettingsWipe

void otPlatSettingsWipe(
  otInstance *aInstance
)

يؤدي إلى إزالة جميع الإعدادات من مخزن الإعدادات.

يؤدي هذا الإجراء إلى حذف جميع الإعدادات من متجر الإعدادات، مع إعادة ضبطه على الإعدادات الأصلية.

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

المراجِع

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