הגדרת רצועות בדיקה של נתב גבול

ההגדרה של GRL Thread Test Harness ושל OpenThread Harness Automation Tool לשימוש עם מכשיר הבדיקה (DUT) של OpenThread Border Router‏ (OTBR) זהה לזו שמפורטת במדריך להגדרת אוטומציה של אישורים. מומלץ להשתמש במדריך הזה בשילוב עם השינויים שמפורטים כאן.

לתכנון של NCP כמו OTBR, OpenThread מספק OpenThread_WpanCtl.py דוגמה לממשק הבקרה של מארח Thread (THCI) שמאפשר לערכת הבדיקה לשלוט ב-NCP. יש שני מצבי חיבור למכשיר NCP:

  • שימוש בחיבור טורי (מומלץ לשימוש בתכונת הגילוי האוטומטי של 'מסגרת בדיקה')
  • באמצעות חיבור SSH

אלא אם צוין אחרת, כל שלבי ההתקנה וההגדרה שמפורטים בהמשך מתבצעים במכונה עם Windows שמריצה את תוכנת GRL Test Harness. צריך להתקין את התוכנה לפני שממשיכים.

העתקת קובצי התמיכה של THCI

מוודאים שמותקנת במחשב עם Windows הגרסה העדכנית ביותר של THCI. משכפלים את המאגר OpenThread. לחלופין, אם כבר משתמשים, מעבירים אותו להסתעפות main:

git clone https://github.com/openthread/openthread
cd openthread
git checkout main

מעתיקים את הקבצים הבאים מ-/tools/harness-thci במאגר OpenThread המשובט לספריות שצוינו במכונה של 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\

הגדרת סוג החיבור

לבקרה על 'מסגרת בדיקה' ב-NCP, צריך להגדיר חיבור ליציאה טורית או חיבור SSH.

ב-Raspberry Pi 3B‏ (RPi3B), מפעילים את היציאה הטורי ואת מעטפת ההתחברות:

  1. נכנסים לתפריט ההגדרות:
    sudo raspi-config
  2. בתפריט ההגדרות, בוחרים באפשרות 5 Interfacing Options.
  3. בתפריט Interfacing Options (אפשרויות ממשק), בוחרים באפשרות P6 Serial Enable/Disable.
  4. מפעילים מחדש את RPi3B.

במחשב Windows שמריץ את 'מסגרת הבדיקה':

