Gestore canale

Questo modulo include funzioni per il gestore dei canali.

Riepilogo

Le funzioni in questo modulo sono disponibili quando la funzionalità Gestore canali (OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE) è abilitata. Channel Manager è disponibile solo su una build FTD.

Funzioni

otChannelManagerGetAutoChannelSelectionEnabled(otInstance *aInstance)
bool
Indica se la funzionalità di selezione automatica del canale è abilitata.
otChannelManagerGetAutoChannelSelectionInterval(otInstance *aInstance)
uint32_t
Visualizza l'intervallo di tempo (in secondi) utilizzato dalla funzionalità di selezione automatica del canale.
otChannelManagerGetCcaFailureRateThreshold(otInstance *aInstance)
uint16_t
Visualizza la soglia del tasso di errore CCA.
otChannelManagerGetDelay(otInstance *aInstance)
uint16_t
Visualizza il ritardo (in secondi) utilizzato dal gestore del canale per la modifica del canale.
otChannelManagerGetFavoredChannels(otInstance *aInstance)
uint32_t
Visualizza la maschera del canale preferita.
otChannelManagerGetRequestedChannel(otInstance *aInstance)
uint8_t
Indirizza il canale dall'ultima chiamata riuscita a otChannelManagerRequestChannelChange()
otChannelManagerGetSupportedChannels(otInstance *aInstance)
uint32_t
Visualizza la maschera del canale supportata.
otChannelManagerRequestChannelChange(otInstance *aInstance, uint8_t aChannel)
void
Richiedi la modifica di un canale di rete Thread.
otChannelManagerRequestChannelSelect(otInstance *aInstance, bool aSkipQualityCheck)
Richieste che ChannelManager controlla e seleziona un nuovo canale e avvia una modifica del canale.
otChannelManagerSetAutoChannelSelectionEnabled(otInstance *aInstance, bool aEnabled)
void
Attiva o disattiva la funzionalità di selezione automatica del canale.
otChannelManagerSetAutoChannelSelectionInterval(otInstance *aInstance, uint32_t aInterval)
Imposta l'intervallo di tempo (in secondi) utilizzato dalla funzionalità di selezione automatica del canale.
otChannelManagerSetCcaFailureRateThreshold(otInstance *aInstance, uint16_t aThreshold)
void
Imposta la soglia del tasso di errore CCA.
otChannelManagerSetDelay(otInstance *aInstance, uint16_t aDelay)
Imposta il ritardo (in secondi) utilizzato per una modifica del canale.
otChannelManagerSetFavoredChannels(otInstance *aInstance, uint32_t aChannelMask)
void
Imposta la maschera del canale preferita.
otChannelManagerSetSupportedChannels(otInstance *aInstance, uint32_t aChannelMask)
void
Imposta la maschera del canale supportata.

Funzioni

otChannelManagerGetAutoChannelSelectionEnabled

bool otChannelManagerGetAutoChannelSelectionEnabled(
  otInstance *aInstance
)

Indica se la funzionalità di selezione automatica del canale è abilitata.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
Restituisce
TRUE se è attivata, FALSE se disattivata.

OtChannelManagerGetAutoChannelSelectionInterval

uint32_t otChannelManagerGetAutoChannelSelectionInterval(
  otInstance *aInstance
)

Visualizza l'intervallo di tempo (in secondi) utilizzato dalla funzionalità di selezione automatica del canale.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
Restituisce
L'intervallo in secondi.

otChannelManagerGetCcaFailureRateThreshold

uint16_t otChannelManagerGetCcaFailureRateThreshold(
  otInstance *aInstance
)

Visualizza la soglia del tasso di errore CCA.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
Restituisce
La soglia di tasso di errore CCA. Il valore 0 corrisponde a 0% e 0xffff viene mappato al 100%.

OtChannelManagerGetDelay

uint16_t otChannelManagerGetDelay(
  otInstance *aInstance
)

Visualizza il ritardo (in secondi) utilizzato dal gestore del canale per la modifica del canale.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
Restituisce
Il ritardo (in secondi) della modifica del canale.

Canale OtChannelGetFavoredChannels

uint32_t otChannelManagerGetFavoredChannels(
  otInstance *aInstance
)

Visualizza la maschera del canale preferita.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
Restituisce
I canali preferiti come maschera.

otChannelManagerGetRequestChannel

uint8_t otChannelManagerGetRequestedChannel(
  otInstance *aInstance
)

Indirizza il canale dall'ultima chiamata riuscita a otChannelManagerRequestChannelChange()

Dettagli
Restituisce
L'ultimo canale richiesto o zero se non è stata ancora inviata alcuna richiesta di modifica del canale.

otChannelManagerGetSupportatoChannels

uint32_t otChannelManagerGetSupportedChannels(
  otInstance *aInstance
)

Visualizza la maschera del canale supportata.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
Restituisce
I canali supportati come maschera.

