Coap Client and Server

Dependencies:   DebugLib EthernetInterface cantcoap mbed-rtos

Dependents:   COAP coap

Fork of yeswecancoap by Sille Van Landschoot

YesWeCanCoap

Is a small coap client and server library for mbed based on the cantcoap library.

Import librarycantcoap

This is CoAP library with a focus on simplicity. It offers minimal CoAP PDU construction and decoding to and from byte buffers.

yeswecancoap server enables easy implementation of coap resources, each with a dedicated function. When the function is registered by the server, it will do the rest.

Coap server example

Repository: YesWeCanCoap-example

Coap client example

under construction

Revision:
5:1924c60356d0
Parent:
4:34a62b7cb2f9
Child:
6:0c477f5b79ff
diff -r 34a62b7cb2f9 -r 1924c60356d0 server.cpp
--- a/server.cpp	Wed Oct 21 08:10:12 2015 +0000
+++ b/server.cpp	Wed Oct 21 08:25:17 2015 +0000
@@ -13,7 +13,7 @@
     server.bind(5683);
 }
 
-void Server::add(char* uri, void (*fnc)(CoapPDU*, Response*), Method method)
+void Server::add(char* uri, void (*fnc)(Request*, Response*), Method method)
 {
     Resource res = {uri, fnc, method};
     resources.push_back(res);
@@ -32,13 +32,13 @@
     uint8_t token[TOKEN_BUFFER_SIZE];
     uint8_t tokenLength;
 
-    CoapPDU *recvPDU = new CoapPDU((uint8_t*)buffer,256, size);
-    if(recvPDU->validate()) {
-        recvPDU->printHuman();
+    Request *req = new Request((uint8_t*)buffer,256, size);
+    if(req->validate()) {
+        req->printHuman();
 
-        recvPDU->getURI(uriBuffer,URI_BUFFER_SIZE,&uriLength); 
-        tokenLength = recvPDU->getTokenLength();
-        memcpy(token, recvPDU->getTokenPointer(), tokenLength);
+        req->getURI(uriBuffer,URI_BUFFER_SIZE,&uriLength); 
+        tokenLength = req->getTokenLength();
+        memcpy(token, req->getTokenPointer(), tokenLength);
     }
     
     
@@ -48,10 +48,10 @@
             Response *res = new Response();
             res->setType(Response::COAP_ACKNOWLEDGEMENT);
             res->setCode(Response::COAP_CONTENT);
-            res->setMessageID(recvPDU->getMessageID());
+            res->setMessageID(req->getMessageID());
             res->setToken(token,4);
             
-            resources[i].function(recvPDU, res);
+            resources[i].function(req, res);
                     
             server.sendTo(client, (char*) res->getPDUPointer(),res->getPDULength());
             delete res;
@@ -59,5 +59,5 @@
         }
     }
     
-    delete recvPDU;
+    delete req;
 }
\ No newline at end of file