
LED Demo for Tech Con 2014
Dependencies: EthernetInterface PololuLedStripx mbed-rtos mbed nanoservice_client_1_12_X
Fork of LPC1768_LWM2M_Client by
Diff: resources/light.cpp
- Revision:
- 1:09a525977925
- Parent:
- 0:9101343a70cd
- Child:
- 2:4166c3e5b321
--- a/resources/light.cpp Tue Jul 22 23:58:23 2014 +0000 +++ b/resources/light.cpp Sat Sep 27 21:53:28 2014 +0000 @@ -4,51 +4,41 @@ #include "nsdl_support.h" #include "light.h" -#define LIGHT_RES_ID "lt/0/dim" +#define LIGHT_RES_ID "11100/0/5900" extern Serial pc; -//PwmOut led1(LED1); -static PwmOut led2(LED2); -static PwmOut led3(LED3); -//PwmOut led4(LED4); +char led_color[] = {"00000000"}; /* 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) { sn_coap_hdr_s *coap_res_ptr = 0; - static float led_dimm = 0; - int led_state = 0; - char led_dimm_temp[4]; - pc.printf("light callback\r\n"); + pc.printf("LED Strip 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; + coap_res_ptr->payload_len = strlen(led_color); + coap_res_ptr->payload_ptr = (uint8_t*)led_color; sn_nsdl_send_coap_message(address, coap_res_ptr); } 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; + pc.printf("PUT: %d bytes\r\n", received_coap_ptr->payload_len); + if(received_coap_ptr->payload_len == 8) + { + memcpy(led_color, (char *)received_coap_ptr->payload_ptr, received_coap_ptr->payload_len); - //led1.write(led_dimm); - led2.write(led_dimm); - led3.write(led_dimm); - //led4.write(led_dimm); + led_color[received_coap_ptr->payload_len] = '\0'; + pc.printf("PUT: %s\r\n",led_color); - coap_res_ptr = sn_coap_build_response(received_coap_ptr, COAP_MSG_CODE_RESPONSE_CHANGED); - sn_nsdl_send_coap_message(address, coap_res_ptr); + //call LED strup update function here + + 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);