Google is committed to advancing racial equity for Black communities. See how.

Sertifika Otomasyon Kurulumu

Sertifika testlerini otomatikleştirmek için ek kurulum gereklidir.

Aşağıdaki tüm kurulum ve yapılandırma adımları, GRL Test Harness yazılımını çalıştıran Windows makinesinde gerçekleşir. Devam etmeden önce en son GRL Thread Test Harness'i indirin ve kurun.

Kurulduktan sonra, test edilen cihaz (DUT) için iki otomasyon yöntemi vardır:

  1. OpenThread Harness Otomasyon Aracı
  2. Test Harness Auto DUT modu

OpenThread Harness Otomasyon Aracı

Yüklemek

  1. Aşağıdaki yazılımı kurun:
    • Python 2.7
    • Windows için Git (Bash desteği şiddetle tavsiye edilir)
  2. Otomasyon komut dosyalarını almak için OpenThread deposunu klonlayın:
    git clone https://github.com/openthread/openthread
    
  3. Python gereksinimlerini yükleyin:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. Hem Google Chrome'u hem de ChromeDriver'ı yükleyin.

Yapılandır

  1. Otomasyon aracı için bir yapılandırma dosyası oluşturun:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. Bu yeni yapılandırma dosyasını dosyadaki talimatlara göre güncelleyin.
  3. Aşağıdaki parametreyi C:\GRL\Thread1.1\Config\Configuration.ini :
    BrowserAutoNavigate = False
    adresinde bulunan Test Harness yapılandırma dosyasına ekleyin.

Karışık test yatağı desteği

Harness Automation Tool ayrıca, her test durumunda kullanılan referans cihazların aynı cihaz yerine karma bir cihaz seti olduğu karma test yataklarını da destekler. Örneğin, tüm test senaryoları için OpenThread çalıştıran 32 TI CC2538 kartı kullanmak yerine, her bir test senaryosu için dört Thread referans cihazını istediğiniz gibi karıştırıp eşleştirebilirsiniz.

Karışık test yataklarını kullanmak için ek yapılandırma gereklidir:

  1. Aşağıdaki ek parametreyi C:\GRL\Thread1.1\Config\Configuration.ini :
    EnableDeviceSelection = True
    adresinde bulunan Test Harness yapılandırma dosyasına ekleyin.
  2. Topoloji yapılandırma dosyasını Diş Grubundan indirin . Bu dosyayı TopologyConfig.txt olarak C:\GRL\Thread1.1\Thread_Harness\TestScripts . Bu dosya, her test senaryosunda her rol için hangi referans cihazının kullanılacağını ayrıntılarıyla anlatır.

Thread Group tarafından sağlanan topoloji konfigürasyon dosyası diğer karma yataklı konfigürasyonlar için değiştirilebilir, ancak resmi sertifikasyon için orijinal konfigürasyon kullanılmalıdır.

Topoloji konfigürasyon dosyasında referans cihazlar için kullanılacak geçerli değerler şunlardır:

Topoloji yapılandırma dosyasındaki değer Test Harness referans cihazı
ARM ARM: Firefly 6LoWPAN Kalkanı ile NXP FRDM-K64F
NXP NXP (Freescale): USB-KW24D512 Donanım Kilidi
OpenThread OpenThread: TI CC2538DK
SiLabs Silablar: EM358x USB Çubuğu

Topoloji yapılandırma dosyasındaki her bir test senaryosu girişi ayrı bir satırda olmalı ve şu role:device biçimlendirilmelidir role:device çiftleri aşağıdaki gibidir:

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

Test Harness Auto DUT modu

GRL Test Harness yazılımı, Thread referans yığını satıcıları için doğrulama sürecini hızlandıran gelişmiş bir otomatik keşif özelliği (Otomatik DUT) sağlar.

OpenThread, Test Harness'in bileşeninizi veya ürününüzü referans platformlardan biri gibi kontrol etmesini sağlayan örnek bir İş Parçacığı Ana Bilgisayar Denetleyicisi Arabirimi (THCI) sağlar. Belirli platformunuzun seri bağlantı noktası özelliklerine göre, DUT'nuz şunlardan birini yapabilir:

Mevcut OpenThread referans platformu olarak hareket etmek

