nRF52840 kartları ve OpenThread ile bir İş Parçacığı ağı oluşturma

1. Giriş

26b7f4f6b3ea0700.png

Google tarafından yayınlanan OpenThread, Thread® ağ protokolünün açık kaynaklı bir uygulamasıdır. Google Nest, bağlantılı ev ürünlerinin geliştirilmesini hızlandırmak amacıyla Nest ürünlerinde kullanılan teknolojinin geliştiricilerin kullanımına yaygın şekilde sunulması için OpenThread'i kullanıma sundu.

İleti dizisi spesifikasyonu, ev uygulamaları için IPv6 tabanlı, güvenilir ve düşük güçlü bir kablosuz cihazdan cihaza iletişim protokolü tanımlar. OpenThread, MAC güvenliği, Mesh Link Kurulumu ve Örgü Yönlendirme ile IPv6, 6LoWPAN, IEEE 802.15.4 dahil tüm İş Parçacığı ağ iletişimi katmanlarını uygular.

Bu Codelab'de OpenThread'i gerçek donanım üzerinde programlayacak, bir Thread ağı oluşturup yönetecek ve düğümler arasında mesajlar ileteceksiniz.

4806d16a8c137c6d.jpeg

Neler öğreneceksiniz?

  • OpenThread CLI ikili programlarını geliştirme kartlarına yanıp söndürme
  • Linux makinesi ve geliştirme kartından oluşan bir RCP oluşturma
  • OpenThread Daemon ve ot-ctl kullanarak RCP ile iletişim kurma
  • Mesaj Dizisi düğümlerini, Ekran ve OpenThread CLI ile manuel olarak yönetme
  • Cihazların bir İş Parçacık ağına güvenli bir şekilde komisyon eklenmesi
  • IPv6 çoklu yayının işleyiş şekli
  • UDP ile ileti dizisi düğümleri arasında ileti aktarma

Gerekenler

Donanım:

  • 3 Nordic Semiconductor nRF52840 geliştirme kartları
  • Kartları bağlamak için 3 adet USB-Mikro USB kablosu
  • En az 3 USB bağlantı noktasına sahip bir Linux makinesi

Yazılım:

  • GNU Araç Zinciri
  • Nordic nRF5x komut satırı araçları
  • Segger J-Link yazılımı
  • OpenThread
  • Git

2. Başlarken

OpenThread Simülasyonu

Başlamadan önce, temel İş Parçacığı kavramları ve OpenThread CLI hakkında bilgi edinmek için OpenThread Simülasyon Codelab'ini çalıştırmak isteyebilirsiniz.

Seri bağlantı noktası terminalleri

Bir seri bağlantı noktasına bir terminalden nasıl bağlanacağınızı biliyorsunuz. Bu Codelab, Ekran'ı kullanır ve kullanıma genel bir bakış sunar, ancak diğer terminal yazılımları da kullanılabilir.

Linux makinesi

Bu Codelab, bir Radyo Ortak İşlemci (RCP) İş Parçacısı cihazına ana makine olarak hizmet vermek ve tüm İş Parçacığı geliştirme panolarını taşımak için i386 veya x86 tabanlı bir Linux makinesi kullanmak üzere tasarlanmıştır. Tüm adımlar Ubuntu 14.04.5 LTS'de (Trusty Tahr) test edildi.

Nordic Semiconductor nRF52840 kartları

Bu Codelab, üç nRF52840 PDK ana kartı kullanır.

a6693da3ce213856.png

Yerleşik JTAG modüllerine sahip olan nRF52840 kartlarını programlamak için SEGGER J-Link'i kullanıyoruz. Bu dosyayı Linux makinenize yükleyin.

'i indirin

Makinenize uygun paketi indirin ve doğru konuma yükleyin. Linux'ta bu: /opt/SEGGER/JLink.

nRF5x Komut Satırı Araçlarını Yükleme

nRF5x Komut Satırı Araçları, OpenThread ikililerini nRF52840 kartlarına yayınlamanıza olanak tanır. Linux makinenize uygun nRF5x-Command-Line-Tools-<OS> derlemesini yükleyin.

Çıkarılan paketi ~/ kök klasörüne yerleştirin

ARM GNU Araç Zincirini Yükleme

ARM GNU Araç Zinciri yapı için kullanılır.

Çıkarılan arşivi /opt/gnu-mcu-eclipse/arm-none-eabi-gcc/ öğesine Linux makinenizde yerleştirmenizi öneririz. Yükleme talimatları için arşivin readme.txt dosyasındaki talimatları uygulayın.

Yükleme Ekranı (isteğe bağlı)

Ekran, seri bağlantı noktasıyla bağlı cihazlara erişmek için kullanılan basit bir araçtır. Bu Codelab, Ekran'ı kullanmaktadır, ancak istediğiniz herhangi bir seri bağlantı noktası terminal uygulamasını kullanabilirsiniz.

$ sudo apt-get install screen

3. Depoları klonlama

OpenThread

OpenThread'i klonlayın ve yükleyin. script/bootstrap komutları, araç zincirinin yüklendiğinden ve ortamın doğru şekilde yapılandırıldığından emin olur:

$ mkdir -p ~/src
$ cd ~/src
$ git clone --recursive https://github.com/openthread/openthread.git
$ cd openthread
$ ./script/bootstrap

OpenThread Daemon derlemesi:

$ script/cmake-build posix -DOT_DAEMON=ON

Artık OpenThread'i derlemeye ve nRF52840 kartlarına göstermeye hazırsınız.

4. RCP Joiner'ı ayarlama

Derleme ve flash

Joiner ve yerel USB işlevselliğiyle OpenThread nRF52840 örneği oluşturun. Bir cihaz, güvenli bir şekilde kimlik doğrulaması yapmak ve bir İleti Dizisi ağına komisyon almak için Birleştirme rolünü kullanır. Yerel USB, USB CDC ACM'nin nRF52840 ile ana makine arasında seri aktarım olarak kullanılmasını sağlar.

rm -rf build hizmetini çalıştırarak önceki derlemelerin deposunu her zaman temizleyin.

$ cd ~/src
$ git clone --recursive https://github.com/openthread/ot-nrf528xx.git
$ cd ot-nrf528xx
$ script/build nrf52840 USB_trans

OpenThread RCP ikili programıyla dizine gidin ve onaltılık biçime dönüştürün:

