BLE Nano LED control
Dependencies: BLE_API mbed nRF51822
main.cpp
- Committer:
- hiro99ma
- Date:
- 2016-12-24
- Revision:
- 2:f4709d271f13
- Parent:
- 0:355d86799c43
File content as of revision 2:f4709d271f13:
#include "mbed.h" #include "ble/BLE.h" #include "ble_nanoled_service.h" namespace { const char DEVICE_NAME[] = "BLE Nano"; } namespace { BLE mBle; ServiceUart mServiceUart; } namespace { inline int calcAdvertisingIntervalMs(int msec) { return 1000 * msec / 625; } } namespace { void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params) { mBle.gap().startAdvertising(); } void writtenHandler(const GattWriteCallbackParams* params) { mServiceUart.writtenHandler(mBle, params); } void readHandler(const GattReadCallbackParams* params) { mServiceUart.readHandler(mBle, params); } } int main(void) { mBle.init(); mBle.onDisconnection(disconnectionCallback); mBle.onDataWritten(writtenHandler); mBle.onDataRead(readHandler); //services mServiceUart.addService(mBle); // setup advertising mBle.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED); mBle.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); mBle.accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME, (const uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME) - 1); // 100ms; in multiples of 0.625ms. mBle.setAdvertisingInterval(calcAdvertisingIntervalMs(100)); mBle.startAdvertising(); while (true) { mBle.waitForEvent(); } }