Heart Rate Monitor example for the BLE API using nRF51822 native mode drivers

Dependencies:   BLE_API mbed nRF51822 X_NUCLEO_IDB0XA1

Fork of BLE_HeartRate by Bluetooth Low Energy

Revision:
9:5d693381e883
Parent:
8:49d8ee0aac11
Child:
10:2436164b692e
--- a/main.cpp	Tue Jun 10 11:03:03 2014 +0100
+++ b/main.cpp	Tue Jun 10 11:21:56 2014 +0100
@@ -20,7 +20,17 @@
 BLEPeripheral  ble;                 /* BLE radio driver */
 
 DigitalOut led1(LED1);
-Serial     pc(USBTX, USBRX);
+
+#define NEED_CONSOLE_OUTPUT 0 /* Set this if you need debug messages on the console;
+                               * it will have an impact on code-size and power
+                               * consumption. */
+
+#if NEED_CONSOLE_OUTPUT
+Serial  pc(USBTX, USBRX);
+#define DEBUG(...) { pc.printf(__VA_ARGS__); }
+#else
+#define DEBUG(...) /* nothing */
+#endif /* #if NEED_CONSOLE_OUTPUT */
 
 /* Battery Level Service */
 uint8_t            batt      = 72; /* Battery level */
@@ -62,34 +72,34 @@
 
 void timeoutCallback(void)
 {
-    pc.printf("Advertising Timeout!\n\r");
+    DEBUG("Advertising Timeout!\n\r");
     // Restart the advertising process with a much slower interval,
     // only start advertising again after a button press, etc.
 }
 
 void connectionCallback(void)
 {
-    pc.printf("Connected!\n\r");
+    DEBUG("Connected!\n\r");
 }
 
 void disconnectionCallback(void)
 {
-    pc.printf("Disconnected!\n\r");
-    pc.printf("Restarting the advertising process\n\r");
+    DEBUG("Disconnected!\n\r");
+    DEBUG("Restarting the advertising process\n\r");
     ble.startAdvertising();
 }
 
 void updatesEnabledCallback(uint16_t charHandle)
 {
     if (charHandle == hrmRate.getHandle()) {
-        pc.printf("Heart rate notify enabled\n\r");
+        DEBUG("Heart rate notify enabled\n\r");
     }
 }
 
 void updatesDisabledCallback(uint16_t charHandle)
 {
     if (charHandle == hrmRate.getHandle()) {
-        pc.printf("Heart rate notify disabled\n\r");
+        DEBUG("Heart rate notify disabled\n\r");
     }
 }
 
@@ -110,7 +120,7 @@
     ble.onUpdatesDisabled(updatesDisabledCallback);
 
     /* Initialise the nRF51822 */
-    pc.printf("Initialising the nRF51822\n\r");
+    DEBUG("Initialising the nRF51822\n\r");
     ble.init();
 
     /* Add BLE-Only flag and complete service list to the advertising data */
@@ -135,13 +145,11 @@
     ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */
     ble.startAdvertising();
 
-    /* Wait until we are connected to a central device before updating
-     * anything */
-    pc.printf("Waiting for a connection ...");
+    /* Wait until we are connected to a central device before updating anything */
+    DEBUG("Waiting for a connection ...");
     while (!ble.getGapState().connected) {
         ble.waitForEvent();
     }
-    pc.printf("Connected!\n\r");
 
     /* Now that we're live, update the battery level characteristic, and
      * change the device manufacturer characteristic to 'mbed' */