구글은 블랙 사회를위한 인종 평등을 증진하기 위해 최선을 다하고 있습니다. 방법을 참조하십시오.
이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

인증 자동화 설정

인증 시험을 자동화하기 위해 추가 설정이 필요합니다.

모든 설치 및 구성 단계 아래의 GRL 테스트 장치 소프트웨어를 실행하는 Windows 시스템에서 발생합니다. 다운로드하고 최신 설치 GRL 스레드 테스트 장치를 계속하기 전에.

일단 설치되면, DUT (Device Under Test)로 두 자동화 방법이있다 :

  1. OpenThread 하네스 자동화 도구
  2. 테스트 장치 자동 DUT 모드

OpenThread 하네스 자동화 도구

설치

  1. 다음과 같은 소프트웨어를 설치합니다 :
    • 파이썬 2.7
    • Windows 용 망할 놈의 (배쉬 지원이 좋습니다)
  2. 복제는 OpenThread 저장소는 자동화 스크립트를 얻을 수 있습니다 :
    git clone https://github.com/openthread/openthread
    
  3. 파이썬 요구 사항을 설치합니다
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. 모두 설치 구글 크롬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
NXP 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, 장치의 설정에서 DUT 기능의 직렬 포트 (예를 들어, Windows 시스템에 장치의 올바른 연결을 확인하기 위해) 모든 물리적 장치 리셋 후 정확하게 응답하는 경우, 다음 플랫폼은을 사용할 수 있습니다 OpenThread THCI 도구입니다. 이 도구는 테스트 중에 OpenThread 레퍼런스 플랫폼 역할을 할 수있는 장치를 할 수 있습니다.

  1. 열려있는 경우 GRL 테스트 장치를 닫습니다.
  2. Windows 시스템에 장치를 연결합니다.
  3. 파이썬 pySerial 모듈을 이용하여, 디바이스 시리얼 포트 하드웨어 식별자를 찾기 :
    1. pySerial 설치 Windows 시스템에.
    2. Windows 명령 줄을 사용하여 파이썬은 컴퓨터에 연결된 장치에 대한 모든 하드웨어 식별자 (VID와 PID)를 열거합니다. 이 출력에서, 하나의 장치 및 VID = 1,366 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 초 내에 읽을 코드를 출력한다)이면 OpenThread THCI을 치료하기 위해 정의 될 수있다 테스트 장치의 새로운 플랫폼으로 장치.

예를 들어, 사용 THCI을 사용자 정의 노르딕 세미 컨덕터 nRF52840의 플랫폼 :

  1. 열려있는 경우 GRL 테스트 장치를 닫습니다.
  2. 수정 /tools/harness-thci/OpenThread.py 대상 장치의 UART 특성에 기초. 수정 대상 디바이스마다 다를 수있다. 북유럽 nRF52840 플랫폼의 경우 :

    1. 이름 바꾸기 OpenThread.py 에 파일 nRF52840.py .
    2. "nRF52840"에서 "OpenThread"의 처음 세 항목을 변경 :

       >> 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. 파이썬 pySerial 모듈을 이용하여, 디바이스 시리얼 포트 하드웨어 식별자를 찾기 :

    1. pySerial 설치 Windows 시스템에.
    2. Windows 명령 줄을 사용하여 파이썬은 컴퓨터에 연결된 장치에 대한 모든 하드웨어 식별자 (VID와 PID)를 열거합니다. 이 출력에서, 하나의 장치 및 VID = 1,366 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