$ cd ~/src/ot-nrf528xx/build/bin
$ arm-none-eabi-objcopy -O ihex ot-rcp ot-rcp.hex

USB kablosunu nRF52840 kartındaki harici güç PIN'inin yanında bulunan Mikro USB hata ayıklama bağlantı noktasına takın ve ardından Linux makinesine takın. nRF52840 kartındaki nRF güç kaynağı anahtarını VDD olarak ayarlayın. Doğru şekilde bağlandığında LED5 açık olur.

20a3b4b480356447.png

Bu, Linux makinesine bağlı ilk kartsa seri bağlantı noktası /dev/ttyACM0 olarak görünür (tüm nRF52840 kartlarında seri bağlantı noktası tanımlayıcı için ttyACM kullanılır).

$ ls /dev/ttyACM*
/dev/ttyACM0

RCP için kullanılan nRF52840 kartının seri numarasını not edin:

c00d519ebec7e5f0.jpeg

nRFx Komut Satırı Araçları'nın konumuna gidin ve panonun seri numarasını kullanarak OpenThread RCP onaltılık dosyasını nRF52840 kartına yapıştırın:

$ cd ~/nrfjprog/
$ ./nrfjprog -f nrf52 -s 683704924 --chiperase --program \
       ~/src/ot-nrf528xx/build/bin/ot-rcp.hex --reset

Başarılı olduktan sonra aşağıdaki çıktı oluşturulur:

Parsing hex file.
Erasing user available code and UICR flash areas.
Applying system reset.
Checking that the area to write is not protected.
Programing device.
Applying system reset.
Run.

Jamboard rollerini karıştırmamak için Jamboard'u"RCP" olarak etiketleyin.

Yerel USB'ye bağlanın

OpenThread RCP derlemesi, seri aktarım olarak yerel USB CDC ACM'nin kullanılmasını sağladığı için RCP ana makinesiyle (Linux makine) iletişim kurmak için nRF52840 kartındaki nRF USB bağlantı noktasını kullanmanız gerekir.

USB kablosunun mikro USB ucunu yanıp sönen nRF52840 kartının hata ayıklama bağlantı noktasından sökün, ardından mikro USB nRF USB bağlantı noktasına RESET düğmesinin yanındaki bağlantı noktasından tekrar takın. , nRF güç kaynağı anahtarını USB olarak ayarlayın.

46e7b670d2464842.png

OpenThread Daemon'u başlat

RCP tasarımında, Thread cihazıyla iletişim kurmak ve cihazı yönetmek için OpenThread Daemon'u kullanın. Günlük çıkışını görmek ve çalıştığını onaylamak için ot-daemon ayrıntı işaretini -v ile başlatın:

$ cd ~/src/openthread
$ ./build/posix/src/posix/ot-daemon -v \
    'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'

Başarılı olduğunda, ayrıntılı moddaki ot-daemon aşağıdakine benzer bir çıkış oluşturur:

ot-daemon[228024]: Running OPENTHREAD/20191113-00831-gfb399104; POSIX; Jun  7 2020 18:05:15
ot-daemon[228024]: Thread version: 2
ot-daemon[228024]: RCP version: OPENTHREAD/20191113-00831-gfb399104; SIMULATION; Jun  7 2020 18:06:08

ot-daemon üzerindeki günlüklerin görüntülenebilmesi için bu terminal penceresini açık bırakın.

RCP düğümü ile iletişim kurmak için ot-ctl kullanın. ot-ctl, OpenThread CLI uygulamasıyla aynı CLI'yi kullanır. Dolayısıyla, ot-daemon düğümlerini diğer simüle edilmiş İş Parçacık cihazlarıyla aynı şekilde kontrol edebilirsiniz.

İkinci bir terminal penceresinde, ot-ctl öğesini başlatın:

$ ./output/posix/bin/ot-ctl
>

ot-daemon ile başladığınız Düğüm 2'nin state değerini (RCP düğümü) kontrol edin:

> state
disabled
Done

5. FTD'leri ayarlama

Bu Codelab'de kullanılan diğer iki İş Parçacığı düğümü, standart System-on-Chip (SoC) tasarımındaki Full Thread Devices (FTD) şeklindedir. wpantund kullanmaz ve kullanıcı bunları OpenThread CLI ile manuel olarak yönetir.

Bir cihaz, Komisyoncu görevini üstlenerek cihazların güvenli bir şekilde kimliğini doğrular ve bu ağa komisyon verir. Diğer cihaz, Komisyon üyesinin İş Parçacığı ağında kimlik doğrulaması yapabildiği bir Birleştirme işlevi görür.

Derleme ve flash

Komisyon ve Birleştirici rolleri etkin haldeyken nRF52840 platformu için OpenThread FTD örneği oluşturun:

$ cd ~/src/ot-nrf528xx
$ rm -rf build
$ script/build nrf52840 USB_trans -DOT_JOINER=ON -DOT_COMMISSIONER=ON

OpenThread Full Thread Device (FTD) CLI ikili programıyla dizine gidin ve onaltılık biçime dönüştürün:

$ cd ~/src/ot-nrf528xx/build/bin
$ arm-none-eabi-objcopy -O ihex ot-cli-ftd ot-cli-ftd.hex

USB kablosunu nRF52840 kartındaki harici güç PIN'inin yanında bulunan Mikro USB bağlantı noktasına takın ve ardından Linux makinesine takın. RCP, Linux makinesine hâlâ bağlıysa bu yeni Jamboard, /dev/ttyACM1 seri bağlantı noktası olarak görünür (tüm nRF52840 kartlarında seri bağlantı noktası tanımlayıcısı için ttyACM kullanılır).

$ ls /dev/ttyACM*
/dev/ttyACM0  /dev/ttyACM1

Daha önce olduğu gibi, FTD için kullanılan nRF52840 kartının seri numarasını not edin:

c00d519ebec7e5f0.jpeg

nRFx Komut Satırı Araçlarının konumuna gidin ve panonun seri numarasını kullanarak OpenThread CLI FTD onaltılı dosyasını nRF52840 panosuna yapıştırın:

$ cd ~/nrfjprog/
$ ./nrfjprog -f nrf52 -s 683704924 --chiperase --program \
       ~/src/ot-nrf528xx/build/bin/ot-cli-ftd.hex --reset

