การตั้งค่าแถบทดสอบเราเตอร์

การตั้งค่า GRL Thread Test Harness และเครื่องมือตั้งค่า OpenOpen Harness Automation Tool สําหรับใช้กับ OpenThread Border Router (OTBR) Device Under Test (DUT) จะเหมือนกับการตั้งค่า Automation สําหรับการรับรอง ไกด์ ให้ใช้คู่มือดังกล่าวร่วมกับ การเปลี่ยนแปลงโดยละเอียดที่นี่

สําหรับการออกแบบ NCP เช่น OTBR นั้น OpenThread จะมี OpenThread_WpanCtl.py ตัวอย่าง Thread Host Control Interface (THCI) ที่ช่วยให้ Test Harness ควบคุม NCP ได้ อุปกรณ์ NCP มี 2 โหมดการเชื่อมต่อ ดังนี้

  • การใช้การเชื่อมต่อพอร์ตอนุกรม (แนะนําให้ใช้ฟีเจอร์ค้นพบอัตโนมัติของ Test Harness)
  • การใช้การเชื่อมต่อ SSH

ขั้นตอนการติดตั้งและการกําหนดค่าด้านล่างทั้งหมดเกิดขึ้นในเครื่อง Windows ที่ใช้ซอฟต์แวร์ GRL Test Harness ซึ่งควรติดตั้งก่อนดําเนินการต่อ ยกเว้นในกรณีที่ระบุไว้เป็นอย่างอื่น

คัดลอกไฟล์สนับสนุน THCI

ตรวจสอบว่าคุณมี THCI เวอร์ชันล่าสุดในเครื่อง Windows โคลนที่เก็บ 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) ให้เปิดใช้พอร์ตอนุกรมและหน้าจอ Shell

  1. ป้อนเมนูการกําหนดค่า
    sudo raspi-config
  2. ในเมนูการกําหนดค่า ให้เลือก5 ตัวเลือกการเชื่อมต่อถึงกัน
  3. ในเมนูตัวเลือกการทํางานร่วมกัน ให้เลือกเปิดใช้/ปิดใช้อนุกรม P6
  4. รีสตาร์ท RPi3B

ในเครื่อง Windows ที่ใช้สายรัดทดสอบ:

การเชื่อมต่อ OTBR FT232
  1. ดาวน์โหลดและติดตั้งไดรเวอร์ FT232
  2. เชื่อมต่ออะแดปเตอร์ FT232 USB กับ UART เข้ากับช่อง USB ของเครื่อง Windows
  3. ตั้งค่าแรงดันไฟฟ้าที่ FT232 เป็น 3.3 โวลต์
  4. เชื่อมต่อ FT232 กับ RPi3B โดยใช้ PIN และเส้น Dupont ต่อไปนี้
    หมุด RPi3B ตรึง FT232 สาย Dupont
    PIN6 GND ขาว
    ตรึง 8 แบบ RXD เหลือง
    ตรึง 10 แบบ TXD แดง
  5. เมื่อเชื่อมต่อแล้ว ให้รีสตาร์ทเครื่อง Windows
  6. ค้นหาตัวระบุฮาร์ดแวร์พอร์ตอนุกรมของอุปกรณ์โดยใช้โมดูล Python pySerial
    1. ติดตั้ง pySerial ในเครื่อง Windows
    2. ใช้ Python ในบรรทัดคําสั่งของ Windows เพื่อระบุตัวระบุฮาร์ดแวร์ทั้งหมด (VID และ PID) สําหรับอุปกรณ์ที่เชื่อมต่อกับเครื่อง ในเอาต์พุตนี้ อุปกรณ์ NCP 1 เครื่องเชื่อมต่ออยู่โดยมีตัวระบุ 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
  2. ในหน้ากําหนดค่าเตียงทดสอบ ตอนนี้อุปกรณ์/พอร์ตจะปรากฏเป็นอุปกรณ์ OT NCP

    หากไม่มี DUT ไม่แสดงอยู่ในส่วนชุดทดสอบหลังจากเริ่ม Harness Harness แล้ว ให้เพิ่มด้วยตนเองโดยการลาก OpenThread WpanCtl: wpantund+NCP จากส่วนฮาร์ดแวร์ที่รองรับไปยังส่วนเตียงทดสอบ หลังจากลากแล้ว

    1. ระบุค่าพอร์ตอนุกรม (พอร์ต COM) และความเร็ว (อัตรารับส่งข้อมูล) ที่ถูกต้อง
    2. คลิกปุ่มลูกศรใต้ช่องความเร็วเพื่อสร้างการเชื่อมต่ออนุกรมระหว่างสายรัดทดสอบกับอุปกรณ์ OT NCP
  3. เลือกช่องทําเครื่องหมายเปิดใช้การเลือกอุปกรณ์ DUT อัตโนมัติใต้รายการฮาร์ดแวร์ที่รองรับ

  4. เลือกปุ่มตัวเลือกตั้งค่าเป็น DUT ใต้อุปกรณ์/พอร์ตเป้าหมายเพื่อตั้งค่าอุปกรณ์ OT NCP เป็น DUT

