সার্টিফিকেশন টেস্ট অটোমেট করতে, অতিরিক্ত সেট-আপ প্রয়োজন।
GRL টেস্ট হারনেস সফ্টওয়্যার রান করছে এমন Windows মেশিনে নিচে উল্লেখ করা সব ইনস্টলেশন ও কনফিগারেশন ধাপ সম্পন্ন হয়। চালিয়ে যাওয়ার আগে লেটেস্ট GRL থ্রেড টেস্ট হারনেস ডাউনলোড ও ইনস্টল করুন।
ইনস্টল করার পরে, টেস্ট করা ডিভাইসের (DUT) জন্য দুটি অটোমেশন পদ্ধতি আছে:
OpenThread Harness অটোমেশন টুল
ইনস্টল করুন
- নিম্নলিখিত সফ্টওয়্যার ইনস্টল করুন:
- Python 2.7
- Windows-এর জন্য Git (Bash সাপোর্ট অত্যন্ত সাজেস্ট করা হয়)
- অটোমেশন স্ক্রিপ্ট পেতে OpenThread রিপোজিটরি ক্লোন করুন:
git clone https://github.com/openthread/openthread - Python-এর প্রয়োজনীয়তা ইনস্টল করুন:
cd tools/harness-automationpip install -r requirements.txt - Google Chrome এবং ChromeDriver, দুটিই ইনস্টল করুন।
কনফিগার করুন
- অটোমেশন টুলের জন্য একটি কনফিগারেশন ফাইল তৈরি করুন:
cp autothreadharness/settings_sample.py autothreadharness/settings.py - ফাইলে দেওয়া নির্দেশাবলী অনুযায়ী নতুন কনফিগারেশন ফাইল আপডেট করুন।
C:\GRL\Thread1.1\Config\Configuration.ini-এ পাওয়া টেস্ট হারনেস কনফিগারেশন ফাইলে নিম্নলিখিত প্যারামিটার যোগ করুন:BrowserAutoNavigate = False
মিক্সড টেস্টবেড সংক্রান্ত সহায়তা
এছাড়াও, Harness অটোমেশন টুল মিক্সড টেস্টবেড সাপোর্ট করে, যেখানে প্রতিটি টেস্ট কেসে ব্যবহৃত রেফারেন্স ডিভাইসগুলি একই ডিভাইসের পরিবর্তে ডিভাইসের একটি মিক্সড সেট। যেমন, সব টেস্ট কেসের জন্য OpenThread রান করছে এমন ৩২টি TI CC2538 বোর্ড ব্যবহার করার পরিবর্তে, আপনি প্রতিটি টেস্ট কেসের জন্য চারটি Thread রেফারেন্স ডিভাইসের মধ্যে মিক্স ও ম্যাচ করতে পারেন।
মিক্সড টেস্টবেড ব্যবহার করতে, অতিরিক্ত কনফিগারেশন প্রয়োজন:
C:\GRL\Thread1.1\Config\Configuration.ini-এ পাওয়া টেস্ট হারনেস কনফিগারেশন ফাইলে নিম্নলিখিত অতিরিক্ত প্যারামিটার যোগ করুন:EnableDeviceSelection = True
- Thread গ্রুপ থেকে টোপোলজি কনফিগারেশন ফাইল ডাউনলোড করুন।
এই ফাইলটি
TopologyConfig.txtহিসেবেC:\GRL\Thread1.1\Thread_Harness\TestScripts-এ যোগ করুন। এই ফাইলটি প্রতিটি টেস্ট কেসে প্রতিটি ভূমিকার জন্য কোন রেফারেন্স ডিভাইস ব্যবহার করতে হবে তার বিবরণ দেয়।
থ্রেড গ্রুপের দেওয়া টোপোলজি কনফিগারেশন ফাইল অন্যান্য মিক্সড বেড কনফিগারেশনের জন্য পরিবর্তন করা যেতে পারে, তবে অফিসিয়াল সার্টিফিকেশনের জন্য আসল কনফিগারেশন ব্যবহার করতে হবে।
টপোলজি কনফিগারেশন ফাইলে রেফারেন্স ডিভাইসের জন্য ব্যবহার করার মতো সঠিক ভ্যালু হল:
| টপোলজি কনফিগারেশন ফাইলে ভ্যালু | টেস্ট হারনেস রেফারেন্স ডিভাইস |
|---|---|
ARM |
ARM: Firefly 6LoWPAN শিল্ড সহ NXP FRDM-K64F |
NXP |
NXP(Freescale): USB-KW24D512 Dongles |
OpenThread |
OpenThread: TI CC2538DK |
SiLabs |
Silabs: EM358x USB Stick |
টপোলজি কনফিগারেশন ফাইলে প্রতিটি টেস্ট কেস এন্ট্রি আলাদা লাইনে থাকতে হবে এবং
role:device জোড়ায় এইভাবে ফর্ম্যাট করতে হবে:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
টেস্ট হারনেস অটো DUT মোড
GRL টেস্ট হারনেস সফ্টওয়্যার একটি উন্নত অটো ডিসকভারি ফিচার (Auto DUT) প্রদান করে যা থ্রেড রেফারেন্স স্ট্যাক ভেন্ডরদের জন্য যাচাইকরণ প্রক্রিয়াকে ত্বরান্বিত করে।
OpenThread একটি উদাহরণ প্রদান করে থ্রেড হোস্ট কন্ট্রোলার ইন্টারফেস (THCI) যা টেস্ট হারনেসকে আপনার কম্পোনেন্ট বা প্রোডাক্টকে এমনভাবে নিয়ন্ত্রণ করতে দেয় যেন এটি রেফারেন্স প্ল্যাটফর্মগুলির মধ্যে একটি। আপনার নির্দিষ্ট প্ল্যাটফর্মের সিরিয়াল পোর্ট বৈশিষ্ট্য অনুযায়ী, আপনার DUT নিম্নলিখিত যেকোনও একটি কাজ করতে পারে:
আগে থেকে থাকা OpenThread রেফারেন্স প্ল্যাটফর্ম হিসেবে কাজ করা
DUT-এর সিরিয়াল পোর্ট যদি 115200 8-N-1 সেটিংসে কাজ করে এবং প্রতিবার ফিজিক্যাল ডিভাইস রিসেট করার পরে ডিভাইস সঠিকভাবে রেসপন্স করে (যেমন, Windows মেশিনের সাথে ডিভাইসের বৈধ কানেকশন কনফার্ম করতে), তাহলে প্ল্যাটফর্মটি OpenThread THCI টুল ব্যবহার করতে পারে। এই টুল, টেস্টিংয়ের সময় ডিভাইসকে OpenThread রেফারেন্স প্ল্যাটফর্ম হিসেবে কাজ করার অনুমতি দেয়।
- GRL টেস্ট হারনেস খোলা থাকলে, সেটি বন্ধ করুন।
- Windows মেশিনে ডিভাইসটি অ্যাটাচ করুন।
- Python pySerial মডিউল ব্যবহার করে ডিভাইসের সিরিয়াল পোর্ট হার্ডওয়্যার আইডেন্টিফায়ার খুঁজুন:
- Windows মেশিনে pySerial ইনস্টল করুন।
- মেশিনের সাথে কানেক্ট করা ডিভাইসের জন্য সব হার্ডওয়্যার শনাক্তকারী (VID ও PID)
তালিকাভুক্ত করতে Windows কমান্ড লাইনে Python ব্যবহার করুন। এই
আউটপুটে, একটি ডিভাইস VID=1366 এবং PID=1015 শনাক্তকারীর সাথে
কানেক্ট করা আছে:
python -m serial.tools.list_ports -vCOM10desc: 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অ্যারেতে 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']}
- অটোমেটিক DUT মোড চালু করুন।
নতুন রেফারেন্স প্ল্যাটফর্ম হিসেবে কাজ করা
DUT-এর সিরিয়াল পোর্ট যদি সঠিক সিরিয়াল পোর্ট সেটিংসের অধীনে কাজ না করে অথবা ফিজিক্যাল ডিভাইস রিসেট করার পরে ডিভাইস যদি সঠিকভাবে রেসপন্স না করে (রিসেট করার ৩-৬ সেকেন্ডের মধ্যে অপাঠ্য কোড আউটপুট করে), তাহলে টেস্ট হারনেসে ডিভাইসটিকে নতুন প্ল্যাটফর্ম হিসেবে বিবেচনা করার জন্য OpenThread THCI কাস্টমাইজ করা যেতে পারে।
যেমন, Nordic Semiconductor nRF52840 প্ল্যাটফর্ম ব্যবহার করে THCI কাস্টমাইজ করতে:
- GRL টেস্ট হারনেস খোলা থাকলে, সেটি বন্ধ করুন।
টার্গেট ডিভাইসের UART বৈশিষ্ট্যের উপর ভিত্তি করে
/tools/harness-thci/OpenThread.pyপরিবর্তন করুন। টার্গেট ডিভাইসের উপর নির্ভর করে পরিবর্তন আলাদা হতে পারে। Nordic nRF52840 প্ল্যাটফর্মের ক্ষেত্রে:OpenThread.pyফাইলের নাম পরিবর্তন করেnRF52840.pyকরুন।"OpenThread"-এর প্রথম তিনটি ঘটনা "nRF52840"-এ পরিবর্তন করুন:
>> 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-এ কপি করুনTest Harness-এ নতুন প্ল্যাটফর্মের তথ্য যোগ করুন:
- আপনার প্ল্যাটফর্মকে আলাদা করে চিনতে সাহায্য করার জন্য একটি আইকন (png বা jpg ফর্ম্যাটে) তৈরি করুন এবং সেটি
C:\GRL\Thread1.1\Web\images-এ কপি করুন। C:\GRL\Thread1.1\Web\data\deviceInputFields.xml-কে নতুনDEVICEবিভাগ দিয়ে আপডেট করুন, যেখানেthumbnailপ্যারামিটার হল আইকন ফাইল:<DEVICE name="nRF52840" thumbnail="nRF52840.jpg" description ="nRF52840>: Nor<dic" THCI="nRF52840" ITEM label="Serial Line" type="text" forParam=">;SerialP<ort&q>uot; < validation="COM" hint="eg: COM1"COM /ITEM ITEM label="Speed" type=&qu>ot;text&quo<t; > < >forParam="SerialBaudRate" validation="baud-rate" hint="eg: 115200"115200 /ITEM /DEVICE
- আপনার প্ল্যাটফর্মকে আলাদা করে চিনতে সাহায্য করার জন্য একটি আইকন (png বা jpg ফর্ম্যাটে) তৈরি করুন এবং সেটি
Windows মেশিনে ডিভাইসটি অ্যাটাচ করুন।
Python pySerial মডিউল ব্যবহার করে ডিভাইসের সিরিয়াল পোর্ট হার্ডওয়্যার শনাক্তকারী খুঁজুন:
- Windows মেশিনে pySerial ইনস্টল করুন।
- মেশিনের সাথে কানেক্ট করা ডিভাইসের জন্য সব হার্ডওয়্যার শনাক্তকারী (VID ও PID)
তালিকাভুক্ত করতে Windows কমান্ড লাইনে Python ব্যবহার করুন। এই
আউটপুটে, একটি ডিভাইস VID=1366 এবং PID=1015 শনাক্তকারীর সাথে
কানেক্ট করা আছে:
python -m serial.tools.list_ports -vCOM10desc: 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অ্যারেতে নতুন প্ল্যাটফর্ম গ্রুপ যোগ করুন: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 মোড চালু করুন
উপরের দুটি কনফিগারেশন বিকল্পের মধ্যে যেকোনও একটি সম্পূর্ণ হওয়ার পরে:
- GRL টেস্ট হারনেস খুলুন, ডিভাইস/পোর্ট এখন নতুন রেফারেন্স ডিভাইস হিসেবে দেখা যাবে।
- কাজ করে এমন হার্ডওয়্যারের তালিকার নিচে অটোমেটিক DUT ডিভাইস বেছে নেওয়ার সুবিধা চালু করুন চেকবক্স বেছে নিন।
- ডিভাইসকে DUT হিসেবে সেট করতে টার্গেট ডিভাইস/পোর্টের অধীনে DUT হিসেবে সেট করুন রেডিও বোতাম বেছে নিন।