Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

راه اندازی اتوماسیون صدور گواهینامه

برای خودکار کردن تست های صدور گواهینامه ، تنظیمات اضافی لازم است.

تمام مراحل نصب و پیکربندی زیر بر روی دستگاه ویندوز است که از نرم افزار GRL Test Harness استفاده می کند. قبل از ادامه آخرین GRL Thread Test Harness را بارگیری و نصب کنید.

پس از نصب ، دو روش اتوماسیون برای دستگاه تحت آزمایش (DUT) وجود دارد:

  1. ابزار اتوماسیون مهار OpenThread
  2. حالت Harness Auto DUT را تست کنید

ابزار اتوماسیون مهار OpenThread

نصب

  1. نرم افزار زیر را نصب کنید:
    • پایتون 2.7
    • Git برای ویندوز (پشتیبانی Bash بسیار توصیه می شود)
  2. مخزن OpenThread را برای دریافت اسکریپت های اتوماسیون شبیه سازی کنید:
    git clone https://github.com/openthread/openthread
    
  3. نیازهای پایتون را نصب کنید:
    cd tools/harness-automation
    pip install -r requirements.txt
    
  4. Google Chrome و ChromeDriver را نصب کنید.

پیکربندی کنید

  1. یک فایل پیکربندی برای ابزار اتوماسیون ایجاد کنید:
    cp autothreadharness/settings_sample.py autothreadharness/settings.py
    
  2. آن فایل پیکربندی جدید را طبق دستورالعمل های موجود در پرونده به روز کنید.
  3. پارامتر زیر را به پرونده پیکربندی Test Harness اضافه کنید ، در C:\GRL\Thread1.1\Config\Configuration.ini پیدا شده است C:\GRL\Thread1.1\Config\Configuration.ini :
    BrowserAutoNavigate = False

پشتیبانی از بستر آزمایشگاهی مخلوط

Harness Automation Tool همچنین از آزمایشگاه های مخلوط پشتیبانی می کند ، جایی که دستگاه های مرجع مورد استفاده در هر مورد آزمایشی یک مجموعه مخلوط از دستگاه ها هستند نه همه دستگاه های مشابه. به عنوان مثال ، به جای استفاده از 32 صفحه TI CC2538 که OpenThread را برای همه موارد آزمایشی اجرا می کند ، می توانید هر چهار دستگاه مرجع موضوع را برای هر مورد آزمایشی مطابق دلخواه مخلوط کرده و مطابقت دهید.

برای استفاده از آزمایشگاه های مخلوط ، پیکربندی اضافی لازم است:

  1. پارامتر اضافی زیر را به پرونده پیکربندی Test Harness اضافه کنید ، در C:\GRL\Thread1.1\Config\Configuration.ini پیدا شده است C:\GRL\Thread1.1\Config\Configuration.ini :
    EnableDeviceSelection = True
  2. فایل پیکربندی توپولوژی را از Thread Group بارگیری کنید . این فایل را به عنوان TopologyConfig.txt به C:\GRL\Thread1.1\Thread_Harness\TestScripts . این پرونده جزئیات مربوط به اینکه کدام دستگاه مرجع را برای هر نقش در هر مورد آزمایشی استفاده کند ، دارد.

فایل پیکربندی توپولوژی ارائه شده توسط Thread Group می تواند برای سایر تنظیمات بستر مخلوط اصلاح شود ، اما برای صدور گواهینامه رسمی باید از پیکربندی اصلی استفاده شود.

مقادیر معتبر برای استفاده برای دستگاه های مرجع در پرونده پیکربندی توپولوژی عبارتند از:

مقدار در پرونده پیکربندی توپولوژی دستگاه مرجع مهار تست
ARM ARM: NXP FRDM-K64F با Firefly 6LoWPAN Shield
NXP NXP (Freescale): دانگل USB-KW24D512
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: EM358x USB Stick

