Channel Manager

Este módulo incluye funciones para el administrador de canales.

Resumen

Las funciones de este módulo están disponibles cuando se habilita la función Administrador de canales (OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE). El administrador de canal solo está disponible en una compilación de FTD.

Funciones

otChannelManagerGetAutoChannelSelectionEnabled(otInstance *aInstance)
bool
Indica si la función de selección de canales automáticos está habilitada o no.
otChannelManagerGetAutoChannelSelectionInterval(otInstance *aInstance)
uint32_t
Obtiene el intervalo de período (en segundos) que usa la funcionalidad de selección de canales automáticos.
otChannelManagerGetCcaFailureRateThreshold(otInstance *aInstance)
uint16_t
Obtiene el umbral de tasa de fallas de CCA.
otChannelManagerGetDelay(otInstance *aInstance)
uint16_t
Obtiene el retraso (en segundos) que utiliza el administrador de canal para un cambio de canal.
otChannelManagerGetFavoredChannels(otInstance *aInstance)
uint32_t
Obtiene la máscara del canal favorito.
otChannelManagerGetRequestedChannel(otInstance *aInstance)
uint8_t
Obtiene el canal de la última llamada exitosa a otChannelManagerRequestChannelChange()
otChannelManagerGetSupportedChannels(otInstance *aInstance)
uint32_t
Obtiene la máscara de canal compatible.
otChannelManagerRequestChannelChange(otInstance *aInstance, uint8_t aChannel)
void
Solicita un cambio en un canal de red Thread.
otChannelManagerRequestChannelSelect(otInstance *aInstance, bool aSkipQualityCheck)
Solicita que ChannelManager verifique y seleccione un canal nuevo y comience un cambio de canal.
otChannelManagerSetAutoChannelSelectionEnabled(otInstance *aInstance, bool aEnabled)
void
Habilita o inhabilita la funcionalidad de selección automática de canales.
otChannelManagerSetAutoChannelSelectionInterval(otInstance *aInstance, uint32_t aInterval)
Establece el intervalo (en segundos) que usa la funcionalidad de selección de canales automáticos.
otChannelManagerSetCcaFailureRateThreshold(otInstance *aInstance, uint16_t aThreshold)
void
Establece el umbral de tasa de fallas de CCA.
otChannelManagerSetDelay(otInstance *aInstance, uint16_t aDelay)
Establece el retraso (en segundos) que se utiliza para un cambio de canal.
otChannelManagerSetFavoredChannels(otInstance *aInstance, uint32_t aChannelMask)
void
Establece la máscara del canal favorito.
otChannelManagerSetSupportedChannels(otInstance *aInstance, uint32_t aChannelMask)
void
Establece la máscara del canal compatible.

Funciones

otChannelManagerGetAutoChannelSelectionEnabled

bool otChannelManagerGetAutoChannelSelectionEnabled(
  otInstance *aInstance
)

Indica si la función de selección de canales automáticos está habilitada o no.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
VERDADERO si está habilitado; FALSO si está inhabilitado.

otChannelManagerGetAutoChannelSelectionInterval

uint32_t otChannelManagerGetAutoChannelSelectionInterval(
  otInstance *aInstance
)

Obtiene el intervalo de período (en segundos) que usa la funcionalidad de selección de canales automáticos.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
El intervalo en segundos

otChannelManagerGetCcaFailureRateThreshold

uint16_t otChannelManagerGetCcaFailureRateThreshold(
  otInstance *aInstance
)

Obtiene el umbral de tasa de fallas de CCA.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
El umbral de tasa de fallas de CCA. El valor 0 se asigna al 0% y 0xffff se asigna al 100%.

otManagerManagerGetDelay

uint16_t otChannelManagerGetDelay(
  otInstance *aInstance
)

Obtiene el retraso (en segundos) que utiliza el administrador de canal para un cambio de canal.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
El retraso (en segundos) del cambio de canal.

otChannelManagerGetFavoredChannels

uint32_t otChannelManagerGetFavoredChannels(
  otInstance *aInstance
)

Obtiene la máscara del canal favorito.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
Los canales favoritos como máscara de bits

otChannelManagerGetRequestedChannel

uint8_t otChannelManagerGetRequestedChannel(
  otInstance *aInstance
)

Obtiene el canal de la última llamada exitosa a otChannelManagerRequestChannelChange()

Detalles
Qué muestra
El último canal solicitado o cero si aún no hubo una solicitud de cambio de canal

otChannelManagerGetSupportedChannels

uint32_t otChannelManagerGetSupportedChannels(
  otInstance *aInstance
)

Obtiene la máscara de canal compatible.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
Los canales admitidos como máscara de bits

