チャネル管理者

このモジュールには、チャンネル マネージャー用の関数が含まれています。

まとめ

このモジュールの機能は、チャネル マネージャー機能(OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE)が有効になっている場合に使用できます。チャンネル マネージャーは FTD ビルドでのみ使用できます。

関数

otChannelManagerGetAutoChannelSelectionEnabled(otInstance *aInstance)
bool
自動チャンネル選択機能が有効かどうかを示します。
otChannelManagerGetAutoChannelSelectionInterval(otInstance *aInstance)
uint32_t
自動チャンネル選択機能で使用される期間(秒単位)を取得します。
otChannelManagerGetCcaFailureRateThreshold(otInstance *aInstance)
uint16_t
CCA 失敗率のしきい値を取得します。
otChannelManagerGetDelay(otInstance *aInstance)
uint16_t
チャンネル変更時にチャンネル マネージャーが使用する遅延(秒単位)を取得します。
otChannelManagerGetFavoredChannels(otInstance *aInstance)
uint32_t
優先するチャンネル マスクを取得します。
otChannelManagerGetRequestedChannel(otInstance *aInstance)
uint8_t
最後に otChannelManagerRequestChannelChange() を呼び出した際にチャンネルを取得
otChannelManagerGetSupportedChannels(otInstance *aInstance)
uint32_t
サポートされているチャンネル マスクを取得します。
otChannelManagerRequestChannelChange(otInstance *aInstance, uint8_t aChannel)
void
Thread ネットワーク チャンネルの変更をリクエストします。
otChannelManagerRequestChannelSelect(otInstance *aInstance, bool aSkipQualityCheck)
ChannelManager が新しいチャンネルを確認して選択し、チャンネルの変更を開始するようリクエストします。
otChannelManagerSetAutoChannelSelectionEnabled(otInstance *aInstance, bool aEnabled)
void
自動チャンネル選択機能を有効または無効にします。
otChannelManagerSetAutoChannelSelectionInterval(otInstance *aInstance, uint32_t aInterval)
自動チャンネル選択機能で使用される期間(秒単位)を設定します。
otChannelManagerSetCcaFailureRateThreshold(otInstance *aInstance, uint16_t aThreshold)
void
CCA 失敗率のしきい値を設定します。
otChannelManagerSetDelay(otInstance *aInstance, uint16_t aDelay)
チャンネルの変更に使用する遅延(秒単位)を設定します。
otChannelManagerSetFavoredChannels(otInstance *aInstance, uint32_t aChannelMask)
void
優先するチャンネル マスクを設定します。
otChannelManagerSetSupportedChannels(otInstance *aInstance, uint32_t aChannelMask)
void
サポートされているチャンネル マスクを設定します。

関数

otChannelManagerGetAutoChannelSelectionEnabled

bool otChannelManagerGetAutoChannelSelectionEnabled(
  otInstance *aInstance
)

自動チャンネル選択機能が有効かどうかを示します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
有効な場合は TRUE、無効にする場合は FALSE。

otChannelManagerGetAutoChannelSelectionInterval

uint32_t otChannelManagerGetAutoChannelSelectionInterval(
  otInstance *aInstance
)

自動チャンネル選択機能で使用される期間(秒単位)を取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
間隔(秒)。

otChannelManagerGetCcaFailureRateThreshold

uint16_t otChannelManagerGetCcaFailureRateThreshold(
  otInstance *aInstance
)

CCA 失敗率のしきい値を取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
CCA 失敗率のしきい値。値 0 は 0% にマッピングされ、0xffff は 100% にマッピングされます。

otChannelManagerGetDelay

uint16_t otChannelManagerGetDelay(
  otInstance *aInstance
)

チャンネル変更時にチャンネル マネージャーが使用する遅延(秒単位)を取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
チャンネル変更の遅延(秒単位)。

otChannelManagerGetFavoredChannels

uint32_t otChannelManagerGetFavoredChannels(
  otInstance *aInstance
)

優先するチャンネル マスクを取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
優先チャネルをビットマスクとして使用する。

otChannelManagerGetRequestedChannel

uint8_t otChannelManagerGetRequestedChannel(
  otInstance *aInstance
)

最後に otChannelManagerRequestChannelChange() を呼び出した際にチャンネルを取得

詳細
戻り値
最後にリクエストしたチャンネル、またはまだチャンネル変更リクエストがない場合はゼロ。

otChannelManagerGetSupportedChannels

uint32_t otChannelManagerGetSupportedChannels(
  otInstance *aInstance
)

サポートされているチャンネル マスクを取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
サポートされているチャネルをビットマスクとして使用。

otChannelManagerRequestChannelChange

