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):
OpenThread Koşu Otomasyonu Aracı
Yükle
- Aşağıdaki yazılımı yükleyin:
- Python 2.7
- Windows için Git (Bash desteği kesinlikle önerilir)
- Otomasyon komut dosyalarını almak için OpenThread deposunu klonlayın:
git clone https://github.com/openthread/openthread
- Python gereksinimlerini yükleyin:
cd tools/harness-automation
pip install -r requirements.txt
- Hem Google Chrome hem de ChromeDriver'ı yükleyin.
Yapılandır
- Otomasyon aracı için bir yapılandırma dosyası oluşturun:
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- Bu yeni yapılandırma dosyasını dosyadaki talimatlara göre güncelleyin.
- 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:
- 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
- Threading Group'tan topoloji yapılandırma dosyasını indirin.
Bu dosyayı
C:\GRL\Thread1.1\Thread_Harness\TestScripts
hesabınaTopologyConfig.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.
- GRL Test Koşusu'nu (açıksa) kapatın.
- Cihazı Windows makinesine bağlayın.
- Python pySerial modülünü kullanarak cihazın seri bağlantı noktası donanımı tanımlayıcısını bulun:
- Windows makinesine pySerial yükleyin.
- 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
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- 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']
- Altın Cihaz listesini güncelleyin:
C:\GRL\Thread1.1\Config\Configuration.ini
'yi açın.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']}
- 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:
- GRL Test Koşusu'nu (açıksa) kapatın.
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:OpenThread.py
dosyasınınRF52840.py
olarak yeniden adlandırın."OpenThread" uygulamasının ilk üç hâlini "nRF52840" olarak değiştirin:
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):
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()
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)
Değiştirilen
nRF52840.py
dosyasınıC:\GRL\Thread1.1\Thread_Harness\THCI
klasörüne kopyalaYeni platform bilgilerini Test Bandı'na ekleme:
- 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). C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
öğesini yeni birDEVICE
bölümüyle güncelleyin. Buradathumbnail
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>
- Platformunuzu farklı kılmayı ve
Cihazı Windows makinesine bağlayın.
Python pySerial modülünü kullanarak cihazın seri bağlantı noktası donanımı tanımlayıcısını bulun:
- Windows makinesine pySerial yükleyin.
- 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
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- 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']
Altın Cihaz listesini güncelleyin:
C:\GRL\Thread1.1\Config\Configuration.ini
'yi açın.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'}
Otomatik DUT modunu etkinleştir
Yukarıdaki iki yapılandırma seçeneğinden biri tamamlandıktan sonra:
- GRL Test Koşusunu açın. Cihaz/bağlantı noktası artık yeni bir referans cihaz olarak görünür.
- Desteklenen Donanım listesinin altındaki Otomatik DUT Cihaz Seçimini Etkinleştir onay kutusunu işaretleyin.
- Cihazı DUT olarak ayarlamak için hedef cihazın/bağlantı noktasının altındaki DUT olarak ayarla radyo düğmesini seçin.
