Ustawienia

Ten moduł zawiera abstrakcję platformy do nieulotnego przechowywania ustawień.

Podsumowanie

Wyliczenia

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
}
enum | typ wyliczeniowy
Definiuje klucze ustawień.

Funkcje

otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
Dodaje wartość do ustawienia.
otPlatSettingsDeinit(otInstance *aInstance)
void
W razie potrzeby wykonuje deinicjalizację podsystemu ustawień.
otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
Usuwa ustawienie z magazynu ustawień.
otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength)
Pobiera wartość ustawienia.
otPlatSettingsInit(otInstance *aInstance, const uint16_t *aSensitiveKeys, uint16_t aSensitiveKeysLength)
void
W razie potrzeby inicjuje podsystem ustawień.
otPlatSettingsSet(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
Ustawia lub zastępuje wartość ustawienia.
otPlatSettingsWipe(otInstance *aInstance)
void
Usuwa wszystkie ustawienia z magazynu ustawień.

Wyliczenia

anonimowe wyliczenie

 anonymous enum

Definiuje klucze ustawień.

Uwaga: podczas dodawania nowego klucza ustawień, jeśli ustawienia powiązane z kluczem zawierają informacje poufne związane z bezpieczeństwem, deweloper MUSI dodać ten klucz do tablicy aSensitiveKeys przekazywanej w otPlatSettingsInit().

Właściwości
OT_SETTINGS_KEY_ACTIVE_DATASET

Aktywny zbiór danych operacyjnych.

OT_SETTINGS_KEY_BORDER_AGENT_ID

Unikalny identyfikator agenta/routera granicznego.

OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES

BR lokalne prefiksy on-link.

OT_SETTINGS_KEY_BR_ULA_PREFIX

Prefiks BR ULA.

OT_SETTINGS_KEY_CHILD_INFO

Informacje o podmiocie podrzędnym.

OT_SETTINGS_KEY_DAD_INFO

Zduplikowane informacje o wykrywaniu adresów.

OT_SETTINGS_KEY_NETWORK_INFO

Informacje o sieci typu Thread.

OT_SETTINGS_KEY_PARENT_INFO

Informacje o elemencie nadrzędnym.

OT_SETTINGS_KEY_PENDING_DATASET

Oczekuje na zbiór danych operacyjnych.

OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY

Klucz SLAAC do generowania nieprzezroczystego semantycznie identyfikatora IID.

OT_SETTINGS_KEY_SRP_CLIENT_INFO

Informacje o kliencie SRP (wybrany adres serwera SRP).

OT_SETTINGS_KEY_SRP_ECDSA_KEY

Para kluczy publicznego/prywatnego klienta SRP klienta ECDSA.

OT_SETTINGS_KEY_SRP_SERVER_INFO

Informacje o serwerze SRP (port UDP).

Funkcje

otPlatSettingsAdd

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

Dodaje wartość do ustawienia.

Dodaje wartość do ustawienia identyfikowanego przez atrybut aKey (bez zastępowania dotychczasowych wartości).

Pamiętaj, że podstawowa implementacja nie musi utrzymywać kolejności elementów powiązanych z określonym kluczem. Wartość dodana można dodać na końcu, na początku, a nawet gdzieś pośrodku. Kolejność istniejących wartości również może się zmienić.

Jej wywołanie może spowodować zmianę kolejności niepowiązanych ustawień z wieloma wartościami.

Stos OpenThread gwarantuje użycie metody otPlatSettingsAdd() dla elementu aKey, który wcześniej był zarządzany przez otPlatSettingsAdd() (czyli zawiera co najmniej 1 element) albo jest pusty lub całkowicie usunięty (nie zawiera wartości).

Warstwa platformy może wykorzystywać ten fakt do optymalizacji implementacji.

Szczegóły
Parametry
[in] aInstance
Struktura instancji OpenThread.
[in] aKey
Klucz powiązany z ustawieniem do zmiany.
[in] aValue
Wskaźnik, z którego ma być odczytywana nowa wartość ustawienia. NIE MOŻE zawierać wartości NULL, jeśli aValueLength ma wartość inną niż 0.
[in] aValueLength
Długość danych wskazywanych przez wartość aValue. Może wynosić 0.
Zwracane wartości
OT_ERROR_NONE
Podane ustawienie zostało dodane lub na etapie przejściowym do dodania.
OT_ERROR_NOT_IMPLEMENTED
Ta funkcja nie jest zaimplementowana na tej platformie.
OT_ERROR_NO_BUFS
Brak wolnego miejsca na zapisanie danego ustawienia.

otPlatSettingsDeinit

void otPlatSettingsDeinit(
  otInstance *aInstance
)

W razie potrzeby wykonuje deinicjalizację podsystemu ustawień.

Szczegóły
Parametry
[in] aInstance
Struktura instancji OpenThread.

otPlatSettingsDelete

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

Usuwa ustawienie z magazynu ustawień.

Usuwa określoną wartość z ustawienia określonego przez aKey z magazynu ustawień.

Pamiętaj, że podstawowa implementacja nie musi utrzymywać kolejności elementów powiązanych z określonym kluczem.

Szczegóły
Parametry
[in] aInstance
Struktura instancji OpenThread.
[in] aKey
Klucz powiązany z żądanym ustawieniem.
[in] aIndex
Indeks wartości do usunięcia. Jeśli jest ustawiona na -1, wszystkie wartości parametru aKey zostaną usunięte.
Zwracane wartości
OT_ERROR_NONE
Podany klucz i indeks zostały znalezione oraz usunięte.
OT_ERROR_NOT_FOUND
W magazynie ustawień nie znaleziono podanego klucza lub indeksu.
OT_ERROR_NOT_IMPLEMENTED
Ta funkcja nie jest zaimplementowana na tej platformie.

otPlatSettingsGet

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

Pobiera wartość ustawienia.

Pobiera wartość ustawienia określonego przez aKey i zapisuje ją w pamięci wskazywanej przez aValue. Następnie zapisuje długość w postaci liczby całkowitej wskazywanej przez wartość aValueLength. Początkowa wartość aValueLength to maksymalna liczba bajtów do zapisania w aValue.

Można go użyć do sprawdzenia istnienia klucza bez pobierania wartości przez ustawienie aValue i aValueLength na NULL. Możesz też sprawdzić długość ustawienia bez pobierania go, ustawiając tylko wartość aValue jako NULL.

Pamiętaj, że do zachowania kolejności ustawień z wieloma wartościami nie jest wymagana podstawowa implementacja miejsca na dane. Kolejność tych wartości MOŻE zmienić się po DOWOLNEJ operacji zapisu w magazynie.

Szczegóły
Parametry
[in] aInstance
Struktura instancji OpenThread.
[in] aKey
Klucz powiązany z żądanym ustawieniem.
[in] aIndex
Indeks konkretnego elementu do pobrania.
[out] aValue
Wskaźnik miejsca, w którym powinna zostać zapisana wartość ustawienia. Może mieć wartość NULL, jeśli testujesz tylko obecność lub długość ustawienia.
[in,out] aValueLength
Wskaźnik długości wartości. Wywołany wskaźnik powinien wskazywać liczbę całkowitą zawierającą maksymalny rozmiar wartości, który można zapisać w polu aValue. W zamian zapisywana jest rzeczywista długość ustawienia. Podczas sprawdzania obecności ta wartość może mieć wartość NULL.
Zwracane wartości
OT_ERROR_NONE
Udało się znaleźć i pobrać określone ustawienie.
OT_ERROR_NOT_FOUND
Podanego ustawienia nie znaleziono w magazynie ustawień.
OT_ERROR_NOT_IMPLEMENTED
Ta funkcja nie jest zaimplementowana na tej platformie.

otPlatSettingsInit

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

W razie potrzeby inicjuje podsystem ustawień.

Ustawia też klucze wrażliwe, które powinny być przechowywane w bezpiecznym obszarze.

Pamiętaj, że pamięć wskazana przez aSensitiveKeys NIE MOŻE zostać zwolniona przed zniszczeniem obiektu aInstance.

Szczegóły
Parametry
[in] aInstance
Struktura instancji OpenThread.
[in] aSensitiveKeys
Wskaźnik do tablicy zawierającej listę kluczy poufnych. Może zawierać wartość NULL tylko wtedy, gdy aSensitiveKeysLength ma wartość 0, co oznacza, że nie ma żadnych kluczy wrażliwych.
[in] aSensitiveKeysLength
Liczba wpisów w tablicy aSensitiveKeys.

otPlatSettingsSet

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

Ustawia lub zastępuje wartość ustawienia.

Ustawia lub zastępuje wartość ustawienia określonego przez aKey.

Jej wywołanie może spowodować zmianę kolejności niepowiązanych ustawień z wieloma wartościami.

Stos OpenThread gwarantuje użycie metody otPlatSettingsSet() dla elementu aKey, który został wcześniej ustawiony za pomocą atrybutu otPlatSettingsSet() (tj. zawiera pojedynczą wartość) albo jest pusty lub całkowicie usunięty (nie zawiera żadnej wartości).

Warstwa platformy może wykorzystywać ten fakt do optymalizacji implementacji.

Szczegóły
Parametry
[in] aInstance
Struktura instancji OpenThread.
[in] aKey
Klucz powiązany z ustawieniem do zmiany.
[in] aValue
Wskaźnik, z którego ma być odczytywana nowa wartość ustawienia. NIE MOŻE zawierać wartości NULL, jeśli aValueLength ma wartość inną niż 0.
[in] aValueLength
Długość danych wskazywanych przez wartość aValue. Może wynosić 0.
Zwracane wartości
OT_ERROR_NONE
Podane ustawienie zostało zmienione lub na etapie przejściowym.
OT_ERROR_NOT_IMPLEMENTED
Ta funkcja nie jest zaimplementowana na tej platformie.
OT_ERROR_NO_BUFS
Brak wolnego miejsca na zapisanie danego ustawienia.

otPlatSettingsWipe

void otPlatSettingsWipe(
  otInstance *aInstance
)

Usuwa wszystkie ustawienia z magazynu ustawień.

Usuwa wszystkie ustawienia z magazynu ustawień i resetuje urządzenie do początkowego stanu fabrycznego.

Szczegóły
Parametry
[in] aInstance
Struktura instancji OpenThread.

Zasoby

Tematy referencyjne interfejsu OpenThread API pochodzą z kodu źródłowego dostępnego w GitHub. Aby dowiedzieć się więcej lub dołączyć do naszej dokumentacji, skorzystaj z sekcji Zasoby.