void otChannelManagerRequestChannelChange(
  otInstance *aInstance,
  uint8_t aChannel
)

Thread ネットワーク チャンネルの変更をリクエストします。

指定した遅延の後、ネットワークが所定のチャンネルに切り替わります(otChannelManagerSetDelay() を参照)。保留中の変更は、保留中のオペレーショナル データセットを更新することによって行われます。

次回の呼び出しを行うと、以前にリクエストされたチャネルの変更がキャンセルされます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aChannel
Thread ネットワークの新しいチャネル。

otChannelManagerRequestChannelSelect

otError otChannelManagerRequestChannelSelect(
  otInstance *aInstance,
  bool aSkipQualityCheck
)

ChannelManager が新しいチャンネルを確認して選択し、チャンネルの変更を開始するようリクエストします。

チャンネルをパラメータとして指定する otChannelManagerRequestChannelChange() とは異なり、この関数は ChannelManager に(収集されたチャンネル品質情報に基づいて)チャンネルを選択するよう要求します。

チャンネル マネージャーが呼び出されると、チャンネル マネージャーは次の 3 つのステップを実行します。

1)ChannelManager は、チャンネルの変更が有益かどうかを判断します。aSkipQualityCheck が true に設定されている場合は、このチェックをスキップできます(チャンネルの選択が強制的に行われ、品質チェックもスキップされます)。このステップでは、デバイスで収集されたリンク品質指標(CCA エラー率、ネイバーあたりのフレームエラー率とメッセージ エラー率など)を使用して、現在のチャンネル品質がチャンネル変更の妥当性レベルかどうかを判断します。

2)最初のステップが成功すると、ChannelManager により、より優れた可能性があるチャネルが選択されます。ChannelMonitor モジュールで収集されたチャンネル品質データを使用します。このステップでは、サポートされているチャンネルと優先チャンネルを使用します。(otChannelManagerSetSupportedChannels()otChannelManagerSetFavoredChannels() をご覧ください)。

3)新しく選択されたチャンネルが現在のチャンネルと異なる場合、ChannelManager がチャンネル変更プロセスをリクエスト/開始します(内部で RequestChannelChange() を呼び出します)。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aSkipQualityCheck
品質チェック(ステップ 1)をスキップするかどうかを示します。
戻り値
OT_ERROR_NONE
チャンネルの選択が完了しました。
OT_ERROR_NOT_FOUND
サポートされているチャンネル マスクが空のため、チャンネルを選択できませんでした。

otChannelManagerSetAutoChannelSelectionEnabled

void otChannelManagerSetAutoChannelSelectionEnabled(
  otInstance *aInstance,
  bool aEnabled
)

自動チャンネル選択機能を有効または無効にします。

有効にすると、ChannelManager が定期的に RequestChannelSelect(false) を呼び出します。期間の間隔は SetAutoChannelSelectionInterval() で設定できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aEnabled
この機能を有効にするか無効にするかを示します。

otChannelManagerSetAutoChannelSelectionInterval

otError otChannelManagerSetAutoChannelSelectionInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

自動チャンネル選択機能で使用される期間(秒単位)を設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aInterval
間隔(秒)。
戻り値
OT_ERROR_NONE
間隔は正常に設定されました。
OT_ERROR_INVALID_ARGS
aInterval は無効です(ゼロ)。

otChannelManagerSetCcaFailureRateThreshold

void otChannelManagerSetCcaFailureRateThreshold(
  otInstance *aInstance,
  uint16_t aThreshold
)

CCA 失敗率のしきい値を設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aThreshold
CCA 失敗率のしきい値。値 0 は 0% にマッピングされ、0xffff は 100% にマッピングされます。

otChannelManagerSetDelay

otError otChannelManagerSetDelay(
  otInstance *aInstance,
  uint16_t aDelay
)

チャンネルの変更に使用する遅延(秒単位)を設定します。

この遅延は、Thread ネットワーク内のすべてのスリープエンド デバイスによって使用される最大データポーリング間隔よりも長くすることが望ましいです。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aDelay
(秒単位)。
戻り値
OT_ERROR_NONE
遅延が更新されました。
OT_ERROR_INVALID_ARGS
指定した遅延(aDelay)が短すぎます。

otChannelManagerSetFavoredChannels

void otChannelManagerSetFavoredChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

優先するチャンネル マスクを設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aChannelMask
チャンネル マスク。

otChannelManagerSetSupportedChannels

void otChannelManagerSetSupportedChannels(
  otInstance *aInstance,
  uint32_t aChannelMask
)

サポートされているチャンネル マスクを設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aChannelMask
チャンネル マスク。

リソース

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