Coap Client and Server
Dependencies: DebugLib EthernetInterface cantcoap mbed-rtos
Fork of yeswecancoap by
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
Diff: server.cpp
- 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