O Google está comprometido em promover a equidade racial para as comunidades negras. Veja como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Configuração da automação de certificação

Para automatizar os testes de certificação, é necessária uma configuração adicional.

Todas as etapas de instalação e configuração abaixo ocorrem na máquina Windows executando o software GRL Test Harness. Baixe e instale o chicote de teste de rosca GRL mais recente antes de continuar.

Depois de instalado, existem dois métodos de automação para o dispositivo em teste (DUT):

  1. Ferramenta de automação de chicote elétrico OpenThread
  2. Arnês de teste modo DUT automático

Ferramenta de automação de chicote elétrico OpenThread

Instalar

  1. Instale o seguinte software:
    • Python 2.7
    • Git para Windows (o suporte ao Bash é altamente recomendado)
  2. Clone o repositório OpenThread para obter os scripts de automação:
    git clone https://github.com/openthread/openthread
    
  3. Instale os requisitos do Python:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. Instale o Google Chrome e o ChromeDriver .

Configurar

  1. Crie um arquivo de configuração para a ferramenta de automação:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. Atualize esse novo arquivo de configuração de acordo com as instruções no arquivo.
  3. Adicione o seguinte parâmetro ao arquivo de configuração do Arnês de Teste, encontrado em C:\GRL\Thread1.1\Config\Configuration.ini :
    BrowserAutoNavigate = False

Suporte misto para teste

A Harness Automation Tool também suporta bases de teste mistas, onde os dispositivos de referência usados ​​em cada caso de teste são um conjunto misto de dispositivos, e não o mesmo dispositivo. Por exemplo, em vez de usar 32 placas TI CC2538 executando o OpenThread para todos os casos de teste, você pode misturar e combinar entre os quatro dispositivos de referência do Thread para cada caso de teste, conforme desejado.

Para usar bancos de ensaio mistos, é necessária uma configuração adicional:

  1. Adicione o seguinte parâmetro adicional ao arquivo de configuração do Test Harness, encontrado em C:\GRL\Thread1.1\Config\Configuration.ini :
    EnableDeviceSelection = True
  2. Faça o download do arquivo de configuração da topologia no Grupo de Encadeamentos . Adicione este arquivo como TopologyConfig.txt a C:\GRL\Thread1.1\Thread_Harness\TestScripts . Este arquivo detalha qual dispositivo de referência usar para cada função em cada caso de teste.

O arquivo de configuração de topologia fornecido pelo Grupo de Encadeamentos pode ser modificado para outras configurações de leito misto, mas para certificação oficial, a configuração original deve ser usada.

Os valores válidos a serem usados ​​para dispositivos de referência no arquivo de configuração de topologia são:

Valor no arquivo de configuração da topologia Dispositivo de referência do chicote de teste
ARM BRAÇO: NXP FRDM-K64F com escudo Firefly 6LoWPAN
NXP NXP (Freescale): Dongles USB-KW24D512
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: Vara USB EM358x

Cada entrada de caso de teste no arquivo de configuração de topologia deve estar em uma linha separada e formatada em role:device pair da seguinte maneira:

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

Arnês de teste modo DUT automático

O software GRL Test Harness fornece um recurso avançado de descoberta automática (Auto DUT), que acelera o processo de validação para fornecedores de pilha de referência de segmentos.

O OpenThread fornece um exemplo de THCI (Thread Host Controller Interface) que permite que o Test Harness controle seu componente ou produto como se fosse uma das plataformas de referência. De acordo com as características da porta serial de sua plataforma específica, seu DUT pode:

Atuando como a plataforma de referência OpenThread existente