Yönetim kurulunu "Komisyon" olarak etiketleyin.

Yerel USB'ye bağlan

OpenThread FTD derlemesi, seri aktarım olarak yerel USB CDC ACM kullanımını etkinleştirdiğinden, RCP ana makinesiyle (Linux makine) iletişim kurmak için nRF52840 kartındaki nRF USB bağlantı noktasını kullanmanız gerekir.

USB kablosunun mikro USB ucunu yanıp sönen nRF52840 kartının hata ayıklama bağlantı noktasından sökün, ardından mikro USB nRF USB bağlantı noktasına RESET düğmesinin yanındaki bağlantı noktasından tekrar takın. , nRF güç kaynağı anahtarını USB olarak ayarlayın.

46e7b670d2464842.png

Derlemeyi doğrula

Bir terminal penceresinden GNU Screen kullanarak OpenThread CLI'ye erişerek derlemenin başarılı olduğunu doğrulayın. nRF52840 kartlarında 115200 bağlantı hızı kullanılır.

$ screen /dev/ttyACM1 115200

Yeni pencerede, OpenThread CLI > istemini görüntülemek için klavyedeki Return tuşuna birkaç kez basın. IPv6 arayüzünü açın ve adresleri kontrol edin:

> ifconfig up
Done
> ipaddr
fe80:0:0:0:1cd6:87a9:cb9d:4b1d
Done

Ctrl+a → tuşlarını kullanın

d FTD Commissioner CLI ekranını çıkarıp Linux terminaline dönerek bir sonraki kartın yanıp sönmesini sağlayabilirsiniz. İstediğiniz zaman KSA'yı yeniden girmek için komut satırından screen -r ifadesini kullanın. Kullanılabilen ekranların listesini görmek için screen -ls kullanın:

$ screen -ls
There is a screen on:
        74182.ttys000.mylinuxmachine        (Detached)
1 Socket in /tmp/uscreens/S-username.

FTD Joiner'ı ayarlama

Mevcut ot-cli-ftd.hex derlemesini kullanarak üçüncü nRF52840 kartını takmak için yukarıdaki işlemi tekrarlayın.

Bu üçüncü kart takıldığında Linux makinesine diğer iki düğüm eklenmişse düğüm /dev/ttyACM2 seri bağlantı noktası olarak görünür:

$ ls /dev/ttyACM*
/dev/ttyACM0  /dev/ttyACM1  /dev/ttyACM2

Jamboard'u "Birleştirici" olarak etiketleyin.

Ekran kullanarak doğrulama yaparken, komut satırından yeni bir Ekran örneği oluşturmak yerine, mevcut örneği tekrar takın ve içinde yeni bir pencere oluşturun (FTD Komisyonuna yönelik olarak kullandığınız ekran):

$ screen -r

Ctrl+a Screen ile Ekran içinde yeni pencere oluştur

c

****. Yeni bir komut satırı istemi görünür. FTD Joiner için OpenThread CLI'ye erişin:

$ screen /dev/ttyACM2 115200

Bu yeni pencerede, OpenThread CLI > istemini görüntülemek için klavyedeki Return tuşuna birkaç kez basın. IPv6 arayüzünü açın ve adresleri kontrol edin:

> ifconfig up
Done
> ipaddr
fe80:0:0:0:6c1e:87a2:df05:c240
Done

FTD Birleştirme KSA'sı FTD Komisyon Müdürü ile aynı Ekran örneğinde olduğuna göre, Ctrl+a → n tuşlarını kullanarak bunlar arasında geçiş yapabilirsiniz.

Ctrl+a → tuşlarını kullanın

d Dilediğiniz zaman Ekrandan çıkabilirsiniz.

6. Terminal penceresi kurulumu

Bundan sonra, İş Parçacıkları cihazları arasında sık sık geçiş yapacağınızdan, tümünün yayında ve kolayca erişilebilir olduğundan emin olun. Şu ana kadar iki FTD'ye erişmek için Ekran özelliğini kullanıyoruz ve bu araç aynı terminal penceresinde bölünmüş ekrana da izin veriyor. Bir düğümün başka bir düğümde verilen komutlara nasıl tepki verdiğini görmek için bunu kullanın.

İdeal olarak, kullanıma hazır dört pencereniz olmalıdır:

  1. ot-daemon hizmeti / günlükleri
  2. ot-ctl aracılığıyla RCP Birleştirme
  3. OpenThread CLI aracılığıyla FTD Komisyon Yöneticisi
  4. OpenThread CLI aracılığıyla FTD Joiner

Kendi terminalinizi / seri bağlantı noktası yapılandırmanızı veya aracınızı kullanmak istiyorsanız sonraki adıma geçebilirsiniz. Tüm cihazlar için terminal pencerelerini size en uygun şekilde yapılandırın.

Ekranı Kullanma

Kullanım kolaylığı için yalnızca bir Ekran oturumu başlatın. Her iki FTD'yi kurduğunuzda zaten bir etiketiniz olmalıdır.

Ekrandaki tüm komutlar Ctrl+a ile başlar.

Temel Ekran komutları:

Ekran oturumuna tekrar ekle (komut satırından)

screen -r

Ekran oturumundan çık

Ctrl+a - d

Ekran oturumu içinde yeni pencere oluştur

Ctrl+a - c

Aynı Ekran oturumunda pencereler arasında geçiş yapma

Ctrl+a → n (ileri)Ctrl+a → p (geri)

Ekran oturumunda geçerli pencereyi kapatın

Ctrl+a - k

Bölünmüş Ekran

Ekran ile, terminali birden fazla pencereye bölebilirsiniz:

f1cbf1258cf0a5a.png

screen içindeki komutlara Ctrl+a kullanılarak erişilir. Her komut, bu erişim tuşu kombinasyonuyla başlamalıdır.

Codelab'i tam olarak izliyorsanız aynı Ekran örneğinde iki pencereniz (FTD Commissioner, FTD Joiner) olmalıdır. Ekranı bu iki ekran arasında bölmek için önce mevcut Ekran oturumunuzu girin:

$ screen -r

FTD cihazlarından birinde olmanız gerekir. Ekrandaki şu adımları uygulayın:

  1. Pencereyi yatay olarak bölmek için Ctrl+a → S
  2. İmleci yeni boş pencereye taşımak için Ctrl+a → Tab tuşlarına basın
  3. Yeni pencereyi sonraki pencereye geçirmek için Ctrl+a → n tuşlarına basın
  4. Üst pencereyle aynıysa diğer FTD cihazını görüntülemek için tekrar Ctrl+a → n tuşlarına basın

