Port validieren

Quelle auf GitHub ansehen

Eine grundlegende Validierung ist erforderlich, um einen erfolgreichen Port von OpenThread zu einem neuen Beispiel für eine Hardwareplattform zu prüfen.

Kompilieren Sie für die Zielplattform

Demonstrieren Sie einen erfolgreichen Build, indem Sie die OpenThread-Beispielanwendung für die Zielplattform kompilieren.

./script/build efr32mg12 -DBOARD=brd4161a

Mit der Befehlszeile interagieren

Demonstrieren Sie die erfolgreiche Ausführung von OpenThread und UART, indem Sie mit der Befehlszeile interagieren.

Öffnen Sie ein Terminal zu /dev/ttyACM0 (Einstellungen des seriellen Ports: 115200 8-N-1). Geben Sie help für eine Liste von Befehlen ein.

help
help
autostart
bufferinfo
...
version
whitelist

Thread-Netzwerk bilden

Demonstrieren Sie erfolgreiche Protokoll-Timer durch Bilden eines Thread-Netzwerks und die Prüfung, ob der Knoten in den Leader-Status übergegangen ist.

dataset init new
Done
dataset
Active Timestamp: 1
Channel: 13
Channel Mask: 07fff800
Ext PAN ID: d63e8e3e495ebbc3
Mesh Local Prefix: fd3d:b50b:f96d:722d/64
Network Key: dfd34f0f05cad978ec4e32b0413038ff
Network Name: OpenThread-8f28
PAN ID: 0x8f28
PSKc: c23a76e98f1a6483639b1ac1271e2e27
Security Policy: 0, onrcb
Done
dataset commit active
Done
ifconfig up
Done
thread start
Done

Warten Sie einige Sekunden...

state
leader
Done

Zweiten Knoten anhängen

Demonstrieren Sie die erfolgreiche Funkkommunikation durch Anhängen eines zweiten Knotens an den neu erstellten Thread-Netzwerk. Verwenden Sie dabei denselben Thread-Netzwerkschlüssel und dieselbe PAN wie beim ersten Knoten:

dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
Done
dataset panid 0x8f28
Done
dataset commit active
Done
routerselectionjitter 1
Done
ifconfig up
Done
thread start
Done

Warten Sie einige Sekunden...

state
router
Done

Zwischen Geräten pingen

Demonstrieren Sie die erfolgreiche Datenpfadkommunikation durch Senden/Empfangen von ICMPv6 Echo-Anfrage-/Antwortnachrichten.

Alle IPv6-Adressen der führenden Anbieter auflisten:

ipaddr
fdde:ad00:beef:0:0:ff:fe00:fc00
fdde:ad00:beef:0:0:ff:fe00:800
fdde:ad00:beef:0:5b:3bcd:deff:7786
fe80:0:0:0:6447:6e10:cf7:ee29
Done

Senden Sie einen ICMPv6-Ping vom Router an die Mesh-Local-EID-IPv6-Adresse des Leaders:

ping fdde:ad00:beef:0:5b:3bcd:deff:7786
16 bytes from fdde:ad00:beef:0:5b:3bcd:deff:7786: icmp_seq=1 hlim=64 time=24ms

Gerät zurücksetzen und erneutes Anhängen validieren

Demonstrieren Sie die persistente Funktionalität durch Zurücksetzen des Geräts und Überprüfen des erneuten Anhängens an dasselbe Netzwerk ohne Eingriff des Nutzers.

Starten Sie ein Thread-Netzwerk:

dataset init new
Done
dataset
Active Timestamp: 1
Channel: 13
Channel Mask: 07fff800
Ext PAN ID: d63e8e3e495ebbc3
Mesh Local Prefix: fd3d:b50b:f96d:722d/64
Network Key: dfd34f0f05cad978ec4e32b0413038ff
Network Name: OpenThread-8f28
PAN ID: 0x8f28
PSKc: c23a76e98f1a6483639b1ac1271e2e27
Security Policy: 0, onrcb
Done
dataset commit active
Done
ifconfig up
Done
thread start
Done

Warten Sie einige Sekunden und prüfen Sie, ob das aktive Dataset in einem nichtflüchtigen Speicher gespeichert wurde:

dataset active
Active Timestamp: 1
Channel: 13
Channel Mask: 07fff800
Ext PAN ID: d63e8e3e495ebbc3
Mesh Local Prefix: fd3d:b50b:f96d:722d/64
Network Key: dfd34f0f05cad978ec4e32b0413038ff
Network Name: OpenThread-8f28
PAN ID: 0x8f28
PSKc: c23a76e98f1a6483639b1ac1271e2e27
Security Policy: 0, onrcb
Done

Setzen Sie das Gerät zurück:

reset
ifconfig up
Done
thread start
Done

Warten Sie einige Sekunden und prüfen Sie, ob das Gerät erfolgreich wieder mit dem Netzwerk verbunden wurde:

panid
0x8f28
Done
state
router
Done

Generieren einer Zufallszahl

Führen Sie den Befehl factoryreset aus und prüfen Sie eine neue zufällige erweiterte Adresse, um die Generierung von Zufallszahlen zu demonstrieren.

extaddr
a660421703f3fdc3
Done
factoryreset

Warten Sie einige Sekunden...

extaddr
9a8ed90715a5f7b6
Done