Untuk mengotomatiskan pengujian sertifikasi, diperlukan penyiapan tambahan.
Semua langkah penginstalan dan konfigurasi di bawah dilakukan di komputer Windows yang menjalankan software GRL Test Harness. Download dan instal GRL Thread Test Harness terbaru sebelum melanjutkan.
Setelah diinstal, ada dua metode otomatisasi untuk perangkat yang sedang diuji (DUT):
Alat Otomatisasi Harness OpenThread
Instal
- Instal software berikut:
- Python 2.7
- Git untuk Windows (sangat direkomendasikan untuk mendukung Bash)
- Buat clone repositori OpenThread untuk mendapatkan skrip otomatisasi:
git clone https://github.com/openthread/openthread - Instal persyaratan Python:
cd tools/harness-automationpip install -r requirements.txt - Instal Google Chrome dan ChromeDriver.
Konfigurasi
- Buat file konfigurasi untuk alat otomatisasi:
cp autothreadharness/settings_sample.py autothreadharness/settings.py - Perbarui file konfigurasi baru tersebut sesuai dengan petunjuk dalam file.
- Tambahkan parameter berikut ke file konfigurasi Test Harness, yang ada di
C:\GRL\Thread1.1\Config\Configuration.ini:BrowserAutoNavigate = False
Dukungan testbed campuran
Alat Otomatisasi Harness juga mendukung testbed campuran, tempat perangkat rujukan yang digunakan dalam setiap kasus pengujian adalah kumpulan perangkat campuran, bukan semua perangkat yang sama. Misalnya, alih-alih menggunakan 32 papan TI CC2538 yang menjalankan OpenThread untuk semua kasus pengujian, Anda dapat mencampur dan mencocokkan keempat perangkat referensi Thread untuk setiap kasus pengujian sesuai keinginan.
Untuk menggunakan platform pengujian campuran, konfigurasi tambahan diperlukan:
- Tambahkan parameter tambahan berikut ke file konfigurasi Test Harness, yang ada di
C:\GRL\Thread1.1\Config\Configuration.ini:EnableDeviceSelection = True
- Download file konfigurasi topologi dari Thread
Group.
Tambahkan file ini sebagai
TopologyConfig.txtkeC:\GRL\Thread1.1\Thread_Harness\TestScripts. File ini menjelaskan perangkat referensi yang akan digunakan untuk setiap peran dalam setiap kasus pengujian.
File konfigurasi topologi yang disediakan oleh Thread Group dapat diubah untuk konfigurasi tempat tidur campuran lainnya, tetapi untuk sertifikasi resmi, konfigurasi asli harus digunakan.
Nilai valid yang akan digunakan untuk perangkat referensi dalam file konfigurasi topologi adalah:
| Nilai dalam file konfigurasi topologi | Perangkat referensi Test Harness |
|---|---|
ARM |
ARM: NXP FRDM-K64F dengan Firefly 6LoWPAN Shield |
NXP |
NXP(Freescale): Dongle USB-KW24D512 |
OpenThread |
OpenThread: TI CC2538DK |
SiLabs |
Silabs: EM358x USB Stick |
Setiap entri kasus pengujian dalam file konfigurasi topologi harus berada di baris terpisah dan diformat dalam pasangan role:device sebagai berikut:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
Mode DUT Otomatis Test Harness
Software GRL Test Harness menyediakan fitur penemuan otomatis tingkat lanjut (DUT Otomatis) yang mempercepat proses validasi untuk vendor stack referensi Thread.
OpenThread menyediakan contoh Thread Host Controller Interface (THCI) yang memungkinkan Test Harness mengontrol komponen atau produk Anda seolah-olah itu adalah salah satu platform referensi. Menurut karakteristik port serial platform spesifik Anda, DUT Anda dapat:
Bertindak sebagai platform referensi OpenThread yang ada
Jika port serial DUT berfungsi di bawah setelan 115200 8-N-1, dan perangkat merespons dengan benar setelah setiap reset perangkat fisik (misalnya, untuk mengonfirmasi koneksi perangkat yang valid ke mesin Windows), maka platform dapat menggunakan alat THCI OpenThread. Alat ini memungkinkan perangkat berfungsi sebagai platform referensi OpenThread selama pengujian.
- Tutup GRL Test Harness jika terbuka.
- Hubungkan perangkat ke mesin Windows.
- Temukan ID hardware port serial perangkat, menggunakan modul pySerial Python:
- Instal pySerial di komputer Windows.
- Gunakan Python di command line Windows untuk mencantumkan semua ID hardware (VID dan PID) untuk perangkat yang terhubung ke mesin. Dalam
output ini, satu perangkat terhubung dengan ID VID=1366 dan
PID=1015:
python -m serial.tools.list_ports -vCOM10desc: USB Serial Port (COM10)hwid: USB\VID_1366+PID_1015+MI_00 - Jika sudah mengetahui port COM, Anda dapat menggunakan perintah lain. Misalnya, jika port COM adalah
COM10: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']
- Perbarui daftar Perangkat Unggulan:
- Buka
C:\GRL\Thread1.1\Config\Configuration.ini. - Perbarui grup OpenThread dalam array
GoldenDeviceHardwareIdsdengan VID dan PID perangkat: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']}
- Buka
- Aktifkan mode DUT Otomatis.
Berfungsi sebagai platform referensi baru
Jika port serial DUT tidak berfungsi dengan setelan port serial yang tepat, atau perangkat tidak merespons dengan benar setelah perangkat direset secara fisik (menghasilkan kode yang tidak dapat dibaca dalam waktu 3-6 detik setelah direset), maka THCI OpenThread dapat disesuaikan untuk memperlakukan perangkat sebagai platform baru di Test Harness.
Misalnya, untuk menyesuaikan THCI menggunakan platform Nordic Semiconductor nRF52840:
- Tutup GRL Test Harness jika terbuka.
Ubah
/tools/harness-thci/OpenThread.pyberdasarkan karakteristik UART perangkat target. Perubahan dapat berbeda di antara perangkat target. Dalam kasus platform Nordic nRF52840:- Ganti nama file
OpenThread.pymenjadinRF52840.py. Ubah tiga kemunculan pertama "OpenThread" menjadi "nRF52840":
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):Ubah parameter port serial:
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()Ubah waktu tunggu agar tidak ada dampak dari output kode yang tidak dapat dibaca setelah perangkat direset:
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)
- Ganti nama file
Salin file
nRF52840.pyyang telah diubah keC:\GRL\Thread1.1\Thread_Harness\THCITambahkan informasi platform baru ke Test Harness:
- Buat ikon (dalam format png atau jpg) untuk mempermudah membedakan platform Anda dan salin ke
C:\GRL\Thread1.1\Web\images. Perbarui
C:\GRL\Thread1.1\Web\data\deviceInputFields.xmldengan bagianDEVICEbaru, dengan parameterthumbnailadalah file ikon:<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>
- Buat ikon (dalam format png atau jpg) untuk mempermudah membedakan platform Anda dan salin ke
Hubungkan perangkat ke mesin Windows.
Temukan ID hardware port serial perangkat, menggunakan modul pySerial Python:
- Instal pySerial di komputer Windows.
- Gunakan Python di command line Windows untuk mencantumkan semua ID hardware (VID dan PID) untuk perangkat yang terhubung ke mesin. Dalam
output ini, satu perangkat terhubung dengan ID VID=1366 dan
PID=1015:
python -m serial.tools.list_ports -vCOM10desc: USB Serial Port (COM10)hwid: USB\VID_1366+PID_1015+MI_00 - Jika sudah mengetahui port COM, Anda dapat menggunakan perintah lain. Misalnya, jika port COM adalah
COM10: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']
Perbarui daftar Perangkat Emas:
- Buka
C:\GRL\Thread1.1\Config\Configuration.ini. - Tambahkan grup platform baru dalam array
GoldenDeviceHardwareIdsdengan VID dan PID perangkat: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'}
- Buka
Mengaktifkan mode DUT Otomatis
Setelah salah satu dari dua opsi konfigurasi di atas selesai:
- Buka GRL Test Harness, perangkat/port kini muncul sebagai perangkat referensi baru.
- Centang kotak Enable Auto DUT Device Selection di bawah daftar Hardware yang Didukung.
- Pilih tombol pilihan Setel sebagai DUT di bagian perangkat/port target untuk menyetel perangkat sebagai DUT.