Artık ikisi de görünür durumda. Ctrl+a → Tab tuşlarını kullanarak aralarında geçiş yapın. Kafa karışıklığını önlemek için her pencereyi Ctrl+a → A ile yeniden adlandırmanız önerilir.

Gelişmiş kullanım

Ekranı çeyreklere daha da bölmek ve ot-daemon günlüklerini ve RCP Birleştirme Aracını ot-ctl görüntülemek için bu hizmetlerin aynı Ekran örneğinde başlatılması gerekir. Bunu yapmak için ot-daemon cihazını durdurun ve ot-ctl uygulamasından çıkın, ardından bunları yeni Ekran pencerelerinde (Ctrl+a → c) yeniden başlatın.

Bu kurulum gerekli değildir ve kullanıcı için bir alıştırma olarak bırakılır.

Aşağıdaki komutları kullanarak pencere arasında bölme ve gezinme:

Yeni pencere oluştur

Ctrl+a - c

Pencereyi dikey olarak böl

Ctrl+a →

Pencereyi yatay olarak böl

Ctrl+a - S

Görüntülenen bir sonraki pencereye atla

Ctrl+a - Tab

Görüntülenen pencereyi ileri veya geri alma

Ctrl+a → n veya p

Geçerli pencereyi yeniden adlandırma

Ctrl+a - A

Ctrl+a → d tuşlarına basarak istediğiniz zaman Ekran'dan ayrılıp komut satırından screen -r ile yeniden ekleyebilirsiniz.

Ekran hakkında daha fazla bilgi için GNU Screen hızlı başvuru başlıklı makaleyi inceleyin.

7. İleti dizisi ağı oluşturma

Tüm terminal pencerelerinizi ve ekranlarınızı yapılandırdığınıza göre, İş Parçacık ağımızı oluşturabiliriz. FTD Komisyonunda yeni bir Operasyonel Veri Kümesi oluşturun ve bunu etkin küme olarak kaydedin. Operasyonel Veri Kümesi, oluşturduğunuz İş Parçacık ağının yapılandırmasıdır.

## FTD Commissioner ##
----------------------

> dataset init new
Done
> dataset
Active Timestamp: 1
Channel: 11
Channel Mask: 07fff800
Ext PAN ID: c0de7ab5c0de7ab5
Mesh Local Prefix: fdc0:de7a:b5c0/64
Network Key: 1234c0de7ab51234c0de7ab51234c0de
Network Name: OpenThread-c0de
PAN ID: 0xc0de
PSKc: ebb4f2f8a68026fc55bcf3d7be3e6fe4
Security Policy: 0, onrcb
Done

Daha sonra kullanılacak olan 1234c0de7ab51234c0de7ab51234c0de Ağ Anahtarına dikkat edin.

Bu veri kümesini etkin veri kümesi olarak kaydedin:

> dataset commit active
Done

IPv6 arayüzünü açın:

> ifconfig up
Done

İleti Dizisi protokol işlemini başlatın:

> thread start
Done

Kısa bir süre sonra cihaz durumunu kontrol edin. Lider olmalıdır. Ayrıca, gelecekte referans olması için RLOC16'yı da alabilirsiniz.

## FTD Commissioner ##
----------------------

> state
leader
Done
> rloc16
0c00
Done

Cihazın IPv6 adreslerini kontrol edin:

## FTD Commissioner ##
----------------------

> ipaddr
fdc0:de7a:b5c0:0:0:ff:fe00:fc00        # Leader Anycast Locator (ALOC)
fdc0:de7a:b5c0:0:0:ff:fe00:c00         # Routing Locator (RLOC)
fdc0:de7a:b5c0:0:6394:5a75:a1ad:e5a    # Mesh-Local EID (ML-EID)
fe80:0:0:0:1cd6:87a9:cb9d:4b1d         # Link-Local Address (LLA)

"Codelab" ağı artık diğer İş Parçacıkları cihazlarından tarandığında görülebilir.

RCP Joiner üzerinde ot-ctl tarafından:

## RCP Joiner ##
----------------

> scan
| J | Network Name     | Extended PAN     | PAN  | MAC Address      | Ch | dBm | LQI |
+---+------------------+------------------+------+------------------+----+-----+-----+
| 0 | OpenThread-c0de  | c0de7ab5c0de7ab5 | c0de | 1ed687a9cb9d4b1d | 11 | -36 | 232 |

FTD Joiner sayfasındaki OpenThread CLI'den:

## FTD Joiner ##
----------------

> scan
| J | Network Name     | Extended PAN     | PAN  | MAC Address      | Ch | dBm | LQI |
+---+------------------+------------------+------+------------------+----+-----+-----+
| 0 | OpenThread-c0de  | c0de7ab5c0de7ab5 | c0de | 1ed687a9cb9d4b1d | 11 | -38 | 229 |

"Codelab" ağı listede görünmüyorsa taramayı tekrar deneyin.

