Red Hat Summit NanoService Demo for LPC1768 App Board using OMA Lightweight Objects

Dependencies:   Beep C12832_lcd EthernetInterface LM75B MMA7660 mbed-rtos mbed nsdl_lib

Fork of LWM2M_NanoService_Ethernet by MBED_DEMOS

Files at this revision

API Documentation at this revision

Comitter:
sam_grove
Date:
Tue Apr 29 00:29:55 2014 +0000
Parent:
29:7512729587cf
Child:
32:7f3f1ef700e3
Commit message:
mbed station as sent to cable labs

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
resources/light.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Apr 28 22:49:53 2014 +0000
+++ b/main.cpp	Tue Apr 29 00:29:55 2014 +0000
@@ -32,9 +32,9 @@
 /* Change this IP address to that of your NanoService Platform installation */
 static const char* NSP_ADDRESS = "208.111.39.209"; /* demo NSP, web interface at http://208.111.39.209/ */
 static const int NSP_PORT = 5683;
-char endpoint_name[20] = "mbed-lafd-cert-";
+char endpoint_name[20] = "mbed-station-";
 char mbed_uid[33]; // for creating unique name for the board
-uint8_t ep_type[] = {"mbed_lafd_cert"};
+uint8_t ep_type[] = {"mbed_station"};
 uint8_t lifetime_ptr[] = {"60"};
 static const char* FIRMWARE_VER = "25"; // Committed revision number
 char* mac;
@@ -122,7 +122,7 @@
 
     // Static resources
     nsdl_create_static_resource(resource_ptr, sizeof("3/0/0")-1, (uint8_t*) "3/0/0", 0, 0,  (uint8_t*) "ARM", sizeof("ARM")-1);
-    nsdl_create_static_resource(resource_ptr, sizeof("3/0/1")-1, (uint8_t*) "3/0/1", 0, 0,  (uint8_t*) "LPC1768 mbed lafd", sizeof("LPC1768 mbed lafd")-1);
+    nsdl_create_static_resource(resource_ptr, sizeof("3/0/1")-1, (uint8_t*) "3/0/1", 0, 0,  (uint8_t*) "LPC1768 station", sizeof("LPC1768 station")-1);
     nsdl_create_static_resource(resource_ptr, sizeof("3/0/2")-1, (uint8_t*) "3/0/2", 0, 0,  (uint8_t*) mbed_uid, sizeof(mbed_uid)-1);
     nsdl_create_static_resource(resource_ptr, sizeof("3/0/3")-1, (uint8_t*) "3/0/3", 0, 0,  (uint8_t*) FIRMWARE_VER, strlen(FIRMWARE_VER));
    #ifdef DHCP
@@ -139,7 +139,7 @@
     create_temperature_resource(resource_ptr);
     create_light_resource(resource_ptr);
     create_gps_resource(resource_ptr);
-    create_relay_resource(resource_ptr);
+    //create_relay_resource(resource_ptr);
 
 #ifdef USE_RGBLED
     NSDL_DEBUG("Enabling RGB LED due to USE_RGBLED=%d\n", USE_RGBLED);
--- a/resources/light.cpp	Mon Apr 28 22:49:53 2014 +0000
+++ b/resources/light.cpp	Tue Apr 29 00:29:55 2014 +0000
@@ -4,58 +4,72 @@
 #include "nsdl_support.h"
 #include "light.h"
 
-#define LIGHT_RES_ID    "311/0/5851"
+//#define LIGHT_RES_ID    "311/0/5851"
 #define LIGHT_FLASH_ID  "311/0/5850"
 
 extern Serial pc;
 static PwmOut led2(LED2);
 static PwmOut led3(LED3);
 
-static DigitalOut out1(LED1);
+static DigitalOut out1(p22);
 static Ticker flash;
+static Timeout reset;
+
+#include "Beep.h"
+static Beep buzzer(p26);
+Ticker beep_tick;
+static void beepHanlder(void);
+
+static void beepHandler(void)
+{
+    buzzer.beep(1000, 0.3f);
+}
+
 
 static void flashHandler(void)
 {
-    out1 = !out1;
+    out1 = 0;
+    wait(0.1f);
+    out1 = 1;
 }
 
-/* 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 dimmer 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);
-    } 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;
-
-        led2.write(led_dimm);
-        led3.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;
-}
+///* 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 dimmer 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);
+//    } 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;
+//
+//        led2.write(led_dimm);
+//        led3.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;
+//}
 
 
 /* Only GET and PUT method allowed */
@@ -80,14 +94,18 @@
         {
             if(*(received_coap_ptr->payload_ptr) == '1')
             {
-                flash.attach(&flashHandler, 1.0f);
+                flash.attach(&flashHandler, 10.0f);
+                beep_tick.attach(&beepHandler, 0.6f);
                 flash_state = '1';
-                
+                out1 = 1;
             }
             else if(*(received_coap_ptr->payload_ptr) == '0')
             {
                 out1 = 0;
+                buzzer.nobeep();
                 flash.detach();
+                reset.detach();
+                beep_tick.detach();
                 flash_state = '0';
             }
             coap_res_ptr = sn_coap_build_response(received_coap_ptr, COAP_MSG_CODE_RESPONSE_CHANGED);
@@ -102,7 +120,7 @@
 
 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));
+    //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));
     nsdl_create_dynamic_resource(resource_ptr, sizeof(LIGHT_FLASH_ID)-1, (uint8_t*)LIGHT_FLASH_ID, 0, 0, 0, &light_flash_resource_cb, (SN_GRS_GET_ALLOWED | SN_GRS_PUT_ALLOWED));
     return 0;
 }
\ No newline at end of file