การรับรอง SSH ของ OTBR

การเชื่อมต่อ SSH

ใน RPi3B ให้เปิดใช้ SSH ดังนี้

  1. เปิดใช้บริการ SSH ขณะเปิดเครื่อง:
    sudo systemctl enable ssh
  2. เริ่มต้นบริการ SSH:
    sudo systemctl start ssh

หากต้องการเปิดใช้ SSH ใน RPi3B แบบไม่มีส่วนหัว โปรดดูขั้นตอนที่ 3 ของเอกสารประกอบของ SSH สําหรับ Raspberry Pi

ในเครื่อง Windows ที่ใช้สายรัดทดสอบ:

  1. ติดตั้ง Paramiko สําหรับสภาพแวดล้อม Python ของ GRL:
    cd C:\GRL\Python2.7
    python -m pip install --upgrade pip
    python -m pip install paramiko
  2. เริ่มต้นชุดทดสอบ GRL
  3. ได้ในหน้ากําหนดค่าเตียงทดสอบ ลากหน้าOpenThread WpanCtl SSH: wpantund+NCP อุปกรณ์จากฮาร์ดแวร์ที่รองรับ ไปที่ส่วนเตียงทดสอบ.
  4. ป้อนข้อมูล Add-in ด้วย 192.168.1.100 และ PORT ด้วย 22 สําหรับอุปกรณ์
  5. คลิกปุ่มลูกศรใต้ช่องพอร์ตเพื่อสร้างการเชื่อมต่อ SSH ระหว่างสายรัดทดสอบกับอุปกรณ์ OT NCP
การรับรอง SSH ของ OTBR

การตั้งค่าการทํางานอัตโนมัติ

ดูขั้นตอนการติดตั้งและกําหนดค่าจากคู่มือการตั้งค่าระบบอัตโนมัติในการรับรองเพื่อดูวิธีตั้งค่าเครื่องมืออัตโนมัติ

เรียกใช้เคสทดสอบ

ดูวิธีเรียกใช้ชุดทดสอบการรับรองใน OTBR DUT ได้ที่การเรียกใช้ชุดทดสอบการรับรอง

การแก้ปัญหา

การรีบูตอุปกรณ์

หากต้องการรีบูต RPi3B ให้ปิดซอฟต์แวร์ Test Harness และรออย่างน้อย 20 วินาทีหลังการรีบูตเสร็จสมบูรณ์ เพื่อเริ่มใช้บังเหียนทดสอบอีกครั้ง

บังเหียนทดสอบล้มเหลวเพื่อค้นหาเราเตอร์ Border

เมื่อใช้การเชื่อมต่อพอร์ตอนุกรม สายรัดทดสอบอาจไม่พบเราเตอร์ Border ในกรณีเช่นนี้ ให้ทําดังนี้

  1. ตรวจสอบว่าการเข้าสู่ระบบ Shell ใช้งานได้กับพอร์ตอนุกรมหรือไม่ โดยใช้เครื่องมืออย่าง PuTTY
    1. ใช้พอร์ต COM สําหรับอุปกรณ์ FT232 และความเร็ว (อัตราการส่งข้อมูล) 115,200
    2. หากเข้าสู่ระบบไม่สําเร็จ ให้รีบูตอุปกรณ์ทั้งหมดแล้วลองอีกครั้ง
  2. ใน RPi3B ให้ตรวจสอบสถานะของ wpantund ดังนี้
    sudo service wpantund status
    หากสถานะเป็น "ผิดปกติ" ให้ทําดังนี้
    1. ตรวจสอบว่าได้ติดตั้งบอร์ด NNF52840 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