Per automatizzare i test di certificazione, è necessaria una configurazione aggiuntiva.
Tutti i passaggi di installazione e configurazione riportati di seguito vengono eseguiti sul computer Windows su cui è in esecuzione il software GRL Test Harness. Scarica e installa l'ultima versione di GRL Thread Test Harness prima di continuare.
Una volta installato, esistono due metodi di automazione per il dispositivo in fase di test (DUT):
Strumento di automazione dell'imbracatura OpenThread
Installa
- Installa il seguente software:
- Python 2.7
- Git per Windows (il supporto di Bash è vivamente consigliato)
- Clona il repository OpenThread per ottenere gli script di automazione:
git clone https://github.com/openthread/openthread - Installa i requisiti di Python:
cd tools/harness-automationpip install -r requirements.txt - Installa sia Google Chrome sia ChromeDriver.
Configura
- Crea un file di configurazione per lo strumento di automazione:
cp autothreadharness/settings_sample.py autothreadharness/settings.py - Aggiorna il nuovo file di configurazione seguendo le istruzioni riportate nel file.
- Aggiungi il seguente parametro al file di configurazione di Test Harness, disponibile all'indirizzo
C:\GRL\Thread1.1\Config\Configuration.ini:BrowserAutoNavigate = False
Supporto per testbed misti
Lo strumento di automazione dell'imbracatura supporta anche i testbed misti, in cui i dispositivi di riferimento utilizzati in ogni scenario di test sono un insieme misto di dispositivi anziché tutti lo stesso dispositivo. Ad esempio, anziché utilizzare 32 schede TI CC2538 che eseguono OpenThread per tutti gli scenari di test, puoi combinare e abbinare tutti e quattro i dispositivi di riferimento Thread per ogni scenario di test come preferisci.
Per utilizzare testbed misti, è necessaria una configurazione aggiuntiva:
- Aggiungi il seguente parametro aggiuntivo al file di configurazione di Test Harness, che si trova in
C:\GRL\Thread1.1\Config\Configuration.ini:EnableDeviceSelection = True
- Scarica il file di configurazione della topologia dal gruppo di thread.
Aggiungi questo file come
TopologyConfig.txtaC:\GRL\Thread1.1\Thread_Harness\TestScripts. Questo file specifica quale dispositivo di riferimento utilizzare per ogni ruolo in ogni scenario di test.
Il file di configurazione della topologia fornito da Thread Group può essere modificato per altre configurazioni di letti misti, ma per la certificazione ufficiale deve essere utilizzata la configurazione originale.
I valori validi da utilizzare per i dispositivi di riferimento nel file di configurazione della topologia sono:
| Valore nel file di configurazione della topologia | Dispositivo di riferimento per il test harness |
|---|---|
ARM |
ARM: NXP FRDM-K64F con Firefly 6LoWPAN Shield |
NXP |
NXP(Freescale): USB-KW24D512 Dongles |
OpenThread |
OpenThread: TI CC2538DK |
SiLabs |
Silabs: EM358x USB Stick |
Ogni voce dello scenario di test nel file di configurazione della topologia deve trovarsi su una riga separata e formattata in coppie role:device nel seguente modo:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
Modalità Test Harness Auto DUT
Il software GRL Test Harness fornisce una funzionalità di rilevamento automatico avanzata (Auto DUT) che accelera la procedura di convalida per i fornitori di stack di riferimento Thread.
OpenThread fornisce un esempio di interfaccia di controllo host Thread (THCI) che consente a Test Harness di controllare il componente o il prodotto come se fosse una delle piattaforme di riferimento. In base alle caratteristiche della porta seriale della tua piattaforma specifica, il DUT potrebbe:
Funge da piattaforma di riferimento OpenThread esistente
Se la porta seriale del DUT funziona con le impostazioni 115200 8-N-1 e il dispositivo risponde correttamente dopo ogni ripristino fisico (ad esempio, per confermare la connessione valida del dispositivo alla macchina Windows), la piattaforma può utilizzare lo strumento THCI OpenThread. Questo strumento consente al dispositivo di fungere da piattaforma di riferimento OpenThread durante i test.
- Chiudi GRL Test Harness, se è aperto.
- Collega il dispositivo al computer Windows.
- Trova l'identificatore hardware della porta seriale del dispositivo utilizzando il modulo Python pySerial:
- Installa pySerial sulla macchina Windows.
- Utilizza Python nella riga di comando di Windows per enumerare tutti gli identificatori hardware (VID e PID) per i dispositivi connessi al computer. In questo
output, un dispositivo è connesso con un identificatore VID=1366 e
PID=1015:
python -m serial.tools.list_ports -vCOM10desc: USB Serial Port (COM10)hwid: USB\VID_1366+PID_1015+MI_00 - Se conosci già la porta COM, puoi utilizzare un comando diverso. Ad esempio, se la porta 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']
- Aggiorna l'elenco dei dispositivi di riferimento:
- Apri
C:\GRL\Thread1.1\Config\Configuration.ini. - Aggiorna il gruppo OpenThread nell'array
GoldenDeviceHardwareIdscon il VID e il PID del dispositivo o dei dispositivi: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']}
- Apri
- Attiva la modalità DUT automatica.
Fungendo da nuova piattaforma di riferimento
Se la porta seriale del DUT non funziona con le impostazioni corrette della porta seriale o se il dispositivo non risponde correttamente dopo un ripristino fisico del dispositivo (output di codice illeggibile entro 3-6 secondi dal ripristino), è possibile personalizzare THCI OpenThread per trattare il dispositivo come una nuova piattaforma nel Test Harness.
Ad esempio, per personalizzare THCI utilizzando la piattaforma Nordic Semiconductor nRF52840:
- Chiudi GRL Test Harness, se è aperto.
Modifica
/tools/harness-thci/OpenThread.pyin base alle caratteristiche UART del dispositivo di destinazione. Le modifiche possono variare a seconda dei dispositivi di destinazione. Nel caso della piattaforma Nordic nRF52840:- Rinomina il file
OpenThread.pyinnRF52840.py. Modifica le prime tre occorrenze di "OpenThread" in "nRF52840":
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):Modifica i parametri della porta seriale:
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()Modifica il tempo di sospensione per eliminare l'impatto dell'output del codice illeggibile dopo il ripristino del dispositivo:
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)
- Rinomina il file
Copia il file
nRF52840.pymodificato inC:\GRL\Thread1.1\Thread_Harness\THCIAggiungi le nuove informazioni sulla piattaforma a Test Harness:
- Crea un'icona (in formato PNG o JPG) per distinguere più facilmente
la tua piattaforma e copiala in
C:\GRL\Thread1.1\Web\images. Aggiorna
C:\GRL\Thread1.1\Web\data\deviceInputFields.xmlcon una nuova sezioneDEVICE, in cui il parametrothumbnailè il file dell'icona:<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>
- Crea un'icona (in formato PNG o JPG) per distinguere più facilmente
la tua piattaforma e copiala in
Collega il dispositivo al computer Windows.
Trova l'identificatore hardware della porta seriale del dispositivo utilizzando il modulo Python pySerial:
- Installa pySerial sulla macchina Windows.
- Utilizza Python nella riga di comando di Windows per enumerare tutti gli identificatori hardware (VID e PID) per i dispositivi connessi al computer. In questo
output, un dispositivo è connesso con un identificatore VID=1366 e
PID=1015:
python -m serial.tools.list_ports -vCOM10desc: USB Serial Port (COM10)hwid: USB\VID_1366+PID_1015+MI_00 - Se conosci già la porta COM, puoi utilizzare un comando diverso. Ad esempio, se la porta 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']
Aggiorna l'elenco dei dispositivi di riferimento:
- Apri
C:\GRL\Thread1.1\Config\Configuration.ini. - Aggiungi un nuovo gruppo di piattaforme nell'array
GoldenDeviceHardwareIdscon il VID e il PID del dispositivo: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'}
- Apri
Attiva la modalità DUT automatica
Dopo aver completato una delle due opzioni di configurazione riportate sopra:
- Apri GRL Test Harness. Il dispositivo/la porta viene ora visualizzato come nuovo dispositivo di riferimento.
- Seleziona la casella di controllo Abilita selezione automatica dispositivo DUT sotto l'elenco dell'hardware supportato.
- Seleziona il pulsante di opzione Imposta come DUT sotto il dispositivo/la porta di destinazione per impostare il dispositivo come DUT.