Посмотреть исходный код на GitHub
Чтобы позволить конечным устройствам (ED) в сети Thread переключаться на более подходящего родительского устройства, чем текущее, оставаясь при этом подключенными к сети, включите функцию периодического поиска родительского устройства.
Для определения того, подходит ли тот или иной родительский ребенок лучше для отделения неотложной помощи, эта функция проверяет ряд его характеристик, в том числе:
- RSSI (индикатор уровня принимаемого сигнала)
- Качество ссылки
- Связь потенциального родительского элемента с другими расширителями сетки.
- Количество уже имеющихся детей у кандидата в родители.
Это гарантирует, что устройства расширения сети (ED) подключаются к наилучшему возможному родительскому узлу, а не остаются привязанными к узлу с плохим качеством связи или недостаточной связностью. Эта функция особенно полезна при добавлении нового расширителя сети Mesh Extender в существующую сеть Thread.
Как это работает
- ED проверяет среднее значение RSSI для текущего родительского узла в соответствии с настроенным интервалом проверки (
OPENTHREAD_CONFIG_PARENT_SEARCH_CHECK_INTERVAL). - Если среднее значение RSSI для текущего родительского узла ED ниже заданного порогового значения (
OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD), запускается поиск родительского узла:- Если в результате поиска родительского элемента обнаруживается более подходящий родительский элемент, отделение неотложной помощи разрывает текущую связь «ребенок-родитель» и инициирует процесс привязки MLE с новым родительским элементом.
- Если поиск родительского элемента не выявит более подходящего родителя, существующая связь «Родитель-потомок» останется.
- После попытки поиска родительского узла ED ожидает проверки среднего значения RSSI для текущего родительского узла в соответствии с настроенным интервалом задержки (
OPENTHREAD_CONFIG_PARENT_SEARCH_BACKOFF_INTERVAL). Эта задержка происходит независимо от результата поиска родительского узла.
Мы рекомендуем включить функцию «Уведомлять предыдущего родителя при повторном подключении» в сочетании с этой функцией.
Как включить
Эта функция отключена по умолчанию.
Чтобы включить периодический поиск родительских элементов, перед сборкой OpenThread установите OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE равным 1 в файле /src/core/config/parent_search.h :
#ifndef OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE
#define OPENTHREAD_CONFIG_PARENT_SEARCH_ENABLE 1
#endif
Параметры
Для настройки этой функции используйте следующие параметры в /src/core/config/parent_search.h :
| Параметры | |||||
|---|---|---|---|---|---|
| OPENTHREAD_CONFIG_PARENT_SEARCH_CHECK_INTERVAL |
| ||||
| OPENTHREAD_CONFIG_PARENT_SEARCH_BACKOFF_INTERVAL |
| ||||
| OPENTHREAD_CONFIG_PARENT_SEARCH_RSS_THRESHOLD |
|
API
Для этой функции нет общедоступного API.
CLI
Команды командной строки, связанные с этой функцией, отсутствуют.