Kanalüberwachung

Dieses Modul enthält Funktionen zur Kanalüberwachung.

Zusammenfassung

Die Funktionen dieses Moduls sind verfügbar, wenn die Funktion „Kanalmonitor“ (OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE) aktiviert ist.

Dabei werden regelmäßig alle Kanäle berücksichtigt, um Kanäle mit weniger Störungen zu ermitteln.

Wenn die Kanalüberwachung aktiv ist, wird ein Energiescan von null Dauer durchgeführt. Dabei wird auf jedem Kanal pro Stichprobenintervall eine RSSI-Stichprobe erhoben. Die RSSI-Stichproben werden mit einem vordefinierten RSSI-Schwellenwert verglichen. Als Indikator für die Kanalqualität sorgt das Modul für die Kanalüberwachung dafür, dass die durchschnittliche Rate/der prozentuale Anteil von RSSI-Stichproben, die über dem Grenzwert liegen, innerhalb eines (annähernd) festgelegten Probezeitraums beibehalten wird (auch als Kanalbelegung bezeichnet).

Functions

otChannelMonitorGetChannelOccupancy(otInstance *aInstance, uint8_t aChannel)
uint16_t
Ruft die aktuelle Kanalbelegung für einen bestimmten Kanal ab.
otChannelMonitorGetRssiThreshold(otInstance *aInstance)
int8_t
Rufen Sie den RSSI-Schwellenwert für das Kanalmonitoring in DBM ab.
otChannelMonitorGetSampleCount(otInstance *aInstance)
uint32_t
Gesamtzahl der RSSI-Stichproben pro Kanal abrufen.
otChannelMonitorGetSampleInterval(otInstance *aInstance)
uint32_t
Beispielintervall für Kanalmonitoring in Millisekunden abrufen
otChannelMonitorGetSampleWindow(otInstance *aInstance)
uint32_t
Durchschnittliche Länge des Beispielfensters für die Kanalüberwachung abrufen (Anzahl der Stichproben).
otChannelMonitorIsEnabled(otInstance *aInstance)
bool
Gibt an, ob der Kanalüberwachungsvorgang aktiviert ist und ausgeführt wird.
otChannelMonitorSetEnabled(otInstance *aInstance, bool aEnabled)
Aktiviert oder deaktiviert den Kanalüberwachungsvorgang.

Functions

OTChannelMonitorGetChannelOccupancy

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

Ruft die aktuelle Kanalbelegung für einen bestimmten Kanal ab.

Der Wert für die Kanalbelegung stellt die durchschnittliche Rate bzw. den Prozentsatz der RSSI-Stichproben dar, die über dem RSSI-Schwellenwert liegen („schlechte“ RSSI-Stichproben).

Bei den ersten Stichprobenstichproben wird der Durchschnitt als tatsächlicher Prozentsatz beibehalten, d.h. als Verhältnis zwischen der Anzahl der „schlechten“ Stichproben und der Gesamtzahl der Stichproben. Nach den „Window“-Stichproben wird der durchschnittliche gleitende Durchschnitt verwendet. In der Praxis bedeutet das, dass der Durchschnitt bei bis zu 3 * window letzten Stichproben mit der höchsten Gewichtung für die letzten kSampleWindow Stichproben repräsentativ ist.

Der Höchstwert von 0xffff gibt an, dass alle RSSI-Proben über dem RSSI-Schwellenwert lagen. Das heißt, 100% der Proben waren „schlecht“.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aChannel
Der Kanal, für den die Linkbelegung abgerufen werden soll.
Rückgabe
Die aktuelle Kanalbelegung für den angegebenen Kanal.

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

Rufen Sie den RSSI-Schwellenwert für das Kanalmonitoring in DBM ab.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Der RSSI-Schwellenwert in DBM.

otChannelMonitorGetSampleCount

uint32_t otChannelMonitorGetSampleCount(
  otInstance *aInstance
)

Gesamtzahl der RSSI-Stichproben pro Kanal abrufen.

Die Anzahl gibt seit dem Start die Gesamtzahl der Stichproben pro Kanal nach Kanalüberwachungsmodul an, da die Thread-Netzwerkschnittstelle aktiviert war.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Gesamtzahl der bislang aufgenommenen RSSI-Stichproben (pro Kanal).

otChannelMonitorGetSampleInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

Beispielintervall für Kanalmonitoring in Millisekunden abrufen

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Das Kanalintervall zum Beobachten des Musters in Millisekunden.

otChannelMonitorGetSampleWindow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

Durchschnittliche Länge des Beispielfensters für die Kanalüberwachung abrufen (Anzahl der Stichproben).

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Das Fenster mit Durchschnittsbeispielen

nicht aktiviert

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

Gibt an, ob der Kanalüberwachungsvorgang aktiviert ist und ausgeführt wird.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
WAHR, wenn die Kanalüberwachung aktiviert ist, andernfalls FALSCH.

otChannelMonitorSetEnabled

otError otChannelMonitorSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Aktiviert oder deaktiviert den Kanalüberwachungsvorgang.

Sobald der Vorgang gestartet wird, werden alle zuvor erhobenen Daten gelöscht. Nach dem Deaktivieren des Vorgangs sind die zuvor erhobenen Daten weiterhin gültig und können gelesen werden.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aEnabled
WAHR, um Kanalüberwachung zu aktivieren/starten, FALSCH, um es zu deaktivieren/zu stoppen.
Rückgabewerte
OT_ERROR_NONE
Status des Kanalmonitorings wurde geändert
OT_ERROR_ALREADY
Kanalmonitoring befindet sich bereits im selben Zustand.

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.