Менеджер канала
Этот модуль включает в себя функции для 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 )
Указывает, включена ли функция автоматического выбора канала.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возвращает | TRUE, если включено, FALSE, если отключено. |
otChannelManagerGetAutoChannelSelectionInterval
uint32_t otChannelManagerGetAutoChannelSelectionInterval( otInstance *aInstance )
Получает интервал периода (в секундах), используемый функцией автоматического выбора канала.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возвращает | Интервал в секундах. |
otChannelManagerGetCcaFailureRateThreshold
uint16_t otChannelManagerGetCcaFailureRateThreshold( otInstance *aInstance )
Получает порог частоты отказов CCA.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возвращает | Порог частоты отказов CCA. Значение 0 соответствует 0%, а 0xffff соответствует 100%. |
otChannelManagerGetDelay
uint16_t otChannelManagerGetDelay( otInstance *aInstance )
Получает задержку (в секундах), используемую диспетчером каналов для смены канала.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возвращает | Задержка (в секундах) для смены канала. |
otChannelManagerGetFavoredChannels
uint32_t otChannelManagerGetFavoredChannels( otInstance *aInstance )
Получает маску избранного канала.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возвращает | Избранные каналы в виде битовой маски. |
otChannelManagerGetRequestedChannel
uint8_t otChannelManagerGetRequestedChannel( otInstance *aInstance )
Получает канал из последнего успешного вызова otChannelManagerRequestChannelChange()
Подробности | |
---|---|
Возвращает | Последний запрошенный канал или ноль, если еще не было запроса на смену канала. |
otChannelManagerGetSupportedChannels
uint32_t otChannelManagerGetSupportedChannels( otInstance *aInstance )
Получает поддерживаемую маску канала.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возвращает | Поддерживаемые каналы в виде битовой маски. |
otChannelManagerRequestChannelChange
void otChannelManagerRequestChannelChange( otInstance *aInstance, uint8_t aChannel )
Запрашивает изменение сетевого канала Thread.
Сеть переключается на данный канал после указанной задержки (см. otChannelManagerSetDelay() ). Изменение канала выполняется путем обновления ожидающего рабочего набора данных.
Последующий вызов отменит текущую ранее запрошенную смену канала.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
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()
).
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
otChannelManagerSetAutoChannelSelectionEnabled
void otChannelManagerSetAutoChannelSelectionEnabled( otInstance *aInstance, bool aEnabled )
Включает или отключает функцию автоматического выбора канала.
Если этот параметр включен, ChannelManager
будет периодически вызывать RequestChannelSelect(false)
. Интервал периода может быть установлен с помощью SetAutoChannelSelectionInterval()
.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
otChannelManagerSetAutoChannelSelectionInterval
otError otChannelManagerSetAutoChannelSelectionInterval( otInstance *aInstance, uint32_t aInterval )
Устанавливает интервал периода (в секундах), используемый функцией автоматического выбора канала.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
otChannelManagerSetCcaFailureRateThreshold
void otChannelManagerSetCcaFailureRateThreshold( otInstance *aInstance, uint16_t aThreshold )
Устанавливает порог частоты отказов CCA.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
otChannelManagerSetDelay
otError otChannelManagerSetDelay( otInstance *aInstance, uint16_t aDelay )
Устанавливает задержку (в секундах), используемую для смены канала.
Задержка предпочтительно должна быть больше, чем максимальный интервал опроса данных, используемый всеми спящими конечными устройствами в сети Thread.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
otChannelManagerSetFavoredChannels
void otChannelManagerSetFavoredChannels( otInstance *aInstance, uint32_t aChannelMask )
Устанавливает маску предпочтительного канала.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
otChannelManagerSetSupportedChannels
void otChannelManagerSetSupportedChannels( otInstance *aInstance, uint32_t aChannelMask )
Устанавливает поддерживаемую маску канала.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
Ресурсы
Разделы справочника по API OpenThread взяты из исходного кода, доступного на GitHub . Чтобы получить дополнительную информацию или внести свой вклад в нашу документацию, обратитесь к разделу Ресурсы .