Skip to content

Latest commit

 

History

History
116 lines (85 loc) · 2.63 KB

README.md

File metadata and controls

116 lines (85 loc) · 2.63 KB

microcoap server example

This application is meant to get you started with implementing a CoAP server on RIOT. It uses the GNRC network stack through RIOT's conn socket API.

Usage

To try out the server on native, compile it with

$ make all

Then, create a tap interface (to which RIOT will connect):

$ sudo ip tuntap add tap0 mode tap user ${USER}
$ sudo ip link set tap0 up

Run the resulting RIOT binary by invoking:

$ make term

The application is now listening on all it's configured IP addresses.

Now find out its link_layer address:

$ make term
/home/kaspar/src/riot/examples/microcoap_server/bin/native/microcoap_server.elf tap0
RIOT native interrupts/signals initialized.
LED_GREEN_OFF
LED_RED_ON
RIOT native board initialized.
RIOT native hardware initialization complete.

main(): This is RIOT! (Version: 2015.12-devel-632-g8f451-booze-add_conn_coap_example)
RIOT microcoap example application
Configured network interfaces:
Iface  5   HWaddr: fa:bf:2b:01:9e:a3
           MTU:1280  HL:64
           Source address length: 6
           Link type: wired
           inet6 addr: ff02::1/128  scope: local [multicast]
           inet6 addr: fe80::f8bf:2bff:fe01:9ea3/64  scope: local
           inet6 addr: ff02::1:ff01:9ea3/128  scope: local [multicast]
           inet6 addr: ff02::2/128  scope: local [multicast]

Waiting for incoming UDP packet...

The link-layer address in this case is "fe80::f8bf:2bff:fe01:9ea3", the only "scope: local" address set.

Testing

There are multiple external CoAP clients you can use to test the server on native.

libcoap CLI

(replace "fe80::f8bf:2bff:fe01:9ea3" with your link-layer address)

# coap-client "coap://[fe80::f8bf:2bff:fe01:9ea3%tap0]/riot/board"

Copper (Firefox Plugin)

The Copper plugin for Firefox provides you with a nice graphical interface, but getting it to work with RIOT requires a little setup.

Make sure you've installed

Enter the following into your /etc/radvd.conf (if it doesn't exist yet, create one):

interface tap0
{
        AdvSendAdvert on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 10;
        prefix fc00::/64
        {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr off;
        };
};

(you can use radvd -c to check for syntax errors)

and run

/bin/systemctl start radvd.service

Now you can enter

coap://[fc00::1]/riot/board

into your Firefox address bar.