Channel Manager

Dieses Modul enthält Funktionen für Channel Manager.

Zusammenfassung

Die Funktionen in diesem Modul sind verfügbar, wenn die Funktion „Channel Manager“ (OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE) aktiviert ist. Channel Manager ist nur für einen FTD-Build verfügbar.

Functions

otChannelManagerGetAutoChannelSelectionEnabled(otInstance *aInstance)
bool
Gibt an, ob die Funktion für die automatische Kanalauswahl aktiviert ist.
otChannelManagerGetAutoChannelSelectionInterval(otInstance *aInstance)
uint32_t
Ruft das Intervall in Sekunden ab, das von der automatischen Kanalauswahl verwendet wird.
otChannelManagerGetCcaFailureRateThreshold(otInstance *aInstance)
uint16_t
Ruft den CCA-Fehlerratengrenzwert ab
otChannelManagerGetDelay(otInstance *aInstance)
uint16_t
Ruft die Verzögerung (in Sekunden) für die Kanaländerung ab, die vom Channel Manager verwendet wird.
otChannelManagerGetFavoredChannels(otInstance *aInstance)
uint32_t
Ruft die bevorzugte Kanalmaske ab.
otChannelManagerGetRequestedChannel(otInstance *aInstance)
uint8_t
Ruft den Kanal aus dem letzten erfolgreichen Anruf an otChannelManagerRequestChannelChange() ab
otChannelManagerGetSupportedChannels(otInstance *aInstance)
uint32_t
Ruft die unterstützte Kanalmaske ab.
otChannelManagerRequestChannelChange(otInstance *aInstance, uint8_t aChannel)
void
Fordert eine Änderung eines Thread-Netzwerkkanals an.
otChannelManagerRequestChannelSelect(otInstance *aInstance, bool aSkipQualityCheck)
Fordert ChannelManager an, einen neuen Kanal zu prüfen und auszuwählen, und startet eine Kanaländerung.
otChannelManagerSetAutoChannelSelectionEnabled(otInstance *aInstance, bool aEnabled)
void
Aktiviert oder deaktiviert die Funktion zur automatischen Kanalauswahl.
otChannelManagerSetAutoChannelSelectionInterval(otInstance *aInstance, uint32_t aInterval)
Legt das Intervall in Sekunden fest, das von der automatischen Kanalauswahl verwendet wird.
otChannelManagerSetCcaFailureRateThreshold(otInstance *aInstance, uint16_t aThreshold)
void
Legt den Grenzwert der CCA-Fehlerrate fest.
otChannelManagerSetDelay(otInstance *aInstance, uint16_t aDelay)
Legt die Verzögerung in Sekunden fest, die bei einer Kanaländerung verwendet wird.
otChannelManagerSetFavoredChannels(otInstance *aInstance, uint32_t aChannelMask)
void
Legt die bevorzugte Kanalmaske fest.
otChannelManagerSetSupportedChannels(otInstance *aInstance, uint32_t aChannelMask)
void
Legt die unterstützte Kanalmaske fest.

Functions

OTChannelManagerGetAutoChannelSelectionEnabled

bool otChannelManagerGetAutoChannelSelectionEnabled(
  otInstance *aInstance
)

Gibt an, ob die Funktion für die automatische Kanalauswahl aktiviert ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
WAHR, wenn aktiviert, FALSCH, wenn deaktiviert.

OTChannelManagerGetAutoChannelSelectionInterval

uint32_t otChannelManagerGetAutoChannelSelectionInterval(
  otInstance *aInstance
)

Ruft das Intervall in Sekunden ab, das von der automatischen Kanalauswahl verwendet wird.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Das Intervall in Sekunden.

otChannelManagerGetCcaFailureRateThreshold

uint16_t otChannelManagerGetCcaFailureRateThreshold(
  otInstance *aInstance
)

Ruft den CCA-Fehlerratengrenzwert ab

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Der CCA-Grenzwert für die Fehlerrate. Der Wert 0 wird einem Wert von 0% und ein Wert von 0xffff zu 100 % zugeordnet.

otChannelManagerGetDelay

uint16_t otChannelManagerGetDelay(
  otInstance *aInstance
)

Ruft die Verzögerung (in Sekunden) für die Kanaländerung ab, die vom Channel Manager verwendet wird.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Gibt die Verzögerung für den Kanalwechsel in Sekunden an.

otChannelManagerGetFavoredChannels

uint32_t otChannelManagerGetFavoredChannels(
  otInstance *aInstance
)

Ruft die bevorzugte Kanalmaske ab.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Die bevorzugten Kanäle werden als Bitmaske angezeigt.

OTChannelManagerGetRequestedChannel

uint8_t otChannelManagerGetRequestedChannel(
  otInstance *aInstance
)

Ruft den Kanal aus dem letzten erfolgreichen Anruf an otChannelManagerRequestChannelChange() ab

Details
Rückgabe
Der zuletzt angeforderte Kanal oder null, wenn noch keine Kanaländerungsanfrage vorhanden ist.

Unterstützte Kanäle

uint32_t otChannelManagerGetSupportedChannels(
  otInstance *aInstance
)

Ruft die unterstützte Kanalmaske ab.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Die unterstützten Kanäle als Bitmaske.

OTChannelManagerRequestChannelChange

void otChannelManagerRequestChannelChange(
  otInstance *aInstance,
  uint8_t aChannel
)

