सर्टिफ़िकेशन ऑटोमेशन का सेटअप

सर्टिफ़िकेशन की जांच अपने-आप हो, इसके लिए अतिरिक्त सेटअप की ज़रूरत होगी.

नीचे दिए गए सभी इंस्टॉलेशन और कॉन्फ़िगरेशन चरण Windows मशीन पर होते हैं GRL टेस्ट हार्नेस सॉफ़्टवेयर चला रही है. नए वर्शन को डाउनलोड और इंस्टॉल करें पहले जीआरएल थ्रेड टेस्ट हार्नेस जारी रखें.

इंस्टॉल होने के बाद, टेस्ट में डिवाइस के लिए ऑटोमेशन के दो तरीके उपलब्ध होते हैं (डीयूटी):

  1. OpenThread की हार्नेस ऑटोमेशन टूल
  2. अपने-आप होने वाले डीयूटी मोड की जांच करना

OpenThread हार्नेस ऑटोमेशन टूल

इंस्टॉल करें

  1. यहां दिए गए सॉफ़्टवेयर को इंस्टॉल करें:
    • Python 2.7
    • Windows के लिए Git (Bash का इस्तेमाल करने का सुझाव दिया जाता है)
  2. ऑटोमेशन स्क्रिप्ट पाने के लिए, OpenThread डेटा स्टोर करने की जगह का क्लोन बनाएं:
    git clone https://github.com/openthread/openthread
    
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  3. Python से जुड़ी ज़रूरी शर्तें इंस्टॉल करें:
    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 TI CC2538 बोर्ड चल रहे हों सभी टेस्ट केस के लिए OpenThread का इस्तेमाल करें, ताकि सभी चार Thread को मैच किया जा सके अपने हिसाब से हर टेस्ट केस के लिए रेफ़रंस डिवाइस.

मिले-जुले टेस्टबेड का इस्तेमाल करने के लिए, अतिरिक्त कॉन्फ़िगरेशन ज़रूरी है:

  1. टेस्ट हार्नेस के कॉन्फ़िगरेशन में ये अतिरिक्त पैरामीटर जोड़ें फ़ाइल, C:\GRL\Thread1.1\Config\Configuration.ini पर मिली:
    EnableDeviceSelection = True
  2. Thread से टोपोलॉजी कॉन्फ़िगरेशन फ़ाइल डाउनलोड करें ग्रुप. इस फ़ाइल को इसमें TopologyConfig.txt के तौर पर जोड़ें C:\GRL\Thread1.1\Thread_Harness\TestScripts. इस फ़ाइल में यह जानकारी मिलती है कि हर टेस्ट केस में हर भूमिका के लिए, रेफ़रंस डिवाइस का इस्तेमाल करें.

Thread Group से मिली टोपोलॉजी कॉन्फ़िगरेशन फ़ाइल में, अन्य मिले-जुले बेड कॉन्फ़िगरेशन, लेकिन आधिकारिक सर्टिफ़िकेशन के लिए कॉन्फ़िगरेशन का इस्तेमाल करना ज़रूरी है.

टोपोलॉजी कॉन्फ़िगरेशन फ़ाइल में पहचान डिवाइस के लिए इस्तेमाल करने के लिए मान्य वैल्यू हैं:

टोपोलॉजी कॉन्फ़िगरेशन फ़ाइल में मान टेस्ट हार्नेस रेफ़रंस डिवाइस
ARM ARM: Firefly 6LoWPAN Shield के साथ NXP FRDM-K64F
NXP NXP(फ़्रीस्केल): USB-KW24D512 डोंगल
OpenThread OpenThread: TI CC2538DK
SiLabs Silabs: EM358x यूएसबी स्टिक

टोपोलॉजी कॉन्फ़िगरेशन फ़ाइल में हर टेस्ट केस की एंट्री अलग-अलग होनी चाहिए लाइन और role:device पेयर में इस तरह फ़ॉर्मैट किया गया है:

5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

टेस्ट हार्नेस ऑटो डीयूटी मोड

जीआरएल टेस्ट हार्नेस सॉफ़्टवेयर एक बेहतर ऑटो डिस्कवरी सुविधा देता है (Auto DUT) की मदद से, Thread के रेफ़रंस स्टैक की पुष्टि करने की प्रोसेस को तेज़ किया जाता है वेंडर.

