pkg/openthread: Add tests
This commit is contained in:
parent
017280db13
commit
fc4fd6222f
53
tests/openthread/Makefile
Normal file
53
tests/openthread/Makefile
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
APPLICATION = openthread
|
||||||
|
|
||||||
|
# If no BOARD is found in the environment, use this default:
|
||||||
|
BOARD ?= samr21-xpro
|
||||||
|
|
||||||
|
BOARD_WHITELIST := samr21-xpro iotlab-m3 fox iotlab-a8-m3
|
||||||
|
|
||||||
|
# This has to be the absolute path to the RIOT base directory:
|
||||||
|
RIOTBASE ?= $(CURDIR)/../..
|
||||||
|
|
||||||
|
# Comment this out to disable code in RIOT that does safety checking
|
||||||
|
# which is not needed in a production environment but helps in the
|
||||||
|
# development process:
|
||||||
|
CFLAGS += -DDEVELHELP -Wall
|
||||||
|
|
||||||
|
# Change this to 0 show compiler invocation lines by default:
|
||||||
|
QUIET ?= 1
|
||||||
|
|
||||||
|
USEPKG += openthread
|
||||||
|
USEMODULE += openthread_contrib
|
||||||
|
USEMODULE += libmbedcrypto
|
||||||
|
USEMODULE += libopenthread
|
||||||
|
USEMODULE += libopenthread-cli
|
||||||
|
USEMODULE += xtimer
|
||||||
|
|
||||||
|
ifneq (,$(filter samr21-xpro,$(BOARD)))
|
||||||
|
DRIVER := at86rf233
|
||||||
|
endif
|
||||||
|
ifneq (,$(filter iotlab-m3 fox iotlab-a8-m3,$(BOARD)))
|
||||||
|
DRIVER := at86rf231
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq (,$(filter at86rf2%,$(DRIVER)))
|
||||||
|
FEATURES_REQUIRED = periph_spi
|
||||||
|
FEATURES_REQUIRED = periph_gpio
|
||||||
|
endif
|
||||||
|
|
||||||
|
USEMODULE += $(DRIVER)
|
||||||
|
|
||||||
|
USEMODULE += random
|
||||||
|
USEMODULE += shell
|
||||||
|
USEMODULE += shell_commands
|
||||||
|
USEMODULE += ps
|
||||||
|
USEMODULE += ipv6_addr
|
||||||
|
|
||||||
|
#required for C++ compiling
|
||||||
|
CXXEXFLAGS += -fno-rtti
|
||||||
|
USEMODULE += cpp11-compat
|
||||||
|
|
||||||
|
#Define PANID and CHANNEL used by default
|
||||||
|
#CFLAGS += -DOPENTHREAD_PANID=0xbeef -DOPENTHREAD_CHANNEL=11
|
||||||
|
|
||||||
|
include $(RIOTBASE)/Makefile.include
|
||||||
36
tests/openthread/README.md
Normal file
36
tests/openthread/README.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
## OpenThread on RIOT
|
||||||
|
|
||||||
|
This test demonstrates the [OpenThread](https://github.com/openthread/openthread) stack running on RIOT. When flashed,
|
||||||
|
it will initialize the OpenThread Command Line Interface for interacting with the stack.
|
||||||
|
|
||||||
|
## Quick usage
|
||||||
|
|
||||||
|
To test OpenThread on RIOT, you can do the following:
|
||||||
|
|
||||||
|
1. Flash nodes with `make BOARD=<target> clean all flash`
|
||||||
|
2. Write `panid 0x1234`, `ifconfig up` then `thread start` on one node.
|
||||||
|
3. Check the state of the node with `state`. In the beggining should be `detached`, but after some seconds it should
|
||||||
|
become `leader`
|
||||||
|
4. Write `panid 0x1234`, `ifconfig up` then `thread start` on another node.
|
||||||
|
The second node should become `child` or `router` if there's a leader.
|
||||||
|
5. Get the mesh IP address of a node with `ipaddr`.
|
||||||
|
|
||||||
|
```
|
||||||
|
ipaddr
|
||||||
|
fdde:ad00:beef::ff:fe00:8000
|
||||||
|
fe80::ff:fe00:8000
|
||||||
|
fdde:ad00:beef:0:946a:c722:a5d9:8481
|
||||||
|
fe80::3984:f4eb:d182:5dae
|
||||||
|
```
|
||||||
|
|
||||||
|
Addresses starting with `fd` are mesh-local, and addresses starting with `fe80` are link-local.
|
||||||
|
Mesh-local address types that contain `ff:fe00` are classified as Router Locator (RLOC). Mesh-local address types
|
||||||
|
that don't contain `ff:fe00` are Endpoint Identifies (EID).
|
||||||
|
6. Ping from another node to a mesh-local address with `ping fdde:ad00:beef:0:946a:c722:a5d9:8481`.
|
||||||
|
7. You can try IEEE802.15.4 scan with `scan` command
|
||||||
|
8. You can also check other commands with `help`
|
||||||
|
9. Enjoy!
|
||||||
|
|
||||||
|
## Note
|
||||||
|
|
||||||
|
See the [OpenThread CLI Reference](https://github.com/openthread/openthread/blob/master/src/cli/README.md) for more information about OpenThread CLI commands
|
||||||
34
tests/openthread/main.c
Normal file
34
tests/openthread/main.c
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2017 Baptiste CLENET
|
||||||
|
*
|
||||||
|
* This file is subject to the terms and conditions of the GNU Lesser
|
||||||
|
* General Public License v2.1. See the file LICENSE in the top level
|
||||||
|
* directory for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* @brief OpenThread test application
|
||||||
|
*
|
||||||
|
* @author Baptiste Clenet <baptiste.clenet@xsoen.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "net/ipv6/addr.h"
|
||||||
|
#include "openthread/ip6.h"
|
||||||
|
#include "openthread/thread.h"
|
||||||
|
#include "openthread/udp.h"
|
||||||
|
#include "ot.h"
|
||||||
|
#include "shell.h"
|
||||||
|
#include "shell_commands.h"
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
printf("Get PANID\n");
|
||||||
|
uint16_t panid = 0;
|
||||||
|
uint8_t res = ot_call_command("panid", NULL, (void*)&panid);
|
||||||
|
printf("Current panid: 0x%x (res:%x)\n", panid, res);
|
||||||
|
|
||||||
|
openthread_uart_run();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user