チャンネルのモニタリング

このモジュールでは、チャンネル モニタリング機能について説明します。

まとめ

このモジュールの機能は、チャンネル モニター機能(OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE)が有効になっている場合に使用できます。

チャンネルのモニタリングでは、よりクリーンなチャンネル(干渉の少ないチャンネル)を判断できるように、すべてのチャンネルが定期的にモニタリングされます。

チャンネル モニタリングが有効な場合は、サンプル間隔ごとにすべてのチャンネルで単一の RSSI サンプルが収集され、ゼロ時間のエネルギー スキャンが実行されます。RSSI サンプルは、事前に指定された RSSI しきい値と比較されます。チャネル品質の指標として、チャネル モニタリング モジュールは、指定されたサンプル(チャネル占有率)ウィンドウ内の(ほぼ)しきい値を超える RSSI サンプルの平均レートと割合を維持し、提供します。

関数

otChannelMonitorGetChannelOccupancy(otInstance *aInstance, uint8_t aChannel)
uint16_t
特定のチャンネルの現在のチャンネル占有率を取得します。
otChannelMonitorGetRssiThreshold(otInstance *aInstance)
int8_t
チャンネル モニタリングの RSSI しきい値を dBm で取得します。
otChannelMonitorGetSampleCount(otInstance *aInstance)
uint32_t
チャンネル モニタリングの合計 RSSI サンプル数(チャンネルごと)を取得します。
otChannelMonitorGetSampleInterval(otInstance *aInstance)
uint32_t
チャネル モニタリングのサンプル間隔(ミリ秒単位)を取得します。
otChannelMonitorGetSampleWindow(otInstance *aInstance)
uint32_t
チャネル モニタリングの平均サンプル期間(サンプル数)を取得する。
otChannelMonitorIsEnabled(otInstance *aInstance)
bool
チャネル モニタリング オペレーションが有効で実行中かどうかを示します。
otChannelMonitorSetEnabled(otInstance *aInstance, bool aEnabled)
チャネル モニタリング オペレーションを有効または無効にします。

関数

otChannelMonitorGetChannelOccupancy

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

特定のチャンネルの現在のチャンネル占有率を取得します。

チャネル占有率の値は、RSSI しきい値(「悪い」RSSI サンプル)を超えた RSSI サンプルの平均レートと割合を表します。

最初の「サンプル ウィンドウ」サンプルでは、平均が実際の割合(つまり、サンプルの合計数に対する「悪い」サンプルの数の比率)として維持されます。「ウィンドウ」サンプルの後、平均化器は指数加重移動平均を使用します。実際には、平均は最新の kSampleWindow サンプルを重み付けした最大 3 * window 個の最後のサンプルを表しています。

0xffff の最大値は、すべての RSSI サンプルが RSSI しきい値を上回ったことを示します(つまり、100% のサンプルが「不適切」でした)。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aChannel
リンクの占有率を取得するチャネル。
戻り値
特定のチャネルの現在のチャネル占有率。

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

チャンネル モニタリングの RSSI しきい値を dBm で取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
RSSI しきい値(dBm)。

otChannelMonitorGetSampleCount

uint32_t otChannelMonitorGetSampleCount(
  otInstance *aInstance
)

チャンネル モニタリングの合計 RSSI サンプル数(チャンネルごと)を取得します。

この数は、開始時(Thread ネットワーク インターフェースが有効以降)の、チャネル モニタリング モジュール別のチャネルあたりの合計サンプル数を示します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
これまでに取得された RSSI サンプル(チャンネルあたり)の合計数。

otChannelMonitorGetSampleInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

チャネル モニタリングのサンプル間隔(ミリ秒単位)を取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
チャネル モニタリングのサンプル間隔(ミリ秒単位)。

otChannelMonitorGetSampleWindow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

チャネル モニタリングの平均サンプル期間(サンプル数)を取得する。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
平均化サンプルのウィンドウ。

otChannelMonitorIsEnabled(otChannelMonitorIsEnabled)

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

チャネル モニタリング オペレーションが有効で実行中かどうかを示します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
チャネル モニタリング オペレーションが有効になっている場合は TRUE、そうでない場合は FALSE です。

otChannelMonitorSetEnabled(otChannelMonitorSetEnabled)

otError otChannelMonitorSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

チャネル モニタリング オペレーションを有効または無効にします。

オペレーションを開始すると、それまでに収集されたデータはすべて消去されます。ただし、オペレーションを無効にしても、それまでに収集されたデータは有効であり、読み取ることができます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aEnabled
チャネル モニタリング オペレーションを有効/開始する場合は TRUE、無効にする/停止する場合は FALSE。
戻り値
OT_ERROR_NONE
チャンネル モニタリングの状態を変更しました
OT_ERROR_ALREADY
チャネル モニタリングはすでに同じ状態です。

関連情報

OpenThread API リファレンスのトピックは、GitHub で入手可能なソースコードに基づいています。詳細やドキュメントの作成方法については、リソースをご覧ください。