Fordert eine Änderung eines Thread-Netzwerkkanals an.

Nach einer bestimmten Verzögerung wechselt das Netzwerk zum angegebenen Kanal. Weitere Informationen finden Sie unter otChannelManagerSetDelay(). Der Kanalwechsel wird durchgeführt, indem das ausstehende operative Dataset aktualisiert wird.

Durch einen nachfolgenden Aufruf wird eine laufende angeforderte Kanaländerung abgebrochen.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aChannel
Der neue Kanal für das Thread-Netzwerk.

otChannelManagerRequestChannelSelect

otError otChannelManagerRequestChannelSelect(
  otInstance *aInstance,
  bool aSkipQualityCheck
)

Fordert ChannelManager an, einen neuen Kanal zu prüfen und auszuwählen, und startet eine Kanaländerung.

Im Gegensatz zum otChannelManagerRequestChannelChange(), bei dem der Kanal als Parameter angegeben werden muss, fordert diese Funktion das ChannelManager auf, einen Kanal selbst auszuwählen (basierend auf den erfassten Informationen zur Kanalqualität).

Nach dem Aufruf führt der Kanalmanager die folgenden 3 Schritte aus:

1) ChannelManager entscheidet, ob der Kanalwechsel hilfreich wäre. Diese Prüfung kann übersprungen werden, wenn aSkipQualityCheck auf „true“ gesetzt ist. Dadurch wird eine Kanalauswahl erzwungen und die Qualitätsprüfung übersprungen. Bei diesem Schritt werden die auf dem Gerät erfassten Messwerte zur Linkqualität (z. B. CCA-Fehlerrate, Frame- und Nachrichten-Fehlerraten pro Nachbar usw.) verwendet, um festzustellen, ob die aktuelle Kanalqualität auf dem Niveau ist, das eine Kanaländerung rechtfertigt.

2) Wenn der erste Schritt besteht, wählt ChannelManager einen potenziell besseren Kanal aus. Dabei werden die im ChannelMonitor-Modul erfassten Daten zur Kanalqualität verwendet. In diesem Schritt werden die unterstützten und bevorzugten Kanäle verwendet. Weitere Informationen finden Sie unter otChannelManagerSetSupportedChannels() und otChannelManagerSetFavoredChannels().

3) Wenn sich der neu ausgewählte Kanal vom aktuellen Kanal unterscheidet, fordert ChannelManager den Kanaländerungsprozess an oder startet ihn (intern ruft einen RequestChannelChange() auf).

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSkipQualityCheck
Gibt an, ob die Qualitätsprüfung (Schritt 1) übersprungen werden soll.
Rückgabewerte
OT_ERROR_NONE
Kanalauswahl abgeschlossen.
OT_ERROR_NOT_FOUND
Die unterstützte Kanalmaske ist leer, daher konnte kein Kanal ausgewählt werden.

otChannelManagerSetAutoChannelSelectionEnabled

void otChannelManagerSetAutoChannelSelectionEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Aktiviert oder deaktiviert die Funktion zur automatischen Kanalauswahl.

Wenn diese Option aktiviert ist, ruft ChannelManager regelmäßig ein RequestChannelSelect(false)-Element auf. Das Intervall kann für SetAutoChannelSelectionInterval() festgelegt werden.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aEnabled
Gibt an, ob diese Funktion aktiviert oder deaktiviert wird.

otChannelManagerSetAutoChannelSelectionInterval

otError otChannelManagerSetAutoChannelSelectionInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Legt das Intervall in Sekunden fest, das von der automatischen Kanalauswahl verwendet wird.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aInterval
Das Intervall in Sekunden.
Rückgabewerte
OT_ERROR_NONE
Das Intervall wurde festgelegt.
OT_ERROR_INVALID_ARGS
aInterval ist ungültig (null).

otChannelManagerSetCcaFailureRateThreshold

void otChannelManagerSetCcaFailureRateThreshold(
  otInstance *aInstance,
  uint16_t aThreshold
)

Legt den Grenzwert der CCA-Fehlerrate fest.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aThreshold
Ein CCA-Grenzwert für die Fehlerrate Der Wert 0 wird einem Wert von 0% und ein Wert von 0xffff zu 100 % zugeordnet.

otChannelManagerSetDelay

otError otChannelManagerSetDelay(
  otInstance *aInstance,
  uint16_t aDelay
)

Legt die Verzögerung in Sekunden fest, die bei einer Kanaländerung verwendet wird.

Die Verzögerung sollte idealerweise länger sein als das maximale Datenintervall, das von allen Schlafmittel-Geräten im Thread-Netzwerk verwendet wird.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aDelay
Verzögerung in Sekunden.
Rückgabewerte
OT_ERROR_NONE
Verzögerung wurde erfolgreich aktualisiert.
OT_ERROR_INVALID_ARGS
Die angegebene Verspätung von aDelay ist zu kurz.

otChannelManagerSetFavoredChannels

void otChannelManagerSetFavoredChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

Legt die bevorzugte Kanalmaske fest.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aChannelMask
Eine Kanalmaske.

Nicht unterstützteKanäle

void otChannelManagerSetSupportedChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

Legt die unterstützte Kanalmaske fest.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aChannelMask
Eine Kanalmaske.

Ressourcen

Die Themen der OpenThread API-Referenz stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen oder als Ergänzung zu unserer Dokumentation finden Sie unter Ressourcen.