חיבור OTBR FT232
  1. מורידים ומתקינים את הדרייבר של FT232.
  2. מחברים את מתאם ה-USB ל-UART של FT232 לחריץ USB במחשב עם Windows.
  3. מגדירים את מתג המתח ב-FT232 ל-3.3V.
  4. מחברים את ה-FT232 ל-RPi3B באמצעות הפינים הבאים וקווי Dupont:
    RPi3B Pin פין FT232 קו Dupont
    Pin6 GND לבן
    Pin8 RXD צהוב
    Pin10 TXD אדום
  5. לאחר ההתחברות, מפעילים מחדש את מחשב Windows.
  6. מחפשים את מזהה החומרה של היציאה הטורית של המכשיר באמצעות המודול pySerial של Python:
    1. מתקינים את pySerial במחשב עם Windows.
    2. משתמשים ב-Python בשורת הפקודה של Windows כדי למנות את כל מזהי החומרה (VID ו-PID) של המכשירים שמחוברים למכונה. בפלט הזה, מכשיר NCP אחד מחובר עם מזהה של VID_0403+PID_6001.
      python -m serial.tools.list_ports -v
      COM10
          desc: USB Serial Port (COM10)
          hwid: FTDIBUS\VID_0403+PID_6001+AL01WOSZA\0000
    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']"
      ['FTDIBUS\VID_0403+PID_6001+AL01WP6MA\0000']
  7. מעדכנים את רשימת המכשירים המוגדרים כמכשירי 'זהב':
    1. פתיחה של C:\GRL\Thread1.1\Config\Configuration.ini
    2. מוסיפים קיבוץ OpenThread_WpanCtl למערך 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=1915:CAFE'],
      'OpenThread_WpanCtl':['VID_0403+PID_6001’]}

בסיום כל ההגדרות:

  1. מפעילים את GRL Test Harness.
  2. בדף Configure Test Bed, המכשיר או היציאה מופיעים עכשיו כמכשיר OT NCP.

    אם ה-DUT לא מופיע בקטע Test Bed אחרי שמפעילים את ערכת הבדיקה, מוסיפים אותו באופן ידני על ידי גרירה של המכשיר OpenThread WpanCtl:wpantund+NCP מהקטע Supported Hardware לקטע Test Bed. לאחר הגרירה:

    1. מוודאים שהערכים הנכונים של Serial Line (יציאת COM) ו-Speed (קצב העברת נתונים) מאוכלסים.
    2. לוחצים על לחצן החץ מתחת לשדה Speed כדי ליצור את החיבור הטורי בין ערכת הבדיקה למכשיר OT NCP.
  3. מסמנים את התיבה Enable Auto DUT Device Selection מתחת לרשימת החומרה הנתמכת.

  4. בוחרים בלחצן הבחירה Set as DUT מתחת למכשיר או לשקע היעד כדי להגדיר את מכשיר OT NCP כ-DUT.

אישור OTBR SSH

חיבור SSH

ב-RPi3B, מפעילים את SSH:

  1. הפעלת שירות SSH בזמן האתחול:
    sudo systemctl enable ssh
  2. מפעילים את שירות ה-SSH:
    sudo systemctl start ssh

כדי להפעיל SSH ב-RPi3B ללא GUI, ראו שלב 3 במסמכי התיעוד של Raspberry Pi SSH.

במחשב Windows שבו פועל Test Harness:

  1. מתקינים את Paramiko לסביבת Python של GRL:
    cd C:\GRL\Python2.7
    python -m pip install --upgrade pip
    python -m pip install paramiko
  2. מפעילים את GRL Test Harness.
  3. בדף Configure Test Bed, גוררים את המכשיר OpenThread WpanCtl SSH: wpantund+NCP מהקטע Supported Hardware לקטע Test Bed.
  4. מאכלסים את ה-IP addr עם הערך 192.168.1.100 ו-PORT ב-22 בשביל המכשיר.
  5. לוחצים על לחצן החץ מתחת לשדה PORT כדי ליצור חיבור SSH בין ערכת הבדיקה לבין מכשיר OT NCP.
אישור OTBR (פרוטוקול SSH)

הגדרת אוטומציה

להוראות להגדרת ה-Harness Automation Tool, תוכלו לעיין בשלבים התקנה והגדרה במדריך להגדרת אוטומציה של אישורים.

הרצת מקרי בדיקה

במאמר הרצת תרחישי בדיקה לאישור מוסבר איך מפעילים תרחישי בדיקה לאישור ב-DUT של OTBR.

פתרון בעיות

המכשיר מופעל מחדש

אם צריך להפעיל מחדש את ה-RPi3B, סוגרים את תוכנת Test Harness ומחכים לפחות 20 שניות אחרי השלמת ההפעלה מחדש כדי להפעיל שוב את ה-Test Harness.

'מסגרת בדיקה' לא מצליחה לאתר נתב גבול

כשמשתמשים בחיבור של יציאה טורית, יכול להיות ש-Test Harness לא יזהה את Border Router. במקרה כזה:

  1. בודקים אם התחברות ל-Shell פועלת ביציאה הטורי באמצעות כלי כמו PuTTY.
    1. משתמשים ביציאת COM של מכשיר FT232 ובמהירות (קצב בדים) של 115200.
    2. אם הניסיון להתחברות נכשל, צריך להפעיל מחדש את כל המכשירים ולנסות שוב.
  2. ב-RPi3B, בודקים את הסטטוס של wpantund:
    sudo service wpantund status
    אם הסטטוס הוא 'חריג':
    1. מוודאים שהלוח nRF52840 NCP מותקן:
      ls /dev/tty*
      /dev/ttyACM0
    2. בודקים שהיציאה הזו תואמת להגדרות האישיות של wpantund:
      // default value in '/etc/wpantund.conf'
      Config:NCP:SocketPath "/dev/ttyACM0"
    3. הפעלה מחדש של wpantund:
      sudo service wpantund restart