כדי להפוך את בדיקות ההסמכה לאוטומטיות יש צורך בהגדרות נוספות.
כל שלבי ההתקנה והתצורה שבהמשך מתרחשים במחשב Windows להפעלת תוכנת GRL Test Harness. מורידים ומתקינים את הגרסה העדכנית ביותר מסגרת של בדיקת חוט GRL לפני המשך.
אחרי ההתקנה, יש שתי שיטות אוטומציה למכשיר בבדיקה, (DUT):
כלי האוטומציה של רתמות ה-OpenThread
התקנה
- מתקינים את התוכנה הבאה:
- Python 2.7
- Git ל-Windows (מומלץ מאוד להשתמש בתמיכה ב-Bash)
- משכפלים את המאגר 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: NXP FRDM-K64F עם Firefly 6LoWPAN Shield |
NXP |
NXP(Freescale): מתאם USB-KW24D512 |
OpenThread |
OpenThread: TI CC2538DK |
SiLabs |
Silabs: דיסק און קי EM358x USB |
כל רשומה של מקרה בדיקה בקובץ התצורה של הטופולוגיה חייבת להיות בקובץ נפרד
ובפורמט של role:device
זוגות באופן הבא:
5.3.10-Leader:NXP,Router_1:OpenThread,BorderRouter:OpenThread,MED_1:ARM
מצב 'מסגרת בדיקה אוטומטית' של DUT
תוכנת 'מסגרת בדיקה' של GRL מספקת תכונת גילוי אוטומטי מתקדמת (Auto DUT) שמזרז את תהליך האימות של סטאק ההפניות לשרשורים לספקים שונים.
דוגמה ל-OpenThread ממשק בקר למארחים של פרוטוקולי Thread (THCI) שמאפשרת ל'מסגרת בדיקה' לשלוט ברכיב או במוצר שלך כאילו הוא אחת מפלטפורמות ההפניה. בהתאם למאפייני היציאה הטורית של בפלטפורמה הספציפית שלכם, ה-DUT יכול:
משמש כפלטפורמת העזר הקיימת של OpenThread
אם היציאה הטורית של ה-DUT פועלת בהגדרות של 115200 8-N-1, וכן המכשיר מגיב בצורה תקינה לאחר כל איפוס פיזי של המכשיר (לדוגמה, מוודאים שיש חיבור תקין של המכשיר למחשב Windows, ואז לפלטפורמה להשתמש בכלי OpenThread THCI. הכלי הזה מאפשר למכשיר לפעול פלטפורמת העזר של OpenThread במהלך הבדיקה.
- סוגרים את מסגרת הבדיקה של GRL, אם היא פתוחה.
- מחברים את המכשיר למחשב Windows.
- מאתרים את מזהה החומרה של היציאה הטורית של המכשיר באמצעות py שמתאים ל-Python
מודול:
- התקנת pySeries במחשב Windows.
- שימוש ב-Python בשורת הפקודה של Windows כדי לספור את כל החומרה
מזהי VID ו-PID של המכשירים שמחוברים למכונה. כאן
מכשיר אחד מחובר עם מזהה של 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
. - עדכון קבוצת OpenThread במערך
GoldenDeviceHardwareIds
עם ה-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 לא פועלת ביציאה הטורית הנכונה הגדרות, או שהמכשיר לא מגיב בצורה תקינה לאחר מכשיר פיזי איפוס (פלט קוד בלתי קריא תוך 3-6 שניות לאחר האיפוס), ולאחר מכן OpenThread ניתן להתאים אישית את THCI כדי להתייחס למכשיר כפלטפורמה חדשה בבדיקה רתמות.
לדוגמה, כדי להתאים אישית THCI באמצעות המוליכים למחצה של Nordic פלטפורמת nRF52840:
- סוגרים את מסגרת הבדיקה של GRL, אם היא פתוחה.
שינוי
/tools/harness-thci/OpenThread.py
על סמך מאפייני ה-UART של מכשיר היעד. השינויים עשויים להתבצע שונים בין מכשירי היעד. במקרה של פלטפורמת 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
מוסיפים את פרטי הפלטפורמה החדשה ל'מסגרת הבדיקה':
- צור סמל (בפורמט 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: 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>
- צור סמל (בפורמט png או jpg) כדי שיהיה קל יותר להבחין ביניהם
בפלטפורמה ומעתיקים אותה אל
מחברים את המכשיר למחשב Windows.
מאתרים את מזהה החומרה של היציאה הטורית של המכשיר באמצעות py שמתאים ל-Python מודול:
- התקנת pySeries במחשב Windows.
- שימוש ב-Python בשורת הפקודה של Windows כדי לספור את כל החומרה
מזהי VID ו-PID של המכשירים שמחוברים למכונה. כאן
של הפלט, מכשיר אחד מחובר עם מזהה של 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
עם ה-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',
'nRF52840': 'VID:PID=1366:1015'}
- פתיחת
הפעלה של מצב DUT אוטומטי
אחרי שמשלימים אחת משתי אפשרויות ההגדרה שלמעלה:
- פותחים את מסגרת הבדיקה של GRL. המכשיר/היציאה מופיעים עכשיו כהפניה חדשה. במכשיר.
- מסמנים את התיבה Enable Auto DUT Device Selection (הפעלת בחירת מכשיר אוטומטית ל-DUT) מתחת לסמל הנתמך רשימת החומרה.
- בוחרים את לחצן הבחירה Set as DUT מתחת למכשיר היעד/ליציאה שרוצים להגדיר את המכשיר בתור ה-DUT.