Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Monitoreo de canales

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

Resumen

Las funciones de este módulo están disponibles cuando la función de monitorización de canales ( OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE ) está habilitada.

El monitoreo de canales monitoreará periódicamente todos los canales para ayudar a determinar los canales más limpios (canales con menos interferencia).

Cuando la monitorización de canales está activa, se realiza un Energy Scan de duración cero, recogiendo una sola muestra RSSI en cada canal por intervalo de muestra. Las muestras de RSSI se comparan con un umbral de RSSI preestablecido. Como indicador de la calidad del canal, el módulo de monitoreo de canal mantiene y proporciona la tasa / porcentaje promedio de muestras RSSI que están por encima del umbral dentro (aproximadamente) de una ventana de muestra específica (denominada ocupación de canal).

Funciones

otChannelMonitorGetChannelOccupancy ( otInstance *aInstance, uint8_t aChannel)
uint16_t
Obtiene la ocupación actual del canal para un canal determinado.
otChannelMonitorGetRssiThreshold ( otInstance *aInstance)
int8_t
Obtenga el umbral RSSI de monitoreo de canal en dBm.
otChannelMonitorGetSampleCount ( otInstance *aInstance)
uint32_t
Obtenga el número total de muestras RSSI de monitoreo de canal (por canal).
otChannelMonitorGetSampleInterval ( otInstance *aInstance)
uint32_t
Obtenga el intervalo de muestra de monitoreo de canal en milisegundos.
otChannelMonitorGetSampleWindow ( otInstance *aInstance)
uint32_t
Obtenga monitoreo de canal promediando la longitud de la ventana de muestra (número de muestras).
otChannelMonitorIsEnabled ( otInstance *aInstance)
bool
Esta función indica si la operación de monitoreo de canales está habilitada y en ejecución.
otChannelMonitorSetEnabled ( otInstance *aInstance, bool aEnabled)
Esta función habilita / deshabilita la operación de monitoreo de canales.

Funciones

otChannelMonitorGetChannelOccupancy

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

Obtiene la ocupación actual del canal para un canal determinado.

El valor de ocupación del canal representa la tasa / porcentaje promedio de muestras de RSSI que estaban por encima del umbral de RSSI (muestras de RSSI "malas").

Para las primeras muestras de la "ventana de muestra", el promedio se mantiene como el porcentaje real (es decir, la proporción del número de muestras "malas" por el número total de muestras). Después de las muestras de "ventana", el promediador utiliza una media móvil ponderada exponencialmente. En la práctica, esto significa que el promedio es representativo de hasta 3 * window últimas muestras de 3 * window con el mayor peso dado a las últimas muestras de kSampleWindow .

El valor máximo de 0xffff indica que todas las muestras de RSSI estaban por encima del umbral de RSSI (es decir, el 100% de las muestras eran "malas").

Detalles
Parámetros
[in] aInstance
Un puntero a una instancia de OpenThread.
[in] aChannel
El canal para el que se obtiene la ocupación del enlace.
Devoluciones
La ocupación actual del canal para el canal dado.

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

Obtenga el umbral RSSI de monitoreo de canal en dBm.

Detalles
Parámetros
[in] aInstance
Un puntero a una instancia de OpenThread.
Devoluciones
El umbral de RSSI en dBm.

otChannelMonitorGetSampleCount

uint32_t otChannelMonitorGetSampleCount(
  otInstance *aInstance
)

Obtenga el número total de muestras RSSI de monitoreo de canal (por canal).

El recuento indica el número total de muestras por canal por módulo de monitoreo de canal desde su inicio (desde que se habilitó la interfaz de red Thread).

Detalles
Parámetros
[in] aInstance
Un puntero a una instancia de OpenThread.
Devoluciones
Número total de muestras RSSI (por canal) tomadas hasta el momento.

otChannelMonitorGetSampleInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

Obtenga el intervalo de muestra de monitoreo de canal en milisegundos.

Detalles
Parámetros
[in] aInstance
Un puntero a una instancia de OpenThread.
Devoluciones
El intervalo de muestreo del monitor de canal en milisegundos.

otChannelMonitorGetSampleWindow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

Obtenga monitoreo de canal promediando la longitud de la ventana de muestra (número de muestras).

Detalles
Parámetros
[in] aInstance
Un puntero a una instancia de OpenThread.
Devoluciones
La ventana de muestra promediada.

otChannelMonitorIsEnabled

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

Esta función indica si la operación de monitoreo de canales está habilitada y en ejecución.

Detalles
Parámetros
[in] aInstance
Un puntero a una instancia de OpenThread.
Devoluciones
VERDADERO si la operación de Monitoreo de canales está habilitada, FALSO en caso contrario.

otChannelMonitorSetEnabled

otError otChannelMonitorSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Esta función habilita / deshabilita la operación de monitoreo de canales.

Una vez que comienza la operación, se borran todos los datos recopilados anteriormente. Sin embargo, después de deshabilitar la operación, los datos recopilados anteriormente siguen siendo válidos y se pueden leer.

Detalles
Parámetros
[in] aInstance
Un puntero a una instancia de OpenThread.
[in] aEnabled
VERDADERO para habilitar / iniciar la operación de monitoreo de canal, FALSO para deshabilitarlo / detenerlo.
Valores devueltos
OT_ERROR_NONE
El estado de supervisión del canal cambió correctamente
OT_ERROR_ALREADY
Channel Monitoring ya se encuentra en el mismo estado.