Joan BLE Dimmer

Dependencies:   BLE_API mbed nRF51822

Fork of BLE_LED_Controller by UCL IoT

Revision:
15:016434184568
Parent:
14:8ff3bfb6b19d
--- a/main.cpp	Wed Dec 17 22:47:39 2014 +0000
+++ b/main.cpp	Thu Dec 18 21:14:19 2014 +0000
@@ -28,15 +28,15 @@
 #define DEBUG(...) /* nothing */
 #endif /* #if NEED_CONSOLE_OUTPUT */
 
-#define LED2OFF "led2 off"
-#define LED2ON "led2 on"
+#define LED2CMD "led2"
+#define CMD_LENGTH 4
 
 
 //char rxPayload[CMD_SIZE];
 
 BLEDevice  ble;                               // Create Bluetooth object
 DigitalOut led1(LED1);                        // Set the pin attached to LED1 as an output
-DigitalOut led2(LED2);                        // Set the pin attached to LED2 as an output
+PwmOut led2(LED2);                        // Set the pin attached to LED2 as an output
 
 UARTService *uartServicePtr;
 
@@ -56,10 +56,14 @@
         DEBUG("Received string: '");
         DEBUG((const char *)params->data);             //Note the size of data expands to the largest string received. Need to use bytesRead to resize.
         DEBUG("'\n\r");
-        if (!strncmp(LED2ON,(const char *)params->data,bytesRead))  led2 = 1;   // If the received and command string are equal turn led2 on. Note strcmp returns 0 if strings are equal
-        if (!strncmp(LED2OFF,(const char *)params->data,bytesRead)) led2 = 0;   // If the received and command string are equal turn led2 off.
-                                                                                        //Toggle LED2 when data received
-        ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), params->data, bytesRead);   // Echo received characters back over BLE
+        if (!strncmp(LED2CMD,(const char *)params->data,CMD_LENGTH-1)){
+            float value;
+            char cmd[CMD_LENGTH];
+            sscanf((const char *)params->data, "%s %f", cmd, &value );
+            led2 = value;
+            DEBUG("Cmd: %s LED Level = %f\n\r", cmd, value);
+            }
+        ble.updateCharacteristicValue(uartServicePtr->getRXCharacteristicHandle(), params->data,bytesRead);   // Echo received characters back over BLE
     }
 }
 
@@ -72,7 +76,7 @@
 int main(void)
 {
     led1 = 1;
-    led2 = 0;
+    led2 = 0.5;
     Ticker ticker;                            // Create period timer
     ticker.attach(periodicCallback, 1);       // Attach ticker callback function with a period of 1 second