Inhaltsverzeichnis
Workshop: RESTful Services mit Contiki
1. Installation der Entwicklungsumgebung:
- Anmeldung an Instant Contiki mit dem Passwort:
user
- Die folgende Beschreibung bezieht sich immer auf das Quellcode-Verzeichnis:
/home/user/contiki-2.7/
2. Anpassung der Contiki-Einstellungen
Im Workshop wollen wir Contiki-Anwendungen direkt auf dem Entwicklungsrechner ausführen. Dazu müssen einige Veränderungen an den Quellcode-Dateien vorgenommen werden, um z.B. eine optimale Netzunterstützung zu gewährleisten.
2.1 Download der Folien und Software
- Die Folien zum Vortrag können über diesen Link heruntergeladen werden.
- Die für diesen Workshop geänderten Contiki Dateien finden Sie hier: contiki-2.7.zip
- Die Dateien der Webanwendung finden sie hier: rest_demo.zip
2.2 Anpassung der Linux-Netzwerkeinstellungen
Die Netzwerkverbindung zum Host-PC erfolgt über NAT. Die IPv6 Adresse des Ethernet-Interface des Linux Guests wird mit folgendem Kommando konfiguriert:
sudo ifconfig eth0 add fdfa::9/64
2.3 Anpassung der Contiki-Netzwerkeinstellungen
In der Datei /contiki-2.7/platform/minimal-net/contiki-conf.h
:
- Aktivieren des ULA-Präfixes in Zeile 79:
#define HARD_CODED_ADDRESS "fdfd::" //assign prefix; address becomes fdfd::206:98ff:fe00:232 }
- Dektivieren des RPL-Routings in Zeile 93:
#define UIP_CONF_IPV6_RPL 0
- Deaktivieren der Router-Funktion in Zeile 94:
#define RPL_BORDER_ROUTER 0
- Vergrößern des Paketpuffers durch Einfügen der Zeile 95:
#define UIP_CONF_BUFFER_SIZE 1300
2.4 Anpassung des Makefiles
In der Datei /contiki-2.7/examples/rest-example/Makefile
:
- Übersetzungsziel des Makefiles ändern:
all: rest-server-example
- Kein COAP verwenden:
WITH_COAP = 0
- Compileflags für IPv6 hinzufügen:
CFLAGS += -DUIP_CONF_IPV6=1
3. Übersetzen des RESTful Webservices
Im Anschluss kann der RESTful Webserver von Contiki mit Hilfe des Makefiles übersetzt werden:
make TARGET=minimal-net
Sollte es notwenig sein nachträglich weitere Änderungen am Makefile durchzuführen, kann das Projekt vor der erneuten Übersetzung zurückgesetzt werden:
make TARGET=minimal-net clean
4. Ausführung des REST-Servers und Anpassung des Netzwerks
Nach der erfolgreichen Übersetzung kann die Anwendung gestartet werden:
sudo ./rest-server-example.minimal-net
Contiki richtet dabei ein eigenes Netzwerkinterface tap0
ein.
Für den Netzzugriff auf die IPv6-ULA muss über ein weiteres Terminalfenster
dieses Interface noch entsprechend konfiguriert werden ( Achtung: bei jedem Neustart der
Contiki-Anwendung erforderlich):
sudo ifconfig tap0 add fdfd::ff:fe00:10/64
Anschließend kann über den Webbrowser des Entwicklungssystems auf den Contiki-Service zugegriffen werden. Dazu muss in der Adresszeile http://[fdfd::206:98ff:fe00:232]:8080/helloworld eingegeben werden.