Менеджер канала

Этот модуль включает в себя функции для Channel Manager.

Краткое содержание

Функции в этом модуле доступны, когда функция диспетчера каналов ( OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE ) включена. Channel Manager доступен только в сборке 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 выбрать канал самостоятельно (на основе собранной информации о качестве канала).

После вызова Channel Manager выполнит следующие 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
Маска канала.

Ресурсы

Разделы справочника по API OpenThread взяты из исходного кода, доступного на GitHub . Чтобы получить дополнительную информацию или внести свой вклад в нашу документацию, обратитесь к разделу Ресурсы .