Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Configurazione dell'automazione della certificazione

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):

  1. Strumento di automazione del cablaggio OpenThread
  2. Modalità Test Harness Auto DUT

Strumento di automazione del cablaggio OpenThread

Installare

  1. Installa il seguente software:
    • Python 2.7
    • Git per Windows (il supporto Bash è altamente raccomandato)
  2. Clona il repository OpenThread per ottenere gli script di automazione:
    git clone https://github.com/openthread/openthread
    
  3. Installa i requisiti di Python:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. Installa sia Google Chrome che ChromeDriver .

Configura

  1. Creare un file di configurazione per lo strumento di automazione:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. Aggiorna il nuovo file di configurazione in base alle istruzioni nel file.
  3. 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:

  1. Aggiungere il seguente parametro aggiuntivo al file di configurazione Test Harness, disponibile in C:\GRL\Thread1.1\Config\Configuration.ini :
    EnableDeviceSelection = True
  2. Scarica il file di configurazione della topologia dal gruppo di thread . Aggiungi questo file come TopologyConfig.txt a C:\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.

  1. Chiudere il GRL Test Harness, se è aperto.
  2. Collega il dispositivo alla macchina Windows.
  3. Trova l'identificatore hardware della porta seriale del dispositivo, utilizzando il modulo Python pySerial:
    1. Installa pySerial sulla macchina Windows.
    2. 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
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. 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']
  4. Aggiorna l'elenco dei dispositivi d'oro:
    1. Apri C:\GRL\Thread1.1\Config\Configuration.ini .
    2. 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']}
  5. 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 :

  1. Chiudere il GRL Test Harness, se è aperto.
  2. 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:

    1. Rinominare OpenThread.py file nRF52840.py .
    2. Cambia le prime tre occorrenze di "OpenThread" in "nRF52840":

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. 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()
      
    4. 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)
      
  3. Copia il file nRF52840.py modificato in C:\GRL\Thread1.1\Thread_Harness\THCI

  4. Aggiungere le nuove informazioni sulla piattaforma al Test Harness:

    1. Crea un'icona (in formato png o jpg) per differenziare più facilmente la tua piattaforma e copiarla in C:\GRL\Thread1.1\Web\images .
    2. Aggiorna C:\GRL\Thread1.1\Web\data\deviceInputFields.xml con una nuova sezione DEVICE , dove il parametro della thumbnail è 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>
      
  5. Collega il dispositivo alla macchina Windows.

  6. Trova l'identificatore hardware della porta seriale del dispositivo, utilizzando il modulo Python pySerial:

    1. Installa pySerial sulla macchina Windows.
    2. 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
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. 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']
  7. Aggiorna l'elenco dei dispositivi d'oro:

    1. Apri C:\GRL\Thread1.1\Config\Configuration.ini .
    2. 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'}
  8. Abilita la modalità DUT automatica .

Abilita la modalità DUT automatica

Dopo aver completato una delle due opzioni di configurazione precedenti:

  1. Aprire il GRL Test Harness, il dispositivo / porta ora appare come un nuovo dispositivo di riferimento.
  2. Selezionare la casella di controllo Abilita selezione dispositivo DUT automatico sotto l'elenco Hardware supportato.
  3. Selezionare il pulsante di opzione Imposta come DUT sotto il dispositivo / porta di destinazione per impostare il dispositivo come DUT.
Certificazione OT Auto DUT