This is a basic program that provides the necessary BLE service to allow communications with the UPAS

Dependencies:   BLE_API mbed nRF51822 CronoDot EEPROM NCP5623BMUTBG ADS1115 BME280 Calibration_one MCP40D17 SDFileSystem LSM303 SI1145 STC3100

Fork of BLE_Button by Bluetooth Low Energy

Files at this revision

API Documentation at this revision

Comitter:
rgrover1
Date:
Fri Oct 09 13:37:52 2015 +0000
Parent:
8:a7ba7aaba460
Child:
10:66549fa08986
Commit message:
pulling in an improvement suggested by Andrea Palmieri

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Tue Sep 29 09:58:02 2015 +0000
+++ b/main.cpp	Fri Oct 09 13:37:52 2015 +0000
@@ -25,16 +25,27 @@
 const static char     DEVICE_NAME[] = "Button";
 static const uint16_t uuid16_list[] = {ButtonService::BUTTON_SERVICE_UUID};
 
+enum {
+    RELEASED = 0,
+    PRESSED,
+    IDLE
+};
+static uint8_t buttonState = IDLE;
+
 ButtonService *buttonServicePtr;
 
 void buttonPressedCallback(void)
 {
-    buttonServicePtr->updateButtonState(true);
+    /* Note that the buttonPressedCallback() executes in interrupt context, so it is safer to access
+     * BLE device API from the main thread. */
+    buttonState = PRESSED;
 }
 
 void buttonReleasedCallback(void)
 {
-    buttonServicePtr->updateButtonState(false);
+    /* Note that the buttonReleasedCallback() executes in interrupt context, so it is safer to access
+     * BLE device API from the main thread. */
+    buttonState = RELEASED;
 }
 
 void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params)
@@ -70,6 +81,11 @@
     ble.gap().startAdvertising();
 
     while (true) {
+        if (buttonState!=IDLE) {
+            buttonServicePtr->updateButtonState(buttonState);
+            buttonState = IDLE;
+        }
+
         ble.waitForEvent();
     }
 }
--- a/mbed.bld	Tue Sep 29 09:58:02 2015 +0000
+++ b/mbed.bld	Fri Oct 09 13:37:52 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/4f6c30876dfa
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/34e6b704fe68
\ No newline at end of file