Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Görselleştirme ile İş Parçacığı Ağını Test Etme

5abd22afa2f2ee9a.png

Thread, OpenThread, OTNS ve Silk nedir?

Thread, aygıttan aygıta ve aygıttan buluta güvenli iletişim sağlayan, IP tabanlı, düşük güçlü bir kablosuz ağ protokolüdür. İş parçacığı ağları, tek hata noktasından kaçınmak için topoloji değişikliklerine uyum sağlayabilir.

Google tarafından yayınlanan OpenThread, Thread'ın açık kaynaklı bir uygulamasıdır. Küçük kod boyutu ve bellek ayak izine rağmen, OpenThread, Thread 1.1.1 Spesifikasyonunda tanımlanan tüm özellikleri destekler.

OpenThread Ağ Simülatörü (OTNS) , posix platformlarında simüle edilmiş OpenThread düğümleri çalıştırarak Thread ağlarını simüle etmek için kullanılabilir. OTNS, simüle edilmiş Thread ağlarını görselleştirmek ve çalıştırmak için kullanımı kolay bir Web arayüzü (OTNS-Web) sağlar.

Silk , OpenThread işlevini, özelliğini ve sistem performansını gerçek cihazlarla doğrulamak için tam otomatik bir test platformudur.

Ne öğreneceksin

  • OpenThread'in işlevsellik doğrulama çerçevesi: İpek
  • OTNS özelliği etkinleştirilmiş gerçek cihazlar için OpenThread oluşturun
  • Silk test durumları çalıştırılarak oluşturulan Thread ağının durumunu izlemek için OTNS-Web arayüzünü kullanın

Bu kod laboratuvarı Silk'i OTNS ile kullanmaya odaklanmıştır. Silk ve OTNS'nin diğer özellikleri kapsanmamaktadır.

Neye ihtiyacın olacak

Donanım:

  • 6 Nordic Semiconductor nRF52840 geliştirme kartı
  • Kartları bağlamak için 6 USB - Mikro-USB kabloları
  • USB hub

Yazılım:

  • Linux x86_64.
  • Git .
  • 1.11+ gidin .
  • İnternet tarayıcısı. OTNS-Web, simülasyonları görüntülemek için bir web tarayıcısı kullanır.

Ön koşullar:

Önceki temel Codelab'leri tamamlayın

Paket ön koşullarını kontrol etme

Tüm ön koşulların karşılandığından emin olalım.

  1. Çalıştır which otns olmadığını kontrol etmek otns yürütülebilir aranabilir $PATH .
  2. wpantund mevcut olduğundan emin olmak için which wpantund çalıştırın.
  3. ARM GNU araç zinciri, J-Link ve nrfjprog paketlerinin hepsinin mevcut olduğundan emin olun.
  4. openthread klasörü altında make -f examples/Makefile-nrf52840 çalıştırarak bir OpenThread ikilisinin oluşturulabileceğinden emin olun.

Not: Kurulum kılavuzu için lütfen bağlantılı belgelere bakın. Önkoşul # 1, OTNS kullanarak İş Parçacığı Ağlarını Simüle et ve diğerleri nRF52840 panoları ve OpenThread ile bir İş Parçacığı ağı oluşturun .

Silk'i klonlamak ve ortamı kurmak için, kaynak dizininizin altında aşağıdaki komutları çalıştırın:

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

Donanım yapılandırma dosyasını tanımlayın

Silk'in makinenize bağlı mevcut test donanımı kaynaklarını toplamasına izin vermek için, aşağıdaki formatta bir hwconfig.ini dosyası tanımlayın:

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

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

usbinfo parçası olarak Arayüz Seri Numarası ve USB Arayüz Numarasını bulmak için kullanılabilecek usbinfo adlı bir araç kurulur. DutSerial, çip üzerinde basılı olan veya usbinfo tarafından J-Link ürünleri için görüntülenen SN numarasıdır.

[DEFAULT] bölümündeki LayoutCenter ve LayoutRadius alanları, cihazlar web kullanıcı arayüzünde görselleştirildiğinde mizanpajın şeklini tanımlar. Bunları burada sunulan değerlere ayarlamak iyi bir başlangıç ​​noktası olabilir.

Bunu takiben, her test cihazı için bir bölüm tanımlar ve ilgili donanım bilgilerini sağlar.

