COAP mbed Beispiel

Dependencies:   EthernetInterface mbed-rtos mbed nsdl_lib

Fork of IoTKit_CoAP by mc-b

Constrained Application Protocol (Coap) ist ein Software-Protokoll welches für Internet der Dinge Geräte zugeschnitten ist.

COAP ist auf den meisten Geräten, die UDP Unterstützen, lauffähig.

Ein COAP fähiges Gerät publiziert seine Sensoren und Aktoren in einem Resource Directory oder stellt selber ein solches zur Verfügung.

Mittels Resource Discovery können die vorhandenen Sensoren und Aktoren mit ihren Attributen abgefragt werden.

Revision:
9:18f4959c2bac
Parent:
2:7e489126fe7a
Child:
11:99178da0f3fa
--- a/resources/light.cpp	Mon Aug 04 17:00:58 2014 +0000
+++ b/resources/light.cpp	Sun Jan 18 15:41:27 2015 +0000
@@ -1,17 +1,17 @@
 // Light resource implementation
-
+ 
 #include "mbed.h"
 #include "nsdl_support.h"
 #include "light.h"
-
+ 
 #define LIGHT_RES_ID    "lt/0/dim"
-
+ 
 extern Serial pc;
 //PwmOut led1(LED1);
-static PwmOut led2(LED2);
-static PwmOut led3(LED3);
+static PwmOut led2(D6);
+static PwmOut led3(D7);
 //PwmOut led4(LED4);
-
+ 
 /* Only GET and PUT method allowed */
 static uint8_t light_resource_cb(sn_coap_hdr_s *received_coap_ptr, sn_nsdl_addr_s *address, sn_proto_info_s * proto)
 {
@@ -19,16 +19,16 @@
     static float led_dimm = 0;
     int led_state = 0;
     char led_dimm_temp[4];
-
+ 
     pc.printf("light callback\r\n");
-
+ 
     if(received_coap_ptr->msg_code == COAP_MSG_CODE_REQUEST_GET)
     {
         coap_res_ptr = sn_coap_build_response(received_coap_ptr, COAP_MSG_CODE_RESPONSE_CONTENT);
-
+ 
         led_state = led_dimm * 100;
         sprintf(led_dimm_temp, "%d", led_state);
-
+ 
         coap_res_ptr->payload_len = strlen(led_dimm_temp);
         coap_res_ptr->payload_ptr = (uint8_t*)led_dimm_temp;
         sn_nsdl_send_coap_message(address, coap_res_ptr);
@@ -36,25 +36,25 @@
     else if(received_coap_ptr->msg_code == COAP_MSG_CODE_REQUEST_PUT)
     {
         memcpy(led_dimm_temp, (char *)received_coap_ptr->payload_ptr, received_coap_ptr->payload_len);
-
+ 
         led_dimm_temp[received_coap_ptr->payload_len] = '\0';
-
+ 
         led_dimm = atof(led_dimm_temp);
         led_dimm = led_dimm/100;
-
+ 
         //led1.write(led_dimm);
         led2.write(led_dimm);
         led3.write(led_dimm);
         //led4.write(led_dimm);
-
+ 
         coap_res_ptr = sn_coap_build_response(received_coap_ptr, COAP_MSG_CODE_RESPONSE_CHANGED);
         sn_nsdl_send_coap_message(address, coap_res_ptr);
     }
-
+ 
     sn_coap_parser_release_allocated_coap_msg_mem(coap_res_ptr);
     return 0;
 }
-
+ 
 int create_light_resource(sn_nsdl_resource_info_s *resource_ptr)
 {
     nsdl_create_dynamic_resource(resource_ptr, sizeof(LIGHT_RES_ID)-1, (uint8_t*)LIGHT_RES_ID, 0, 0, 0, &light_resource_cb, (SN_GRS_GET_ALLOWED | SN_GRS_PUT_ALLOWED));