谷歌致力于推进种族平等的黑人社区。 怎么看。
此页面由 Cloud Translation API 翻译。
Switch to English

认证安装自动化

要自动完成认证测试,则需要额外的设置。

下面所有的安装和配置步骤运行GRL测试工具软件在Windows机器上出现。下载并安装最新的GRL线程测试工具 ,然后再继续。

一旦安装完毕,存在用于被测器件(DUT)2种的自动化方法:

  1. 线束的OpenThread自动化工具
  2. 测试工具自动DUT模式

线束的OpenThread自动化工具

安装

  1. 安装以下软件:
    • Python 2.7版
    • 混帐的Windows(Bash的支持,强烈推荐)
  2. 克隆库的OpenThread拿到自动化脚本:
    git clone https://github.com/openthread/openthread
    
  3. 安装Python要求:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. 同时安装谷歌Chrome浏览器ChromeDriver

配置

  1. 创建自动化工具的配置文件:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. 根据文件中的说明更新新的配置文件。
  3. 以下参数添加到测试工具的配置文件,在找到C:\GRL\Thread1.1\Config\Configuration.ini
    BrowserAutoNavigate = False

混合测试平台支持

线束自动化工具还支持混合测试平台,其中,在每个测试情况下使用的参考设备是一套混合的设备,而不是全部相同的设备。例如,代替使用运行于的OpenThread所有测试用例32个TI CC2538板,可以混合并根据需要为每个测试用例所有四个螺纹参考设备之间匹配。

使用混合测试平台,其他配置是必要的:

  1. 下面的附加参数添加到测试工具的配置文件,在找到C:\GRL\Thread1.1\Config\Configuration.ini
    EnableDeviceSelection = True
  2. 请从线程组的拓扑配置文件 。这个文件添加为TopologyConfig.txtC:\GRL\Thread1.1\Thread_Harness\TestScripts 。该文件详述该参考设备使用在每个测试用例中的每个角色。

由线程组所提供的拓扑配置文件可以被修改为其它混床的配置,但对于官方认证,必须使用原来的配置。

要使用的拓扑配置文件中参考设备的有效值为:

在拓扑配置文件中的值测试工具的参考设备
ARM ARM:NXP FRDM-K64F与萤火虫6LoWPAN的盾
NXP 恩智浦半导体(飞思卡尔):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测试工具软件提供了一个先进的自动发现功能(自动DUT),这加速了线程堆栈参考厂商的验证过程。

的OpenThread提供了一个示例线程主机控制器接口(THCI) ,其允许测试工具来控制你的部件或产品,好像它是的基准平台之一。根据您的特定平台的串行端口特性,您的DUT既可以:

作为现有参考的OpenThread平台

如果被测设备功能下的115200 8-N-1,和设备设置串行端口的每一个物理设备复位后正确响应(例如,以确认设备到Windows机器有效的连接),则该平台可以使用THCI的OpenThread工具。该工具允许设备在测试过程中充当参考的OpenThread平台。

  1. 关闭GRL测试工具,如果它是开放的。
  2. 将设备连接到Windows机器。
  3. 找到该设备串行端口硬件标识符,使用Python pySerial模块:
    1. 安装pySerial在Windows机器上。
    2. Windows命令行上使用Python枚举用于连接到机器设备的所有硬件标识符(VID和PID)。在该输出中,一个装置与VID = 1366和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端口已经,您可以使用不同的命令。例如,如果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']
  4. 更新金设备列表:
    1. 打开C:\GRL\Thread1.1\Config\Configuration.ini
    2. 更新在组的OpenThread 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', 'VID:PID=1366:1015' ]}
  5. 启用自动DUT模式

作为一个新的参考设计平台

如果DUT的串行端口不起作用下正确的串行端口设置,或该设备不物理设备复位后正确响应(3-6秒复位的内输出不可读代码),然后THCI的OpenThread可定制治疗该设备作为测试工具的新平台。

例如,使用自定义THCI Nordic半导体nRF52840平台:

  1. 关闭GRL测试工具,如果它是开放的。
  2. 修改/tools/harness-thci/OpenThread.py基于目标设备的UART特性。修饰可以目标设备之间是不同的。在北欧nRF52840平台的情况下:

    1. 重命名OpenThread.py文件nRF52840.py
    2. 更改前三个事件“的OpenThread”到“nRF52840”的:

       >> Device : nRF52840 THCI
      >> Class : nRF52840
      
      class nRF52840(IThci):
       
    3. 改变串口参数:

      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. 更改睡眠时间,以消除不可读码输出的设备复位后的影响:

      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. 复制修改nRF52840.py文件到C:\GRL\Thread1.1\Thread_Harness\THCI

  4. 添加新的信息平台对测试工具:

    1. 创建一个图标(PNG或JPG格式),使其更容易区分你的平台,并将其复制到C:\GRL\Thread1.1\Web\images
    2. 更新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>
       
  5. 将设备连接到Windows机器。

  6. 找到该设备串行端口硬件标识符,使用Python pySerial模块:

    1. 安装pySerial在Windows机器上。
    2. Windows命令行上使用Python枚举用于连接到机器设备的所有硬件标识符(VID和PID)。在该输出中,一个装置与VID = 1366和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端口已经,您可以使用不同的命令。例如,如果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']
  7. 更新金设备列表:

    1. 打开C:\GRL\Thread1.1\Config\Configuration.ini
    2. 添加新的平台组中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' }
  8. 启用自动DUT模式

启用自动DUT模式

两个以上的配置选项中的一个之后完成:

  1. 打开GRL测试工具,所述装置/端口现在显示为一个新的参考装置。
  2. 选择支持的硬件列表下方的启用自动DUT设备选择复选框。
  3. 选择目标设备/端口下设为DUT单选按钮,该装置设置为DUT。
OT认证自动DUT