1. Введение
Что нить, OpenThread, OTN, и шелк?
Thread — это основанный на IP протокол маломощной беспроводной ячеистой сети, который обеспечивает безопасную связь между устройствами и между устройствами и облаком. Сети потоков могут адаптироваться к изменениям топологии, чтобы избежать единой точки отказа.
OpenThread , выпущенный Google, представляет собой реализацию Thread с открытым исходным кодом. Несмотря на небольшой размер кода и объем памяти, OpenThread поддерживает все функции, определенные в спецификации потоков .
Симулятор сети OpenThread (OTNS) можно использовать для имитации сетей потоков путем запуска имитируемых узлов OpenThread на платформах posix. OTNS предоставляет простой в использовании веб-интерфейс (OTNS-Web) для визуализации и работы с смоделированными сетями потоков.
Шелк является полностью автоматизированной испытательной платформой для проверки функции OpenThread, функции и производительности системы с реальными устройствами.
Что вы узнаете
- рамки проверки функциональности OpenThread по: Шелк
- Построить OpenThread для реальных устройств с включенной функцией OTN,
- Использование OTN,-Web-интерфейс для мониторинга состояния сети Thread сформированного путем запуска тестовых шелковых
Это codelab фокусируется на использовании шелка с OTN,. Другие особенности шелка и OTN, не охвачены.
Что вам понадобится
Аппаратное обеспечение:
- 6 Dev платы Nordic Semiconductor nRF52840
- 6 USB к Micro-USB кабель для подключения плат
- USB хаб
Программное обеспечение:
- Linux x86_64.
- Гит .
- Перейти 1.11+ .
- Веб-браузер. OTNS-Web использует веб-браузер для отображения симуляций.
Предпосылки:
2. Предпосылки
Полный перед основным Codelabs
- Праймер для резьбы . Вам нужно будет знать основные концепции Thread, чтобы понять, чему учат в этой Codelab.
- Создание сети Thread с nRF52840 досками и OpenThread . Это Codelab предполагает, что вы успешно построили сеть Thread.
- Моделирование сети с использованием темы OTN , . Это Codelab предполагает, что вы успешно запустить инструмент OTN,.
Проверка пакета предпосылок
Давайте удостоверимся все требования соблюдены.
- Run ,
which otns
, чтобы проверить , еслиotns
, выполняемые для поиска в$PATH
. - Run ,
which wpantund
, чтобы убедиться , чтоwpantund
доступен. - Убедитесь , что ARM GNU, набор инструментов J-Link, и
nrfjprog
пакеты доступны. - Убедитесь , что двоичный OpenThread можно сделать, бегая
make -f examples/Makefile-nrf52840
подopenthread
папки.
Примечание: Пожалуйста , обратитесь к документации , связанной для созданного руководства. Предпосылкой # 1 от Simulate Networks темы с использованием OTN , а другие от построить сеть Thread с nRF52840 досками и OpenThread .
3. Настройка Шелк
Для клона шелковых и настроить среду, выполните следующие команды в соответствии исходного каталога:
$ git clone https://github.com/openthread/silk.git $ cd silk $ ./bootstrap.sh $ sudo make install-cluster
Определение файла конфигурации аппаратного обеспечения
Для того, чтобы позволить Шелк собрать имеющиеся аппаратные ресурсы тестирования , подключенных к вашей машине, определить hwconfig.ini
файл в следующем формате:
[DEFAULT] ClusterID: 0 LayoutCenter: 300, 300 LayoutRadius: 100 [Dev-8A7D] HwModel: Nrf52840 HwRev: 1.0 InterfaceSerialNumber: E1A5012E8A7D USBInterfaceNumber: 1 DutSerial: 683536778
Инструмент под названием usbinfo
устанавливается как часть шелка , который может быть использован , чтобы узнать серийный номер и номер интерфейса USB интерфейс. DutSerial это номер SN напечатан на чипе или отображается usbinfo
для продуктов J-Link.
В LayoutCenter
и LayoutRadius
поля в [DEFAULT]
по [DEFAULT]
раздел определяет форму макета , когда устройства визуализируются на веб - интерфейс. Установка их значений, представленных здесь, может быть хорошей отправной точкой.
После этого, он определяет сечение для каждого тестируемого устройства и передает соответствующую информацию об оборудовании.
4. Компиляция OpenThread с OTN, включен
Построение изображения и мигающие
По умолчанию OpenThread устройства не испускают OTN, соответствующие сообщения. Для того, чтобы позволить Dev доски для сообщений о состоянии испускает войти интерфейсы, которые необходимы для визуализации OTN, выполните следующую команду в директории источника OpenThread, чтобы построить УТД изображение и преобразовать его в шестнадцатеричный формат.
$ git clone https://github.com/openthread/ot-nrf528xx.git --recursive $ cd ot-nrf528xx $ ./script/bootstrap $ ./script/build nrf52840 USB_trans -DOT_COMMISSIONER=ON -DOT_JOINER=ON -DOT_OTNS=ON $ cd ./build/bin $ arm-none-eabi-objcopy -O ihex ot-ncp-ftd ot-ncp-ftd.hex
Для того, чтобы прошить доски, следуйте инструкциям на шаге 4 Строить сеть Thread Codelab использовать nrfjprog
. После этого подключите все платы через USB порт СИФ на хост-машине. Тот же самый набор USB к Micro-USB кабель можно отсоединить от портов J-Link и подключается к USB-портам NRF из Дев доски nRF52840. Таким образом, только с этим исполнением 6 кабелей теста можно проводить. Для того, чтобы избежать хлопот, используйте 12 кабелей и подключения к обоим портам.
5. Запуск сервера OTN, с реальным режимом
Запуск OTN, с параметрами по умолчанию позволяет пользователю моделировать сеть темы. Для того, чтобы использовать его в качестве инструмента визуализации для реальной физической сети, запустите его:
otns -raw -real -ot-cli otns-silk-proxy
Эти аргументы говорят OTN , ожидать КПГРЫ и UDP сообщения , которые описывают , как следует визуализировать сеть Thread, вместо запуска несколько ot-cli
процессов для моделирования сети. Ваш браузер должен автоматически открыть страницу визуализации с пустым холстом.
6. Запуск Тестовые Шелк с поддержкой OTN,
Шелк является полностью автоматизированной испытательной платформой для проверки функции OpenThread, функции и производительности системы с реальными устройствами. Инструкции в проекте README чехлов , как использовать его.
silk_run_test.py
файл , расположенный на silk/unit_tests
дает хороший старт. Шелк обеспечивает поддержку OTN, при выполнении тестового случая. Поскольку OTN , сервис реального режима уже работает локально, нам просто нужно изменить silk_run_test.py
файл с желаемыми места для файла журнала вывода, ввод сценариев тестирования и hwconfig.ini
файла. -s localhost
аргумент указывает Шелк для отправки сообщений OTN , на localhost
.
Например, можно запустить тест с именем ot_test_form_network.py
используя следующие изменения silk_run_test.py
файла. /opt/openthread_test/
по умолчанию является путь Шелковые ИСПОЛЬЗУЕТ для вывода журнала и конфигурационный файл, но вы можете использовать любой путь.
silk_run_test.py
import datetime
import os
from silk.tests import silk_run
RESULT_LOG_PATH = '/opt/openthread_test/results/' + 'silk_run_' + \
datetime.datetime.today().strftime('%m-%d') + '/'
CONFIG_PATH = '/opt/openthread_test/'
os.chdir('~/src/silk/silk/tests/')
timestamp = datetime.datetime.today().strftime('%m-%d-%H:%M')
run_log_path = RESULT_LOG_PATH + 'test_run_on_' + timestamp + '/'
argv = [
'tests/silk_run.py',
'-v2',
'-c', CONFIG_PATH + 'hwconfig.ini',
'-d', run_log_path,
'-s', 'localhost',
'ot_test_form_network.py'
]
silk_run.SilkRunner(argv=argv)
Визуализации топологии сформированной сети будет отображаться на веб-интерфейс OTN,.
В верхнем левом углу шоу статистика визуализации, OT версии и название теста. В нижнем левом углу есть элементы управления окна журнала, который показан на рисунке справа. Первоначально, узлы добавляются, но не образуется сеть. В качестве тестового прогрессирует, формируются режимы и роли каждого изменения узла, а также ссылки.
7. Поздравляем
Поздравляем, вы успешно запустить тест шелкового на физических устройствах темы и визуализировали его с помощью OTN,!
Вы выполнили тест шелкового с использованием доски развития, которые сверкали прошивки, которые имеют поддержку OTN,. Борта отчет о своем состоянии на сервер шелка, который контролирует и агрегаты все из них, и отправляют их на службу OTN, наряду с другой информацией испытаний. OTN, работает в режиме реального времени визуализирует сеть темы на веб-интерфейс.
Что дальше?
Попробуйте запустить другие тестовые случаи OpenThread включены в комплект шелкового.
дальнейшее чтение
Проверьте openthread.io и шелк для различных OpenThread ресурсов.