সার্টিফিকেশন অটোমেশন সেটআপ

সার্টিফিকেশন পরীক্ষা স্বয়ংক্রিয় করতে, অতিরিক্ত সেটআপ প্রয়োজন।

নীচের সমস্ত ইনস্টলেশন এবং কনফিগারেশন পদক্ষেপগুলি GRL টেস্ট হারনেস সফ্টওয়্যার চালিত উইন্ডোজ মেশিনে ঘটে। চালিয়ে যাওয়ার আগে সর্বশেষ GRL থ্রেড টেস্ট হারনেস ডাউনলোড এবং ইনস্টল করুন।

একবার ইনস্টল হয়ে গেলে, পরীক্ষাধীন ডিভাইসের জন্য দুটি অটোমেশন পদ্ধতি রয়েছে (DUT):

  1. ওপেন থ্রেড হারনেস অটোমেশন টুল
  2. হারনেস অটো DUT মোড পরীক্ষা করুন

ওপেন থ্রেড হারনেস অটোমেশন টুল

ইনস্টল করুন

  1. নিম্নলিখিত সফ্টওয়্যার ইনস্টল করুন:
    • পাইথন 2.7
    • উইন্ডোজের জন্য গিট (ব্যাশ সমর্থন অত্যন্ত সুপারিশ করা হয়)
  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. C:\GRL\Thread1.1\Config\Configuration.ini এ পাওয়া টেস্ট হারনেস কনফিগারেশন ফাইলে নিম্নলিখিত প্যারামিটার যোগ করুন:
    BrowserAutoNavigate = False

মিশ্র টেস্টবেড সমর্থন

হারনেস অটোমেশন টুলটি মিশ্র টেস্টবেডগুলিকেও সমর্থন করে, যেখানে প্রতিটি পরীক্ষার ক্ষেত্রে ব্যবহৃত রেফারেন্স ডিভাইসগুলি একই ডিভাইসের পরিবর্তে ডিভাইসগুলির একটি মিশ্র সেট। উদাহরণস্বরূপ, সমস্ত পরীক্ষার ক্ষেত্রে ওপেন থ্রেড চালানোর 32 টি টিআই CC2538 বোর্ড ব্যবহার করার পরিবর্তে, আপনি পছন্দ অনুযায়ী প্রতিটি টেস্ট কেসের জন্য চারটি থ্রেড রেফারেন্স ডিভাইসের মধ্যে মিশ্রিত করতে এবং মেলাতে পারেন।

মিশ্র টেস্টবেড ব্যবহার করতে, অতিরিক্ত কনফিগারেশন প্রয়োজন:

  1. C:\GRL\Thread1.1\Config\Configuration.ini এ পাওয়া টেস্ট হারনেস কনফিগারেশন ফাইলে নিম্নলিখিত অতিরিক্ত প্যারামিটার যোগ করুন:
    EnableDeviceSelection = True
  2. থ্রেড গ্রুপ থেকে টপোলজি কনফিগারেশন ফাইলটি ডাউনলোড করুন । এই ফাইলটিকে C:\GRL\Thread1.1\Thread_Harness\TestScriptsTopologyConfig.txt হিসাবে যোগ করুন। প্রতিটি পরীক্ষার ক্ষেত্রে প্রতিটি ভূমিকার জন্য কোন রেফারেন্স ডিভাইসটি ব্যবহার করতে হবে তা এই ফাইলটি বর্ণনা করে।

থ্রেড গ্রুপ দ্বারা প্রদত্ত টপোলজি কনফিগারেশন ফাইলটি অন্যান্য মিশ্র বিছানা কনফিগারেশনের জন্য সংশোধন করা যেতে পারে, তবে অফিসিয়াল সার্টিফিকেশনের জন্য মূল কনফিগারেশনটি ব্যবহার করতে হবে।

টপোলজি কনফিগারেশন ফাইলে রেফারেন্স ডিভাইসের জন্য ব্যবহার করা বৈধ মানগুলি হল:

টপোলজি কনফিগারেশন ফাইলের মান পরীক্ষা জোতা রেফারেন্স ডিভাইস
ARM ARM: Firefly 6LoWPAN শিল্ড সহ NXP FRDM-K64F
NXP NXP(ফ্রিস্কেল): USB-KW24D512 Dongles
OpenThread ওপেন থ্রেড: TI CC2538DK
SiLabs সিল্যাব: EM358x USB স্টিক

টপোলজি কনফিগারেশন ফাইলের প্রতিটি টেস্ট কেস এন্ট্রি অবশ্যই একটি পৃথক লাইনে হতে হবে এবং role:device জোড়াতে নিম্নরূপ ফর্ম্যাট করা উচিত:

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

হারনেস অটো DUT মোড পরীক্ষা করুন

GRL টেস্ট হারনেস সফ্টওয়্যার একটি উন্নত স্বয়ংক্রিয় আবিষ্কার বৈশিষ্ট্য (অটো ডিইউটি) প্রদান করে যা থ্রেড রেফারেন্স স্ট্যাক বিক্রেতাদের জন্য বৈধতা প্রক্রিয়াকে ত্বরান্বিত করে।

