Surveillance des canaux

Ce module contient des fonctions de surveillance des canaux.

Résumé

Les fonctions de ce module sont disponibles lorsque la fonctionnalité de surveillance de chaîne (OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE) est activée.

La fonctionnalité de surveillance des canaux surveille régulièrement tous les canaux pour vous aider à identifier les canaux les plus propres (moins canaux).

Lorsque la surveillance des canaux est active, une analyse énergétique de durée zéro est effectuée afin de collecter un seul échantillon RSSI sur chaque canal par intervalle d'échantillon. Les échantillons RSSI sont comparés à un seuil RSSI spécifié. Pour assurer la qualité de la chaîne, le module de surveillance de la chaîne conserve et fournit le taux/pourcentage moyen d'échantillons RSSI qui sont supérieurs au seuil (dans un intervalle approximatif) d'une fenêtre d'échantillonnage spécifiée (appelée "occupation de la chaîne").

Fonctions

otChannelMonitorGetChannelOccupancy(otInstance *aInstance, uint8_t aChannel)
uint16_t
Récupère l'occupation actuelle d'une chaîne donnée.
otChannelMonitorGetRssiThreshold(otInstance *aInstance)
int8_t
Permet d'obtenir le seuil RSSI de surveillance du canal en DBM.
otChannelMonitorGetSampleCount(otInstance *aInstance)
uint32_t
Permet d'obtenir le nombre total d'échantillons RSSI (par canal).
otChannelMonitorGetSampleInterval(otInstance *aInstance)
uint32_t
Obtenez un intervalle d'échantillonnage de surveillance du canal en millisecondes.
otChannelMonitorGetSampleWindow(otInstance *aInstance)
uint32_t
Obtenez la surveillance de la moyenne à partir de la durée moyenne de l'échantillon (nombre d'échantillons).
otChannelMonitorIsEnabled(otInstance *aInstance)
bool
Indique si l'opération de surveillance du canal est activée et en cours d'exécution.
otChannelMonitorSetEnabled(otInstance *aInstance, bool aEnabled)
Active ou désactive le contrôle des canaux.

Fonctions

otChannelMonitorGetChannelOccupancy

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

Récupère l'occupation actuelle d'une chaîne donnée.

La valeur d'occupation du canal représente le taux/pourcentage moyen d'échantillons RSSI qui étaient supérieurs au seuil RSSI (échantillons RSSI incorrects).

Pour les premiers échantillons de "fenêtre d'échantillonnage", la moyenne est conservée sous la forme d'un pourcentage réel (c'est-à-dire, un ratio entre le nombre d'échantillons "mauvais" et le nombre total d'échantillons). Après des échantillons de "fenêtre", la moyenne utilise une moyenne mobile avec une pondération exponentielle. En pratique, cela signifie que la moyenne est représentative de 3 * window échantillons maximum, avec la pondération la plus élevée attribuée aux kSampleWindow derniers échantillons.

La valeur maximale de 0xffff indique que tous les échantillons RSSI étaient supérieurs au seuil RSSI (autrement dit, 100% des échantillons étaient "mauvais").

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aChannel
Chaîne dont vous souhaitez connaître le nombre de liens.
Renvoie
Occupation actuelle de la chaîne.

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

Permet d'obtenir le seuil RSSI de surveillance du canal en DBM.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
Seuil de RSSI en DBM.

otChannelMonitorGetSampleCount

uint32_t otChannelMonitorGetSampleCount(
  otInstance *aInstance
)

Permet d'obtenir le nombre total d'échantillons RSSI (par canal).

Depuis le début, le nombre total d'échantillons par canal par module de surveillance des canaux s'affiche (depuis l'interface réseau Thread activée).

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
Nombre total d'échantillons RSSI (par canal) pris jusqu'à présent.

otChannelMonitorGetSampleInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

Obtenez un intervalle d'échantillonnage de surveillance du canal en millisecondes.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
L'intervalle de surveillance du canal est exprimé en millisecondes.

otChannelMonitorGetSampleWindow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

Obtenez la surveillance de la moyenne à partir de la durée moyenne de l'échantillon (nombre d'échantillons).

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
Fenêtre d'échantillon moyenne.

otChannelMonitorIsEnabled

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

Indique si l'opération de surveillance du canal est activée et en cours d'exécution.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
TRUE si l'opération de surveillance du canal est activée, FALSE dans le cas contraire.

otChannelMonitorSetEnabled

otError otChannelMonitorSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Active ou désactive le contrôle des canaux.

Une fois l'opération lancée, toutes les données précédemment collectées sont effacées. Cependant, une fois l'opération désactivée, les données collectées précédemment restent valides et peuvent être lues.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aEnabled
VRAI pour activer/démarrer l'opération de surveillance du canal, FAUX pour le désactiver/l'arrêter.
Valeurs renvoyées
OT_ERROR_NONE
L'état de surveillance du canal a bien été modifié
OT_ERROR_ALREADY
Le service de surveillance des canaux est déjà dans le même état.

Ressources

Les sujets de référence de l'API OpenThread proviennent du code source, disponible sur GitHub. Pour en savoir plus ou pour contribuer à notre documentation, consultez Ressources.