Simple Mbed Cloud Client application using features of K64 & K66
Connect to Mbed Cloud!
This example was customized a bit for FRDM-K66 and FRDM-K64F.
It depends on having an SD Card plugged in for storage of credentials. It could be changed later to use a SPI flash or other storage on a shield or wired in.
The app keeps track of how many times switch 2 (SW2) is pressed. The value can be retrieved via a GET request to Mbed Cloud.
Also, it will blink a pattern based on milisecond (ms) timing values that can be sent from Mbed Cloud. The pattern can be sent with a PUT request and the blinking sequence can be triggered by a POST request.
Diff: main.cpp
- Revision:
- 5:c18fab181ede
- Parent:
- 4:a107dae867fb
- Child:
- 6:254a7e7fbef1
diff -r a107dae867fb -r c18fab181ede main.cpp
--- a/main.cpp Wed Feb 14 15:09:00 2018 +0000
+++ b/main.cpp Wed Feb 14 17:26:42 2018 -0600
@@ -29,6 +29,10 @@
// Placeholder to hardware that trigger events (timer, button, etc)
Ticker timer;
+// Placeholder for storage
+SDBlockDevice sd(PTE3, PTE1, PTE2, PTE4);
+FATFileSystem fs("sd");
+
// Pointers to the resources that will be created in main_application().
static MbedCloudClientResource* pattern_ptr;
@@ -42,12 +46,13 @@
}
void pattern_updated(const char *) {
- printf("PUT received, new value: %s\n", pattern_ptr->get_value());
+ printf("PUT received, new value: %s\n", pattern_ptr->get_value().c_str());
// Placeholder for PUT action
}
void blink_callback(void *) {
- const char *pattern = pattern_ptr->get_value();
+ String pattern_str = pattern_ptr->get_value();
+ const char *pattern = pattern_str.c_str();
printf("POST received. LED pattern = %s\n", pattern);
// Placeholder for POST action
// The pattern is something like 500:200:500, so parse that.
@@ -72,10 +77,6 @@
// Placeholder for network
EthernetInterface net;
- // Placeholder for storage
- SDBlockDevice sd(PTE3, PTE1, PTE2, PTE4);
- FATFileSystem fs("sd");
-
printf("Start Simple Mbed Cloud Client\n");
// Initialize SD card
@@ -129,17 +130,17 @@
button->set_value("0");
button->methods(M2MMethod::GET);
button->observable(true);
- button->attach_notification(M2MMethod::GET, (void*)button_callback);
+ button->attach_notification_callback(button_callback);
MbedCloudClientResource *pattern = mbedClient.create_resource("3201/0/5853", "pattern_resource");
pattern->set_value("500:500:500:500");
pattern->methods(M2MMethod::GET | M2MMethod::PUT);
- pattern->attach(M2MMethod::PUT, (void*)pattern_updated);
+ pattern->attach_put_callback(pattern_updated);
pattern_ptr = pattern;
MbedCloudClientResource *blink = mbedClient.create_resource("3201/0/5850", "blink_resource");
blink->methods(M2MMethod::POST);
- blink->attach(M2MMethod::POST, (void*)blink_callback);
+ blink->attach_post_callback(blink_callback);
mbedClient.register_and_connect();