Für die Automatisierung von Zertifizierungstests ist eine zusätzliche Einrichtung erforderlich.
Alle Installations- und Konfigurationsschritte unten werden auf dem Windows-Computer ausgeführt, auf dem die GRL Test Harness-Software ausgeführt wird. Laden Sie die aktuelle Version von GRL Thread Test Harness herunter und installieren Sie sie, bevor Sie fortfahren.
Nach der Installation gibt es zwei Automatisierungsmethoden für das zu testende Gerät (Device Under Test, DUT):
OpenThread Harness Automation Tool
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 zu erhalten:
git clone https://github.com/openthread/openthread - Python-Anforderungen installieren:
cd tools/harness-automationpip install -r requirements.txt - Installieren Sie sowohl Google Chrome als auch ChromeDriver.
Konfigurieren
- Konfigurationsdatei für das Automatisierungstool erstellen:
cp autothreadharness/settings_sample.py autothreadharness/settings.py - Aktualisieren Sie die neue Konfigurationsdatei gemäß der Anleitung in der Datei.
- Fügen Sie der Konfigurationsdatei für Test Harness, die sich unter
C:\GRL\Thread1.1\Config\Configuration.inibefindet, den folgenden Parameter hinzu:BrowserAutoNavigate = False
Unterstützung für gemischte Testumgebungen
Das Harness Automation Tool unterstützt auch gemischte Testumgebungen, in denen die in den einzelnen Testläufen verwendeten Referenzgeräte eine gemischte Gruppe von Geräten und nicht alle dasselbe Gerät sind. Anstatt beispielsweise 32 TI CC2538-Boards mit OpenThread für alle Testläufe zu verwenden, können Sie für jeden Testlauf die vier Thread-Referenzgeräte beliebig kombinieren.
Für die Verwendung gemischter Testumgebungen ist eine zusätzliche Konfiguration erforderlich:
- Fügen Sie der Konfigurationsdatei für Test Harness unter
C:\GRL\Thread1.1\Config\Configuration.iniden folgenden zusätzlichen Parameter hinzu:EnableDeviceSelection = True
- Laden Sie die Topologiekonfigurationsdatei aus der Thread-Gruppe herunter.
Fügen Sie diese Datei als
TopologyConfig.txtzuC:\GRL\Thread1.1\Thread_Harness\TestScriptshinzu. In dieser Datei wird beschrieben, welches Referenzgerät für jede Rolle in jedem Testlauf verwendet werden soll.
Die von der Thread Group 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 Topologiekonfigurationsdatei sind:
| Wert in der Topologiekonfigurationsdatei | Referenzgerät für Test-Harnisch |
|---|---|
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 Testlauf-Eintrag in der Topologiekonfigurationsdatei muss sich in einer separaten Zeile befinden und als role:device-Paare formatiert sein:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
Automatischer DUT-Modus für Test-Harnisch
Die GRL Test Harness-Software bietet eine erweiterte automatische Erkennungsfunktion (Auto DUT), die den Validierungsprozess für Anbieter von Thread-Referenzstacks beschleunigt.
OpenThread bietet ein Beispiel für das Thread Host Controller Interface (THCI), mit dem das Test-Harness Ihre Komponente oder Ihr Produkt so steuern kann, als wäre es eine der Referenzplattformen. Je nach den Merkmalen des seriellen Ports Ihrer spezifischen Plattform kann Ihr Prüfling entweder:
Als vorhandene OpenThread-Referenzplattform fungieren
Wenn der serielle Anschluss des Prüflings unter den Einstellungen 115200 8-N-1 funktioniert und das Gerät nach jedem Zurücksetzen des physischen Geräts korrekt reagiert (z. B. um die gültige Verbindung des Geräts mit dem Windows-Computer zu bestätigen), kann die Plattform das OpenThread THCI-Tool verwenden. Mit diesem Tool kann das Gerät während des Tests als OpenThread-Referenzplattform fungieren.
- Schließen Sie das GRL Test Harness, falls es geöffnet ist.
- Schließen Sie das Gerät an den Windows-Computer an.
- Suchen Sie mit dem Python-Modul „pySerial“ nach der Hardware-ID des seriellen Geräteanschlusses:
- Installieren Sie pySerial auf dem Windows-Computer.
- Verwenden Sie Python in der Windows-Befehlszeile, um alle Hardware-IDs (VID und PID) für Geräte aufzulisten, die mit dem Computer verbunden sind. In dieser Ausgabe ist ein Gerät mit der Kennung VID=1366 und PID=1015 verbunden:
python -m serial.tools.list_ports -vCOM10desc: 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
COM10ist: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 Devices:
- Öffnen Sie
C:\GRL\Thread1.1\Config\Configuration.ini. - Aktualisieren Sie die OpenThread-Gruppe im
GoldenDeviceHardwareIds-Array mit der VID und PID des Geräts bzw. 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
- Automatischen DUT-Modus aktivieren
Als neue Referenzplattform fungieren
Wenn der serielle Port des DUT mit den richtigen Einstellungen für den seriellen Port nicht funktioniert oder das Gerät nach dem Zurücksetzen des physischen Geräts nicht richtig reagiert (innerhalb von 3 bis 6 Sekunden nach dem Zurücksetzen wird ein nicht lesbarer Code ausgegeben), kann OpenThread THCI so angepasst werden, dass das Gerät in der Testumgebung als neue Plattform behandelt wird.
So passen Sie THCI beispielsweise mit der Plattform Nordic Semiconductor nRF52840 an:
- Schließen Sie das GRL Test Harness, falls es geöffnet ist.
Ändern Sie
/tools/harness-thci/OpenThread.pyentsprechend den UART-Merkmalen des Zielgeräts. Änderungen können je nach Zielgerät unterschiedlich sein. Bei der Nordic nRF52840-Plattform:- Benennen Sie die Datei
OpenThread.pyinnRF52840.pyum. Ändere 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()So ändern Sie die Ruhezeit, um die Auswirkungen einer unleserlichen Codeausgabe 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)
- Benennen Sie die Datei
Kopieren Sie die geänderte Datei
nRF52840.pynachC:\GRL\Thread1.1\Thread_Harness\THCI.Fügen Sie dem Test Harness die neuen Plattforminformationen hinzu:
- Erstellen Sie ein Symbol (im PNG- oder JPG-Format), um Ihre Plattform leichter von anderen zu unterscheiden, und kopieren Sie es nach
C:\GRL\Thread1.1\Web\images. Aktualisieren Sie
C:\GRL\Thread1.1\Web\data\deviceInputFields.xmlmit einem neuenDEVICE-Abschnitt, wobei der Parameterthumbnaildie 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 leichter von anderen zu unterscheiden, und kopieren Sie es nach
Schließen Sie das Gerät an den Windows-Computer an.
Suchen Sie mit dem Python-Modul „pySerial“ nach der Hardware-ID des seriellen Geräteanschlusses:
- Installieren Sie pySerial auf dem Windows-Computer.
- Verwenden Sie Python in der Windows-Befehlszeile, um alle Hardware-IDs (VID und PID) für Geräte aufzulisten, die mit dem Computer verbunden sind. In dieser Ausgabe ist ein Gerät mit der Kennung VID=1366 und PID=1015 verbunden:
python -m serial.tools.list_ports -vCOM10desc: 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
COM10ist: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 Devices:
- Öffnen Sie
C:\GRL\Thread1.1\Config\Configuration.ini. - Fügen Sie dem
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
Automatischen DUT-Modus aktivieren
Nachdem eine der beiden oben genannten Konfigurationsoptionen abgeschlossen ist:
- Öffnen Sie das GRL Test Harness. Das Gerät/der Port wird jetzt als neues Referenzgerät angezeigt.
- Klicken Sie unter der Liste der unterstützten Hardware das Kästchen Enable Auto DUT Device Selection (Automatische Auswahl des DUT-Geräts aktivieren) an.
- Wählen Sie unter dem Zielgerät bzw. ‑anschluss das Optionsfeld Als Prüfling festlegen aus, um das Gerät als Prüfling festzulegen.