Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Kiểm tra mạng chuỗi bằng hình ảnh hóa

5abd22afa2f2ee9a.png

Thread, OpenThread, OTNS và Silk là gì?

Thread là một giao thức mạng lưới không dây công suất thấp dựa trên IP cho phép truyền thông từ thiết bị đến thiết bị và thiết bị với đám mây an toàn. Mạng luồng có thể thích ứng với các thay đổi cấu trúc liên kết để tránh điểm lỗi duy nhất.

OpenThread do Google phát hành là một triển khai mã nguồn mở của Thread. Mặc dù kích thước mã và dung lượng bộ nhớ nhỏ, OpenThread hỗ trợ tất cả các tính năng được xác định trong Đặc tả Chủ đề 1.1.1 .

OpenThread Network Simulator (OTNS) có thể được sử dụng để mô phỏng mạng Thread bằng cách chạy các nút OpenThread mô phỏng trên nền tảng posix. OTNS cung cấp giao diện Web dễ sử dụng (OTNS-Web) để hiển thị và vận hành các mạng Thread mô phỏng.

Silk là một nền tảng kiểm tra hoàn toàn tự động để xác thực chức năng, tính năng và hiệu suất hệ thống của OpenThread với các thiết bị thực.

Những gì bạn sẽ học

  • Khung xác minh chức năng của OpenThread: Silk
  • Xây dựng OpenThread cho các thiết bị thực có bật tính năng OTNS
  • Sử dụng giao diện OTNS-Web để theo dõi trạng thái của mạng Thread được hình thành bằng cách chạy các trường hợp kiểm tra Silk

Bộ mã này tập trung vào việc sử dụng Silk với OTNS. Các tính năng khác của Silk và OTNS không được đề cập.

Những gì bạn cần

Phần cứng:

  • 6 bo mạch nhà phát triển Nordic Semiconductor nRF52840
  • 6 cáp USB sang Micro-USB để kết nối bo mạch
  • Trung tâm USB

Phần mềm:

  • Linux x86_64.
  • Git .
  • Đi 1.11+ .
  • Trình duyệt web. OTNS-Web sử dụng trình duyệt web để hiển thị các mô phỏng.

Điều kiện tiên quyết:

Hoàn thành Codelabs cơ bản trước đó

Kiểm tra điều kiện tiên quyết của gói

Hãy đảm bảo tất cả các điều kiện tiên quyết được đáp ứng.

  1. Chạy which otns để kiểm tra xem tệp thực thi otns có thể tìm kiếm được trong $PATH .
  2. Chạy which wpantund để đảm bảo wpantund có sẵn.
  3. Đảm bảo rằng các gói công cụ ARM GNU, J-Link và nrfjprog đều có sẵn.
  4. Đảm bảo có thể tạo tệp nhị phân OpenThread, chạy các make -f examples/Makefile-nrf52840 trong thư mục openthread .

Lưu ý: Vui lòng tham khảo các tài liệu được liên kết để biết hướng dẫn thiết lập. Điều kiện tiên quyết số 1 là từ Mô phỏng mạng luồng bằng OTNS và các phần khác là từ Xây dựng mạng luồng với bo mạch nRF52840 và OpenThread .

Để sao chép Silk và thiết lập môi trường, hãy chạy các lệnh sau trong thư mục nguồn của bạn:

$ git clone https://github.com/openthread/silk.git
$ cd silk
$ ./bootstrap.sh
$ sudo make install-cluster

Xác định tệp cấu hình phần cứng

Để cho phép Silk thu thập các tài nguyên phần cứng kiểm tra có sẵn được kết nối với máy của bạn, hãy xác định tệp hwconfig.ini ở định dạng sau:

[DEFAULT]
ClusterID: 0
LayoutCenter: 300, 300
LayoutRadius: 100

[Dev-8A7D]
HwModel: Nrf52840
HwRev: 1.0
InterfaceSerialNumber: E1A5012E8A7D
USBInterfaceNumber: 1
DutSerial: 683536778

Một công cụ có tên usbinfo được cài đặt như một phần của Silk có thể được sử dụng để tìm ra Số sê-ri giao diện và Số giao diện USB. DutSerial là số SN được in trên chip hoặc do usbinfo hiển thị cho các sản phẩm J-Link.

Trường LayoutCenterLayoutRadius trong phần [DEFAULT] xác định hình dạng của bố cục khi thiết bị được hiển thị trên giao diện người dùng web. Đặt chúng thành các giá trị được trình bày ở đây có thể là một điểm khởi đầu tốt.

Sau đó, nó xác định một phần cho mỗi thiết bị thử nghiệm và cung cấp thông tin phần cứng liên quan.

Xây dựng hình ảnh và nhấp nháy

Theo mặc định, thiết bị OpenThread không phát ra thông báo liên quan đến OTNS. Để cho phép các ban phát triển gửi thông báo trạng thái đến các giao diện ghi nhật ký cần thiết cho việc hiển thị OTNS, hãy chạy lệnh sau trong thư mục nguồn OpenThread để tạo hình ảnh FTD và chuyển đổi nó sang định dạng hex.

