CoAP Device Server Client mit leshan Server

Dependencies:   EthernetInterface mbed-rtos mbed nsdl_lib

Fork of COAPmbed by smd.iotkit2.ch

Sandbox Server

Eclipse stellt einen Testserver unter http://leshan.eclipse.org/ zur Verfügung. Das Programm verbindet sich mit diesem und ist unter mbed-k64f... erreichbar.

Installation lokale Version leshan

wget https://hudson.eclipse.org/leshan/job/leshan/lastSuccessfulBuild/artifact/leshan-server-demo.jar
java -jar ./leshan-server-demo.jar

cURL

Die Funktionen können mittels cURL oder Browser wie folgt getestet werden:

# Alle Clients abfragen (Antwort im JSON Format)
curl -X GET  http://localhost:8080/api/clients
                         
# Wert von LED2 abfragen (Antwort im text/plain Format)                      
curl -X GET  http://localhost:8080/api/clients/mbed-k64f-1234/10/0/2 
 
# Wert für LED2 setzen
curl -X GET -vvv http://localhost:8080/api/clients/mbed-k64f-1234/10/0/2 -H "Content-Type: text/plain" -d "10"
Revision:
15:fba25b7e63cd
Parent:
14:54c3708f7c3c
Child:
16:b27c9d2b1a98
diff -r 54c3708f7c3c -r fba25b7e63cd main.cpp
--- a/main.cpp	Fri Apr 17 07:58:23 2015 +0000
+++ b/main.cpp	Sun Jun 21 12:12:34 2015 +0000
@@ -1,6 +1,5 @@
 /**  CoAP Device Server Client
-    Zeile 29: Node Name aendern und folgende Adresse aufrufen:
-    http://nsp.cloudapp.net:8083/, User/PW = demo
+    Zeile 29: Node Name aendern und auf der Gegenseite leshan Server Verwenden.
 */ 
 #include "mbed.h"
 #include "EthernetInterface.h"
@@ -11,6 +10,11 @@
 #include "light.h"
 //#include "gps.h"
 //#include "relay.h"
+#include "PwmOutResource.h"
+
+PwmOutResource led1( D11, "led1", "10/0/0" );
+PwmOutResource led2( D12, "led2", "10/0/1" );
+PwmOutResource led3( D13, "led3", "10/0/2" );
 
 Serial pc(USBTX, USBRX); // tx, rx
 
@@ -23,8 +27,7 @@
 
 // NSP configuration
 /* Change this IP address to that of your NanoService Platform installation */
-static const char* NSP_ADDRESS = "23.97.178.38"; /* demo NSP, web interface at http://nsp.cloudapp.net:8083/, User/PW = demo */ 
-//static const char* NSP_ADDRESS = "192.168.178.77"; /* Lokale Installation */ 
+static const char* NSP_ADDRESS = "192.168.178.23"; /* Lokale Installation - leshan Server (gepatcht) */ 
 static const int NSP_PORT = 5683;
 char endpoint_name[] = "mbed-k64f-1234"; // aendern pro Node
 uint8_t ep_type[] = {"mbed_device"};
@@ -40,7 +43,6 @@
     //char mbed_uid[33]; // for creating unique name for the board
 
     /* Initialize network */
-    NSDL_DEBUG("DHCP in use\r\n");
     eth.init();
     
     if(eth.connect(30000) == 0)
@@ -100,14 +102,17 @@
     memset(resource_ptr->resource_parameters_ptr, 0, sizeof(sn_nsdl_resource_parameters_s));
 
     // Static resources
-    nsdl_create_static_resource(resource_ptr, sizeof("dev/mfg")-1, (uint8_t*) "dev/mfg", 0, 0,  (uint8_t*) "mc-b", sizeof("mc-b")-1);
-    nsdl_create_static_resource(resource_ptr, sizeof("dev/mdl")-1, (uint8_t*) "dev/mdl", 0, 0,  (uint8_t*) "CoAP mbed device", sizeof("CoAP mbed device")-1);
+    nsdl_create_static_resource(resource_ptr, sizeof("3/0/0")-1, (uint8_t*) "3/0/0", 0, 0,  (uint8_t*) "mc-b", sizeof("mc-b")-1);
+    nsdl_create_static_resource(resource_ptr, sizeof("3/0/1")-1, (uint8_t*) "3/0/1", 0, 0,  (uint8_t*) "CoAP mbed device", sizeof("CoAP mbed device")-1);
 
     // Dynamic resources
     //create_temperature_resource(resource_ptr);
     create_light_resource(resource_ptr);
     //create_gps_resource(resource_ptr);
     //create_relay_resource(resource_ptr);
+    led1.create( resource_ptr );
+    led2.create( resource_ptr );
+    led3.create( resource_ptr );        
 
         /* Register with NSP */
     endpoint_ptr = nsdl_init_register_endpoint(endpoint_ptr, (uint8_t*)endpoint_name, ep_type, lifetime_ptr);