Присмотр за детьми, Присмотр за детьми, Присмотр за детьми

Посмотреть исходный код на GitHub

Для обеспечения энергоэффективного механизма проверки спящим конечным устройством (СЭУ) того, что оно по-прежнему подключено к родительскому устройству (указанному в таблице дочерних устройств родительского устройства), включите функцию «Контроль за дочерними устройствами».

Спецификация потоков требует, чтобы SED периодически выполнял обмен запросами и ответами на обновления дочернего узла MLE со своим родительским узлом для проверки связи. Контроль дочерних узлов — это альтернативное решение для проверки связи между SED и родительским узлом, которое перекладывает бремя передачи сообщений на родительский узел, а не на SED с ограниченными энергетическими ресурсами.

Как это работает

Эта функция работает двумя способами, в зависимости от типа узла и настроенных параметров :

На родительском элементе

Если родительский процесс не передает данные дочернему процессу SED в течение интервала OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL , родительский процесс ставит в очередь и отправляет дочернему процессу SED сообщение о контроле дочернего процесса. Сообщение о контроле дочернего процесса представляет собой MAC-кадр, содержащий следующую информацию:

  • В заголовке MAC в качестве адреса назначения используется значение RLOC16 из SED.
  • Пустой груз.

По умолчанию заголовок MAC содержит запрос ACK стандарта 802.15.4. Чтобы отключить этот запрос в сообщении Child Supervision, установите параметр OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST в значение 1.

О ребёнке

Если SED не получает ответа от родительского узла в течение времени ожидания OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT , он предполагает, что потерял связь с родительским узлом, и инициирует процесс MLE Attach для повторного подключения к сети.

Как включить

Эта функция отключена по умолчанию.

По определению

Чтобы включить дочерний контроль, перед сборкой OpenThread установите параметр OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE равным 1 в файле openthread/src/core/config/child_supervision.h :

#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif

По выбору

В качестве альтернативы, при сборке OpenThread можно использовать параметр сборки -DOT_CHILD_SUPERVISION=ON :

./script/build -DOT_CHILD_SUPERVISION=ON

Параметры

Для настройки этой функции используйте следующие параметры в openthread/src/core/config/child_supervision.h :

Параметры
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
Значение по умолчанию
129 секунд
Описание
Задает интервал контроля в секундах, используемый родительским процессом. Установите значение 0, чтобы отключить процесс контроля на родительском процессе.
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT
Значение по умолчанию
190 секунд
Описание
Задает интервал ожидания проверки контроля в секундах, используемый устройством в дочернем состоянии. Установите значение 0, чтобы отключить процесс проверки контроля для дочернего устройства.
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST
Значение по умолчанию
0 (Запрос подтверждения разрешен)
Описание
Установите значение 1, чтобы очистить/отключить запрос ACK 802.15.4 в заголовке MAC сообщения мониторинга.

API

Используйте API Child Supervision для управления интервалами ожидания проверки и мониторинга непосредственно в вашем приложении OpenThread.

CLI

Команды командной строки, связанные с этой функцией, отсутствуют.