Configurazione dell'automazione delle certificazioni

Per automatizzare i test di certificazione, è necessaria un'ulteriore configurazione.

Tutti i passaggi di installazione e configurazione riportati di seguito vengono eseguiti sul computer Windows eseguendo il software GRL Test Harness. Scarica e installa la versione più recente Cablaggio per test dei thread GRL prima del giorno continua.

Una volta installata l'app, sono disponibili due metodi di automazione per il dispositivo sottoposto a test (DUT):

  1. Strumento di automazione con OpenThread
  2. Modalità DUT automatica del cablaggio

Strumento di automazione dell'imbracatura OpenThread

Installa

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

Configura

  1. Crea un file di configurazione per lo strumento di automazione:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. Aggiornare il nuovo file di configurazione in base alle istruzioni fornite nella .
  3. Aggiungi il seguente parametro al file di configurazione del test del cablaggio, disponibile all'indirizzo C:\GRL\Thread1.1\Config\Configuration.ini:
    BrowserAutoNavigate = False

Supporto del banco di test misto

Lo strumento di automazione dell'imbracatura supporta anche i banconi di prova misti, in cui il riferimento I dispositivi utilizzati in ogni scenario di test sono un insieme misto di dispositivi anziché tutti sullo stesso dispositivo. Ad esempio, invece di utilizzare 32 schede TI CC2538 con OpenThread per tutti gli scenari di test, puoi combinare tutti e quattro gli scenari di test dispositivi di riferimento per ogni scenario di test, se necessario.

Per utilizzare i database di test misti, è necessaria un'ulteriore configurazione:

  1. Aggiungi il seguente parametro aggiuntivo alla configurazione del cablaggio di test file, disponibile all'indirizzo C:\GRL\Thread1.1\Config\Configuration.ini:
    EnableDeviceSelection = True
  2. Scarica il file di configurazione della topologia dal file Thread Gruppo. Aggiungi questo file come TopologyConfig.txt a C:\GRL\Thread1.1\Thread_Harness\TestScripts. Questo file descrive in dettaglio quali dispositivo di riferimento da utilizzare per ogni ruolo in ogni scenario di test.

Il file di configurazione della topologia fornito dal gruppo di Thread può essere modificato per altre configurazioni di letti misti, ma per la certificazione ufficiale l'originale è necessario utilizzare la configurazione.

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 Test Harness
ARM ARM: NXP FRDM-K64F con scudo Firefly 6LoWPAN
NXP NXP(Freescale): 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 in un file a riga di comando e formattato in role:device coppie come segue:

5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM

Testa modalità DUT automatica

Il software GRL Test Harness offre una funzionalità di rilevamento automatico avanzata (Auto DUT) che accelera il processo di convalida per lo stack di riferimento Thread. di Google Cloud.

OpenThread fornisce un esempio Thread Host Controller Interface (THCI) che consente al test Harness di controllare il componente o il prodotto come se fosse una delle piattaforme di riferimento. In base alle caratteristiche della porta seriale piattaforma specifica, il DUT potrebbe:

Operazione da piattaforma di riferimento OpenThread esistente

Se la porta seriale del dispositivo DUT funziona secondo le impostazioni di 115200 8-N-1 e il dispositivo risponde correttamente dopo ogni reset del dispositivo fisico (ad esempio, conferma la connessione valida del dispositivo al computer Windows), la piattaforma puoi usare lo strumento OpenThread THCI. Questo strumento consente al dispositivo di agire della piattaforma di riferimento OpenThread durante il test.

  1. Chiudi il cavo di test GRL, se è aperto.
  2. Collega il dispositivo al computer Windows.
  3. Trova l'identificatore hardware della porta seriale del dispositivo, utilizzando il comando Python pySerial modulo:
    1. Installa pySerial sui computer Windows.
    2. Utilizza Python sulla riga di comando di Windows per elencare tutto l'hardware identificatori (VID e PID) per i dispositivi connessi alla macchina. In questo dell'output, 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 altro comando. Per 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 Golden:
    1. Apri C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Aggiorna il gruppo OpenThread nell'array GoldenDeviceHardwareIds con 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']}
  5. Attiva modalità DUT automatica.

Fungere da nuova piattaforma di riferimento

Se la porta seriale del dispositivo non funziona sotto la porta seriale appropriata impostazioni o il dispositivo non risponde correttamente dopo un dispositivo fisico reset (emette codice illeggibile entro 3-6 secondi dal ripristino), quindi OpenThread THCI può essere personalizzato in modo da considerare il dispositivo come una nuova piattaforma nel test Cablaggio.

Ad esempio, per personalizzare THCI utilizzando lo strumento Nordic Semiconductor Piattaforma nRF52840:

  1. Chiudi il cavo di test GRL, se è aperto.
  2. Modifica /tools/harness-thci/OpenThread.py in base alle caratteristiche UART del dispositivo target. Le modifiche possono variano tra i dispositivi di destinazione. Nel caso della piattaforma nordica nRF52840:

    1. Rinomina il file OpenThread.py in nRF52840.py.
    2. Modificare le prime tre occorrenze di "OpenThread" a "nRF52840":

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. 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()
      
    4. Cambia il tempo di sospensione per eliminare l'impatto 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)
      
  3. Copia il file nRF52840.py modificato in C:\GRL\Thread1.1\Thread_Harness\THCI

  4. Aggiungi le nuove informazioni sulla piattaforma al test Harness:

    1. Crea un'icona (in formato png o jpg) per facilitare la distinzione la tua piattaforma e copialo 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 thumbnail è 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>
      
  5. Collega il dispositivo al computer Windows.

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

    1. Installa pySerial sui computer Windows.
    2. Utilizza Python sulla riga di comando di Windows per elencare tutto l'hardware identificatori (VID e PID) per i dispositivi connessi alla macchina. In questo dell'output, 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 altro comando. Per 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 Golden:

    1. Apri C:\GRL\Thread1.1\Config\Configuration.ini.
    2. Aggiungi un nuovo gruppo di piattaforme nell'array GoldenDeviceHardwareIds con 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'}
  8. Attiva modalità DUT automatica.

Attiva modalità DUT automatica

Una volta completata una delle due opzioni di configurazione precedenti:

  1. Apri il cablaggio di test GRL. Il dispositivo/la porta ora vengono visualizzati come nuovo riferimento dispositivo.
  2. Seleziona la casella di controllo Abilita selezione automatica dispositivo DUT sotto a Supportata Elenco di hardware.
  3. Seleziona il pulsante di opzione Set as DUT (Imposta come DUT) sotto il dispositivo o la porta di destinazione da impostare. il dispositivo come DUT.
Certificazione OT DUT automatica