Monitoraggio del canale

Questo modulo include funzioni per la funzionalità di monitoraggio del canale.

Riepilogo

Le funzioni in questo modulo sono disponibili quando la funzionalità di monitoraggio del canale (OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE) è abilitata.

Il monitoraggio dei canali monitora periodicamente tutti i canali per determinare quelli più puliti (i canali con meno interferenze).

Quando il monitoraggio del canale è attivo, viene eseguita una scansione dell'energia di durata zero, raccogliendo un singolo campione RSSI su ogni canale per intervallo di campionamento. Gli esempi RSSI vengono confrontati con una soglia RSSI prespecificata. Come indicatore della qualità del canale, il modulo di monitoraggio del canale mantiene e fornisce la percentuale/percentuale media di campioni RSSI che superano la soglia (approssimativamente) per una specifica finestra campione (denominata "occupazione del canale").

Funzioni

otChannelMonitorGetChannelOccupancy(otInstance *aInstance, uint8_t aChannel)
uint16_t
Conosce il numero di persone attuale di un determinato canale.
otChannelMonitorGetRssiThreshold(otInstance *aInstance)
int8_t
Ottieni la soglia RSSI di monitoraggio del canale in dBm.
otChannelMonitorGetSampleCount(otInstance *aInstance)
uint32_t
Ricevi il numero totale di esempi RSSI di monitoraggio del canale (per canale).
otChannelMonitorGetSampleInterval(otInstance *aInstance)
uint32_t
Ottieni un intervallo di campionamento del monitoraggio dei canali in millisecondi.
otChannelMonitorGetSampleWindow(otInstance *aInstance)
uint32_t
Ottieni il monitoraggio del canale con una media di durata della finestra di esempio (numero di campioni).
otChannelMonitorIsEnabled(otInstance *aInstance)
bool
Indica se l'operazione di monitoraggio del canale è abilitata e in esecuzione.
otChannelMonitorSetEnabled(otInstance *aInstance, bool aEnabled)
Abilita o disabilita l'operazione di monitoraggio del canale.

Funzioni

otChannelMonitorGetChannelOccupancy

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

Conosce il numero di persone attuale di un determinato canale.

Il valore di occupazione del canale rappresenta la percentuale/percentuale media di campioni RSSI superiori alla soglia RSSI (campioni RSSI "non validi").

Per i primi campioni della "finestra di esempio", la media viene mantenuta come percentuale effettiva (ovvero il rapporto tra il numero di campioni "non validi" e il numero totale di campioni). Dopo campioni di "finestra", il mediano utilizza una media mobile ponderata in modo esponenziale. In pratica, ciò significa che la media è rappresentativa di un massimo di 3 * window ultimi campioni con il peso più elevato dato agli ultimi kSampleWindow campioni.

Il valore massimo 0xffff indica che tutti i campioni RSSI erano al di sopra della soglia RSSI (ovvero il 100% dei campioni era "cattivo").

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
[in] aChannel
Il canale per il quale ottenere la presenza del link.
Restituisce
L'occupazione attuale del canale.

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

Ottieni la soglia RSSI di monitoraggio del canale in dBm.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
Restituisce
La soglia RSSI in dBm.

otChannelMonitorGetSampleCount

uint32_t otChannelMonitorGetSampleCount(
  otInstance *aInstance
)

Ricevi il numero totale di esempi RSSI di monitoraggio del canale (per canale).

Il conteggio indica il numero totale di esempi per canale in base al modulo di monitoraggio del canale dall'inizio (da quando l'interfaccia di rete Thread è stata attivata).

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
Restituisce
Numero totale di esempi RSSI (per canale) effettuati finora.

otChannelMonitorGetSampleInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

Ottieni un intervallo di campionamento del monitoraggio dei canali in millisecondi.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
Restituisce
L'intervallo di esempio per il monitoraggio del canale, in millisecondi.

OtChannelMonitorGetSampleWindow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

Ottieni il monitoraggio del canale con una media di durata della finestra di esempio (numero di campioni).

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
Restituisce
La finestra media di esempio.

OtChannelMonitorIsEnabled

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

Indica se l'operazione di monitoraggio del canale è abilitata e in esecuzione.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
Restituisce
TRUE se l'operazione di monitoraggio del canale è abilitata, FALSE in caso contrario.

OtChannelMonitorSetEnabled

otError otChannelMonitorSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Abilita o disabilita l'operazione di monitoraggio del canale.

Una volta avviata l'operazione, tutti i dati raccolti in precedenza vengono cancellati. Tuttavia, una volta disabilitata l'operazione, i dati raccolti in precedenza sono ancora validi e possono essere letti.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
[in] aEnabled
TRUE per abilitare/avviare l'operazione di monitoraggio del canale, FALSE per disattivarla/arrenderla.
Valori restituiti
OT_ERROR_NONE
Stato di monitoraggio del canale modificato
OT_ERROR_ALREADY
Il monitoraggio dei canali è già nello stesso stato.

Risorse

Gli argomenti di riferimento per l'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per maggiori informazioni o per contribuire alla nostra documentazione, consulta Risorse.