सर्टिफ़िकेशन टेस्ट को ऑटोमेट करने के लिए, अतिरिक्त सेट अप करना ज़रूरी है.
नीचे दिए गए सभी इंस्टॉलेशन और कॉन्फ़िगरेशन चरण GRL टेस्ट हार्नेस सॉफ़्टवेयर चलाने वाली Windows मशीन पर होते हैं. जारी रखने से पहले, नई GRL Thread Test Harness डाउनलोड और इंस्टॉल करें.
इंस्टॉल होने के बाद, टेस्ट के तहत डिवाइस के लिए दो ऑटोमेशन तरीके मौजूद हैं (डीयूटी):
OpenThread हार्नेस ऑटोमेशन टूल
इंस्टॉल करें
- नीचे दिया गया सॉफ़्टवेयर इंस्टॉल करें:
- Python 2.7
- Windows के लिए Git (बैश सपोर्ट इस्तेमाल करने का सुझाव दिया जाता है)
- ऑटोमेशन स्क्रिप्ट पाने के लिए, OpenThread डेटा स्टोर करने की जगह में क्लोन करें:
git clone https://github.com/openthread/openthread
- Python की ज़रूरी शर्तें इंस्टॉल करें:
cd tools/harness-automation
pip install -r requirements.txt
- Google Chrome और ChromeDriver, दोनों इंस्टॉल करें.
कॉन्फ़िगर करना
- ऑटोमेशन टूल के लिए कॉन्फ़िगरेशन फ़ाइल बनाएं:
cp autothreadharness/settings_sample.py autothreadharness/settings.py
- फ़ाइल में दिए गए निर्देशों के मुताबिक उस नई कॉन्फ़िगरेशन फ़ाइल को अपडेट करें.
- नीचे दिए गए पैरामीटर में, टेस्ट हार्नेस कॉन्फ़िगरेशन फ़ाइल में यह पैरामीटर जोड़ें:
C:\GRL\Thread1.1\Config\Configuration.ini
:BrowserAutoNavigate = False
जांच के लिए मिली-जुली सहायता
हार्नेस ऑटोमेशन टूल भी कई तरह के टेस्ट बेड के साथ काम करता है. यहां हर टेस्ट केस में इस्तेमाल किए गए पहचान डिवाइस, सभी डिवाइस के बजाय अलग-अलग डिवाइस होते हैं. उदाहरण के लिए, 32 TI CC2538 बोर्ड का इस्तेमाल करने के बजाय OpenThread को सभी टेस्ट केस के लिए इस्तेमाल किया जा सकता है.
मिले-जुले टेस्टबेड का इस्तेमाल करने के लिए, अतिरिक्त कॉन्फ़िगरेशन की ज़रूरत होती है:
C:\GRL\Thread1.1\Config\Configuration.ini
पर पाए जाने वाले टेस्ट हार्नेस कॉन्फ़िगरेशन फ़ाइल में, नीचे दिया गया अन्य पैरामीटर जोड़ें:EnableDeviceSelection = True
- थ्रेड ग्रुप से टोपोलॉजी कॉन्फ़िगरेशन फ़ाइल डाउनलोड करें.
इस फ़ाइल को
TopologyConfig.txt
के तौर परC:\GRL\Thread1.1\Thread_Harness\TestScripts
में जोड़ें. यह फ़ाइल बताती है कि हर टेस्ट केस में हर भूमिका के लिए, किस डिवाइस का इस्तेमाल करना है.
थ्रेड ग्रुप से मिली टोपोलॉजी कॉन्फ़िगरेशन फ़ाइल में, दूसरे मिले-जुले बेड कॉन्फ़िगरेशन के लिए बदलाव किया जा सकता है. हालांकि, आधिकारिक सर्टिफ़िकेशन के लिए मूल कॉन्फ़िगरेशन का इस्तेमाल किया जाना ज़रूरी है.
टोपोलॉजी कॉन्फ़िगरेशन फ़ाइल में संदर्भ डिवाइस के लिए इस्तेमाल करने के लिए मान्य मान हैं:
टोपोलॉजी कॉन्फ़िगरेशन फ़ाइल में मान | हार्नेस रेफ़रंस डिवाइस की जांच करें |
---|---|
ARM |
ARM: Firefly 6LoWPAN शील्ड के साथ NXP FRDM-K64F |
NXP |
NXP(फ़्रीस्केल): USB-KW24D512 डोंगल |
OpenThread |
OpenThread: TI CC2538DK |
SiLabs |
सिलेब: EM358x यूएसबी स्टिक |
टोपोलॉजी कॉन्फ़िगरेशन फ़ाइल की हर जांच केस एंट्री एक अलग लाइन में होनी चाहिए और उसे role:device
पेयर में इस तरह से फ़ॉर्मैट किया जाना चाहिए:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
हार्नेस ऑटो डीयूटी मोड की जांच करें
जीआरएल टेस्ट हार्नेस सॉफ़्टवेयर, बेहतर ऑटो डिस्कवरी फ़ीचर (ऑटो डीयूटी) की सुविधा देता है. इसकी मदद से, थ्रेड के रेफ़रंस स्टैक वाले वेंडर के लिए पुष्टि की प्रोसेस तेज़ी से की जाती है.
OpenThread एक उदाहरण थ्रेड होस्ट नियंत्रक इंटरफ़ेस (THCI) जिसकी मदद से टेस्ट हार्नेस को आपके कॉम्पोनेंट या प्रॉडक्ट को नियंत्रित करने दिया जाता है जैसे कि वे रेफ़रंस प्लैटफ़ॉर्म में से एक थे. आपके खास प्लैटफ़ॉर्म के सीरियल पोर्ट की विशेषताओं के मुताबिक, आपका डीटीयू इनमें से कोई एक काम कर सकता है:
मौजूदा OpenThread रेफ़रंस प्लैटफ़ॉर्म के तौर पर काम करना
अगर डीयूटी का सीरियल पोर्ट 115200 8-N-1 की सेटिंग में काम करता है और डिवाइस हर डिवाइस के रीसेट होने के बाद ठीक से काम करता है (उदाहरण के लिए, डिवाइस की पुष्टि करने के लिए और Windows मशीन पर सही कनेक्शन के लिए), तो प्लैटफ़ॉर्म OpenThread THCI टूल का इस्तेमाल कर सकता है. इस टूल की मदद से, डिवाइस टेस्टिंग के दौरान OpenThread रेफ़रंस प्लैटफ़ॉर्म के तौर पर काम करता है.
- अगर जीआरएल टेस्ट हार्नेस खुला है, तो उसे बंद करें.
- डिवाइस को Windows मशीन से अटैच करें.
- Python pySerial मॉड्यूल का इस्तेमाल करके, डिवाइस के सीरियल पोर्ट का हार्डवेयर आइडेंटिफ़ायर खोजें:
- Windows मशीन पर pySerial इंस्टॉल करें.
- Windows पर चलने वाले कमांड लाइन पर Python का इस्तेमाल करें, ताकि मशीन से कनेक्ट किए गए डिवाइस के लिए सभी हार्डवेयर आइडेंटिफ़ायर (वीआईडी और पीआईडी) को समझा जा सके. इस
आउटपुट में, एक डिवाइस VID=1366 और
PID=1015 के पहचानकर्ता से जुड़ा होता है:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- अगर आपको पहले से ही 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']
- गोल्डन डिवाइस की सूची अपडेट करें:
C:\GRL\Thread1.1\Config\Configuration.ini
खोलें.- डिवाइस की VID और PID वाली
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']}
- ऑटो डीयूटी मोड चालू करें.
नए रेफ़रंस प्लैटफ़ॉर्म के तौर पर काम करना
अगर डीयूटी का सीरियल पोर्ट, सही सीरियल पोर्ट की सेटिंग में काम नहीं करता है या डिवाइस को किसी डिवाइस के रीसेट होने के बाद, ठीक से जवाब नहीं देता है (रीसेट करने के तीन से छह सेकंड के अंदर, नहीं पढ़े जाने वाले कोड को आउटपुट के तौर पर दिया जाता है), तो टेस्ट थ्रेड में डिवाइस को नए प्लैटफ़ॉर्म के तौर पर मानने के लिए, OpenThread THCI को पसंद के मुताबिक बनाया जा सकता है.
उदाहरण के लिए, नॉर्डिक सेमीकंडक्टर nRF52840 प्लैटफ़ॉर्म का इस्तेमाल करके, टीएचसीआई को पसंद के मुताबिक बनाने के लिए:
- अगर जीआरएल टेस्ट हार्नेस खुला है, तो उसे बंद करें.
टारगेट डिवाइस की UART विशेषताओं के आधार पर
/tools/harness-thci/OpenThread.py
में बदलाव करें. टारगेट किए गए डिवाइसों के बीच बदलाव अलग-अलग हो सकते हैं. Nordic nRF52840 प्लैटफ़ॉर्म के मामले में:OpenThread.py
फ़ाइल का नाम बदलकरnRF52840.py
करें.&सभी कोटेशन को पहले तीन बार &&tt>में बदलें</n>
>> Device : nRF52840 THCI >> Class : nRF52840 class nRF52840(IThci):
सीरियल पोर्ट पैरामीटर बदलें:
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()
डिवाइस रीसेट होने के बाद, नहीं पढ़े जाने लायक कोड आउटपुट के असर को खत्म करने के लिए नींद के समय में बदलाव करें:
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)
बदली गई
nRF52840.py
फ़ाइल कोC:\GRL\Thread1.1\Thread_Harness\THCI
में कॉपी करेंटेस्ट हारनेस में प्लैटफ़ॉर्म की नई जानकारी जोड़ें:
- अपने प्लैटफ़ॉर्म को अलग करने और इसे
C:\GRL\Thread1.1\Web\images
पर कॉपी करने के लिए, आइकॉन (png या jpg फ़ॉर्मैट में) बनाएं. 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>
- अपने प्लैटफ़ॉर्म को अलग करने और इसे
डिवाइस को Windows मशीन से अटैच करें.
Python pySerial मॉड्यूल का इस्तेमाल करके, डिवाइस के सीरियल पोर्ट हार्डवेयर आइडेंटिफ़ायर को खोजें:
- Windows मशीन पर pySerial इंस्टॉल करें.
- Windows पर चलने वाले कमांड लाइन पर Python का इस्तेमाल करें, ताकि मशीन से कनेक्ट किए गए डिवाइस के लिए सभी हार्डवेयर आइडेंटिफ़ायर (वीआईडी और पीआईडी) को समझा जा सके. इस
आउटपुट में, एक डिवाइस VID=1366 और
PID=1015 के पहचानकर्ता से जुड़ा होता है:
python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: USB\VID_1366+PID_1015+MI_00
- अगर आपको पहले से ही 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']
गोल्डन डिवाइस की सूची अपडेट करें:
C:\GRL\Thread1.1\Config\Configuration.ini
खोलें.- डिवाइस के वीआईडी और पीआईडी वाले
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'}
अपने आप डीयूटी मोड चालू करें
ऊपर दिए गए दो कॉन्फ़िगरेशन विकल्पों में से एक पूरा होने के बाद:
- जीआरएल टेस्ट हार्नेस खोलें, तो डिवाइस/पोर्ट अब नए संदर्भ डिवाइस के तौर पर दिखेगा.
- इसके साथ काम करने वाले हार्डवेयर की सूची के नीचे, ऑटो डीयूटी डिवाइस चुनने की सुविधा चालू करें चेकबॉक्स को चुनें.
- डिवाइस को DUT के तौर पर सेट करने के लिए, टारगेट डिवाइस/पोर्ट में DUT के तौर पर सेट करें रेडियो बटन चुनें.