Mbed Cloud Example Project - LPC546xx (Completed Version)

Fork of mbed-cloud-example-lpc546xx by Clark Jarvis

Committer:
clarkjarvis
Date:
Thu Oct 11 14:47:04 2018 +0000
Revision:
6:19cb3d7341c6
Parent:
5:e521ea1f4c22
Child:
8:99d61dd3bfb9
Cleaned comments to support TechDay Lab Steps

Who changed what in which revision?

UserRevisionLine numberNew contents of line
clarkjarvis 6:19cb3d7341c6 1
clarkjarvis 6:19cb3d7341c6 2
clarkjarvis 6:19cb3d7341c6 3 // Pointer declaration for Rate Resource
clarkjarvis 6:19cb3d7341c6 4 static MbedCloudClientResource* rate_ptr;
clarkjarvis 5:e521ea1f4c22 5
clarkjarvis 5:e521ea1f4c22 6
clarkjarvis 5:e521ea1f4c22 7
clarkjarvis 6:19cb3d7341c6 8 // Setup Mbed Cloud Client Resources
clarkjarvis 5:e521ea1f4c22 9 MbedCloudClientResource *button = mbedClient.create_resource("3200/0/5501", "button_resource");
clarkjarvis 5:e521ea1f4c22 10 button->set_value("0");
clarkjarvis 5:e521ea1f4c22 11 button->methods(M2MMethod::GET);
clarkjarvis 5:e521ea1f4c22 12 button->observable(true);
clarkjarvis 5:e521ea1f4c22 13 button->attach_notification_callback(button_callback);
clarkjarvis 5:e521ea1f4c22 14
clarkjarvis 5:e521ea1f4c22 15 MbedCloudClientResource *rate = mbedClient.create_resource("3201/0/5853", "blink_rate_resource");
clarkjarvis 5:e521ea1f4c22 16 rate->set_value("500");
clarkjarvis 5:e521ea1f4c22 17 rate->methods(M2MMethod::GET | M2MMethod::PUT);
clarkjarvis 5:e521ea1f4c22 18 rate->observable(false);
clarkjarvis 5:e521ea1f4c22 19 rate->attach_put_callback(blink_rate_updated);
clarkjarvis 5:e521ea1f4c22 20 rate_ptr = rate;
clarkjarvis 5:e521ea1f4c22 21
clarkjarvis 5:e521ea1f4c22 22 MbedCloudClientResource *blink = mbedClient.create_resource("3201/0/5850", "blink_enable_resource");
clarkjarvis 5:e521ea1f4c22 23 blink->methods(M2MMethod::POST);
clarkjarvis 5:e521ea1f4c22 24 blink->attach_post_callback(blink_enable_callback);
clarkjarvis 5:e521ea1f4c22 25
clarkjarvis 5:e521ea1f4c22 26
clarkjarvis 5:e521ea1f4c22 27
clarkjarvis 5:e521ea1f4c22 28
clarkjarvis 6:19cb3d7341c6 29 // Resource Callback Functions
clarkjarvis 5:e521ea1f4c22 30 void blink_rate_updated(const char *) {
clarkjarvis 5:e521ea1f4c22 31 printf("PUT received, Storing LED Blink Rate: %s (ms)\r\n", rate_ptr->get_value().c_str());
clarkjarvis 5:e521ea1f4c22 32 }
clarkjarvis 5:e521ea1f4c22 33
clarkjarvis 5:e521ea1f4c22 34 void blink_enable_callback(void *) {
clarkjarvis 5:e521ea1f4c22 35 String pattern_str = rate_ptr->get_value();
clarkjarvis 5:e521ea1f4c22 36 const char *rate = pattern_str.c_str();
clarkjarvis 5:e521ea1f4c22 37 printf("POST received. Enabling LED Blink Rate = %s (ms)\n", rate);
clarkjarvis 5:e521ea1f4c22 38
clarkjarvis 5:e521ea1f4c22 39 float value = atoi(rate_ptr->get_value().c_str())/1000.0;
clarkjarvis 5:e521ea1f4c22 40 timer.detach();
clarkjarvis 5:e521ea1f4c22 41 timer.attach(&led_toggle,value);
clarkjarvis 5:e521ea1f4c22 42 }
clarkjarvis 5:e521ea1f4c22 43
clarkjarvis 5:e521ea1f4c22 44 void button_callback(const M2MBase& object, const NoticationDeliveryStatus status)
clarkjarvis 5:e521ea1f4c22 45 {
clarkjarvis 5:e521ea1f4c22 46 printf("Button notification. Callback: (%s)\n", object.uri_path());
clarkjarvis 5:e521ea1f4c22 47 }
clarkjarvis 5:e521ea1f4c22 48
clarkjarvis 5:e521ea1f4c22 49
clarkjarvis 5:e521ea1f4c22 50
clarkjarvis 6:19cb3d7341c6 51 // Call to update button resource count
clarkjarvis 5:e521ea1f4c22 52 button->set_value(button_count);