Per automatizzare i test di certificazione, sono necessarie ulteriori configurazioni.
Tutti i passaggi di installazione e configurazione riportati di seguito si verificano sul computer Windows che esegue il software GRL Test Harness. Scarica e installa l'cablaggio di test dei thread GRL più recente prima di continuare.
Al termine dell'installazione, esistono due metodi di automazione per il dispositivo in fase di test (DUT):
- Strumento di automazione del cablaggio OpenThread
- Testare la modalità DUT automatica per l'imbracatura
Strumento di automazione del cablaggio OpenThread
Installa
- Installa il seguente software:
- Python 2.7
- Git per Windows (supporto vivamente consigliato)
- Clona il repository OpenThread per ottenere gli script di automazione:
git clone https://github.com/openthread/openthread
- Installa i requisiti Python:
cd tools/harness-automation
pip 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 in base alle istruzioni riportate nel file.
- Aggiungi il seguente parametro al file di configurazione Test Harness, disponibile all'indirizzo
C:\GRL\Thread1.1\Config\Configuration.ini
:BrowserAutoNavigate = False
Supporto di test test misti
Lo strumento per l'automazione del cablaggio supporta anche letti di test misti, in cui i dispositivi di riferimento utilizzati in ogni scenario di test sono un insieme misto di dispositivi anziché tutti gli stessi dispositivi. Ad esempio, invece di 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 per i thread per ogni scenario di test, come preferisci.
Per utilizzare letti di test misti è necessaria un'ulteriore configurazione:
- Aggiungi il seguente parametro aggiuntivo al file di configurazione Test Harness, disponibile all'indirizzo
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 descrive in dettaglio il dispositivo da utilizzare per ciascun ruolo in ogni scenario di test.
Il file di configurazione della topologia fornito dal gruppo di thread può essere modificato per altre configurazioni miste, 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 l'imbracatura |
---|---|
ARM |
ARM: NXP FRDM-K64F con Firefly 6LoWPAN Shield |
NXP |
NXP(scala libera): chiavette USB-KW24D512 |
OpenThread |
OpenThread: TI CC2538DK |
SiLabs |
Silabs: chiavetta USB EM358x |
Ogni voce dello scenario di test nel file di configurazione della topologia deve trovarsi su una riga separata e formattato in coppie role:device
come segue:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
Test DUT Auto in modalità Hard test
Il software GRL Test Harness fornisce una funzionalità avanzata di individuazione automatica (DUT) che accelera il processo di convalida per i fornitori di stack di riferimenti Thread.
OpenThread fornisce un esempio THCI (Thread Host Controller Interface) che consente al test di cablaggio di controllare il tuo componente o prodotto come se fosse una delle piattaforme di riferimento. In base alle caratteristiche delle porte seriali della piattaforma specifica, il tuo DUT potrebbe:
In qualità di 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 fisico del dispositivo (ad esempio per confermare la connessione valida del dispositivo alla macchina Windows), la piattaforma può utilizzare lo strumento OpenThread THCI. Questo strumento consente al dispositivo di agire come piattaforma di riferimento OpenThread durante il test.
- Chiudi l'imbracatura di prova GRL, se è aperta.
- Collega il dispositivo al computer Windows.
- Individua l'identificatore hardware della porta seriale del dispositivo mediante il modulo Python pySerial:
- Installa pySerial sul computer Windows.
- Utilizza Python sulla riga di comando Windows per enumerare tutti gli identificatori hardware (VID e PID) per i dispositivi connessi alla macchina. In questo output, un dispositivo è connesso con un identificatore
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 altro comando. 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 dorati:
- Apri
C:\GRL\Thread1.1\Config\Configuration.ini
. - Aggiorna il gruppo OpenThread nell'array
GoldenDeviceHardwareIds
con i valori VID e 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
- Attiva la modalità DUT automatica.
Come nuova piattaforma di riferimento
Se la porta seriale del DUT non funziona in base alle impostazioni corrette della porta seriale oppure se il dispositivo non risponde correttamente dopo un ripristino fisico del dispositivo (emette codice illeggibile entro 3-6 secondi dal ripristino), ThCI può essere personalizzato per trattare il dispositivo come una nuova piattaforma nel test.
Ad esempio, per personalizzare THCI utilizzando la piattaforma Nordic Semiconductor nRF52840:
- Chiudi l'imbracatura di prova GRL, se è aperta.
Modifica
/tools/harness-thci/OpenThread.py
in base alle caratteristiche UART del dispositivo di destinazione. Le modifiche possono essere diverse tra i dispositivi di destinazione. Nel caso della piattaforma Nordic nRF52840:- Rinomina il file
OpenThread.py
innRF52840.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 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)
- Rinomina il file
Copia il file
nRF52840.py
modificato inC:\GRL\Thread1.1\Thread_Harness\THCI
Aggiungi le nuove informazioni sulla piattaforma all'imbracatura di prova:
- 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 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 differenziare più facilmente la tua piattaforma e copiarla in
Collega il dispositivo al computer Windows.
Individua l'identificatore hardware della porta seriale del dispositivo utilizzando il modulo Python pySerial:
- Installa pySerial sul computer Windows.
- Utilizza Python sulla riga di comando Windows per enumerare tutti gli identificatori hardware (VID e PID) per i dispositivi connessi alla macchina. In questo output, un dispositivo è connesso con un identificatore
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 altro comando. 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 Golden:
- 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
Attiva modalità DUT automatica
Dopo aver completato una delle due opzioni di configurazione riportate sopra:
- Apri il test di cablaggio GRL. Il dispositivo o la porta ora vengono visualizzati come nuovi dispositivi di riferimento.
- Seleziona la casella di controllo Abilita selezione automatica dispositivo DUT sotto l'elenco Hardware supportato.
- Seleziona il pulsante di opzione Imposta come DUT sotto il dispositivo/la porta di destinazione per impostare il dispositivo come DUT.