Her iki taramada da ağın birleştirilemeyeceğini unutmayın (RCP Joiner ve FTD Joiner'daki J sütunu). Bu, yalnızca İş Parçacık Komisyonunun ağda etkin olmadığı anlamına gelir. Ağ anahtarını birleştirme cihazına manuel olarak girerek bant dışından da yine birleştirilebilir.

8. RCP Birleştiriciyi Ekle

Az önce oluşturduğumuz İş Parçası ağına RCP Birleştirici'yi ekleyerek bant dışı bir işlem kullanalım. RCP Joiner'daki ağları tarayın:

## RCP Joiner ##
----------------

> scan
| J | Network Name     | Extended PAN     | PAN  | MAC Address      | Ch | dBm | LQI |
+---+------------------+------------------+------+------------------+----+-----+-----+
| 0 | OpenThread-c0de  | c0de7ab5c0de7ab5 | c0de | 1ed687a9cb9d4b1d | 11 | -38 | 229 |

Katılmak için, etkin veri kümesinde RCP Joiner'daki ağ anahtarını (FTD komisyoncusundan edindiğimiz) ayarlayın.

## RCP Joiner ##
----------------

> dataset networkkey 1234c0de7ab51234c0de7ab51234c0de
Done
> dataset commit active
Done

Veri kümesinin doğru ayarlandığından emin olun.

## RCP Joiner ##
----------------

> dataset
Network Key: 1234c0de7ab51234c0de7ab51234c0de

RCP Joiner'ın "codelab" ağına katılması için Mesaj Dizisini açın. Birkaç saniye bekleyin; eyaleti, RLOC16'yı ve IPv6 adreslerini kontrol edin:

## RCP Joiner ##
----------------

> thread start
Done
> state
child
Done
> rloc16
0c01
Done
> ipaddr
fdc0:de7a:b5c0:0:0:ff:fe00:0c01         # Routing Locator (RLOC)
fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f    # Mesh-Local EID (ML-EID)
fe80:0:0:0:18e5:29b3:a638:943b          # Link-Local Address (LLA)
Done

Ağ Yerel IPv6 Adresini (fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f burada) not edin, daha sonra kullanacaksınız.

Her iki cihazın da aynı ağın bir parçası olduğunu onaylamak için FTD Komisyon Yöneticisi'nde yönlendiriciyi ve alt tabloları kontrol edin. RCP Birleştiriciyi tanımlamak için RLOC16 kullanın.

## FTD Commissioner ##
----------------------

> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     |
+----+--------+----------+-----------+-------+--------+-----+------------------+
|  3 | 0x0c00 |        3 |         0 |     0 |      0 |  35 | 1ed687a9cb9d4b1d |

Done
> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|VER| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+---+------------------+
|   1 | 0x0c01 |        240 |         25 |     3 |   89 |1|1|1|  2| 1ae529b3a638943b |
Done

Bağlantıyı doğrulamak için RCP Joiner'ın örgü yerel adresini (RCP Joiner'ın ipaddr çıkışından Örgü-Yerel adresi) pingleyin:

## FTD Commissioner ##
----------------------

> ping fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f
> 8 bytes from fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f: icmp_seq=1 hlim=64 time=40ms

Artık, bu topoloji şemasıyla gösterilen iki düğümden oluşan bir İş parçacığı ağımız var.

otcodelab_top01C_2düğümler.png

Topoloji diyagramları

Codelab'in geri kalanında çalışırken, ağın durumu her değiştiğinde yeni bir Mesaj Dizisi topoloji şeması gösteririz. Düğüm rolleri aşağıdaki gibi belirtilir:

b75a527be4563215.png

Yönlendiriciler her zaman beşgen, Bitiş Cihazlar ise her zaman dairelerdir. Her bir düğümdeki sayılar, her bir düğümün o anki rolüne ve durumuna bağlı olarak KSA çıkışında gösterilen Yönlendirici Kimliği veya Alt Kimliği temsil eder.

9. FTD Birleştirici Komisyonu

Şimdi üçüncü İş Parçacık cihazını "codelab" ağına ekleyelim. Bu kez, daha güvenli grup içi komisyon sürecini kullanacağız. FTD Joiner ağında ağı tarayın:

## FTD Joiner ##
----------------

> scan
| J | Network Name     | Extended PAN     | PAN  | MAC Address      | Ch | dBm | LQI |
+---+------------------+------------------+------+------------------+----+-----+-----+
| 0 | OpenThread-c0de  | c0de7ab5c0de7ab5 | c0de | f65ae2853ff0c4e4 | 11 | -36 |  57 |

J sütunundaki bir 0, İş Parçacık Komisyonunun cihazda etkin olmadığını gösterir.

Gelecek sefer spesifik bir kampanya siparişi verelim ve yalnızca FTD Birleştiricisinin katılmasına izin verin. Hâlâ FTD Birleştirme Yöneticisi'ndeyseniz eui64 uygulamasını edinin. Böylece FTD Komisyon Başkanı bu tanımlayıcıyı tespit edebilir:

## FTD Joiner ##
----------------

> eui64
2f57d222545271f1
Done

FTD Commissioner'da, komisyon yetkilisini başlatın ve katılabilecek cihazın eui64 değerini, birleştirme kimlik bilgileri (ör. J01NME) ile birlikte belirtin. Birleştirici Kimlik Bilgisi, büyük ve alfanümerik karakterlerden oluşan (0-9 ve AY; okunabilirlik için I, O, Q ve Z hariç) ve 6 ila 32 karakterden oluşan bir cihaza özgü dizedir.

## FTD Commissioner ##
----------------------

> commissioner start
Done
> commissioner joiner add 2f57d222545271f1 J01NME
Done

FTD Joiner'a geçin ve yeniden tarama yapın:

## FTD Joiner ##
----------------

> scan
| J | Network Name     | Extended PAN     | PAN  | MAC Address      | Ch | dBm | LQI |
+---+------------------+------------------+------+------------------+----+-----+-----+
| 1 | OpenThread-c0de  | c0de7ab5c0de7ab5 | c0de | 1ed687a9cb9d4b1d | 11 | -45 | 196 |

J sütununda 1 simgesiyle belirtildiği gibi, İş Parçacığı Komisyonu artık ağda etkin. FTD Komisyonunda az önce ayarladığınız Birleştirici Kimlik Bilgisi ile birleştirme rolünü başlatın:

## FTD Joiner ##
----------------

> ifconfig up
Done
> joiner start J01NME
Done

Yaklaşık bir dakika içinde başarılı bir kimlik doğrulama onayı alırsınız:

## FTD Joiner ##
----------------

>
Join success

FTD Joiner'ın "codelab" ağına katılması için ileti dizisini getirin ve hemen durumu ve RLOC16'yı kontrol edin:

## FTD Joiner ##
----------------

> thread start
Done
> state
child
Done
> rloc16
0c02
Done

Cihazın IPv6 adreslerini kontrol edin. Herhangi bir ALOC olmadığına dikkat edin. Bunun nedeni, bu cihazın Lider olmaması ve ALOC gerektiren, Anycast'e özgü bir role sahip olmamasıdır.

## FTD Joiner ##
----------------

> ipaddr
fdc0:de7a:b5c0:0:0:ff:fe00:c02         # Routing Locator (RLOC)
fdc0:de7a:b5c0:0:3e2e:66e:9d41:ebcd    # Mesh-Local EID (ML-EID)
fe80:0:0:0:e4cd:d2d9:3249:a243         # Link-Local Address (LLA)

