Supervisión del canal

Este módulo incluye funciones para la función de supervisión de canales.

Resumen

Las funciones de este módulo están disponibles cuando se habilita la función de monitor de canal (OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE).

La supervisión de canales supervisará periódicamente todos los canales para ayudar a determinar los canales más limpios (canales con menos interferencia).

Cuando está activa la supervisión de canales, se realiza un análisis de energía de duración cero, que recopila una sola muestra de RSSI en cada canal por intervalo de muestra. Las muestras de RSSI se comparan con un umbral RSSI especificado. Como indicador de la calidad del canal, el módulo de supervisión del canal mantiene y proporciona la tasa/porcentaje promedio de muestras de RSSI que superan el umbral dentro de una ventana de muestra especificada (aproximadamente) (ocupada del canal).

Funciones

otChannelMonitorGetChannelOccupancy(otInstance *aInstance, uint8_t aChannel)
uint16_t
Obtiene la ocupación actual de un canal determinado.
otChannelMonitorGetRssiThreshold(otInstance *aInstance)
int8_t
Obtén el umbral RSSI de supervisión de canales en dBm.
otChannelMonitorGetSampleCount(otInstance *aInstance)
uint32_t
Obtener la cantidad total de muestras de supervisión de canales de RSSI (por canal)
otChannelMonitorGetSampleInterval(otInstance *aInstance)
uint32_t
Obtén un intervalo de muestra de supervisión de canales en milisegundos.
otChannelMonitorGetSampleWindow(otInstance *aInstance)
uint32_t
Obtener la duración promedio de la ventana de muestra de la supervisión de canales (cantidad de muestras)
otChannelMonitorIsEnabled(otInstance *aInstance)
bool
Indica si la operación de supervisión del canal está habilitada y en ejecución.
otChannelMonitorSetEnabled(otInstance *aInstance, bool aEnabled)
Habilita o inhabilita la operación de supervisión del canal.

Funciones

otChannelMonitorGetChannelOcupupance

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

Obtiene la ocupación actual de un canal determinado.

El valor de ocupación del canal representa la tasa o el porcentaje promedio de las muestras de RSSI que superaron el umbral ("muestras de RSSI" incorrectas).

En las primeras muestras de la “ventana de muestra”, el promedio se mantiene como el porcentaje real (es decir, la proporción de muestras “malos” por la cantidad total de muestras). Después de muestras de "ventana", el promedio usa un promedio móvil ponderado de manera exponencial. En la práctica, esto significa que el promedio representa hasta 3 * window muestras más recientes con el mayor peso asignado a las últimas muestras de kSampleWindow.

El valor máximo de 0xffff indica que todas las muestras de RSSI superaron el umbral de RSSI (es decir, el 100% de las muestras no eran "adecuadas").

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aChannel
El canal para el que se ocupa el vínculo.
Qué muestra
Ocupación actual del canal correspondiente.

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

Obtén el umbral RSSI de supervisión de canales en dBm.

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

otChannelMonitorGetSampleCount

uint32_t otChannelMonitorGetSampleCount(
  otInstance *aInstance
)

Obtener la cantidad total de muestras de supervisión de canales de RSSI (por canal)

El recuento indica la cantidad total de muestras por canal por módulo de supervisión desde la fecha de inicio (desde que se habilitó la interfaz de red de Thread).

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
Cantidad total de muestras de RSSI (por canal) realizadas hasta el momento.

otChannelMonitorGetSampleInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

Obtén un intervalo de muestra de supervisión de canales en milisegundos.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
El intervalo de muestreo del monitor de canales en milisegundos.

otChannelMonitorGetSampleWindow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

Obtener la duración promedio de la ventana de muestra de la supervisión de canales (cantidad de muestras)

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
La ventana de muestra promedio.

ooCanalMonitorIsEnabled

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

Indica si la operación de supervisión del canal está habilitada y en ejecución.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
Qué muestra
TRUE si la operación de supervisión del canal está habilitada; de lo contrario, FALSE.

otChannelMonitorSetEnabled

otError otChannelMonitorSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Habilita o inhabilita la operación de supervisión del canal.

Una vez que comience la operación, se borrarán todos los datos recopilados anteriormente. Sin embargo, después de que se inhabilite la operación, los datos recopilados anteriormente seguirán siendo válidos y se podrán leer.

Detalles
Parámetros
[in] aInstance
Un puntero para una instancia de OpenThread.
[in] aEnabled
TRUE para habilitar o iniciar la operación de Channel Monitoring, FALSE para inhabilitarla o detenerla.
Valores que se muestran
OT_ERROR_NONE
El estado de supervisión del canal cambió correctamente.
OT_ERROR_ALREADY
La supervisión de canales ya está en el mismo estado.

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.