Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

チャネル監視

このモジュールには、チャネル監視機能の機能が含まれています。

概要

このモジュールの機能は、チャネルモニター機能( 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サンプル)の平均レート/パーセンテージを表します。

最初の「サンプルウィンドウ」サンプルの場合、平均は実際のパーセンテージ(つまり、サンプルの総数に対する「不良」サンプルの数の比率)として維持されます。 「ウィンドウ」サンプルの後、アベレージャーは指数関数的に重み付けされた移動平均を使用します。実際には、これは、平均が最大3 * window最後のサンプルをkSampleWindow 、最新のkSampleWindowサンプルに最も高い重みが与えられていることをkSampleWindowます。

最大値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サンプルのチャネルモニタリングの総数を取得します(チャネルごと)。

カウントは、開始以降のチャネル監視モジュールごとのチャネルごとのサンプルの総数を示します(スレッドネットワークインターフェイスが有効になっているため)。

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

otChannelMonitorGetSampleInterval

uint32_t otChannelMonitorGetSampleInterval(
  otInstance *aInstance
)

チャネル監視のサンプル間隔をミリ秒単位で取得します。

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

otChannelMonitorGetSampleWindow

uint32_t otChannelMonitorGetSampleWindow(
  otInstance *aInstance
)

サンプルウィンドウの長さ(サンプル数)を平均化するチャネルモニタリングを取得します。

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

otChannelMonitorIsEnabled

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

この機能は、チャネル監視操作が有効で実行されているかどうかを示します。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
戻り値
チャネル監視操作が有効になっている場合はTRUE、それ以外の場合はFALSE。

otChannelMonitorSetEnabled

otError otChannelMonitorSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

この機能は、チャネル監視操作を有効/無効にします。

操作が開始されると、以前に収集されたデータはすべてクリアされます。ただし、操作を無効にしても、以前に収集したデータは引き続き有効であり、読み取ることができます。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aEnabled
チャネル監視操作を有効/開始する場合はTRUE、無効/停止する場合はFALSE。
戻り値
OT_ERROR_NONE
チャネル監視状態が正常に変更されました
OT_ERROR_ALREADY
チャネル監視はすでに同じ状態です。