otChannelManagerRequestChannelChange

void otChannelManagerRequestChannelChange(
  otInstance *aInstance,
  uint8_t aChannel
)

Richiedi la modifica di un canale di rete Thread.

La rete passa al canale specificato dopo un determinato ritardo (vedi otChannelManagerSetDelay()). La modifica del canale viene eseguita aggiornando il set di dati operativo in attesa.

Una chiamata successiva comporterà l'annullamento di una modifica del canale richiesta in precedenza.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
[in] aChannel
Il nuovo canale per la rete Thread.

otChannelManagerRequestChannelSelect

otError otChannelManagerRequestChannelSelect(
  otInstance *aInstance,
  bool aSkipQualityCheck
)

Richieste che ChannelManager controlla e seleziona un nuovo canale e avvia una modifica del canale.

A differenza di otChannelManagerRequestChannelChange(), dove il canale deve essere assegnato come parametro, questa funzione chiede a ChannelManager di selezionare un canale da solo (in base alle informazioni sulla qualità del canale raccolte).

Una volta chiamato, il Gestore canale eseguirà i seguenti tre passaggi:

1) ChannelManager decide se la modifica al canale è utile. Questo controllo può essere ignorato se il criterio aSkipQualityCheck è impostato su true (forzando la selezione di un canale e ignorando il controllo qualità). Questo passaggio utilizza le metriche relative alla qualità dei link raccolte sul dispositivo (ad esempio, tasso di errore CCA, tasso di errore relativi a frame e messaggi per il vicino e così via) per determinare se la qualità corrente del canale è al livello che giustifica un cambiamento del canale.

2) Se il primo passaggio ha esito positivo, ChannelManager seleziona un canale potenzialmente migliore. Utilizza i dati sulla qualità del canale raccolti per modulo ChannelMonitor. In questo passaggio vengono utilizzati i canali preferiti e supportati. (vedi otChannelManagerSetsupportedChannels() e otChannelManagerSetFavoredChannels()).

3) Se il canale appena selezionato è diverso da quello attuale, ChannelManager richiede/avvia la procedura di modifica del canale (chiamando internamente un RequestChannelChange()).

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
[in] aSkipQualityCheck
Indica se il controllo di qualità (passaggio 1) deve essere ignorato.
Valori restituiti
OT_ERROR_NONE
Selezione canale completata.
OT_ERROR_NOT_FOUND
La maschera del canale supportata è vuota, pertanto non è possibile selezionare un canale.

otChannelManagerSetAutoChannelSelectionEnabled

void otChannelManagerSetAutoChannelSelectionEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Attiva o disattiva la funzionalità di selezione automatica del canale.

Se viene attivato, ChannelManager richiama periodicamente un RequestChannelSelect(false). L'intervallo del ciclo può essere impostato da SetAutoChannelSelectionInterval().

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
[in] aEnabled
Indica se attivare o disattivare questa funzionalità.

otChannelManagerSetAutoChannelSelectionInterval

otError otChannelManagerSetAutoChannelSelectionInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Imposta l'intervallo di tempo (in secondi) utilizzato dalla funzionalità di selezione automatica del canale.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
[in] aInterval
L'intervallo in secondi.
Valori restituiti
OT_ERROR_NONE
L'intervallo è stato impostato correttamente.
OT_ERROR_INVALID_ARGS
aInterval non è valido (zero).

otChannelManagerSetCcaFailureRateThreshold

void otChannelManagerSetCcaFailureRateThreshold(
  otInstance *aInstance,
  uint16_t aThreshold
)

Imposta la soglia del tasso di errore CCA.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
[in] aThreshold
Una soglia di tasso di errore CCA. Il valore 0 corrisponde a 0% e 0xffff viene mappato al 100%.

OtChannelManagerSetDelay

otError otChannelManagerSetDelay(
  otInstance *aInstance,
  uint16_t aDelay
)

Imposta il ritardo (in secondi) utilizzato per una modifica del canale.

Il ritardo dovrebbe essere preferibilmente maggiore dell'intervallo massimo di sondaggi dati utilizzato da tutti i dispositivi di sonno all'interno della rete Thread.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
[in] aDelay
Ritardo in secondi.
Valori restituiti
OT_ERROR_NONE
Il ritardo è stato aggiornato correttamente.
OT_ERROR_INVALID_ARGS
Il ritardo specificato aDelay è troppo breve.

otChannelManagerSetFavoredChannels

void otChannelManagerSetFavoredChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

Imposta la maschera del canale preferita.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
[in] aChannelMask
Una maschera del canale.

otChannelManagerSetsupportedChannels

void otChannelManagerSetSupportedChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

Imposta la maschera del canale supportata.

Dettagli
Parametri
[in] aInstance
Un puntatore su un'istanza OpenThread.
[in] aChannelMask
Una maschera del canale.

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.