Посмотреть исходный код на GitHub
Чтобы предоставить спящему конечному устройству (SED) энергоэффективный механизм проверки того, что оно все еще подключено к родительскому маршрутизатору (указанному в дочерней таблице родительского маршрутизатора), включите функцию дочернего контроля.
Спецификация потока требует, чтобы SED периодически выполнял обмен запросами и ответами на дочернее обновление MLE со своим родительским маршрутизатором для проверки подключения. Child Supervision — это альтернативное решение для проверки подключения SED-маршрутизатора, которое возлагает нагрузку по передаче сообщений на родительский маршрутизатор, а не на SED с ограниченным энергопотреблением.
Как это работает
Эта функция работает двумя способами, в зависимости от типа узла и настроенных параметров :
На родителе
Если родительский маршрутизатор не передает своему дочернему SED в течение OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL
, родительский маршрутизатор ставит в очередь и отправляет дочернему SED сообщение Child Supervision. Сообщение Child Supervision представляет собой кадр MAC, содержащий следующую информацию:
- RLOC16 SED как пункт назначения в заголовке MAC.
- Пустая полезная нагрузка.
По умолчанию заголовок MAC содержит запрос подтверждения 802.15.4. Чтобы отключить этот запрос в сообщении Child Supervision, установите для параметра OPENTHREAD_CONFIG_CHILD_SUPERVISION_MSG_NO_ACK_REQUEST
значение 1.
О ребенке
Если SED не получает ответа от своего родительского маршрутизатора в течение OPENTHREAD_CONFIG_CHILD_SUPERVISION_CHECK_TIMEOUT
, он предполагает, что он потерял соединение с родительским маршрутизатором, и инициирует процесс подключения MLE для повторного подключения к родительскому маршрутизатору.
Как включить
Эта функция отключена по умолчанию.
По определению
Чтобы включить детский контроль, определите OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
как 1
в файле openthread/src/core/config/child_supervision.h
перед сборкой OpenThread :
#ifndef OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
#define OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE 1
#endif
По опции
Альтернативно, используйте опцию сборки -DOT_CHILD_SUPERVISION=ON
при сборке OpenThread :
./script/build -DOT_CHILD_SUPERVISION=ON
Параметры
Используйте следующие параметры в openthread/src/core/config/child_supervision.h
чтобы настроить эту функцию:
Параметры | |||||
---|---|---|---|---|---|
OPENTHREAD_CONFIG_CHILD_SUPERVISION_INTERVAL |
| ||||
OPENTHREAD_CONFIG_SUPERVISION_CHECK_TIMEOUT |
| ||||
OPENTHREAD_CONFIG_SUPERVISION_MSG_NO_ACK_REQUEST |
|
API
Используйте API Child Supervision для управления контролем и проверки интервалов времени ожидания непосредственно в вашем приложении OpenThread.
интерфейс командной строки
Для этой функции не существует команд CLI.