Workshop example

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Revision:
17:fc98adcf835a
Parent:
16:70374ab2404f
Child:
20:a9aab92d378b
--- a/main.cpp	Tue Dec 11 00:25:58 2018 +0000
+++ b/main.cpp	Sun Dec 16 13:29:53 2018 +0000
@@ -92,7 +92,7 @@
  * @param size Size of the body
  */
 void led_post_callback(MbedCloudClientResource *resource, const uint8_t *buffer, uint16_t size) {
-    printf("POST received. Going to blink LED pattern: %s\n", res_led->get_value().c_str());
+    printf("POST received. Payload: %s\n", res_led->get_value().c_str());
     led = atoi(res_led->get_value().c_str());
 }
 
@@ -119,7 +119,7 @@
  * @param endpoint Information about the registered endpoint such as the name (so you can find it back in portal)
  */
 void registered(const ConnectorClientEndpointInfo *endpoint) {
-    printf("Connected to Pelion Device Management. Endpoint Name: %s\n", endpoint->internal_endpoint_name.c_str());
+    printf("Registered to Pelion Device Management. Endpoint Name: %s\n", endpoint->internal_endpoint_name.c_str());
     endpointInfo = endpoint;
 }
 
@@ -144,18 +144,18 @@
     sen_acc_gyro.enable_g();
 
     printf("\033[2J\033[20A");
-    printf ("\r\nSensors configuration:\r\n");
+    printf ("\nSensors configuration:\n");
 
     sen_hum_temp.read_id(&id);
-    printf("HTS221  humidity & temperature    = 0x%X\r\n", id);
+    printf("HTS221  humidity & temperature    = 0x%X\n", id);
     sen_press_temp.read_id(&id);
-    printf("LPS22HB pressure & temperature    = 0x%X\r\n", id);
+    printf("LPS22HB pressure & temperature    = 0x%X\n", id);
     sen_mag.read_id(&id);
-    printf("LIS3MDL magnetometer              = 0x%X\r\n", id);
+    printf("LIS3MDL magnetometer              = 0x%X\n", id);
     sen_acc_gyro.read_id(&id);
-    printf("LSM6DSL accelerometer & gyroscope = 0x%X\r\n", id);
+    printf("LSM6DSL accelerometer & gyroscope = 0x%X\n", id);
 
-    printf("\r\n"); ;
+    printf("\n"); ;
 }
 
 /**
@@ -167,12 +167,12 @@
     int32_t axes[3];
     uint32_t uval;
 
-    printf("\r\n");
+    printf("\n");
 
     fval1 = fval2 = 0.0;
     sen_hum_temp.get_humidity(&fval1);
     sen_hum_temp.get_temperature(&fval2);
-    printf("HTS221 temp:  %7.2f C,  humidity: %7.2f %%\r\n", fval1, fval2);
+    printf("HTS221 temp:  %7.2f C,  humidity: %7.2f %%\n", fval1, fval2);
     if (endpointInfo) {
         res_humidity->set_value(fval1);
         res_temperature->set_value(fval2);
@@ -181,7 +181,7 @@
     fval1 = fval2 = 0.0;
     sen_press_temp.get_pressure(&fval1);
     sen_press_temp.get_temperature(&fval2);
-    printf("LPS22HB temp: %7.2f C,  pressure: %7.2f mbar      \r\n", fval1, fval2);
+    printf("LPS22HB temp: %7.2f C,  pressure: %7.2f mbar      \n", fval1, fval2);
 #ifdef SEND_ALL_SENSORS
     if (endpointInfo) {
         res_pressure->set_value(fval1);
@@ -190,13 +190,13 @@
 #endif /* SEND_ALL_SENSORS */
 
     sen_mag.get_m_axes(axes);
-    printf("LIS3MDL mag:  %7ld x, %7ld y, %7ld z [mgauss]      \r\n", axes[0], axes[1], axes[2]);
+    printf("LIS3MDL mag:  %7ld x, %7ld y, %7ld z [mgauss]      \n", axes[0], axes[1], axes[2]);
 
     sen_acc_gyro.get_x_axes(axes);
-    printf("LSM6DSL acc:  %7ld x, %7ld y, %7ld z [mg]       \r\n", axes[0], axes[1], axes[2]);
+    printf("LSM6DSL acc:  %7ld x, %7ld y, %7ld z [mg]       \n", axes[0], axes[1], axes[2]);
 
     sen_acc_gyro.get_g_axes(axes);
-    printf("LSM6DSL gyro: %7ld x, %7ld y, %7ld z [mdps]      \r\n", axes[0], axes[1], axes[2]);
+    printf("LSM6DSL gyro: %7ld x, %7ld y, %7ld z [mdps]      \n", axes[0], axes[1], axes[2]);
 #ifdef SEND_ALL_SENSORS
     if (endpointInfo) {
         res_gyroscope_x->set_value((float)axes[0]);
@@ -206,12 +206,12 @@
 #endif /* SEND_ALL_SENSORS */
 
 //     if (sen_distance.get_distance(&uval) == VL53L0X_ERROR_NONE) {
-//         printf("VL53L0X [mm]:            %6ld\r\n", uval);
+//         printf("VL53L0X [mm]:            %6ld\n", uval);
 // #ifdef SEND_ALL_SENSORS
 //         if (endpointInfo) res_distance->set_value((float)uval);
 // #endif /* SEND_ALL_SENSORS */
 //     } else {
-//         printf("VL53L0X [mm]:                --\r\n");
+//         printf("VL53L0X [mm]:                --\n");
 // #ifdef SEND_ALL_SENSORS
 //         if (endpointInfo) res_distance->set_value(99999.9);
 // #endif /* SEND_ALL_SENSORS */
@@ -221,11 +221,16 @@
 }
 
 int main(void) {
-    printf("Starting Simple Pelion Device Management Client example\n");
+    printf("\nStarting Simple Pelion Device Management Client example\n");
 
     // If the User button is pressed ons start, then format storage.
+    DigitalIn *user_button = new DigitalIn(BUTTON1);
+#if TARGET_DISCO_L475VG_IOT01A
+    // The user button on DISCO_L475VG_IOT01A works the other way around
     const int PRESSED = 0;
-    DigitalIn *user_button = new DigitalIn(BUTTON1);
+#else
+    const int PRESSED = 1;
+#endif
     if (user_button->read() == PRESSED) {
         printf("User button is pushed on start. Formatting the storage...\n");
         int storage_status = fs.reformat(&sd);
@@ -265,6 +270,8 @@
 
     printf("Connected to the network successfully. IP address: %s\n", net->get_ip_address());
 
+    printf("Initializing Pelion Device Management Client...\n");
+
     // SimpleMbedCloudClient handles registering over LwM2M to Pelion DM
     SimpleMbedCloudClient client(net, bd, &fs);
     int client_status = client.init();
@@ -336,7 +343,7 @@
     // Register with Pelion DM
     client.register_and_connect();
 
-    int i = 600; // wait 60 seconds
+    int i = 600; // wait up 60 seconds before attaching sensors and button events
     while (i-- > 0 && !client.is_client_registered()) {
         wait_ms(100);
     }