Zur Automatisierung von Zertifizierungstests ist eine zusätzliche Einrichtung erforderlich.
Alle folgenden Installations- und Konfigurationsschritte finden auf dem Windows-Computer statt, auf dem die GRL-Testgurtsoftware ausgeführt wird. Laden Sie den aktuellen GRL-Thread-Test-Geschirr herunter und installieren Sie ihn, bevor Sie fortfahren.
Nach der Installation gibt es zwei Automatisierungsmethoden für das zu testende Gerät:
OpenThread-Geschirr-Automatisierungstool
Installieren
- Installieren Sie die folgende Software:
- Python 2.7
- Git für Windows (Bash-Unterstützung wird dringend empfohlen)
- Klonen Sie das OpenThread-Repository, um die Automatisierungsskripts abzurufen:
git clone https://github.com/openthread/openthread
- Installieren Sie Python-Anforderungen:
cd tools/harness-automation
pip install -r requirements.txt
- Installieren Sie Google Chrome und ChromeDriver.
Konfigurieren
- Erstellen Sie eine Konfigurationsdatei für das Automatisierungstool:
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- Aktualisieren Sie die neue Konfigurationsdatei gemäß der Anleitung in der Datei.
- Füge der folgenden Konfigurationsdatei den folgenden Parameter hinzu:
C:\GRL\Thread1.1\Config\Configuration.ini
.BrowserAutoNavigate = False
Gemischte Unterstützung für Testbetten
Das Tool „Geschirrautomatisierung“ unterstützt auch gemischte Testbetten. Dabei sind die in den einzelnen Testfällen verwendeten Referenzgeräte gemischt und nicht alle dasselbe Gerät. Statt 32 TI CC2538-Boards zu verwenden, die OpenThread für alle Testläufe ausführen, können Sie die gewünschten vier Thread-Referenzgeräte für jeden Testfall beliebig kombinieren.
Für die Verwendung von gemischten Testbetten ist zusätzliche Konfiguration erforderlich:
- Füge der Datei
C:\GRL\Thread1.1\Config\Configuration.ini
den folgenden zusätzlichen Parameter hinzu, der sich unter der Test Trapezkonfiguration befindet:EnableDeviceSelection = True
- Laden Sie die Topologie-Konfigurationsdatei aus der Thread-Gruppe herunter.
Füge diese Datei als
TopologyConfig.txt
zuC:\GRL\Thread1.1\Thread_Harness\TestScripts
hinzu. Diese Datei gibt an, welches Referenzgerät für jede Rolle in jedem Testfall verwendet werden soll.
Die von der Thread-Gruppe bereitgestellte Topologiekonfigurationsdatei kann für andere gemischte Bettkonfigurationen geändert werden. Für die offizielle Zertifizierung muss jedoch die ursprüngliche Konfiguration verwendet werden.
Gültige Werte für Referenzgeräte in der Topologie-Konfigurationsdatei sind:
Wert in der Topologie-Konfigurationsdatei | Referenzgerät für Testgurt |
---|---|
ARM |
ARM: NXP FRDM-K64F mit Firefly 6LoWPAN Shield |
NXP |
NXP(Freescale): USB-KW24D512-Dongles |
OpenThread |
OpenThread: TI CC2538DK |
SiLabs |
Silabs: EM358x USB-Stick |
Jeder Testfalleintrag in der Topologie-Konfigurationsdatei muss in einer separaten Zeile stehen und in role:device
-Paaren formatiert sein:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
Automatischen DUT-Modus testen
Die GRL-Test-Bereitstellungsprotokoll bietet ein erweitertes Auto Discovery-Feature (Auto DUT), das den Validierungsprozess für Thread-Referenz-Stack-Anbieter beschleunigt.
OpenThread bietet ein Beispiel für eine Thread-Host-Schnittstelle (THCI), mit der der Test-Turpe Ihre Komponente oder Ihr Produkt so steuern kann, als wäre sie eine der Referenzplattformen. Je nach den Eigenschaften des seriellen Ports kann Ihr DUT entweder:
Sie dienen als vorhandene OpenThread-Referenzplattform
Wenn der serielle Port des DUT-Geräts unter den Einstellungen 115200 8-N-1 funktioniert und das Gerät nach jedem Zurücksetzen des physischen Geräts richtig reagiert (z. B. um die gültige Verbindung des Geräts zum Windows-Computer zu bestätigen), kann die Plattform das OpenThread-THCI-Tool verwenden. Mit diesem Tool kann das Gerät beim Testen als OpenThread-Referenzplattform genutzt werden.
- Schließen Sie den GRL-Test, falls dieser geöffnet ist.
- Verbinden Sie das Gerät mit dem Windows-Computer.
- Suchen Sie mithilfe des pySerial-Moduls von Python nach der Hardware-ID des seriellen Ports:
- Installieren Sie pySerial auf dem Windows-Computer.
- Verwenden Sie Python in der Windows-Befehlszeile, um alle Hardwarekennungen (VID und PID) für Geräte aufzulisten, die mit der Maschine verbunden sind. In dieser Ausgabe ist ein Gerät mit der Kennung VID = 1366 und PID = 1.015 verbunden:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- Wenn Sie den COM-Port bereits kennen, können Sie einen anderen Befehl verwenden. Wenn der COM-Port beispielsweise
COM10
lautet: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']
- Aktualisieren Sie die Liste der Golden-Geräte:
- Öffnen Sie
C:\GRL\Thread1.1\Config\Configuration.ini
. - Aktualisiere die OpenThread-Gruppe im
GoldenDeviceHardwareIds
-Array mit der VID und PID der Geräte: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']}
- Öffnen Sie
- Aktivieren Sie den automatischen DUT-Modus.
Die Plattform als Referenzplattform
Sollte der serielle Port des DUT-Geräts nicht unter den richtigen Einstellungen für den seriellen Port funktionieren oder das Gerät nach dem Zurücksetzen eines physischen Geräts nicht reagieren (Ausgabe von 3–6 Sekunden nach dem Zurücksetzen), dann wird OpenThread THCI so angepasst, dass das Gerät als neue Plattform in der Testumgebung behandelt wird.
So passt du beispielsweise THCI mit der Plattform Nordic Semiconductor nRF52840 an:
- Schließen Sie den GRL-Test, falls dieser geöffnet ist.
Passen Sie
/tools/harness-thci/OpenThread.py
auf Grundlage der UART-Eigenschaften des Zielgeräts an. Änderungen können sich je nach Zielgerät unterscheiden. Für die Nordic nRF52840 Plattform:- Benenne die Datei
OpenThread.py
innRF52840.py
um. Ändern Sie die ersten drei Vorkommen von „OpenThread“ in „nRF52840“:
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):
Ändern Sie die Parameter des seriellen Ports:
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()
Ändern Sie die Ruhezeit, um die Auswirkungen nicht lesbarer Codeausgaben nach dem Zurücksetzen des Geräts zu vermeiden:
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)
- Benenne die Datei
Geänderte
nRF52840.py
-Datei inC:\GRL\Thread1.1\Thread_Harness\THCI
kopierenFügen Sie die neuen Plattforminformationen dem Test-Turf hinzu:
- Erstellen Sie ein Symbol (im PNG- oder JPG-Format), um Ihre Plattform einfacher zu unterscheiden und in
C:\GRL\Thread1.1\Web\images
zu kopieren. Aktualisiere
C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
mit einem neuenDEVICE
-Abschnitt, wobei der Parameterthumbnail
die Symboldatei ist:<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>
- Erstellen Sie ein Symbol (im PNG- oder JPG-Format), um Ihre Plattform einfacher zu unterscheiden und in
Verbinden Sie das Gerät mit dem Windows-Computer.
Suchen Sie mithilfe des pySerial-Moduls von Python nach der Hardware-ID des seriellen Ports:
- Installieren Sie pySerial auf dem Windows-Computer.
- Verwenden Sie Python in der Windows-Befehlszeile, um alle Hardwarekennungen (VID und PID) für Geräte aufzulisten, die mit der Maschine verbunden sind. In dieser Ausgabe ist ein Gerät mit der Kennung VID = 1366 und PID = 1.015 verbunden:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- Wenn Sie den COM-Port bereits kennen, können Sie einen anderen Befehl verwenden. Wenn der COM-Port beispielsweise
COM10
lautet: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']
Aktualisieren Sie die Liste der Chrome-Geräte:
- Öffnen Sie
C:\GRL\Thread1.1\Config\Configuration.ini
. - Füge im
GoldenDeviceHardwareIds
-Array eine neue Plattformgruppe mit der VID und PID des Geräts hinzu: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'}
- Öffnen Sie
Auto-DUT-Modus aktivieren
Nachdem Sie eine der beiden oben genannten Konfigurationsoptionen abgeschlossen haben:
- Öffnen Sie den GRL-Test-Track. Das Gerät oder der Port wird jetzt als neues Referenzgerät angezeigt.
- Klicke unter der Liste Unterstützte Hardware auf das Kästchen Automatische DUT-Geräteauswahl aktivieren.
- Wählen Sie das Optionsfeld Als DUT festlegen unter dem Zielgerät oder -port aus, um das Gerät als DUT festzulegen.
