Inhaltsverzeichnis
Erstelle Deine eigene CoAP-Ressource
In diesem Tutorial erstellen wir eine eigene CoAP-Ressource, d.h. eine URL über die wir mit dem Merkur-Board kommunizieren können. Wir werden dafür das Beispiel aus https://github.com/osdomotics/osd-contiki/tree/master/examples/osd/er-rest-example-merkurboard verwenden.
Aufgabe
Wir wollen die Ressource
actuators/test
zum Projekt er-rest-examples in ~/osd-contiki/examples/osd/er-example-merkurboard/ hinzufügen, die wir mit einem POST-Request aufrufen können
Lösung
Anlegen einer neuen Resource
Wir erweitern die Datei er-example-server.c
Folgender Code legt eine Resource actuators/test an, die POST-Requests unterstützt.
RESOURCE(test, METHOD_POST, "actuators/test", "title=\"Pin\";rt=\"Control\""); void test_handler(void* request, void* response, uint8_t *buffer, uint16_t preferred_size, int32_t *offset) { // Hier kommt dann unser Code rein der ausgefuehrt werden soll wenn die an die Resource gepostet wird } // ... rest_activate_resource(&resource_test);
Compilieren und Flashen
Nach dem Kompilieren mit run.sh und dem flashen mit flash.sh sollte die Resource zur Verfügung stehen.
Hinweis: nach dem Flashen kann es etwas dauern bis der Knoten wieder erreichbar ist (<1min)
Ressource überprüfen
Die Ressource sollte nun über CoAP erreichbar sein. Wir können das entweder im Broker mit dem Copper-AddOn oder über die Konsole mit einem CoAP Command Line Interface überprüfen (ACHTUNG: IP-Adresse anpassen):
coap-client -m get coap://[2001:0db8:2eff:ff00:332e]:5683/.well-known/core