Google is committed to advancing racial equity for Black communities. See how.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Configuração de certificação de automaçã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 que executa o software GRL Test Harness. Baixe e instale o GRL Thread Test Harness mais recente antes de continuar.

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

  1. OpenThread Harness Automation Tool
  2. Modo DUT automático do chicote de fios de teste

OpenThread Harness Automation Tool

Instalar

  1. Instale o seguinte software:
    • Python 2.7
    • Git para Windows (suporte 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 Test Harness, encontrado em C:\GRL\Thread1.1\Config\Configuration.ini :
    BrowserAutoNavigate = False

Suporte de banco de ensaio misto

A Ferramenta de Automação de Arreios também oferece suporte a bancos de teste mistos, onde os dispositivos de referência usados ​​em cada caso de teste são um conjunto misto de dispositivos em vez de todos os mesmos dispositivos. Por exemplo, em vez de usar 32 placas TI CC2538 executando OpenThread para todos os casos de teste, você pode misturar e combinar todos os quatro dispositivos de referência de Thread para cada caso de teste, conforme desejado.

Para usar testbeds mistos, é necessária 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. Baixe o arquivo de configuração de topologia do Thread Group . Adicione este arquivo como TopologyConfig.txt em 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 Thread Group 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 de topologia Dispositivo de referência de arnês de teste
ARM ARM: NXP FRDM-K64F com Firefly 6LoWPAN Shield
NXP NXP (Freescale): Dongles USB-KW24D512
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: EM358x USB Stick

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

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

Modo DUT automático do chicote de fios de teste

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

O OpenThread fornece um exemplo de Thread Host Controller Interface (THCI) que permite ao Test Harness controlar 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 poderia:

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 reinicialização do dispositivo físico (por exemplo, para confirmar a conexão válida do dispositivo com a máquina Windows), a plataforma pode usar o Ferramenta OpenThread THCI. Essa ferramenta permite que o dispositivo atue como plataforma de referência OpenThread durante o teste.

  1. Feche o GRL Test Harness, 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 Python pySerial:
    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 é 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 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 DUT automático .

Atuando como uma nova plataforma de referência

Se a porta serial do DUT não funcionar nas configurações de porta serial adequadas, ou o dispositivo não responder corretamente após uma reinicialização do dispositivo físico (produz um código ilegível dentro de 3-6 segundos após a reinicialização), então o OpenThread THCI pode ser personalizado para tratar o dispositivo como uma nova plataforma no Harness de testes.

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

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

    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 Harness de Teste:

    1. Crie um ícone (no formato png ou jpg) para tornar mais fácil diferenciar 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 de 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 Python pySerial:

    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 é 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 plataforma na matriz GoldenDeviceHardwareIds com o VID e 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 DUT automático .

Ativar modo DUT automático

Após a conclusão de uma das duas opções de configuração acima:

  1. Abra o GRL Test Harness, 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 de Hardware com suporte.
  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