GRL Thread टेस्ट हार्नेस और OpenThread हार्नेस ऑटोमेशन टूल का सेट अप, जो OpenThread बॉर्डर राऊटर (OTBR) डिवाइस अंडर टेस्ट (DUT) के साथ इस्तेमाल करने के लिए किया जाता है. इनका सेट अप, सर्टिफ़िकेशन ऑटोमेशन सेटअप गाइड की तरह ही किया गया है. इस गाइड का इस्तेमाल, यहां बताए गए बदलावों के साथ करें.
OTBR जैसे एनसीपी डिज़ाइन के लिए, OpenThread OpenThread_WpanCtl.py
थ्रेड होस्ट कंट्रोल इंटरफ़ेस (THCI) का एक उदाहरण देता है. इससे टेस्ट हार्नेस को एनसीपी को कंट्रोल करने में मदद मिलती है. एनसीपी डिवाइस के लिए, कनेक्शन के दो मोड होते हैं:
- सीरियल पोर्ट कनेक्शन का इस्तेमाल करना (Test Harness की ऑटो डिस्कवरी सुविधा के इस्तेमाल के लिए सुझाया गया)
- एसएसएच कनेक्शन का इस्तेमाल करना
जब तक अलग से न बताया जाए, तब तक नीचे दिए गए इंस्टॉलेशन और कॉन्फ़िगरेशन के सभी चरण, GRL Test Harness सॉफ़्टवेयर को चलाने वाली Windows मशीन पर होते हैं. आगे बढ़ने से पहले, इसे इंस्टॉल करना ज़रूरी है.
THCI की सहायता फ़ाइलें कॉपी करना
पक्का करें कि आपके Windows मशीन पर THCI का नया वर्शन हो. OpenThread की रिपॉज़िटरी का क्लोन बनाएं या अगर आपके पास पहले से इसका डेटा है, तो इसे main
ब्रांच में स्विच करें:
git clone https://github.com/openthread/openthread
cd openthread
git checkout main
क्लोन किए गए OpenThread रिपॉज़िटरी में मौजूद /tools/harness-thci
से इन फ़ाइलों को Windows मशीन पर, तय की गई डायरेक्ट्री में कॉपी करें:
स्रोत फ़ाइल | डायरेक्ट्री में कॉपी करना |
---|---|
deviceInputFields.xml |
C:\GRL\Thread1.1\Web\data\ |
OpenThread_WpanCtl.py |
C:\GRL\Thread1.1\Thread_Harness\THCI\ |
OpenThread_WpanCtl.png |
C:\GRL\Thread1.1\Web\images\ |
कनेक्शन का टाइप सेट अप करना
एनसीपी के टेस्ट हार्नेस कंट्रोल के लिए, सीरियल पोर्ट कनेक्शन या एसएसएच कनेक्शन सेट अप करें.
सीरियल पोर्ट कनेक्शन (सुझाया गया)
Raspberry Pi 3B (RPi3B) पर सीरियल पोर्ट और लॉगिन शेल चालू करें:
- कॉन्फ़िगरेशन मेन्यू में जाएं:
sudo raspi-config
- कॉन्फ़िगरेशन मेन्यू में, इंटरफ़ेस के पांच विकल्प चुनें.
- इंटरफ़ेस के विकल्प मेन्यू में, P6 सीरियल चालू/बंद करें चुनें.
- RPi3B को रीस्टार्ट करें.
टेस्ट हार्नेस चलाने वाली Windows मशीन पर:
- FT232 ड्राइवर डाउनलोड और इंस्टॉल करें.
- FT232 यूएसबी को UART अडैप्टर को Windows मशीन के यूएसबी स्लॉट से कनेक्ट करें.
- FT232 पर वोल्टेज जम्पर को 3.3V पर सेट करें.
- इन पिन और डुपॉंट लाइनों का इस्तेमाल करके, FT232 को RPi3B से कनेक्ट करें:
RPi3B पिन FT232 पिन डुपॉन्ट लाइन Pin6 जीएनडी सफ़ेद Pin8 RXD पीला Pin10 TXD लाल - कनेक्ट होने के बाद, Windows मशीन को रीस्टार्ट करें.
- Python pySerial मॉड्यूल का इस्तेमाल करके, डिवाइस के सीरियल पोर्ट के हार्डवेयर आइडेंटिफ़ायर का पता लगाएं:
- Windows मशीन पर pySerial इंस्टॉल करें.
- मशीन से कनेक्ट किए गए डिवाइसों के सभी हार्डवेयर आइडेंटिफ़ायर (वीआईडी और पीआईडी) की गिनती करने के लिए, Windows कमांड लाइन पर Python का इस्तेमाल करें. इस आउटपुट में, एक एनसीपी डिवाइस कनेक्ट है, जिसका आइडेंटिफ़ायर
VID_0403+PID_6001
है.python -m serial.tools.list_ports -v
COM10desc: USB Serial Port (COM10)
hwid: FTDIBUS\VID_0403+PID_6001+AL01WOSZA\0000
- अगर आपको 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']"
['FTDIBUS\VID_0403+PID_6001+AL01WP6MA\0000']
- गोल्डन डिवाइस की सूची अपडेट करें:
C:\GRL\Thread1.1\Config\Configuration.ini
खोलें- डिवाइस के वीआईडी और पीआईडी के साथ,
GoldenDeviceHardwareIds
कलेक्शन में OpenThread_WpanCtl ग्रुपिंग जोड़ें: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=1915:CAFE'],
'OpenThread_WpanCtl':['VID_0403+PID_6001’]}
पूरा कॉन्फ़िगरेशन पूरा होने के बाद:
- GRL टेस्ट हार्नेस शुरू करें.
टेस्ट बेड कॉन्फ़िगर करें पेज पर, डिवाइस/पोर्ट अब OT NCP डिवाइस के तौर पर दिखता है.
अगर टेस्ट हार्नेस शुरू होने के बाद, डीयूटी टेस्ट बेड सेक्शन में मौजूद नहीं है, तो उसे मैन्युअल तरीके से जोड़ें. इसके लिए, काम करने वाले हार्डवेयर सेक्शन से OpenThread WpanCtl: wpantund+NCP डिवाइस को खींचकर टेस्ट बेड सेक्शन में छोड़ें. खींचने के बाद:
- पक्का करें कि सीरियल लाइन (COM पोर्ट) और स्पीड (बॉड रेट) की सही वैल्यू भरी गई हों.
- टेस्ट हार्नेस और OT NCP डिवाइस के बीच सीरियल कनेक्शन बनाने के लिए, स्पीड फ़ील्ड के नीचे मौजूद ऐरो बटन पर क्लिक करें.
काम करने वाले हार्डवेयर की सूची के नीचे, Auto DUT डिवाइस चुनने की सुविधा चालू करें चेकबॉक्स को चुनें.
टारगेट डिवाइस/पोर्ट में जाकर, डीयूटी के तौर पर सेट करें रेडियो बटन को चुनें. इससे, ओटी एनसीपी डिवाइस को डीयूटी के तौर पर सेट किया जा सकेगा.
एसएसएच कनेक्शन
RPi3B पर, एसएसएच की सुविधा चालू करें:
- बूट पर एसएसएच सेवा चालू करें:
sudo systemctl enable ssh
- एसएसएच सेवा शुरू करने के लिए:
sudo systemctl start ssh
हेडलेस RPi3B पर एसएसएच की सुविधा चालू करने के लिए, Raspberry Pi एसएसएच के दस्तावेज़ का तीसरा चरण देखें.
टेस्ट हार्नेस चलाने वाली Windows मशीन पर:
- GRL के Python एनवायरमेंट के लिए Paramiko इंस्टॉल करें:
cd C:\GRL\Python2.7
python -m pip install --upgrade pip
python -m pip install paramiko
- GRL टेस्ट हार्नेस शुरू करें.
- टेस्ट बेड कॉन्फ़िगर करें पेज पर, OpenThread WpanCtl SSH: wpantund+NCP डिवाइस को काम करने वाले हार्डवेयर सेक्शन से खींचकर, टेस्ट बेड सेक्शन में छोड़ें.
- डिवाइस के लिए, आईपी पते में 192.168.1.100 और पोर्ट में 22 डालें.
- टेस्ट हार्नेस और OT एनसीपी डिवाइस के बीच एसएसएच कनेक्शन बनाने के लिए, पोर्ट फ़ील्ड के नीचे मौजूद ऐरो बटन पर क्लिक करें.
ऑटोमेशन सेटअप
हार्नेस ऑटोमेशन टूल को सेट अप करने से जुड़े निर्देशों के लिए, सर्टिफ़िकेट ऑटोमेशन सेटअप करने की गाइड में दिए गए इंस्टॉल करें और कॉन्फ़िगर करें के तरीके देखें.
टेस्ट केस चलाना
OTBR DUT पर सर्टिफ़िकेशन टेस्ट केस चलाने का तरीका जानने के लिए, सर्टिफ़िकेशन टेस्ट केस चलाना देखें.
समस्या का हल
डिवाइस फिर से चालू हुआ
अगर आपको RPi3B को रीबूट करना है, तो Test Harness सॉफ़्टवेयर बंद करें और रीबूट पूरा होने के बाद, Test Harness को फिर से शुरू करने के लिए कम से कम 20 सेकंड तक इंतज़ार करें.
बॉर्डर राऊटर नहीं मिल सका
सीरियल पोर्ट कनेक्शन का इस्तेमाल करने पर, हो सकता है कि टेस्ट हार्नेस, बॉर्डर राऊटर का पता न लगा पाए. अगर ऐसा है, तो:
- PuTTY जैसे टूल का इस्तेमाल करके, देखें कि सीरियल पोर्ट के लिए शेल लॉगिन काम करता है या नहीं.
- FT232 डिवाइस के लिए COM पोर्ट और 115200 की स्पीड (बॉड रेट) का इस्तेमाल करें.
- अगर लॉगिन नहीं हो पा रहा है, तो सभी डिवाइसों को रीबूट करें और फिर से कोशिश करें.
- RPi3B पर,
wpantund
का स्टेटस देखें: अगर स्थिति "असामान्य" है, तो:sudo service wpantund status
- पक्का करें कि nRF52840 एनसीपी बोर्ड माउंट हो गया हो:
ls /dev/tty*
/dev/ttyACM0 - पुष्टि करें कि यह पोर्ट,
wpantund
कॉन्फ़िगरेशन से मेल खाता हो:// default value in '/etc/wpantund.conf' Config:NCP:SocketPath "/dev/ttyACM0"
wpantund
को रीस्टार्ट करने के लिए:sudo service wpantund restart
- पक्का करें कि nRF52840 एनसीपी बोर्ड माउंट हो गया हो: