BLE Nano Code.Tested with Integrated mDot code
Dependencies: BLE_API mbed nRF51822
Fork of eco_Labs_ble_Client by
Diff: main.cpp
- 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