認定資格テストを自動化するには、追加の設定が必要です。
以下のインストールと構成の手順はすべて、Windows マシンで実行します。 GRL Test Harness ソフトウェアの実行と、最新の GRL Thread テストハーネスを 続けます。
インストール後、テスト対象デバイスには 2 つの自動化方法があります (DUT):
OpenThread ハーネス自動化ツール
インストール
- 次のソフトウェアをインストールします。
<ph type="x-smartling-placeholder">
- </ph>
- Python 2.7
- Git for Windows(Bash のサポートを強く推奨)
- OpenThread リポジトリのクローンを作成して、自動化スクリプトを取得します。
git clone https://github.com/openthread/openthread
- Python の要件をインストールします。
cd tools/harness-automation
pip install -r requirements.txt
- Google Chrome と ChromeDriver。
設定
- 自動化ツールの構成ファイルを作成します。
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- 新しい構成ファイルを 表示されます。
- 次のパラメータをテストハーネス構成ファイルに追加します。
C:\GRL\Thread1.1\Config\Configuration.ini
:BrowserAutoNavigate = False
混合 testbed サポート
ハーネス自動化ツールは、複数の testbed もサポートしており、 各テストケースで使用されるデバイスは、すべてのデバイスではなく、 接続しますたとえば、32 個の TI CC2538 ボードを使用する代わりに、 すべてのテストケースで OpenThread を使用し、4 つの Thread すべてで組み合わせが可能 必要に応じて各テストケースの参照デバイスを指定できます
混合 testbed を使用するには、追加の構成が必要です。
- テストハーネスの構成に次のパラメータを追加します。
ファイルは
C:\GRL\Thread1.1\Config\Configuration.ini
にあります。EnableDeviceSelection = True
- Thread からトポロジ構成ファイルをダウンロードする
グループ。
このファイルを
TopologyConfig.txt
として以下に追加します。C:\GRL\Thread1.1\Thread_Harness\TestScripts
。このファイルには、 各テストケースのロールごとに使用する参照デバイス。
スレッド グループによって提供されるトポロジ構成ファイルは、 他の混合ベッド構成。ただし、正式な認証にはオリジナル 使用する必要があります。
トポロジ構成ファイル内の参照デバイスに使用する有効な値 次のとおりです。
トポロジ構成ファイルの値 | テストハーネスのリファレンス デバイス |
---|---|
ARM |
ARM: NXP FRDM-K64F(Firefly 6LoWPAN シールド) |
NXP |
NXP(Freescale): USB-KW24D512 ドングル |
OpenThread |
OpenThread:TI CC2538DK |
SiLabs |
SIlabs: EM358x USB スティック |
トポロジ構成ファイルの各テストケース エントリは、
次のように role:device
ペアでフォーマットします。
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
テストハーネスの自動 DUT モード
GRL テストハーネス ソフトウェアの高度な自動検出機能 (Auto DUT)であり、Thread 参照スタックの検証プロセスを高速化します。 提供します。
OpenThread は Thread ホスト コントローラ インターフェース(THCI) これにより、テストハーネスがコンポーネントやプロダクトを、 参照プラットフォームの一つですGoogle Cloud のシリアルポート特性に応じて、 DUT は次のいずれかを実行できます。
既存の OpenThread リファレンス プラットフォームとして機能
DUT のシリアルポートが 115200 8-N-1 の設定で機能し、 デバイスは、物理デバイスがリセットされるたびに正しく応答する(たとえば、 デバイスが Windows マシンに正しく接続されていることを確認する] をクリックし、プラットフォームが OpenThread THCI ツールを使用できますこのツールを使用して、デバイスは テスト中の OpenThread リファレンス プラットフォーム。
- GRL テストハーネスが開いている場合は閉じます。
- デバイスを Windows マシンに接続します。
- Python pySerial を使用して、デバイスのシリアルポートのハードウェア識別子を検索します。
説明します。
<ph type="x-smartling-placeholder">
- </ph>
- pySerial をインストールする インストールして実行します。
- Windows コマンドラインで Python を使用してすべてのハードウェアを列挙する
マシンに接続されているデバイスの識別子(VID と PID)この
1 つのデバイスが VID=1366 の識別子で接続されており、
PID=1015:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- すでに COM ポートがわかっている場合は、別のコマンドを使用できます。対象
COM ポートが
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']
- ゴールデン デバイスのリストを更新します。
<ph type="x-smartling-placeholder">
- </ph>
C:\GRL\Thread1.1\Config\Configuration.ini
を開きます。GoldenDeviceHardwareIds
配列の OpenThread グループを更新する デバイスの VID と PID を含む: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']}
- Auto DUT モードを有効にします。
新しいリファレンス プラットフォームとして機能
DUT のシリアルポートが適切なシリアルポートで機能しない場合 設定している、または物理デバイスが応答した後でデバイスが正しく応答しない リセット(リセットから 3 ~ 6 秒以内に判読不能なコードを出力)し、OpenThread を THCI をカスタマイズして、テスト環境でデバイスを新しいプラットフォームとして扱うことができます。 活用する。
たとえば、Nordic Semiconductor を使用して THCI をカスタマイズするには、 nRF52840 プラットフォーム:
- GRL テストハーネスが開いている場合は閉じます。
/tools/harness-thci/OpenThread.py
を変更する ターゲット デバイスの UART 特性に基づきます。改変は、 ターゲット デバイスによって異なります。Nordic nRF52840 プラットフォームの場合:OpenThread.py
ファイルの名前をnRF52840.py
に変更します。最初の 3 つの「OpenThread」を変更する"nRF52840":
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):
シリアルポートのパラメータを変更します。
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()
スリープ時間を変更して、読み取り不能なコード出力の影響を排除する デバイスのリセット後:
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)
変更した
nRF52840.py
ファイルをC:\GRL\Thread1.1\Thread_Harness\THCI
にコピーします。新しいプラットフォーム情報をテストハーネスに追加します。
- 区別しやすいようにアイコンを png 形式または jpg 形式で作成する
C:\GRL\Thread1.1\Web\images
にコピーします。 C:\GRL\Thread1.1\Web\data\deviceInputFields.xml
を新しいDEVICE
セクション。ここで、thumbnail
パラメータはアイコン ファイルです。<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>
- 区別しやすいようにアイコンを png 形式または jpg 形式で作成する
デバイスを Windows マシンに接続します。
Python pySerial を使用して、デバイスのシリアルポートのハードウェア識別子を検索します。 説明します。
- pySerial をインストールする インストールして実行します。
- Windows コマンドラインで Python を使用してすべてのハードウェアを列挙する
マシンに接続されているデバイスの識別子(VID と PID)この
1 つのデバイスが VID=1366 の識別子で接続されており、
PID=1015:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- すでに COM ポートがわかっている場合は、別のコマンドを使用できます。対象
COM ポートが
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']
ゴールデン デバイスのリストを更新します。
C:\GRL\Thread1.1\Config\Configuration.ini
を開きます。GoldenDeviceHardwareIds
配列に新しいプラットフォーム グループを追加する デバイスの VID と PID に置き換えます。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'}
Auto DUT モードを有効にする
上記の 2 つの構成オプションのいずれかが完了したら、次の操作を行います。
- GRL テストハーネスを開くと、デバイス/ポートが新しいリファレンスとして表示されるようになります ダウンロードします
- [サポート対象] の下にある [Enable Auto DUT Device Selection] チェックボックスをオンにします。 ハードウェアのリスト。
- 設定するターゲット デバイス/ポートの [Set as DUT] ラジオボタンを選択します。 DUT として使用します。