BLE Nano Code.Tested with Integrated mDot code

Dependencies:   BLE_API mbed nRF51822

Fork of eco_Labs_ble_Client by Happiest

Revision:
10:09d1a403eb14
Parent:
9:5f0732aa3008
Child:
11:b8e687d97537
--- a/main.cpp	Tue Sep 29 12:12:10 2015 +0000
+++ b/main.cpp	Tue Oct 04 11:05:45 2016 +0000
@@ -1,25 +1,29 @@
-/* mbed Microcontroller Library
- * Copyright (c) 2006-2013 ARM Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+/**
+  ******************************************************************************
+  * @file    Main.cpp
+  * @author  Happiesstminds Firmware Team
+  * @version v1.0
+  * @date    4-Oct-2016
+  * @brief   
+  *
+  ******************************************************************************
+  * @attention
+  *  
+  *
+  ******************************************************************************
+  */
 
+/******************************************************************************/
+/* Include Files*/
+/******************************************************************************/
 #include <string.h>
 #include "mbed.h"
 #include "BLE.h"
-
 #include "UARTService.h"
 
+/******************************************************************************/
+/* Local Defines                                                              */
+/******************************************************************************/
 #define NEED_CONSOLE_OUTPUT 1 /* Set this if you need debug messages on the console;
                                * it will have an impact on code-size and power consumption. */
 
@@ -29,47 +33,71 @@
 #define DEBUG(...) /* nothing */
 #endif /* #if NEED_CONSOLE_OUTPUT */
 
-BLEDevice  ble;
-DigitalOut led1(LED1);
-UARTService *uart;
+/******************************************************************************/
+/* Extern Function declarations */
+/******************************************************************************/
+extern void ble_event_wait(void);
+extern void ble_init(void);
+extern void ble_data_handler_init(void);
+
+/******************************************************************************/
+/* External Variable Declarations */
+/******************************************************************************/
+extern bool isDeviceConnected;
 
-void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params)
+/******************************************************************************/
+/* Static Variable Declarations */
+/******************************************************************************/
+static DigitalOut led1(LED1);
+
+/******************************************************************************/
+/* Static Functions */
+/******************************************************************************/
+/**
+ * @brief  periodicCallback - Periodic timer call back
+ * @param  
+ * @retval 
+ */
+static void periodicCallback(void)
 {
-    DEBUG("Disconnected!\n\r");
-    DEBUG("Restarting the advertising process\n\r");
-    ble.startAdvertising();
+    // Toggle the LED only if device is Advertizing
+    if(!isDeviceConnected)
+        led1 = !led1; 
 }
 
-void periodicCallback(void)
-{
-    led1 = !led1;
-    DEBUG("ping\r\n");
-}
-
-int main(void)
-{
+/**
+ * @brief  Initializes the LED
+ * @param  none
+ * @retval none
+ */
+static void led_init(void)
+{    
     led1 = 1;
     Ticker ticker;
     ticker.attach(periodicCallback, 1);
-
-    DEBUG("Initialising the nRF51822\n\r");
-    ble.init();
-    ble.onDisconnection(disconnectionCallback);
-    
-    uart = new UARTService(ble);
+}
 
-    /* setup advertising */
-    ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED);
-    ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
-    ble.accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME,
-                                     (const uint8_t *)"BLE UART", sizeof("BLE UART") - 1);
-    ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_128BIT_SERVICE_IDS,
-                                     (const uint8_t *)UARTServiceUUID_reversed, sizeof(UARTServiceUUID_reversed));
-
-    ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */
-    ble.startAdvertising();
-
-    while (true) {
-        ble.waitForEvent();
+/******************************************************************************/
+/* Global Functions */
+/******************************************************************************/
+/**
+ * @brief  Main - entry point to the application
+ * @param  
+ * @retval 
+ */
+int main(void)
+{
+    led_init();
+    //spi_init();    
+    ble_init();  
+    ble_data_handler_init();
+    
+    // Infinite loop, never exits
+    while (true) 
+    {
+        ble_event_wait();
     }
 }
+/******************************************************************************/
+/* END OF FILE                                                                */
+/******************************************************************************/
\ No newline at end of file