Monitoraggio del canale

Questo modulo include funzioni per il monitoraggio dei canali.

Riepilogo

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

Il monitoraggio dei canali monitorerà periodicamente tutti i canali per poter determinare i canali più puliti (canali con meno interferenze).

Quando il monitoraggio del canale è attivo, viene eseguita una scansione dell'energia a durata zero, raccogliendo un singolo campione RSSI su ogni canale per intervallo di campioni. I campioni 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 o la percentuale media dei campioni RSSI che superano la soglia entro un intervallo di tempo approssimativo (indicato come occupazione del canale).

Functions

otChannelMonitorGetChannelOccupancy(otInstance *aInstance, uint8_t aChannel)
uint16_t
Visualizza l'attuale occupazione del canale per un determinato canale.
otChannelMonitorGetRssiThreshold(otInstance *aInstance)
int8_t
Ottieni la soglia RSSI per il monitoraggio dei canali in dBm.
otChannelMonitorGetSampleCount(otInstance *aInstance)
uint32_t
Recupera il numero totale di campioni RSSI del monitoraggio del canale (per canale).
otChannelMonitorGetSampleInterval(otInstance *aInstance)
uint32_t
Recupera l'intervallo di campionamento del monitoraggio del canale in millisecondi.
otChannelMonitorGetSampleWindow(otInstance *aInstance)
uint32_t
Ottieni il monitoraggio medio della finestra di esempio in media (numero di campioni).
otChannelMonitorIsEnabled(otInstance *aInstance)
bool
Questa funzione indica se l'operazione di monitoraggio del canale è abilitata e in esecuzione.
otChannelMonitorSetEnabled(otInstance *aInstance, bool aEnabled)
Questa funzione abilita/disattiva l'operazione di monitoraggio del canale.

Functions

otChannelMonitorGetChannelOccupancy

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

Visualizza l'attuale occupazione del canale per un determinato canale.

Il valore relativo all'occupazione del canale rappresenta la percentuale/percentuale media di campioni RSSI superiori alla soglia RSSI ("bad" campioni RSSI).

Per la prima "finestra di esempio", la media viene mantenuta come percentuale effettiva (ovvero il rapporto del numero di campioni "non validi" per il numero totale di campioni). Dopo "campi": la mediana utilizza una media mobile esponenzialemente ponderata. In pratica, ciò significa che la media è rappresentativa di un massimo di 3 * window campioni con la ponderazione più elevata data agli ultimi kSampleWindow campioni.

Il valore massimo di 0xffff indica che tutti i campioni RSSI hanno superato la soglia RSSI (ovvero, il 100% dei campioni era "bad").

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aChannel
Il canale per il quale ottenere il numero di persone collegato.
Restituisce
Occupazione del canale corrente per il canale specificato.

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

Ottieni la soglia RSSI per il monitoraggio dei canali in dBm.

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

otChannelMonitorGetSampleCount

uint32_t otChannelMonitorGetSampleCount(
  otInstance *aInstance
)

Recupera il numero totale di campioni RSSI del monitoraggio del canale (per canale).

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

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

otChannelMonitorGetSampleInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

Recupera l'intervallo di campionamento del monitoraggio del canale in millisecondi.

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

otChannelMonitorGetSampleWindow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

Ottieni il monitoraggio medio della finestra di esempio in media (numero di campioni).

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

otChannelMonitorIsEnabled

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

Questa funzione indica se l'operazione di monitoraggio del canale è abilitata e in esecuzione.

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

otChannelMonitorSetEnabled

otError otChannelMonitorSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Questa funzione abilita/disattiva l'operazione di monitoraggio del canale.

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

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza di OpenThread.
[in] aEnabled
TRUE per abilitare/avviare la funzionalità Channel Monitoring, FALSE per disabilitarla/interromperla.
Valori di ritorno
OT_ERROR_NONE
Stato monitoraggio canale modificato
OT_ERROR_ALREADY
Il monitoraggio del canale è già nello stesso stato.

Risorse

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