otChannelManagerRequestChannelChange

void otChannelManagerRequestChannelChange(
  otInstance *aInstance,
  uint8_t aChannel
)

Solicita un cambio en un canal de red Thread.

La red cambia al canal determinado después de una demora especificada (consulta otChannelManagerSetDelay()). El cambio de canal se realiza mediante la actualización del conjunto de datos operativo pendiente.

Una llamada posterior cancelará un cambio de canal que se solicitó previamente.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aChannel
El nuevo canal de la red Thread.

otChannelManagerRequestChannelSelect

otError otChannelManagerRequestChannelSelect(
  otInstance *aInstance,
  bool aSkipQualityCheck
)

Solicita que ChannelManager verifique y seleccione un canal nuevo y comience un cambio de canal.

A diferencia de la otChannelManagerRequestChannelChange() en la que se debe proporcionar el canal como parámetro, esta función le pide a ChannelManager que seleccione un canal por su cuenta (según la información de calidad recopilada).

Una vez que se lo llame, el administrador de canal realizará los siguientes 3 pasos:

1) ChannelManager decide si el cambio de canal podría serte útil. Esta verificación se puede omitir si se configura aSkipQualityCheck como verdadero (obligando a que se seleccione un canal y se omite la verificación de calidad). En este paso se utilizan las métricas de calidad de vinculación recopiladas en el dispositivo (como la tasa de fallas de CCA, las tasas de errores de marco y mensaje por vecino, etc.) para determinar si la calidad actual del canal es a nivel que justifica un cambio de canal.

2) Si el primer paso es exitoso, ChannelManager selecciona un canal potencialmente mejor. Usa los datos recopilados de calidad del canal por módulo de ChannelMonitor. En este paso, se usan los canales compatibles y favoritos. (consulta otChannelManagerSetSupportedChannels() y otChannelManagerSetFavoredChannels()).

3) Si el canal recién seleccionado es diferente del canal actual, ChannelManager solicita o inicia el proceso de cambio de canal (invocando internamente un RequestChannelChange()).

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aSkipQualityCheck
Indica si se debe omitir el control de calidad (paso 1).
Valores que se muestran
OT_ERROR_NONE
Se completó correctamente la selección del canal.
OT_ERROR_NOT_FOUND
La máscara de canal compatible está vacía, por lo que no se pudo seleccionar un canal.

otManagerManagerSetAutoChannelSelectionEnabled

void otChannelManagerSetAutoChannelSelectionEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Habilita o inhabilita la funcionalidad de selección automática de canales.

Cuando la opción esté habilitada, ChannelManager invocará periódicamente un RequestChannelSelect(false). SetAutoChannelSelectionInterval() puede establecer el intervalo de período.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aEnabled
Indica si se debe habilitar o inhabilitar esta funcionalidad.

otManagerManagerSetAutoChannelSelectionInterval

otError otChannelManagerSetAutoChannelSelectionInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Establece el intervalo (en segundos) que usa la funcionalidad de selección de canales automáticos.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aInterval
El intervalo en segundos
Valores que se muestran
OT_ERROR_NONE
Se configuró correctamente el intervalo.
OT_ERROR_INVALID_ARGS
El aInterval no es válido (cero).

otManagerManagerSetCcaFailureRateThreshold

void otChannelManagerSetCcaFailureRateThreshold(
  otInstance *aInstance,
  uint16_t aThreshold
)

Establece el umbral de tasa de fallas de CCA.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aThreshold
Un umbral de tasa de fallas de CCA. El valor 0 se asigna al 0% y 0xffff se asigna al 100%.

otManagerManagerSetDelay

otError otChannelManagerSetDelay(
  otInstance *aInstance,
  uint16_t aDelay
)

Establece el retraso (en segundos) que se utiliza para un cambio de canal.

Preferentemente, el retraso debe ser mayor que el intervalo máximo de sondeo de datos que usan todos los dispositivos del área de sueño dentro de la red de Thread.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aDelay
Retraso en segundos.
Valores que se muestran
OT_ERROR_NONE
El retraso se actualizó correctamente.
OT_ERROR_INVALID_ARGS
El retraso específico aDelay es demasiado corto.

otChannelManagerSetFavoredChannels

void otChannelManagerSetFavoredChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

Establece la máscara del canal favorito.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aChannelMask
Una máscara de canal

otChannelManagerSetSupportedChannels

void otChannelManagerSetSupportedChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

Establece la máscara del canal compatible.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aChannelMask
Una máscara de canal

Recursos

Los temas de referencia de la API de OpenThread se originan a partir del código fuente, disponible en GitHub. Para obtener más información o colaborar con nuestra documentación, consulta la sección Recursos.