$ cd openthread
$ make -f examples/Makefile-nrf52840 clean
$ make -f examples/Makefile-nrf52840 COMMISSIONER=1 JOINER=1 USB=1 OTNS=1
$ cd output/nrf52840/bin
$ arm-none-eabi-objcopy -O ihex ot-ncp-ftd ot-ncp-ftd.hex

Để cài đặt bảng, hãy làm theo hướng dẫn trong bước 4 của Bảng mã xây dựng mạng chủ đề để sử dụng nrfjprog . Sau đó, kết nối tất cả các bo mạch qua cổng USB nRF với máy chủ. Có thể ngắt kết nối cùng một bộ cáp USB sang Micro-USB khỏi các cổng J-Link và kết nối với các cổng USB nRF của bo mạch nhà phát triển nRF52840. Vì vậy, chỉ với 6 cáp này, việc thực hiện kiểm tra có thể được thực hiện. Để tránh rắc rối, hãy sử dụng 12 dây cáp và kết nối với cả hai cổng.

Chạy OTNS với các tham số mặc định cho phép người dùng mô phỏng mạng Thread. Để sử dụng nó như một công cụ trực quan hóa cho một mạng vật lý thực tế, hãy chạy nó với:

otns -raw -real -ot-cli otns-silk-proxy

Các đối số này cho OTNS mong đợi các thông báo gRPC và UDP mô tả cách mạng Thread được trực quan hóa, thay vì chạy nhiều quy trình ot-cli để mô phỏng mạng. Trình duyệt của bạn sẽ tự động mở trang trực quan hóa với khung trống.

4dd5b41bf7e71334.png

Silk là một nền tảng kiểm tra hoàn toàn tự động để xác thực chức năng, tính năng và hiệu suất hệ thống của OpenThread với các thiết bị thực. Các hướng dẫn trong dự án README bao gồm cách sử dụng nó.

Tệp silk_run_test.py nằm tại silk/unit_tests mang đến cho bạn một bước khởi đầu. Silk cung cấp hỗ trợ OTNS khi chạy trường hợp thử nghiệm. Vì dịch vụ chế độ thực OTNS đã chạy cục bộ, chúng tôi chỉ cần sửa đổi tệp silk_run_test.py với các vị trí mong muốn cho tệp nhật ký đầu ra, tập lệnh kiểm tra đầu vào và tệp hwconfig.ini . Đối số -s localhost yêu cầu Silk gửi tin nhắn OTNS đến localhost .

Ví dụ: người ta có thể chạy thử nghiệm có tên ot_test_form_network.py bằng cách sử dụng các sửa đổi sau đối với tệp silk_run_test.py . /opt/openthread_test/ là đường dẫn mặc định Silk sử dụng cho đầu ra nhật ký và tệp cấu hình, nhưng bạn có thể sử dụng bất kỳ đường dẫn nào.

silk_run_test.py

import datetime
import os

from silk.tests import silk_run

RESULT_LOG_PATH = '/opt/openthread_test/results/' + 'silk_run_' + \
                  datetime.datetime.today().strftime('%m-%d') + '/'
CONFIG_PATH = '/opt/openthread_test/'

os.chdir('~/src/silk/silk/tests/')

timestamp = datetime.datetime.today().strftime('%m-%d-%H:%M')

run_log_path = RESULT_LOG_PATH + 'test_run_on_' + timestamp + '/'

argv = [
    'tests/silk_run.py',
    '-v2',
    '-c', CONFIG_PATH + 'hwconfig.ini',
    '-d', run_log_path,
    '-s', 'localhost',
    'ot_test_form_network.py'
]

silk_run.SilkRunner(argv=argv)

Hình ảnh cấu trúc liên kết của mạng đã hình thành sẽ hiển thị trên giao diện người dùng web OTNS.

ee443b66e0a6620b.png

Góc trên cùng bên trái hiển thị số liệu thống kê trực quan, phiên bản OT và tiêu đề thử nghiệm. Góc dưới cùng bên trái có các nút điều khiển của cửa sổ nhật ký, được hiển thị ở bên phải. Ban đầu, các nút được thêm vào nhưng không có mạng nào được hình thành. Khi quá trình thử nghiệm diễn ra, các chế độ và vai trò của mỗi nút thay đổi và các liên kết được hình thành.

5c38e2c72519e620.png

Xin chúc mừng, bạn đã chạy thử nghiệm Silk thành công trên thiết bị Thread vật lý và hình dung nó bằng OTNS!

Bạn đã thực hiện kiểm tra Silk bằng cách sử dụng các bảng phát triển được flash với phần sụn hỗ trợ OTNS. Các hội đồng báo cáo trạng thái của họ đến một máy chủ Silk, máy chủ này sẽ giám sát và tổng hợp tất cả chúng và gửi chúng đến dịch vụ OTNS cùng với các thông tin kiểm tra khác. OTNS đang chạy ở chế độ thực sẽ hiển thị mạng Thread trên giao diện web.

Cái gì tiếp theo?

Thử chạy các trường hợp kiểm tra OpenThread khác có trong gói Silk.

đọc thêm

Kiểm tra openthread.ioSilk để biết nhiều tài nguyên OpenThread.

Tài liệu tham khảo