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ı Windows makinesinde gerçekleştirilir GRL Test Harness yazılımını çalıştırmanız gerekiyor. En yeni sürümü indirin ve yükleyin Şu tarihten önce GRL İş Parçacığı Testi: devam ediyor.

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

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

OpenThread Harness Otomasyon Aracı

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'a gidin.

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ı, dosyası olarak kaydedebilirsiniz.
  3. Şu parametreyi şu adreste bulunan Test Harness yapılandırma dosyasına ekleyin: C:\GRL\Thread1.1\Config\Configuration.ini:
    BrowserAutoNavigate = False

Karma test yatağı desteği

Harness Otomasyon Aracı, referansın referans noktasının olduğu karma test yataklarını da destekler. her test durumunda kullanılan tüm cihazlar değil, aynı zamanda bir dizi cihaz olanak tanır. Örneğin, çalışan 32 TI CC2538 kart kullanmak yerine Tüm test senaryoları için OpenThread'in dört Thread'ini de karıştırıp eşleştirebilirsiniz referans cihazları (ör. her test durumu için) belirleyin.

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

  1. Test Bandı yapılandırmasına aşağıdaki ek parametreyi ekleyin dosyası, C:\GRL\Thread1.1\Config\Configuration.ini adresinde bulundu:
    EnableDeviceSelection = True
  2. Thread'den topoloji yapılandırma dosyasını indirin Grup. Bu dosyayı TopologyConfig.txt olarak şuraya ekle: C:\GRL\Thread1.1\Thread_Harness\TestScripts. Bu dosya, her rol için kullanılacak bir referans cihazı belirler.

İleti Dizisi Grubu tarafından sağlanan topoloji yapılandırma dosyası şunun için değiştirilebilir: ancak resmi sertifikasyon için orijinal yapılandırması 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 Bandı referans cihazı
ARM ARM: Firefly 6LoWPAN Shield'a sahip NXP FRDM-K64F
NXP NXP(Freescale): USB-KW24D512 Dongle'lar
OpenThread OpenThread: TI CC2538DK
SiLabs SilAB'lar: EM358x USB Çubuğu

Topoloji yapılandırma dosyasındaki her test durumu girişi ayrı bir satırı ve role:device çifti olarak biçimlendirilmiştir:

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

Test Bandı Otomatik DUT modu

GRL Test Harness yazılımı, gelişmiş bir otomatik keşif özelliği sağlar. (Auto DUT) içeren bir ileti dizisi referans yığını için doğrulama sürecini hızlandırır. yardımcı olur.

OpenThread, örnek olarak Thread Host Controller Interface (THCI) (İş Parçacığı Denetleyici Arabirimi) Bu da Test Bandının, bileşeninizi veya ürününüzü gerçekmiş gibi referans platformlardan biri olabilir. Şu cihazın seri bağlantı noktası özelliklerine göre: DUT'niz şunlardan birini yapabilir:

Mevcut OpenThread referans platformu olarak hareket etme

DUT'nin seri bağlantı noktası, 115200 8-N-1 ayarları altında çalışıyorsa ve her fiziksel cihaz sıfırlamasından sonra doğru yanıt verdiğinden (örneğin, cihazın Windows makinesiyle geçerli bağlantısını onaylayın), ardından platformun OpenThread THCI aracını kullanabilirsiniz. Bu araç, cihazın Test sırasında OpenThread referans platformu.

  1. Açıksa GRL Test Bandını kapatın.
  2. Cihazı Windows makinesine takın.
  3. Python pySerial kullanarak cihaz seri bağlantı noktası donanım tanımlayıcısını bulun modül:
    1. pySerial'ı yükleme çalıştırdınız.
    2. Tüm donanımları numaralandırmak için Windows komut satırında Python kullanın tanımlayıcıları (VID ve PID) kullanır. Burada çıkışında, bir cihaz VID=1366 tanımlayıcısına bağlı ve PID=1015:
      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, ö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 güncelleme cihazların VID'si ve PID'si ile:
      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 platform olma

DUT'nin seri bağlantı noktası, uygun seri bağlantı noktası altında çalışmıyorsa veya fiziksel bir cihazdan sonra cihaz doğru yanıt vermiyorsa sıfırlama (sıfırlandıktan sonraki 3-6 saniye içinde okunamayan kod çıkar) ve ardından OpenThread THCI, Test'te cihazı yeni bir platform olarak değerlendirecek şekilde özelleştirilebilir Sırt Askısı.

Örneğin, THCI'yı Nordic yarıiletkeni kullanarak özelleştirmek için nRF52840 platformu:

  1. Açıksa GRL Test Bandını kapatın.
  2. Değiştir: /tools/harness-thci/OpenThread.py hedef cihazın UART özelliklerine dayanır. Değişiklikler hedef cihazlar arasında farklılık gösterir. Nordic nRF52840 platformu için:

    1. OpenThread.py dosyasının adını nRF52840.py olarak değiştirin.
    2. "OpenThread"in ilk üç örneğini değiştirme "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. Okunamaz kod çıkışının etkisini ortadan kaldırmak için uyku süresini değiştirin Cihaz sıfırlandıktan sonra:

      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 hedefine kopyalayın

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

    1. Daha kolay ayırt edebilmek için bir simge (png veya jpg biçiminde) oluşturun platformunuzu seçip C:\GRL\Thread1.1\Web\images klasörüne kopyalayın.
    2. C:\GRL\Thread1.1\Web\data\deviceInputFields.xml uygulamasını yeni bir thumbnail parametresinin simge dosyası olduğu DEVICE bölümü:

      <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 takın.

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

    1. pySerial'ı yükleme çalıştırdınız.
    2. Tüm donanımları numaralandırmak için Windows komut satırında Python kullanın tanımlayıcıları (VID ve PID) kullanır. Burada çıkışında, bir cihaz VID=1366 tanımlayıcısına bağlı ve PID=1015:
      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, ö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 yeni bir platform grubu ekleyin cihazın VID'si ve PID'si ile:
      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 Bandı'nı açın. Cihaz/bağlantı noktası artık yeni bir referans olarak görünür. olanak tanır.
  2. Desteklenenler bölümünün altındaki Otomatik DUT Cihaz Seçimini Etkinleştir onay kutusunu seçin Donanım listesi.
  3. Ayarlamak için hedef cihazın/bağlantı noktasının altındaki DUT olarak ayarla radyo düğmesini seçin DUT olarak adlandırabilirsiniz.
OT Sertifikası Otomatik DUT