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

チャンネルの監視

このモジュールには、チャンネル モニタリング機能用の関数が含まれています。

概要

このモジュールの関数は、チャネル モニター機能(OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE)が有効な場合に利用できます。

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

チャンネル モニタリングがアクティブの場合は、持続時間のエネルギー スキャンが実行され、サンプル間隔ごとにすべてのチャンネルで RSSI サンプルが 1 つ収集されます。RSSI サンプルが、事前に指定された RSSI しきい値と比較されます。チャンネル品質の指標として、チャネル モニタリング モジュールは、指定されたサンプル期間内(おおよそ)のしきい値を超える RSSI サンプルの平均レート/パーセントを維持し、提供します。

関数

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

関数

otChannelMonitorGetChannelOccupancy

uint16_t otChannelMonitorGetChannelOccupancy(
  otInstance *aInstance,
  uint8_t aChannel
)

指定されたチャネルの現在のチャネルの占有率を取得します。

チャネルの占有率の値は、RSSI しきい値(「不良」な RSSI サンプル)を上回る RSSI サンプルの平均レート/割合を表します。

最初の「サンプル ウィンドウ」のサンプルでは、平均は実際の割合(サンプルの総数で「不良」サンプルの数の比率)として維持されます。「ウィンドウ」サンプルの後、平均化器は指数関数的に重み付けされた移動平均を使用します。事実上、この平均は、最大3 * window重み付けが最後になられた最新のサンプルkSampleWindowサンプル。

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

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

otChannelMonitorGetRssiThreshold

int8_t otChannelMonitorGetRssiThreshold(
  otInstance *aInstance
)

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

詳細
パラメータ
[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(チャネル モニターのモニタリングの有効化)

bool otChannelMonitorIsEnabled(
  otInstance *aInstance
)

この関数は、Channel Monitoring のオペレーションが有効で実行中かどうかを示します。

詳細
パラメータ
[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
チャネル モニタリングがすでに同じ状態です。

リソース

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