Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Monitoraggio del canale

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

Riepilogo

Le funzioni di questo modulo sono disponibili quando il monitoraggio dei canali (OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE) è abilitato.

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

Quando il monitoraggio dei canali è attivo, viene eseguita una scansione dell'energia a 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 superiori alla soglia all'interno (approssimativamente) di una finestra campione specifica (denominata occupazione del canale).

Functions

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

Functions

otChannelMonitorGetChannelOccupancy

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

Recupera l'occupazione corrente del canale per un determinato canale.

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

Per i primi "periodi di campionamento", la media viene mantenuta come percentuale effettiva (ovvero il rapporto tra numero di campioni non validi) per numero totale di campioni. Dopo un campione di "finestra", la media usa una media mobile ponderata in modo esponenziale. In pratica, ciò significa che la media è rappresentativa di un massimo di 3 * window ultimi campioni con la ponderazione più elevata assegnata agli ultimi kSampleWindow campioni.

Il valore massimo di 0xffff indica che tutti i campioni RSSI erano superiori alla soglia RSSI (ad esempio, il 100% dei campioni era "cattivo").

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aChannel
Il canale per il quale ottenere la presenza del link.
Restituisce
Occupazione del canale corrente per il canale specificato.

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

Ottieni la soglia RSSI di monitoraggio del canale in dBm.

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

otChannelMonitorGetSampleCount

uint32_t otChannelMonitorGetSampleCount(
  otInstance *aInstance
)

Recupera 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 (poiché l'interfaccia di rete Thread è stata attivata).

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

otChannelMonitorGetSampleInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

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

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

otChannelMonitorGetSampleWindow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

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

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

otChannelMonitorIsEnabled

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

Questa funzione indica se l'operazione di monitoraggio dei canali è abilitata e in esecuzione.

Dettagli
Parametri
[in] aInstance
Un puntatore a 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 disattivato l'operazione, i dati raccolti in precedenza sono ancora validi e possono essere letti.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aEnabled
TRUE per abilitare/avviare l'operazione di monitoraggio del canale, FALSE per disabilitarla/interromperla.
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 dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per scoprire di più o per contribuire alla nostra documentazione, consulta le Risorse.