DUT'un seri portu 115200 8-N-1 ayarları altında çalışıyorsa ve cihaz her fiziksel cihaz sıfırlamasından sonra doğru şekilde yanıt veriyorsa (örneğin, cihazın Windows makinesiyle geçerli bağlantısını onaylamak için), platform OpenThread THCI aracı. Bu araç, cihazın test sırasında OpenThread referans platformu olarak hareket etmesini sağlar.

  1. Açıksa GRL Test Kablo Demetini kapatın.
  2. Cihazı Windows makinesine bağlayın.
  3. Python pySerial modülünü kullanarak aygıt seri bağlantı noktası donanım tanımlayıcısını bulun:
    1. Windows makinesine pySerial'ı kurun .
    2. Makineye bağlı aygıtlar için tüm donanım tanımlayıcılarını (VID ve PID) numaralandırmak için Windows komut satırında Python kullanın. Bu çıkışta, bir cihaz bir VID = 1366 ve PID = 1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
      tanımlayıcısıyla bağlanır.
    3. COM bağlantı noktasını zaten biliyorsanız, farklı bir komut kullanabilirsiniz. Örneğin, COM bağlantı noktası 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']
      ise
  4. Altın Cihaz listesini güncelleyin:
    1. C:\GRL\Thread1.1\Config\Configuration.ini açın.
    2. GoldenDeviceHardwareIds dizisindeki OpenThread grubunu GoldenDeviceHardwareIds VID ve PID'si ile güncelleyin:
      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. Otomatik DUT modunu etkinleştirin .

Yeni bir referans platformu olarak hareket etmek

DUT'un seri bağlantı noktası uygun seri bağlantı noktası ayarları altında çalışmıyorsa veya cihaz fiziksel bir cihaz sıfırlamasından sonra doğru şekilde yanıt vermiyorsa (sıfırlamadan sonra 3-6 saniye içinde okunamayan bir kod çıkarır), OpenThread THCI tedavi edilecek Cihaz, Test Harness'te yeni bir platform olarak.

Örneğin, Nordic Semiconductor nRF52840 platformunu kullanarak THCI'yi özelleştirmek için:

  1. Açıksa GRL Test Kablo Demetini kapatın.
  2. /tools/harness-thci/OpenThread.py hedef cihazın UART özelliklerine göre değiştirin. Değişiklikler hedef cihazlar arasında farklılık gösterebilir. Nordic nRF52840 platformu durumunda:

    1. Rename OpenThread.py dosyayı nRF52840.py .
    2. "OpenThread" in ilk üç oluşumunu "nRF52840" olarak değiştirin:

      >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
      
    3. Seri bağlantı noktası parametrelerini değiştirin:

      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. Cihaz sıfırlandıktan sonra okunamayan kod çıktısının etkisini ortadan kaldırmak için uyku süresini değiştirin:

      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. Değiştirilen nRF52840.py dosyasını C:\GRL\Thread1.1\Thread_Harness\THCI

  4. Yeni platform bilgilerini Test Harness'e ekleyin:

    1. Platformunuzu farklılaştırmayı kolaylaştırmak için bir simge (png veya jpg biçiminde) oluşturun ve C:\GRL\Thread1.1\Web\images kopyalayın.
    2. C:\GRL\Thread1.1\Web\data\deviceInputFields.xml thumbnail parametresinin simge dosyası olduğu yeni bir DEVICE bölümüyle güncelleyin:

      <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. Cihazı Windows makinesine bağlayın.

  6. Python pySerial modülünü kullanarak cihaz seri bağlantı noktası donanım tanımlayıcısını bulun:

    1. Windows makinesine pySerial'ı kurun .
    2. Makineye bağlı aygıtlar için tüm donanım tanımlayıcılarını (VID ve PID) numaralandırmak için Windows komut satırında Python kullanın. Bu çıkışta, bir cihaz VID = 1366 ve PID = 1015:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
      tanımlayıcısıyla bağlanır.
    3. COM bağlantı noktasını zaten biliyorsanız, farklı bir komut kullanabilirsiniz. Örneğin, COM bağlantı noktası 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']
      ise
  7. Altın Cihaz listesini güncelleyin:

    1. C:\GRL\Thread1.1\Config\Configuration.ini açın.
    2. GoldenDeviceHardwareIds dizisine cihazın VID ve GoldenDeviceHardwareIds yeni bir platform grubu ekleyin:
      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. Otomatik DUT modunu etkinleştirin .

Otomatik DUT modunu etkinleştir

Yukarıdaki iki yapılandırma seçeneğinden biri tamamlandıktan sonra:

  1. GRL Test Harness'i açın, cihaz / bağlantı noktası artık yeni bir referans cihaz olarak görünür.
  2. Desteklenen Donanım listesinin altındaki Otomatik DUT Cihaz Seçimini Etkinleştir onay kutusunu seçin.
  3. Cihazı DUT olarak ayarlamak için hedef cihaz / bağlantı noktasının altındaki DUT olarak ayarla radyo düğmesini seçin.
OT Sertifikasyon Otomatik DUT