Files
openthread/examples/apps/cli
Ciaran Woodward 24bd599b45 [cmake] fix platform-utils for cmake (#4112)
platform-utils has a dependency on the core ot library, which was
causing the build to fail. I have resolved this by making
platform-utils an 'object library', which means the object files
will always be used by the linker, preventing the 'smart linker'
errors that occur with ld and cyclic dependencies.

I also provided a static (.a) implementation of the library in case
any non-cmake project wanted to consume the results (at which point
that project can deal with the dependency as it wishes).

So now it is up to the 'platform layer' to include the 'platform utils'
objects inside its own library if it requires them. I have implemented
this for the current cmake example platforms.
2019-11-26 00:53:35 +08:00
..

OpenThread CLI Example

This example application exposes OpenThread configuration and management APIs via a simple command-line interface. The steps below take you through the minimal steps required to ping one emulated Thread device from another emulated Thread device.

1. Build

$ cd <path-to-openthread>
$ ./bootstrap
$ make -f examples/Makefile-posix

2. Start node 1

Spawn the process:

$ cd <path-to-openthread>/output/<platform>/bin
$ ./ot-cli-ftd 1

Generate, view, and commit a new Active Operational Dataset:

> 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
Master Key: dfd34f0f05cad978ec4e32b0413038ff
Network Name: OpenThread-8f28
PAN ID: 0x8f28
PSKc: c23a76e98f1a6483639b1ac1271e2e27
Security Policy: 0, onrcb
Done
> dataset commit active
Done

Bring up the IPv6 interface:

> ifconfig up
Done

Start Thread protocol operation:

> thread start
Done

Wait a few seconds and verify that the device has become a Thread Leader:

> state
leader
Done

View IPv6 addresses assigned to Node 1's Thread interface:

> ipaddr
fd3d:b50b:f96d:722d:0:ff:fe00:fc00
fd3d:b50b:f96d:722d:0:ff:fe00:c00
fd3d:b50b:f96d:722d:7a73:bff6:9093:9117
fe80:0:0:0:6c41:9001:f3d6:4148
Done

2. Start node 2

Spawn the process:

$ cd <path-to-openthread>/output/<platform>/bin
$ ./ot-cli-ftd 2

Configure Thread Master Key from Node 1's Active Operational Dataset:

> dataset masterkey dfd34f0f05cad978ec4e32b0413038ff
Done
> dataset commit active
Done

Bring up the IPv6 interface:

> ifconfig up
Done

Start Thread protocol operation:

> thread start
Done

Wait a few seconds and verify that the device has become a Thread Child or Router:

> state
child
Done

3. Ping Node 1 from Node 2

> ping fd3d:b50b:f96d:722d:7a73:bff6:9093:9117
16 bytes from fd3d:b50b:f96d:722d:558:f56b:d688:799: icmp_seq=1 hlim=64 time=24ms

4. Explore More

See the OpenThread CLI Reference README.md to explore more.