OpenThread का उदाहरण थ्रेड होस्ट कंट्रोलर इंटरफ़ेस (टीएचसीआई) जो टेस्ट हार्नेस को आपके कॉम्पोनेंट या प्रॉडक्ट को ऐसे कंट्रोल करने की अनुमति देता है जैसे कि में से एक है. इसकी सीरियल पोर्ट विशेषताओं के अनुसार तो आपका DUT इनमें से कोई एक काम कर सकता है:

मौजूदा OpenThread रेफ़रंस प्लैटफ़ॉर्म के तौर पर काम किया जा रहा है

अगर DUT का सीरियल पोर्ट, 115200 8-N-1 की सेटिंग के तहत काम करता है और हर बार फ़िज़िकल डिवाइस के रीसेट होने के बाद, डिवाइस सही तरह से काम करता है (उदाहरण के लिए, और Windows मशीन से डिवाइस के मान्य कनेक्शन की पुष्टि करें), फिर प्लैटफ़ॉर्म OpenThread THCI टूल का इस्तेमाल किया जा सकता है. इस टूल की मदद से, डिवाइस टेस्टिंग के दौरान OpenThread रेफ़रंस प्लैटफ़ॉर्म का इस्तेमाल करना.

  1. अगर GRL टेस्ट हार्नेस खुला है, तो उसे बंद करें.
  2. डिवाइस को Windows मशीन से अटैच करें.
  3. Python pySerial का इस्तेमाल करके, डिवाइस सीरियल पोर्ट हार्डवेयर आइडेंटिफ़ायर ढूंढें मॉड्यूल:
    1. pySerial इंस्टॉल करें एक नया सॉफ़्टवेयर बनाने की शुरुआत की है.
    2. सभी हार्डवेयर की गिनती करने के लिए, Windows कमांड लाइन पर Python का इस्तेमाल करें मशीन से कनेक्ट किए गए डिवाइसों के लिए आइडेंटिफ़ायर (वीआईडी और पीआईडी). इसमें आउटपुट, एक डिवाइस 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 ग्रुप को अपडेट करें वीआईडी और पीआईडी की जानकारी के साथ:
      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 का सीरियल पोर्ट सही सीरियल पोर्ट के तहत काम नहीं करता है या फिर डिवाइस, किसी फ़िज़िकल डिवाइस के बाद ठीक से काम नहीं करता है रीसेट (रीसेट करने के 3-6 सेकंड के भीतर आउटपुट कोड नहीं पढ़ा जा सकता), फिर OpenThread टेस्ट में, डिवाइस को नए प्लैटफ़ॉर्म के तौर पर इस्तेमाल करने के लिए टीएचसीआई को पसंद के मुताबिक बनाया जा सकता है हार्नेस.

उदाहरण के लिए, नॉर्डिक सेमीकंडक्टर' का इस्तेमाल करके टीएचसीआई को पसंद के मुताबिक बनाना nRF52840 प्लैटफ़ॉर्म:

  1. अगर GRL टेस्ट हार्नेस खुला है, तो उसे बंद करें.
  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 पर कॉपी करें.
    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 इंस्टॉल करें एक नया सॉफ़्टवेयर बनाने की शुरुआत की है.
    2. सभी हार्डवेयर की गिनती करने के लिए, Windows कमांड लाइन पर Python का इस्तेमाल करें मशीन से कनेक्ट किए गए डिवाइसों के लिए आइडेंटिफ़ायर (वीआईडी और पीआईडी). इसमें आउटपुट, एक डिवाइस 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 कलेक्शन में एक नया प्लैटफ़ॉर्म ग्रुप जोड़ें को डिवाइस के वीआईडी और पीआईडी के साथ:
      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. 'अपने-आप डीयूटी मोड' चालू करें.

ऑटो डीयूटी मोड चालू करें

ऊपर दिए गए दो कॉन्फ़िगरेशन विकल्पों में से किसी एक के पूरा होने के बाद:

  1. GRL टेस्ट हार्नेस खोलें. डिवाइस/पोर्ट अब नए रेफ़रंस के तौर पर दिखेगा डिवाइस.
  2. 'काम की सूची' के नीचे मौजूद, अपने-आप DUT डिवाइस चुनने की सुविधा चालू करें चेकबॉक्स को चुनें हार्डवेयर की सूची.
  3. सेट करने के लिए, टारगेट डिवाइस/पोर्ट में DUT के रूप में सेट करें रेडियो बटन को चुनें DUT के रूप में डिवाइस को कस्टमाइज़ किया है.
ओटी सर्टिफ़िकेशन ऑटो डीयूटी