
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/relay.cpp
- Revision:
- 1:09a525977925
- Parent:
- 0:9101343a70cd
- Child:
- 2:4166c3e5b321
--- a/resources/relay.cpp Tue Jul 22 23:58:23 2014 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -// GPS resource implementation - -#include "mbed.h" -#include "nsdl_support.h" -#include "relay.h" -#include "Beep.h" - -#define RELAY_RES_ID "beep/0/on" - -extern Serial pc; -static Beep buzzer(p26); - -/* Only GET and PUT method allowed */ -static uint8_t relay_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 uint8_t relay_state = '0'; - - pc.printf("relay 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); - - coap_res_ptr->payload_len = 1; - coap_res_ptr->payload_ptr = &relay_state; - sn_nsdl_send_coap_message(address, coap_res_ptr); - } - else if(received_coap_ptr->msg_code == COAP_MSG_CODE_REQUEST_PUT) - { - if(received_coap_ptr->payload_len) - { - if(*(received_coap_ptr->payload_ptr) == '1') - { - buzzer.beep(1000,0); - relay_state = '1'; - - } - else if(*(received_coap_ptr->payload_ptr) == '0') - { - buzzer.nobeep(); - relay_state = '0'; - } - 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_relay_resource(sn_nsdl_resource_info_s *resource_ptr) -{ - nsdl_create_dynamic_resource(resource_ptr, sizeof(RELAY_RES_ID)-1, (uint8_t*)RELAY_RES_ID, 0, 0, 0, &relay_resource_cb, (SN_GRS_GET_ALLOWED | SN_GRS_PUT_ALLOWED)); - return 0; -} \ No newline at end of file