Hemen FTD Komisyon'una geçin ve üç cihazın "codelab" ağında bulunduğunu doğrulamak için yönlendiriciyi ve alt tabloları kontrol edin:

## FTD Commissioner ##
----------------------

> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     |
+----+--------+----------+-----------+-------+--------+-----+------------------+
|  3 | 0x0c00 |        3 |         0 |     0 |      0 |  50 | 1ed687a9cb9d4b1d |

> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|N| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+-+------------------+
|   1 | 0x0c01 |        240 |         25 |     3 |   89 |1|1|1|1| 1ae529b3a638943b |
|   2 | 0x0c02 |        240 |         15 |     3 |   44 |1|1|1|1| e6cdd2d93249a243 |
Done

FTD Birleştirme Aracı, RLOC16'yı temel alarak ağa bir Son Cihaz (alt) olarak eklendi. Güncellenen topolojimizi aşağıda bulabilirsiniz:

otcodelab_top01C_ed01.png

10. İş parçacığı iş başında

Bu Codelab'deki İş Parçacıkları, Yönlendirici Uygun Uygun Cihaz (REED) olarak adlandırılan belirli bir Tam İş Parçacıklı Cihaz türüdür. Yani, Yönlendirici veya Son Cihaz olarak çalışabilirler ve kendilerini Son Cihazdan Yönlendiriciye yükseltebilirler.

Thread, en fazla 32 Yönlendiriciyi destekleyebilir ancak 16 ile 23 arasındaki Yönlendirici sayısını korumaya çalışır. Bir REED Son Cihaz (alt) olarak eklenirse ve Yönlendirici sayısı 16'dan azsa, iki dakika içindeki bir rastgele dönemden sonra otomatik olarak kendini bir Yönlendirici'ye tanıtır.

FTD Birleştirme Aracı'nı ekledikten sonra İleti Dizisi ağınızda iki çocuk varsa en az iki dakika bekleyin, ardından FTD Komisyon Yöneticisi'nde yönlendiriciyi ve alt tabloları yeniden kontrol edin:

## FTD Commissioner ##
----------------------

> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     |
+----+--------+----------+-----------+-------+--------+-----+------------------+
|  3 | 0x0c00 |        3 |         0 |     0 |      0 |  50 | 1ed687a9cb9d4b1d |
| 46 | 0xb800 |       63 |         0 |     3 |      3 |   1 | e6cdd2d93249a243 |

> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|N| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+-+------------------+
|   1 | 0x0c01 |        240 |         61 |     3 |   89 |1|1|1|1| 1ae529b3a638943b |
Done

FTD Joiner (Genişletilmiş MAC = e6cdd2d93249a243), kendisini bir Yönlendiriciye yükseltti. RLOC16'nın farklı olduğunu unutmayın (0c02 yerine b800). Bunun nedeni, RLOC16'nın bir cihazın Yönlendirici Kimliğine ve Alt Öğe Kimliğine dayanmasıdır. Son Cihaz'dan Yönlendirici'ye geçiş yapıldığında, Yönlendirici Kimliği ve Alt Kimlik değerlerinde olduğu gibi RLOC16 da değişir.

otcodelab_top01C.png

Yeni durumu ve FTD Birleştirme Aracı'nda RLOC16 bilgisini onaylayın:

## FTD Joiner ##
----------------

> state
router
Done
> rloc16
b800
Done

FTD Birleştirici'yi eski sürüme geçirme

Bu davranışı, FTD Joiner'ı bir Yönlendiriciden bir Son Cihaz'a manuel olarak eski sürüme geçirerek test edebilirsiniz. Durumu alt öğeyle değiştirin ve RLOC16'yı kontrol edin:

## FTD Joiner ##
----------------

> state child
Done
> rloc16
0c03
Done

otcodelab_top01C_ed02.png

FTD Komisyon Yöneticisi'nde, FTD Birleştirme Aracı şimdi alt tabloda görünecektir (Kimlik = 3). Geçiş sırasında her iki durumda da olabilir:

## FTD Commissioner ##
----------------------

> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     |
+----+--------+----------+-----------+-------+--------+-----+------------------+
|  3 | 0x0c00 |        3 |         0 |     0 |      0 |  50 | 1ed687a9cb9d4b1d |
| 46 | 0xb800 |       63 |         0 |     3 |      3 |   1 | e6cdd2d93249a243 |

> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|N| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+-+------------------+
|   1 | 0x0c01 |        240 |         61 |     3 |   89 |1|1|1|1| 1ae529b3a638943b |
|   3 | 0x0c03 |        240 |         16 |     3 |   94 |1|1|1|1| e6cdd2d93249a243 |
Done

Bir süre sonra, anahtarı b800 olan RLOC'ye geri döner.

otcodelab_top01C.png

Lideri Kaldır

Lider, tüm İş Parçacık Yönlendiricileri arasından kendiliğinden seçilir. Bu, mevcut Liderin İleti Dizisi ağından kaldırılması durumunda, diğer Yönlendiricilerden birinin yeni Lider olacağı anlamına gelir.

FTD Commissioner'da, İş Parçacığı ağından kaldırmak için İş Parçacığı'nı kapatın:

## FTD Commissioner ##
----------------------

> thread stop
Done
> ifconfig down
Done

İki dakika içinde FTD Joiner, yeni İleti Dizisi lideri haline gelir. FTD Joiner'ın durumunu ve IPv6 adreslerini doğrulamak için aşağıdakileri doğrulayın:

## FTD Joiner ##
----------------

> state
leader
Done
> ipaddr
fdc0:de7a:b5c0:0:0:ff:fe00:fc00       # Now it has the Leader ALOC!
fdc0:de7a:b5c0:0:0:ff:fe00:b800
fdc0:de7a:b5c0:0:3e2e:66e:9d41:ebcd
fe80:0:0:0:e4cd:d2d9:3249:a243
Done

otcodelab_top02C_01.png

Alt tabloyu kontrol edin. Yeni bir RLOC16 olduğuna dikkat edin. Kimliği ve Genişletilmiş MAC'i ile belirtilen bu RCP Birleştirme aracı. Thread ağını bir arada tutmak için FTD Commissioner'dan FTD Joiner olan üst Yönlendiricilere geçildi. Bu, RCP Birleştirici için yeni bir RLOC16 ile sonuçlanır (bunun nedeni, Yönlendirici Kimliğinin 3'ten 46'ya değişmiş olmasıdır).