هر پرونده آزمایشی در پرونده پیکربندی توپولوژی باید در یک خط جداگانه باشد و به صورت قالب بندی شده باشد role:device جفت role:device به شرح زیر است:

5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM

حالت Harness Auto DUT را تست کنید

نرم افزار GRL Test Harness یک ویژگی پیشرفته کشف خودکار (Auto DUT) را فراهم می کند که روند اعتبار سنجی را برای فروشندگان پشته مرجع موضوع تسریع می کند.

OpenThread مثالی از رابط کنترلر میزبان Thread (THCI) را ارائه می دهد که به Test Harness اجازه می دهد اجزا یا محصول شما را به گونه ای کنترل کند که گویی یکی از سیستم عامل های مرجع است. با توجه به مشخصات پورت سریال پلت فرم خاص شما ، DUT شما می تواند:

به عنوان پلت فرم مرجع موجود OpenThread عمل می کند

اگر پورت سریال DUT تحت تنظیمات 115200 8-N-1 عمل کند و دستگاه پس از هر بار تنظیم مجدد دستگاه فیزیکی به درستی پاسخ دهد (به عنوان مثال ، برای تأیید اتصال معتبر دستگاه به دستگاه ویندوز) ، در این صورت سیستم عامل می تواند از ابزار OpenThread THCI. این ابزار به دستگاه اجازه می دهد تا هنگام آزمایش به عنوان بستر مرجع OpenThread عمل کند.

  1. اگر GRL Test Harness باز است ، آن را ببندید.
  2. دستگاه را به دستگاه ویندوز وصل کنید.
  3. با استفاده از ماژول PySerial Python ، شناسه سخت افزار پورت سریال دستگاه را پیدا کنید:
    1. pySerial را روی دستگاه ویندوز نصب کنید.
    2. برای برشمردن تمام شناسه های سخت افزاری (VID و PID) برای دستگاه های متصل به دستگاه ، از پایتون در خط فرمان Windows استفاده کنید. در این خروجی ، یک دستگاه با شناسه 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 ثانیه از تنظیم مجدد خارج می کند) ، OpenThread THCI را می توان برای درمان سفارشی کرد دستگاه به عنوان یک سیستم عامل جدید در تست مهار.

به عنوان مثال ، برای شخصی سازی THCI با استفاده از پلت فرم Nordic Semiconductor nRF52840 :

  1. اگر GRL Test Harness باز است ، آن را ببندید.
  2. /tools/harness-thci/OpenThread.py بر اساس مشخصات UART دستگاه مورد نظر اصلاح کنید. تغییرات ممکن است بین دستگاههای هدف متفاوت باشد. در مورد سیستم عامل Nordic 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. اطلاعات سیستم عامل جدید را به Test Harness اضافه کنید:

    1. یک آیکون (در قالب png یا jpg) ایجاد کنید تا پلتفرم شما را راحت تر کند و آن را در تصاویر C:\GRL\Thread1.1\Web\images کپی 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. دستگاه را به دستگاه ویندوز وصل کنید.

  6. با استفاده از ماژول PySerial Python ، شناسه سخت افزار پورت سریال دستگاه را پیدا کنید:

    1. pySerial را روی دستگاه ویندوز نصب کنید.
    2. برای برشمردن تمام شناسه های سخت افزاری (VID و PID) برای دستگاه های متصل به دستگاه ، از پایتون در خط فرمان Windows استفاده کنید. در این خروجی ، یک دستگاه با شناسه 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 Test Harness را باز کنید ، دستگاه / پورت اکنون به عنوان یک دستگاه مرجع جدید ظاهر می شود.
  2. کادر Enable Auto DUT Device Selection را در زیر لیست سخت افزارهای پشتیبانی شده انتخاب کنید.
  3. دکمه رادیویی Set as DUT را در زیر دستگاه / پورت هدف انتخاب کنید تا دستگاه به عنوان DUT تنظیم شود.
گواهینامه OT خودکار DUT