Bina görüntüsü ve yanıp sönme

Varsayılan olarak, OpenThread cihazları OTNS ile ilgili mesajlar göndermez. Geliştirme panolarının, OTNS görselleştirmesi için gerekli olan arabirimleri günlüğe kaydetmek üzere durum mesajları yayınlamasına izin vermek için, bir FTD görüntüsü oluşturmak için OpenThread kaynak dizini altında aşağıdaki komutu çalıştırın ve bunu onaltılık biçime dönüştürün.

$ 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

, Panoları flaş adım 4 yönergeleri izleyin bir Konu ağı Codelab Build'a kullanmak nrfjprog . Bundan sonra, tüm kartları nRF USB bağlantı noktası üzerinden ana makineye bağlayın. Aynı USB - Mikro-USB kablo seti J-Link bağlantı noktalarından çıkarılabilir ve nRF52840 geliştirme kartlarının nRF USB bağlantı noktalarına bağlanabilir. Böylece sadece bu 6 kablo ile test uygulaması gerçekleştirilebilir. Güçlükten kaçınmak için 12 kablo kullanın ve her iki bağlantı noktasına da bağlayın.

OTNS'yi varsayılan parametrelerle çalıştırmak, kullanıcının bir İş Parçacığı ağını simüle etmesine olanak tanır. Bunu gerçek bir fiziksel ağ için bir görselleştirme aracı olarak kullanmak için aşağıdakilerle çalıştırın:

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

Bu argümanlar, OTNS'ye, ağı simüle etmek için birden fazla dış ot-cli işlemi çalıştırmak yerine, Thread ağının nasıl görselleştirilmesi gerektiğini açıklayan gRPC ve UDP mesajlarını beklemesini söyler. Tarayıcınız görselleştirme sayfasını boş bir tuvalle otomatik olarak açmalıdır.

4dd5b41bf7e71334.png

Silk, OpenThread işlevini, özelliğini ve sistem performansını gerçek cihazlarla doğrulamak için tam otomatik bir test platformudur. README projesindeki talimatlar, nasıl kullanılacağını kapsar.

silk/unit_tests bulunan silk_run_test.py dosyası size bir silk/unit_tests sağlar. Silk, bir test çalışması yürütürken OTNS desteği sağlar. OTNS gerçek mod hizmeti zaten yerel olarak çalıştığından, silk_run_test.py dosyasını bir çıktı günlük dosyası, girdi testi komut dosyaları ve hwconfig.ini dosyası için istenen konumlarla değiştirmemiz yeterlidir. -s localhost argümanı Silk'e OTNS mesajlarını localhost göndermesini söyler.

Örneğin, silk_run_test.py dosyasında aşağıdaki değişiklikleri kullanarak ot_test_form_network.py adlı test çalıştırılabilir. /opt/openthread_test/ , Silk'in günlük çıktısı ve yapılandırma dosyası için kullandığı varsayılan yoldur, ancak herhangi bir yolu kullanabilirsiniz.

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)

Oluşturulan ağın topoloji görselleştirmesi OTNS web kullanıcı arayüzünde gösterilecektir.

ee443b66e0a6620b.png

Sol üst köşede görselleştirme istatistikleri, OT sürümü ve test başlığı gösterilir. Sol alt köşede, sağda gösterilen günlük penceresinin kontrolleri bulunur. Başlangıçta düğümler eklenir ancak ağ oluşturulmaz. Test ilerledikçe, her düğümün modları ve rolleri değişir ve bağlantılar oluşur.

5c38e2c72519e620.png

Tebrikler, fiziksel Thread cihazlarında başarıyla bir Silk testi yaptınız ve OTNS kullanarak bunu görselleştirdiniz!

OTNS desteğine sahip yazılımlar ile yanıp sönen geliştirme kartlarını kullanarak bir İpek testi yaptınız. Kurullar durumlarını, tümünü izleyen ve bir araya getiren ve diğer test bilgileriyle birlikte OTNS hizmetine gönderen bir Silk sunucusuna rapor eder. Gerçek modda çalışan OTNS, web arayüzünde Thread ağını görselleştirir.

Sıradaki ne?

Silk paketinde bulunan diğer OpenThread test durumlarını çalıştırmayı deneyin.

daha fazla okuma

Check out openthread.io ve Silk OpenThread çeşitli kaynaklar için.

Referans dokümanlar