Per automatizzare i test di certificazione, è necessaria una configurazione aggiuntiva.
Tutti i passaggi di installazione e configurazione riportati di seguito si verificano sulla macchina Windows che esegue il software GRL Test Harness. Scarica e installa l'ultima GRL Thread Test Harness prima di continuare.
Una volta installato, sono disponibili due metodi di automazione per il dispositivo in prova (DUT):
Strumento di automazione del cablaggio OpenThread
Installare
- Installa il seguente software:
- Python 2.7
- Git per Windows (il supporto Bash è altamente raccomandato)
- 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-automation
pip install -r requirements.txt
- Installa sia Google Chrome che ChromeDriver .
Configura
- Creare un file di configurazione per lo strumento di automazione:
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- Aggiorna il nuovo file di configurazione in base alle istruzioni nel file.
- Aggiungere il seguente parametro al file di configurazione Test Harness, disponibile in
C:\GRL\Thread1.1\Config\Configuration.ini
:BrowserAutoNavigate = False
Supporto banco di prova misto
Lo strumento di automazione del cablaggio supporta anche banchi di prova misti, in cui i dispositivi di riferimento utilizzati in ogni caso di test sono un insieme misto di dispositivi anziché tutti lo stesso dispositivo. Ad esempio, invece di utilizzare 32 schede TI CC2538 che eseguono OpenThread per tutti i casi di test, è possibile combinare tutti e quattro i dispositivi di riferimento Thread per ogni caso di test come desiderato.
Per utilizzare banchi di prova misti, è necessaria una configurazione aggiuntiva:
- Aggiungere il seguente parametro aggiuntivo al file di configurazione Test Harness, disponibile 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.txt
aC:\GRL\Thread1.1\Thread_Harness\TestScripts
. Questo file specifica quale dispositivo di riferimento utilizzare per ogni ruolo in ogni caso di test.
Il file di configurazione della topologia fornito dal gruppo di thread può essere modificato per altre configurazioni a 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 del cablaggio di prova |
---|---|
ARM | BRACCIO: NXP FRDM-K64F con Firefly 6LoWPAN Shield |
NXP | NXP (Freescale): dongle USB-KW24D512 |
OpenThread | OpenThread: TI CC2538DK |
SiLabs | Silabs: chiavetta USB EM358x |
Ciascuna voce di test case nel file di configurazione della topologia deve trovarsi su una riga separata e formattata in role:device
pair come segue:
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 funzione di rilevamento automatico avanzata (Auto DUT) che accelera il processo di convalida per i fornitori di stack di riferimento di thread.
OpenThread fornisce un esempio THCI (Thread Host Controller Interface) che consente al Test Harness di controllare il tuo componente o prodotto come se fosse una delle piattaforme di riferimento. In base alle caratteristiche della porta seriale della tua piattaforma specifica, il tuo DUT potrebbe:
Agendo come la piattaforma di riferimento OpenThread esistente
Se la porta seriale del DUT funziona nelle impostazioni di 115200 8-N-1 e il dispositivo risponde correttamente dopo ogni ripristino del dispositivo fisico (ad esempio, per confermare la connessione valida del dispositivo alla macchina Windows), la piattaforma può utilizzare il Strumento OpenThread THCI. Questo strumento consente al dispositivo di agire come piattaforma di riferimento OpenThread durante il test.
- Chiudere il GRL Test Harness, se è aperto.
- Collega il dispositivo alla macchina Windows.
- Trova l'identificatore hardware della porta seriale del dispositivo, utilizzando il modulo Python pySerial:
- Installa pySerial sulla macchina Windows.
- Usa Python sulla riga di comando di Windows per enumerare tutti gli identificatori hardware (VID e PID) per i dispositivi collegati alla macchina. In questa uscita, un dispositivo è collegato con un identificatore di VID = 1366 e PID = 1015:
python -m serial.tools.list_ports -v
COM10desc: 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 d'oro:
- Apri
C:\GRL\Thread1.1\Config\Configuration.ini
. - Aggiorna il gruppo OpenThread nell'array
GoldenDeviceHardwareIds
con il VID e il PID 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
- Abilita la modalità DUT automatica .
Agire come una nuova piattaforma di riferimento
Se la porta seriale del DUT non funziona con le corrette impostazioni della porta seriale, o il dispositivo non risponde correttamente dopo un reset fisico del dispositivo (emette codice illeggibile entro 3-6 secondi dal reset), allora OpenThread THCI può essere personalizzato per il trattamento il dispositivo come nuova piattaforma nel Test Harness.
Ad esempio, per personalizzare THCI utilizzando la piattaforma Nordic Semiconductor nRF52840 :
- Chiudere il GRL Test Harness, se è aperto.
Modifica
/tools/harness-thci/OpenThread.py
base alle caratteristiche UART del dispositivo di destinazione. Le modifiche possono differire tra i dispositivi di destinazione. Nel caso della piattaforma Nordic nRF52840:- Rinominare
OpenThread.py
filenRF52840.py
. Cambia le prime tre occorrenze di "OpenThread" in "nRF52840":
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):
Modificare 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()
Modificare il tempo di sospensione per eliminare l'impatto dell'output di 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)
- Rinominare
Copia il file
nRF52840.py
modificato inC:\GRL\Thread1.1\Thread_Harness\THCI
Aggiungere le nuove informazioni sulla piattaforma al Test Harness:
- Crea un'icona (in formato png o jpg) per differenziare più facilmente la tua piattaforma e copiarla in
C:\GRL\Thread1.1\Web\images
. Aggiorna
C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
con una nuova sezioneDEVICE
, dove il parametro dellathumbnail
è il file 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 differenziare più facilmente la tua piattaforma e copiarla in
Collega il dispositivo alla macchina Windows.
Trova l'identificatore hardware della porta seriale del dispositivo, utilizzando il modulo Python pySerial:
- Installa pySerial sulla macchina Windows.
- Utilizzare Python sulla riga di comando di Windows per enumerare tutti gli identificatori hardware (VID e PID) per i dispositivi collegati alla macchina. In questa uscita, un dispositivo è collegato con un identificatore di VID = 1366 e PID = 1015:
python -m serial.tools.list_ports -v
COM10desc: 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 d'oro:
- Apri
C:\GRL\Thread1.1\Config\Configuration.ini
. - Aggiungi un nuovo gruppo di piattaforme nell'array
GoldenDeviceHardwareIds
con VID e 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
Abilita la modalità DUT automatica
Dopo aver completato una delle due opzioni di configurazione precedenti:
- Aprire il GRL Test Harness, il dispositivo / porta ora appare come un nuovo dispositivo di riferimento.
- Selezionare la casella di controllo Abilita selezione dispositivo DUT automatico sotto l'elenco Hardware supportato.
- Selezionare il pulsante di opzione Imposta come DUT sotto il dispositivo / porta di destinazione per impostare il dispositivo come DUT.
