Sertifika Otomasyonu Kurulumu

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

Aşağıdaki tüm yükleme ve yapılandırma adımları, GRL Test Harness yazılımının çalıştığı Windows makinesinde gerçekleştirilir. Devam etmeden önce en yeni GRL Thread Test Harness'ı indirip yükleyin.

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

  1. OpenThread Harness Automation Tool
  2. Test bandı otomatik DUT modu

OpenThread Harness Automation Tool

Yükle

  1. Aşağıdaki yazılımları yükleyin:
    • Python 2.7
    • Windows için Git (Bash desteği önemle 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 konumunda bulunan Test Harness yapılandırma dosyasına ekleyin:
    BrowserAutoNavigate = False

Karma test yatağı desteği

Harness Automation Tool, her test senaryosunda kullanılan referans cihazların aynı cihazlar yerine karışık bir cihaz seti olduğu karma test yataklarını da destekler. Örneğin, tüm test durumları için OpenThread çalıştıran 32 TI CC2538 kartı kullanmak yerine, her test durumu için dört Thread referans cihazı arasında istediğiniz gibi seçim yapabilirsiniz.

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

  1. C:\GRL\Thread1.1\Config\Configuration.ini konumunda bulunan Test Harness yapılandırma dosyasına aşağıdaki ek parametreyi ekleyin:
    EnableDeviceSelection = True
  2. Thread Group'tan topoloji yapılandırma dosyasını indirin. Bu dosyayı C:\GRL\Thread1.1\Thread_Harness\TestScripts öğesine TopologyConfig.txt olarak ekleyin. Bu dosyada, her test senaryosundaki her rol için hangi referans cihazın kullanılacağı ayrıntılı olarak açıklanmaktadır.

Thread Group tarafından sağlanan topoloji yapılandırma dosyası diğer karışık yatak yapılandırmaları için değiştirilebilir ancak resmi sertifika için orijinal yapılandırma kullanılmalıdır.

Topoloji yapılandırma dosyasında referans cihazlar için kullanılacak geçerli değerler şunlardır:

Topoloji yapılandırma dosyasındaki değer Test bandı referans cihazı
ARM ARM: NXP FRDM-K64F with Firefly 6LoWPAN Shield
NXP NXP(Freescale): USB-KW24D512 Dongle'ları
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: EM358x USB Stick

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

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

Test Bandı Otomatik 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 (Auto DUT) sunar.

OpenThread, Test Harness'ın bileşeninizi veya ürününüzü referans platformlardan biriymiş gibi kontrol etmesine olanak tanıyan bir Thread Host Controller Interface (THCI) örneği sunar. Belirli platformunuzun seri bağlantı noktası özelliklerine göre, test edilen cihazınız:

Mevcut OpenThread referans platformu olarak hareket etme

DUT'un seri bağlantı noktası 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 (ör. cihazın Windows makinesine geçerli bağlantısını onaylamak için) platform, OpenThread THCI aracını kullanabilir. Bu araç, test sırasında cihazın OpenThread referans platformu olarak hareket etmesine olanak tanır.

  1. Açıksa GRL Test Harness'ı kapatın.
  2. Cihazı Windows makinesine bağlayın.
  3. Python pySerial modülünü kullanarak cihazın seri bağlantı noktası donanım tanımlayıcısını bulun:
    1. Windows makineye pySerial'ı yükleyin.
    2. Makineye bağlı cihazların tüm donanım tanımlayıcılarını (VID ve PID) listelemek için Windows komut satırında Python'ı kullanın. Bu çıkışta, VID=1366 ve PID=1015 tanımlayıcısıyla bir cihaz bağlanmıştır:
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: USB\VID_1366+PID_1015+MI_00
    3. COM bağlantı noktasını zaten biliyorsanız farklı bir komut kullanabilirsiniz. Örneğin, COM bağlantı noktası COM10 ise:
      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. Altın Cihaz listesini güncelleyin:
    1. C:\GRL\Thread1.1\Config\Configuration.ini adlı kişiyi aç.
    2. GoldenDeviceHardwareIds dizisindeki OpenThread grubunu, cihazların VID ve PID'leriyle 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 etme

DUT'un seri bağlantı noktası uygun seri bağlantı noktası ayarları altında çalışmıyorsa veya cihaz, fiziksel cihaz sıfırlamasından sonra doğru şekilde yanıt vermiyorsa (sıfırlamadan sonraki 3-6 saniye içinde okunamaz kod çıkışı veriyorsa) OpenThread THCI, cihazı Test Harness'ta yeni bir platform olarak değerlendirecek şekilde özelleştirilebilir.

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

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

    1. OpenThread.py dosyasını nRF52840.py olarak yeniden adlandırın.
    2. "OpenThread" ifadesinin ilk üç örneğini "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 okunamaz kod çıkışı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 konumuna kopyalayın.

  4. Yeni platform bilgilerini Test Harness'a ekleyin:

    1. Platformunuzu diğerlerinden ayırmayı kolaylaştırmak için bir simge (png veya jpg biçiminde) oluşturun ve C:\GRL\Thread1.1\Web\images konumuna kopyalayın.
    2. C:\GRL\Thread1.1\Web\data\deviceInputFields.xml özelliğini yeni bir DEVICE bölümüyle güncelleyin. Bu bölümde thumbnail parametresi simge dosyasıdır:

      <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ın seri bağlantı noktası donanım tanımlayıcısını bulun:

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

    1. C:\GRL\Thread1.1\Config\Configuration.ini adlı kişiyi aç.
    2. GoldenDeviceHardwareIds dizisine cihazın VID ve PID'siyle 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ştirme

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

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