## FTD Joiner ##
----------------

> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|N| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+-+------------------+
|   1 | 0xb801 |        240 |         27 |     3 |  145 |1|1|1|1| 1ae529b3a638943b |
Done

RCP Joiner'ın FTD Joiner'a çocuk olarak eklenmesi için birkaç dakika beklemeniz gerekebilir. Eyaleti ve RLOC16'yı kontrol ederek şu bilgileri doğrulayın:

## RCP Joiner ##
--------------

> state
child
> rloc16
b801

FTD Müdürlüğü'nü tekrar ekleyin

İki düğümlü bir Thread ağı pek eğlenceli değildir. FTD Komisyonunu tekrar online hale getirelim.

FTD Commissioner'da İş Parçacığını yeniden başlatın:

## FTD Commissioner ##
----------------------

> ifconfig up
Done
> thread start
Done

İki dakika içinde otomatik olarak "codelab" ağına Son Cihaz olarak yeniden bağlanır ve ardından kendini bir Yönlendiriciye yükseltir.

## FTD Commissioner ##
----------------------

> state
router
Done

Aşağıdakileri doğrulamak için FTD Joiner yönlendiricisini ve alt tablolarını kontrol edin:

## FTD Joiner ##
----------------

> router table
| ID | RLOC16 | Next Hop | Path Cost | LQ In | LQ Out | Age | Extended MAC     |
+----+--------+----------+-----------+-------+--------+-----+------------------+
|  3 | 0x0c00 |       63 |         0 |     3 |      3 |   0 | 1ed687a9cb9d4b1d |
| 46 | 0xb800 |       46 |         0 |     0 |      0 |  15 | e6cdd2d93249a243 |

> child table
| ID  | RLOC16 | Timeout    | Age        | LQ In | C_VN |R|S|D|N| Extended MAC     |
+-----+--------+------------+------------+-------+------+-+-+-+-+------------------+
|   1 | 0xb801 |        240 |        184 |     3 |  145 |1|1|1|1| 1ae529b3a638943b |
Done

otcodelab_top02C_02.png

İleti dizisi ağımız tekrar üç düğümden oluşur.

11. Sorun giderme

Bir Thread ağının farklı terminallerde veya Ekran pencerelerinde birden çok cihazla yönetilmesi karmaşık olabilir. Sorunlarla karşılaşırsanız ağın durumunu veya çalışma alanınızı "sıfırlamak" için bu ipuçlarını kullanın.

Ekran

Yapılandırmanızda kaybolursanız (çok fazla Ekran penceresi veya Ekran içinde Ekranlar) hiç var olmayana kadar Ctrl+a → k tuşlarına basarak Ekran pencerelerini kapatmaya devam edin vescreen -ls komut satırı çıkışlarındaNo Sockets found , Daha sonra, her cihaz için Ekran pencerelerini yeniden oluşturun. Ekran kapatılsa bile cihaz durumları korunur.

İş parçacığı düğümleri

İş parçacığı ağı topolojisi bu Codelab'de açıklandığı şekilde değilse veya düğümlerin bir nedenle (örneğin, güç veren Linux makinesi uyku moduna geçtiği için) bağlantısı kesiliyorsa, İş Parçacığını devre dışı bırakmak, ağ kimlik bilgilerini temizlemek ve İleti dizisi ağını oluşturun adımı.

FTD'leri sıfırlamak için:

## FTD Commissioner or FTD Joiner ##
------------------------------------

> thread stop
Done
> ifconfig down
Done
> factoryreset
Done

RCP, ot-ctl ile aynı şekilde sıfırlanabilir:

## RCP Joiner ##
----------------

> thread stop
Done
> ifconfig down
Done
> factoryreset
Done

12. Çoklu yayını kullanma

Çoklu yayın, aynı anda bir cihaz grubuna bilgi iletmek için kullanılır. Bir İleti Dizisi ağında, belirli adresler, kapsama bağlı olarak farklı cihaz gruplarıyla çok noktaya kullanım için ayrılmıştır.

IPv6 Adresi

Kapsam

Şu alıcılara teslim edildi:

ff02::1

Yerel Bağlantı

Tüm FTD ve MED'ler

ff02::2

Yerel Bağlantı

Tüm FTD ve Kenarlık Yönlendiriciler

ff03::1

Örgü Yerel

Tüm FTD ve MED'ler

ff03::2

Örgü Yerel

Tüm FTD ve Kenarlık Yönlendiriciler

Bu Codelab'de Sınır Yönlendirici kullanmadığımız için iki FTD ve MED çok noktaya yayın adresine odaklanalım.

Bağlantı-Yerel kapsam, tek bir radyo iletimi veya tek bir "geçiş" tarafından erişilebilen tüm İş Parçacık arayüzlerini içerir. Ağ topolojisi, hangi cihazların ff02::1 çoklu yayın adresine ping yanıtlayacağını belirler.

FTD Komitesi'nden ff02::1 pingi:

## FTD Commissioner ##
----------------------

> ping ff02::1
> 8 bytes from fe80:0:0:0:e4cd:d2d9:3249:a243: icmp_seq=2 hlim=64 time=9ms

Ağda iki cihaz daha var (FTD Joiner ve RCP Joiner), ancak FTD Komisyoncunun Bağlantı Yerel Adresi'nden (LLA) yalnızca bir yanıt alındı. Bu, FTD Komisyoncunun tek bir durakla ulaşabileceği tek cihazdır.

otcodelab_top02C_02_LL.png

Şimdi FTD Joiner'dan ff02::1 pingleniyor:

## FTD Joiner ##
----------------

> ping ff02::1
> 8 bytes from fe80:0:0:0:1cd6:87a9:cb9d:4b1d: icmp_seq=1 hlim=64 time=11ms
8 bytes from fe80:0:0:0:18e5:29b3:a638:943b: icmp_seq=1 hlim=64 time=24ms

İki yanıt! Diğer cihazların IPv6 adreslerini kontrol ettiğimizde, ilkinin (sonu 4b1d olan) FTD Komisyonunun LLA'sını, ikincisinin de (943b ile biten) RCP Joiner'ın LLA'sını gördüğünü görebiliriz.

otcodelab_top02C_02_LL02.png

