Для автоматизации сертификационных испытаний необходима дополнительная настройка.
Все описанные ниже шаги по установке и настройке выполняются на компьютере под управлением Windows, на котором установлено программное обеспечение GRL Test Harness. Прежде чем продолжить, загрузите и установите последнюю версию жгута для проверки резьбы GRL .
После установки существует два метода автоматизации для тестируемого устройства (DUT):
Инструмент автоматизации жгутов OpenThread
Установить
- Установите следующее программное обеспечение:
- Питон 2.7
- Git для Windows (настоятельно рекомендуется поддержка Bash)
- Клонируйте репозиторий OpenThread, чтобы получить скрипты автоматизации:
git clone https://github.com/openthread/openthread
- Требования для установки Python:
cd tools/harness-automation
pip install -r requirements.txt
- Установите Google Chrome и ChromeDriver .
Настроить
- Создайте файл конфигурации для средства автоматизации:
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- Обновите этот новый файл конфигурации в соответствии с инструкциями в файле.
- Добавьте следующий параметр в файл конфигурации Test Harness, расположенный по адресу
C:\GRL\Thread1.1\Config\Configuration.ini
:BrowserAutoNavigate = False
Поддержка смешанного испытательного стенда
Инструмент Harness Automation Tool также поддерживает смешанные испытательные стенды, где эталонные устройства, используемые в каждом тестовом примере, представляют собой смешанный набор устройств, а не одно и то же устройство. Например, вместо использования 32 плат TI CC2538, на которых работает OpenThread для всех тестовых случаев, вы можете по желанию смешивать и сопоставлять все четыре эталонных устройства Thread для каждого тестового примера.
Для использования смешанных испытательных стендов необходима дополнительная настройка:
- Добавьте следующий дополнительный параметр в файл конфигурации Test Harness, расположенный по адресу
C:\GRL\Thread1.1\Config\Configuration.ini
:EnableDeviceSelection = True
- Загрузите файл конфигурации топологии из группы потоков . Добавьте этот файл как
TopologyConfig.txt
вC:\GRL\Thread1.1\Thread_Harness\TestScripts
. В этом файле указано, какое эталонное устройство следует использовать для каждой роли в каждом тестовом примере.
Файл конфигурации топологии, предоставленный группой потоков, можно изменить для других конфигураций смешанного типа, но для официальной сертификации необходимо использовать исходную конфигурацию.
Допустимые значения для эталонных устройств в файле конфигурации топологии:
Значение в файле конфигурации топологии | Эталонное устройство Test Harness |
---|---|
ARM | ARM: NXP FRDM-K64F с экраном Firefly 6LoWPAN |
NXP | NXP (Freescale): USB-KW24D512 ключи |
OpenThread | Открытая тема: TI CC2538DK |
SiLabs | Silabs: USB-накопитель EM358x |
Каждая запись тестового примера в файле конфигурации топологии должна находиться на отдельной строке и форматироваться в role:device
следующим образом:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
Режим автоматического тестирования тестируемого кабеля
Программное обеспечение GRL Test Harness предоставляет расширенную функцию автоматического обнаружения (Auto DUT), которая ускоряет процесс проверки для поставщиков эталонного стека потоков.
OpenThread предоставляет пример интерфейса хост-контроллера потока (THCI) , который позволяет тестовому жгуту управлять вашим компонентом или продуктом, как если бы он был одной из эталонных платформ. В соответствии с характеристиками последовательного порта вашей конкретной платформы ваше тестируемое устройство может:
Работа в качестве существующей эталонной платформы OpenThread.
Если последовательный порт тестируемого устройства работает с настройками 115200 8-N-1 и устройство правильно реагирует после каждого физического сброса устройства (например, для подтверждения действительного соединения устройства с компьютером Windows), то платформа может использовать Инструмент OpenThread THCI. Этот инструмент позволяет устройству выступать в качестве эталонной платформы OpenThread во время тестирования.
- Закройте тестовый жгут GRL, если он открыт.
- Подключите устройство к компьютеру с Windows.
- Найдите аппаратный идентификатор последовательного порта устройства, используя модуль Python pySerial:
- Установите pySerial на компьютер с Windows.
- Используйте Python в командной строке Windows, чтобы перечислить все идентификаторы оборудования (VID и PID) для устройств, подключенных к машине. В этом выводе одно устройство подключено с идентификатором VID=1366 и PID=1015:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- Если вы уже знаете COM-порт, вы можете использовать другую команду. Например, если COM-порт —
COM10
:python -c "import serial.tools.list_ports;print [ports[2] for ports in serial.tools.list_ports.comports() if ports[0] == 'COM10']"
['USB\VID_1366+PID_1015+MI_00']
- Обновите список золотых устройств:
- Откройте
C:\GRL\Thread1.1\Config\Configuration.ini
. - Обновите группу OpenThread в массиве
GoldenDeviceHardwareIds
, указав VID и PID устройства(ов):GoldenDeviceHardwareIds = {
'NXP': ['VID:PID=1FC9:0300','VID:PID=15A2:0300','VID:PID=1366:1015'],
'SiLabs': 'VID:PID=10C4:8A5E',
'ARM': 'VID:PID=0D28:0204',
'OpenThread':['VID:PID=10C4:EA60','VID:PID=1366:1015']}
- Откройте
- Включите режим автоматического проверяемого устройства .
Работа в качестве новой справочной платформы
Если последовательный порт тестируемого устройства не работает при правильных настройках последовательного порта или устройство не реагирует правильно после физического сброса устройства (выводит нечитаемый код в течение 3–6 секунд после сброса), то OpenThread THCI можно настроить для лечения устройство как новая платформа в Test Harness.
Например, чтобы настроить THCI с использованием платформы Nordic Semiconductor nRF52840 :
- Закройте тестовый жгут GRL, если он открыт.
Измените
/tools/harness-thci/OpenThread.py
на основе характеристик UART целевого устройства. Модификации могут различаться в зависимости от целевых устройств. В случае платформы Nordic nRF52840:- Переименуйте файл
OpenThread.py
вnRF52840.py
. Измените первые три вхождения «OpenThread» на «nRF52840»:
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):
Измените параметры последовательного порта:
def _connect(self): print 'My port is %s' % self.port if self.port.startswith('COM'): self.handle = serial.Serial(self.port, 115200, timeout=0) time.sleep(1) self.handle.write('\r\n') time.sleep(0.1) self._is_net = False elif ':' in self.port: host, port = self.port.split(':') self.handle = socket.create_connection((host, port)) self.handle.setblocking(0) self._is_net = True else: raise Exception('Unknown port schema') self.UIStatusMsg = self.getVersionNumber()
Измените время сна, чтобы исключить влияние вывода нечитаемого кода после перезагрузки устройства:
def powerDown(self): """power down the Thread device""" print '%s call powerDown' % self.port self._sendline('reset') self.isPowerDown = True time.sleep(8) # New addition def reboot(self): """reset and rejoin to Thread Network without any timeout Returns: True: successful to reset and rejoin the Thread Network False: fail to reset and rejoin the Thread Network """ print '%s call reboot' % self.port try: self._sendline('reset') self.isPowerDown = True time.sleep(8) # Updated from 3 to 8 def reset(self): """factory reset""" print '%s call reset' % self.port try: self._sendline('factoryreset') time.sleep(8) # Updated from 3 to 8 self._read() def resetAndRejoin(self, timeout): """reset and join back Thread Network with a given timeout delay Args: timeout: a timeout interval before rejoin Thread Network Returns: True: successful to reset and rejoin Thread Network False: fail to reset and rejoin the Thread Network """ print '%s call resetAndRejoin' % self.port print timeout try: self._sendline('reset') self.isPowerDown = True time.sleep(timeout) if timeout < 8: # Sleep a bit longer if the timeout is short time.sleep(8 - timeout)
- Переименуйте файл
Скопируйте измененный файл
nRF52840.py
вC:\GRL\Thread1.1\Thread_Harness\THCI
Добавьте информацию о новой платформе в тестовый жгут:
- Создайте значок (в формате png или jpg), чтобы было легче отличить вашу платформу, и скопируйте его в
C:\GRL\Thread1.1\Web\images
. Обновите
C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
добавив новый разделDEVICE
, где параметромthumbnail
является файл значка:<DEVICE name="nRF52840" thumbnail="nRF52840.jpg" description ="nRF52840: Nordic" THCI="nRF52840"> <ITEM label="Serial Line" type="text" forParam="SerialPort" validation="COM" hint="eg: COM1">COM </ITEM> <ITEM label="Speed" type="text" forParam="SerialBaudRate" validation="baud-rate" hint="eg: 115200">115200 </ITEM> </DEVICE>
- Создайте значок (в формате png или jpg), чтобы было легче отличить вашу платформу, и скопируйте его в
Подключите устройство к компьютеру с Windows.
Найдите аппаратный идентификатор последовательного порта устройства, используя модуль Python pySerial:
- Установите pySerial на компьютер с Windows.
- Используйте Python в командной строке Windows, чтобы перечислить все идентификаторы оборудования (VID и PID) для устройств, подключенных к машине. В этом выводе одно устройство подключено с идентификатором VID=1366 и PID=1015:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- Если вы уже знаете COM-порт, вы можете использовать другую команду. Например, если COM-порт —
COM10
:python -c "import serial.tools.list_ports;print [ports[2] for ports in serial.tools.list_ports.comports() if ports[0] == 'COM10']"
['USB\VID_1366+PID_1015+MI_00']
Обновите список золотых устройств:
- Откройте
C:\GRL\Thread1.1\Config\Configuration.ini
. - Добавьте новую группу платформ в массив
GoldenDeviceHardwareIds
с VID и PID устройства:GoldenDeviceHardwareIds = {
'NXP': ['VID:PID=1FC9:0300','VID:PID=15A2:0300','VID:PID=1366:1015'],
'SiLabs': 'VID:PID=10C4:8A5E',
'ARM': 'VID:PID=0D28:0204',
'OpenThread':'VID:PID=10C4:EA60',
'nRF52840': 'VID:PID=1366:1015'}
- Откройте
Включить автоматический режим DUT
После завершения одного из двух вышеперечисленных вариантов конфигурации:
- Откройте тестовый жгут GRL, устройство/порт теперь отображается как новое эталонное устройство.
- Установите флажок «Включить автоматический выбор устройства DUT» под списком поддерживаемого оборудования.
- Выберите переключатель «Установить как тестируемое устройство» под целевым устройством/портом, чтобы установить устройство в качестве тестируемого устройства.