OpenThread একটি উদাহরণ প্রদান করে থ্রেড হোস্ট কন্ট্রোলার ইন্টারফেস (THCI) যা টেস্ট হারনেসকে আপনার উপাদান বা পণ্য নিয়ন্ত্রণ করতে দেয় যেন এটি একটি রেফারেন্স প্ল্যাটফর্ম। আপনার নির্দিষ্ট প্ল্যাটফর্মের সিরিয়াল পোর্ট বৈশিষ্ট্য অনুযায়ী, আপনার DUT হতে পারে:

বিদ্যমান OpenThread রেফারেন্স প্ল্যাটফর্ম হিসাবে কাজ করা

যদি DUT-এর সিরিয়াল পোর্ট 115200 8-N-1 সেটিংসের অধীনে কাজ করে এবং ডিভাইসটি প্রতিটি ফিজিক্যাল ডিভাইস রিসেট করার পরে সঠিকভাবে সাড়া দেয় (উদাহরণস্বরূপ, উইন্ডোজ মেশিনের সাথে ডিভাইসের বৈধ সংযোগ নিশ্চিত করতে), তাহলে প্ল্যাটফর্মটি ব্যবহার করতে পারে OpenThread THCI টুল। এই টুলটি ডিভাইসটিকে পরীক্ষার সময় OpenThread রেফারেন্স প্ল্যাটফর্ম হিসাবে কাজ করার অনুমতি দেয়।

  1. GRL টেস্ট হারনেস বন্ধ করুন, যদি এটি খোলা থাকে।
  2. উইন্ডোজ মেশিনে ডিভাইসটি সংযুক্ত করুন।
  3. পাইথন পাইসিরিয়াল মডিউল ব্যবহার করে ডিভাইস সিরিয়াল পোর্ট হার্ডওয়্যার শনাক্তকারী খুঁজুন:
    1. উইন্ডোজ মেশিনে pySerial ইনস্টল করুন
    2. মেশিনের সাথে সংযুক্ত ডিভাইসগুলির জন্য সমস্ত হার্ডওয়্যার শনাক্তকারী (ভিআইডি এবং পিআইডি) গণনা করতে উইন্ডোজ কমান্ড লাইনে পাইথন ব্যবহার করুন। এই আউটপুটে, একটি ডিভাইস 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. 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']}
  5. Auto DUT মোড সক্ষম করুন

একটি নতুন রেফারেন্স প্ল্যাটফর্ম হিসাবে অভিনয়

যদি DUT-এর সিরিয়াল পোর্ট সঠিক সিরিয়াল পোর্ট সেটিংসের অধীনে কাজ না করে, অথবা একটি ফিজিক্যাল ডিভাইস রিসেট করার পর ডিভাইসটি সঠিকভাবে সাড়া না দেয় (রিসেটের 3-6 সেকেন্ডের মধ্যে অপঠিত কোড আউটপুট করে), তাহলে OpenThread THCI কে কাস্টমাইজ করা যেতে পারে টেস্ট জোতা একটি নতুন প্ল্যাটফর্ম হিসাবে ডিভাইস.

উদাহরণস্বরূপ, নর্ডিক সেমিকন্ডাক্টর nRF52840 প্ল্যাটফর্ম ব্যবহার করে THCI কাস্টমাইজ করতে:

  1. GRL টেস্ট হারনেস বন্ধ করুন, যদি এটি খোলা থাকে।
  2. লক্ষ্য ডিভাইসের UART বৈশিষ্ট্যের উপর ভিত্তি করে /tools/harness-thci/OpenThread.py পরিবর্তন করুন। লক্ষ্য ডিভাইসের মধ্যে পরিবর্তন ভিন্ন হতে পারে। নর্ডিক 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. উইন্ডোজ মেশিনে ডিভাইসটি সংযুক্ত করুন।

  6. পাইথন পাইসিরিয়াল মডিউল ব্যবহার করে ডিভাইস সিরিয়াল পোর্ট হার্ডওয়্যার শনাক্তকারী খুঁজুন:

    1. উইন্ডোজ মেশিনে pySerial ইনস্টল করুন
    2. মেশিনের সাথে সংযুক্ত ডিভাইসগুলির জন্য সমস্ত হার্ডওয়্যার শনাক্তকারী (ভিআইডি এবং পিআইডি) গণনা করতে উইন্ডোজ কমান্ড লাইনে পাইথন ব্যবহার করুন। এই আউটপুটে, একটি ডিভাইস 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. ডিভাইসের VID এবং PID সহ GoldenDeviceHardwareIds অ্যারেতে একটি নতুন প্ল্যাটফর্ম গ্রুপ যোগ করুন:
      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. Auto DUT মোড সক্ষম করুন

স্বয়ংক্রিয় DUT মোড সক্ষম করুন

উপরের দুটি কনফিগারেশন বিকল্পগুলির একটি সম্পূর্ণ হওয়ার পরে:

  1. GRL টেস্ট হারনেস খুলুন, ডিভাইস/পোর্ট এখন একটি নতুন রেফারেন্স ডিভাইস হিসাবে প্রদর্শিত হবে।
  2. সমর্থিত হার্ডওয়্যার তালিকার নীচে অটো DUT ডিভাইস নির্বাচন সক্ষম করুন চেকবক্স নির্বাচন করুন।
  3. ডিভাইসটিকে DUT হিসাবে সেট করতে লক্ষ্য ডিভাইস/পোর্টের অধীনে DUT হিসাবে সেট করুন রেডিও বোতামটি নির্বাচন করুন।
OT সার্টিফিকেশন অটো DUT