Bu, FTD Joiner'ın doğrudan hem FTD Commissioner'a hem de topolojimizi onaylayan RCP Joiner'a bağlı olduğu anlamına gelir.

Örgü Yerel

Örgü Yerel kapsamı, aynı İş Parçacığı ağıyla erişilebilen tüm İş Parçacık arayüzlerini içerir. ff03::1 çok noktaya yayın adresine yapılan ping'e verilen yanıtları görelim.

FTD Komitesi'nden ff03::1 pingi:

## FTD Commissioner ##
----------------------

> ping ff03::1
> 8 bytes from fdc0:de7a:b5c0:0:0:ff:fe00:b800: icmp_seq=3 hlim=64 time=9ms
8 bytes from fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f: icmp_seq=3 hlim=64 time=68ms

Bu sefer, FTD Komisyonu, biri FTD Joiner'ın Yönlendirme Konum Aracı'ndan (RLOC, b800 ile biten) ve diğeri de RCP Joiner'ın Örgü Yerel Ağ Kimliğinden (ML-EID, d55f ile biten) iki yanıt aldı. Bunun nedeni, örgü yerel kapsamın, İleti Dizisi ağının tamamını içermesidir. Cihaz nerede olursa olsun cihaz ff03::1 adresine abone olacaktır.

otcodelab_top02C_02_ML.png

Aynı davranışı onaylamak için FTD Joiner'dan ff03::1 pingleyin:

## FTD Joiner ##
----------------

> ping ff03::1
> 8 bytes from fdc0:de7a:b5c0:0:0:ff:fe00:c00: icmp_seq=2 hlim=64 time=11ms
8 bytes from fdc0:de7a:b5c0:0:66bf:99b9:24c0:d55f: icmp_seq=2 hlim=64 time=23ms

otcodelab_top02C_02_LL02.png

Her iki ping çıkışı için RCP Joint'in yanıt süresini not edin. RCP Joiner'ın FTD Joiner'a (63 ms) ulaşması, FTD Joiner'a (23 ms) ulaşmaktan çok daha uzun sürmüştür. Bunun nedeni, FTD Komisyoncusu için tek durak olmasına kıyasla, FTD Komisyoncusu'na ulaşmak için iki atlama yapmasıdır.

Örgüsel yerel çok noktalı ping'in RCP Birleşme değil, yalnızca iki FTD için RLOC ile yanıt verdiğini de fark etmiş olabilirsiniz. Bunun nedeni, FTD'lerin ağ üzerindeki Yönlendiriciler olmasıdır. RCP ise bir Son Cihazdır.

RCP Joiner'ın durumunu kontrol ederek aşağıdakileri onaylayın:

## RCP Joiner ##
----------------

> state
child

13. UDP ile mesaj gönder

OpenThread tarafından sağlanan uygulama hizmetlerinden biri, Kullanıcı Taşıma Protokolü protokolüdür. OpenThread tabanlı olarak oluşturulmuş bir uygulama, bir Thread ağındaki düğümler arasında veya harici bir ağdaki diğer cihazlara (İp iş parçacığı ağında Kenarlık Yönlendiricisi varsa) mesaj iletmek için UDP API'sini kullanabilir.

UDP yuvaları OpenThread CLI üzerinden gösterilir. Bu iki FTD arasında mesaj iletmek için kullanalım.

FTD Joiner için Mesh-Local EID adresini alın. İleti dizisi ağının herhangi bir yerinden ulaşılabilmesi için bu adresi kullanıyoruz.

## FTD Joiner ##
----------------

> ipaddr
fdc0:de7a:b5c0:0:0:ff:fe00:fc00        # Leader Anycast Locator (ALOC)
fdc0:de7a:b5c0:0:0:ff:fe00:b800        # Routing Locator (RLOC)
fe80:0:0:0:e4cd:d2d9:3249:a243         # Link-Local Address (LLA)
fdc0:de7a:b5c0:0:3e2e:66e:9d41:ebcd    # Mesh-Local EID (ML-EID)
Done

UDP'yi başlatın ve herhangi bir IPv6 adresi için UDP'yi bir yuvaya bağlayın:

## FTD Joiner ##
----------------

> udp open
Done
> udp bind :: 1212

FTD Commissioner'a geçin, UDP'yi başlatın ve ML-EID'sini kullanarak FTD Joiner'da oluşturduğunuz yuvaya bağlanın:

## FTD Commissioner ##
----------------------

> udp open
Done
> udp connect fdc0:de7a:b5c0:0:3e2e:66e:9d41:ebcd 1212
Done

UDP bağlantısı iki düğüm arasında olmalıdır. FTD Komisyonu'ndan ileti gönderin:

## FTD Commissioner ##
----------------------

> udp send hellothere
Done

FTD Joiner olarak, UDP mesajı alındı!

## FTD Joiner ##
----------------

> 10 bytes from fdc0:de7a:b5c0:0:0:ff:fe00:c00 49153 hellothere

14. Tebrikler!

Fiziksel bir İş Parçacığı ağı oluşturdunuz.

b915c433e7027cc7.png

Artık aşağıdaki konularda bilgi sahibisiniz:

  • Mesaj dizisi cihaz türleri, roller ve kapsamlar arasındaki fark
  • İş Parçacığı cihazlarının ağ içindeki durumlarını nasıl yönettiği
  • UDP kullanarak düğümler arasında basit mesajlar aktarma

Sonraki adımlar

Bu Codelab'i geliştirirken aşağıdaki alıştırmaları deneyin:

  • FTD Birleşme kartını ot-cli-mtd ikili programıyla bir MTD olarak yeniden oynatın ve kendisini hiçbir zaman bir Yönlendiriciye yükseltmediğine veya Lider olmaya çalıştığını gözlemleyin
  • Ağa daha fazla cihaz ekleyin (farklı bir platform deneyin!) ve yönlendirici ve alt tablolar ile çok noktaya yayın adreslerine ping göndererek topolojiyi çizin
  • NCP'yi kontrol etmek için pirspinel kullanın
  • OpenThread Sınır Yönlendirici'yi kullanarak NCP'yi Sınır Yönlendirici'ye dönüştürün ve İş Parçacınızı internete bağlayın

Daha fazla bilgi

Aşağıdakiler dahil olmak üzere çeşitli OpenThread kaynakları için openthread.io ve GitHub'a göz atın:

Referans: