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):
OpenThread Harness Otomasyon Aracı
Yükle
- Aşağıdaki yazılımları yükleyin:
- Python 2.7
- Windows için Git (Bash desteği önemle tavsiye edilir)
- 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'u hem de ChromeDriver'a gidin.
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ı, dosyası olarak kaydedebilirsiniz.
- Ş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:
- Test Bandı yapılandırmasına aşağıdaki ek parametreyi ekleyin
dosyası,
C:\GRL\Thread1.1\Config\Configuration.ini
adresinde bulundu:EnableDeviceSelection = True
- 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.
- Açıksa GRL Test Bandını kapatın.
- Cihazı Windows makinesine takın.
- Python pySerial kullanarak cihaz seri bağlantı noktası donanım tanımlayıcısını bulun
modül:
- pySerial'ı yükleme çalıştırdınız.
- 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
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,
ö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
adlı kişiyi aç.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']}
- 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:
- Açıksa GRL Test Bandını kapatın.
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:OpenThread.py
dosyasının adınınRF52840.py
olarak değiştirin."OpenThread"in ilk üç örneğini değiştirme "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()
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)
Değiştirilen
nRF52840.py
dosyasınıC:\GRL\Thread1.1\Thread_Harness\THCI
hedefine kopyalayınYeni platform bilgilerini Test Bandı'na ekleyin:
- 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. C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
uygulamasını yeni birthumbnail
parametresinin simge dosyası olduğuDEVICE
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>
- Daha kolay ayırt edebilmek için bir simge (png veya jpg biçiminde) oluşturun
platformunuzu seçip
Cihazı Windows makinesine takın.
Python pySerial kullanarak cihaz seri bağlantı noktası donanım tanımlayıcısını bulun modül:
- pySerial'ı yükleme çalıştırdınız.
- 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
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,
ö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
adlı kişiyi aç.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'}
Otomatik DUT modunu etkinleştir
Yukarıdaki iki yapılandırma seçeneğinden biri tamamlandıktan sonra:
- GRL Test Bandı'nı açın. Cihaz/bağlantı noktası artık yeni bir referans olarak görünür. olanak tanır.
- Desteklenenler bölümünün altındaki Otomatik DUT Cihaz Seçimini Etkinleştir onay kutusunu seçin Donanım listesi.
- 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.