Se a porta serial do DUT funcionar nas configurações de 115200 8-N-1 e o dispositivo responder corretamente após cada redefinição do dispositivo físico (por exemplo, para confirmar a conexão válida do dispositivo com a máquina Windows), a plataforma poderá usar o Ferramenta OpenThread THCI. Essa ferramenta permite que o dispositivo atue como a plataforma de referência OpenThread durante o teste.

  1. Feche o chicote de teste da GRL, se estiver aberto.
  2. Conecte o dispositivo à máquina Windows.
  3. Encontre o identificador de hardware da porta serial do dispositivo, usando o módulo pySerial Python:
    1. Instale o pySerial na máquina Windows.
    2. Use Python na linha de comando do Windows para enumerar todos os identificadores de hardware (VID e PID) para dispositivos conectados à máquina. Nesta saída, um dispositivo está conectado com um identificador de 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 você já conhece a porta COM, pode usar um comando diferente. Por exemplo, se a porta COM for 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. Atualize a lista Golden Device:
    1. Abra C:\GRL\Thread1.1\Config\Configuration.ini .
    2. Atualize o grupo OpenThread na matriz GoldenDeviceHardwareIds com o VID e o PID do (s) dispositivo (s):
      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. Ative o modo Auto DUT .

Atuando como uma nova plataforma de referência

Se a porta serial do DUT não funcionar nas configurações adequadas da porta serial ou o dispositivo não responder corretamente após uma redefinição do dispositivo físico (gera código ilegível dentro de 3 a 6 segundos após a redefinição), o OpenThread THCI pode ser personalizado para tratar o dispositivo como uma nova plataforma no Arnês de Teste.

Por exemplo, para personalizar o THCI usando a plataforma Nordic Semiconductor nRF52840 :

  1. Feche o chicote de teste da GRL, se estiver aberto.
  2. Modifique /tools/harness-thci/OpenThread.py base nas características UART do dispositivo de destino. As modificações podem diferir entre os dispositivos de destino. No caso da plataforma nórdica nRF52840:

    1. Renomeie o OpenThread.py arquivo para nRF52840.py .
    2. Altere as três primeiras ocorrências de "OpenThread" para "nRF52840":

       >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
       
    3. Altere os parâmetros da porta serial:

      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. Altere o tempo de suspensão para eliminar o impacto da saída de código ilegível após a redefinição do 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. Copie o arquivo nRF52840.py modificado para C:\GRL\Thread1.1\Thread_Harness\THCI

  4. Adicione as novas informações da plataforma ao Arnês de Teste:

    1. Crie um ícone (no formato png ou jpg) para facilitar a diferenciação da sua plataforma e copie-o para C:\GRL\Thread1.1\Web\images .
    2. Atualize C:\GRL\Thread1.1\Web\data\deviceInputFields.xml com uma nova seção DEVICE , onde o parâmetro thumbnail é o arquivo de ícone:

       <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. Conecte o dispositivo à máquina Windows.

  6. Encontre o identificador de hardware da porta serial do dispositivo, usando o módulo pySerial Python:

    1. Instale o pySerial na máquina Windows.
    2. Use Python na linha de comando do Windows para enumerar todos os identificadores de hardware (VID e PID) para dispositivos conectados à máquina. Nesta saída, um dispositivo está conectado com um identificador de 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 você já conhece a porta COM, pode usar um comando diferente. Por exemplo, se a porta COM for 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. Atualize a lista Golden Device:

    1. Abra C:\GRL\Thread1.1\Config\Configuration.ini .
    2. Adicione um novo grupo de plataformas na matriz GoldenDeviceHardwareIds com o VID e o PID do 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. Ative o modo Auto DUT .

Ativar modo Auto DUT

Depois que uma das duas opções de configuração acima estiver concluída:

  1. Abra o chicote de teste da GRL, o dispositivo / porta agora aparece como um novo dispositivo de referência.
  2. Marque a caixa de seleção Ativar seleção automática de dispositivo DUT abaixo da lista Hardware suportado.
  3. Selecione o botão de opção Definir como DUT sob o dispositivo / porta de destino para definir o dispositivo como DUT.
Certificação OT Auto DUT