Sertifika Otomasyonu Kurulumu

Sertifikasyon 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ı çalıştıran Windows makinesinde uygulanır. Devam etmeden önce en yeni GRL Thread Test Harness'ı indirip yükleyin.

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

  1. OpenThread Koşu Otomasyonu Aracı
  2. Test Koşusu Otomatik DUT modu

OpenThread Koşu Otomasyonu Aracı

Yükle

  1. Aşağıdaki yazılımı yükleyin:
    • Python 2.7
    • Windows için Git (Bash desteği kesinlikle önerilir)
  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 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 adresinde bulunan Test Takımı Yapılandırma dosyasına ekleyin:
    BrowserAutoNavigate = False

Karma test yatak desteği

Koşum Otomasyonu Aracı aynı zamanda her bir test durumunda kullanılan referans cihazların aynı cihaz yerine karma bir cihaz grubu olduğu karma test yataklarını destekler. Örneğin, tüm test durumları için OpenThread çalıştıran 32 TI CC2538 panosu kullanmak yerine, her test durumu için dört İş Parçacığı referans cihazının tümünü karıştırıp eşleştirebilirsiniz.

Karma test yatakları kullanmak için ek yapılandırma gerekir:

  1. Aşağıdaki ek parametreyi C:\GRL\Thread1.1\Config\Configuration.ini adresinde bulunan Test Takımı Yapılandırma dosyasına ekleyin:
    EnableDeviceSelection = True
  2. Threading Group'tan topoloji yapılandırma dosyasını indirin. Bu dosyayı C:\GRL\Thread1.1\Thread_Harness\TestScripts hesabına TopologyConfig.txt olarak ekleyin. Bu dosya, her bir test durumundaki her rol için hangi cihazın kullanılacağını ayrıntılı olarak açıklar.

Thread Group tarafından sağlanan topology yapılandırma dosyası diğer karma 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ındaki referans cihazlar için kullanılacak geçerli değerler şunlardır:

Topoloji yapılandırma dosyasındaki değer Test Koşusu referans cihazı
ARM ARM: Firefly 6LoWPAN Kalkanı ile NXP FRDM-K64F
NXP NXP(Freescale): USB-KW24D512 Dongle'lar
OpenThread OpenThread: TI CC2538DK
SiLabs Silbbon'lar: EM358x USB Stick

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

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

Harness Auto otomatik DUT modunu test et

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

OpenThread, Test Koşusu'nun bileşeninizi veya ürününüzü referans platformlardan biri gibi kontrol etmesine olanak tanıyan bir İleti Dizisi Barındırıcısı Denetleyici Arayüzü (THCI) örneği sunar. İşletmenizin platformunun seri bağlantı noktası özelliklerine göre, DUT'nuz aşağıdakilerden birini yapabilir:

Mevcut OpenThread referans platformu olarak hareket etme

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

  1. GRL Test Koşusu'nu (açıksa) 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 makinesine pySerial yükleyin.
    2. Makineye bağlı cihazlar için tüm donanım tanımlayıcılarını (VID ve PID) numaralandırmak amacıyla Windows komut satırında Python kullanın. Bu çıkışta, bir cihaz VID=1366 ve PID=1015 tanımlayıcısıyla bağlanı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'yi açın.
    2. GoldenDeviceHardwareIds dizisindeki OpenThread grubunu, cihazların VID ve PID değerleriyle 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 Dudu modunu etkinleştirin.

Yeni bir referans platformu olarak faaliyet gösterme

DUT'un seri bağlantı noktası, uygun seri bağlantı noktası ayarları altında çalışmıyorsa veya fiziksel bir cihaz sıfırlandıktan sonra cihaz doğru şekilde yanıt vermiyorsa (sıfırlandıktan sonra 3-6 saniye içinde okunamayan bir kod çıkarırsa), OpenThread THCI, Test Testi'nde cihazı yeni bir platform olarak ele almak için özelleştirilebilir.

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

  1. GRL Test Koşusu'nu (açıksa) kapatın.
  2. Hedef cihazın UART özelliklerine göre /tools/harness-thci/OpenThread.py değiştirin. Değişiklikler, hedef cihazlara göre değişiklik gösterebilir. Nordic nRF52840 platformu için:

    1. OpenThread.py dosyasını nRF52840.py olarak yeniden adlandırın.
    2. "OpenThread" uygulamasının ilk üç hâlini "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 çı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 klasörüne kopyala

  4. Yeni platform bilgilerini Test Bandı'na ekleme:

    1. Platformunuzu farklı kılmayı ve C:\GRL\Thread1.1\Web\images ürününe kopyalamayı kolaylaştırmak için bir simge oluşturun (png veya jpg biçiminde).
    2. C:\GRL\Thread1.1\Web\data\deviceInputFields.xml öğesini yeni bir DEVICE bölümüyle güncelleyin. Burada 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 makinesine pySerial yükleyin.
    2. Makineye bağlı cihazlar için tüm donanım tanımlayıcılarını (VID ve PID) numaralandırmak amacıyla Windows komut satırında Python kullanın. Bu çıkışta, bir cihaz VID=1366 ve PID=1015 tanımlayıcısıyla bağlanı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'yi açın.
    2. GoldenDeviceHardwareIds dizisine, cihazın VID ve PID değerlerini içeren 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 Dudu modunu etkinleştirin.

Otomatik DUT modunu etkinleştir

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

  1. GRL Test Koşusunu 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 işaretleyin.
  3. Cihazı DUT olarak ayarlamak için hedef cihazın/bağlantı noktasının altındaki DUT olarak ayarla radyo düğmesini seçin.
OT Sertifikasyonu Otomatik DUT