BLE Nano LED control
Dependencies: BLE_API mbed nRF51822
main.cpp
00001 #include "mbed.h" 00002 #include "ble/BLE.h" 00003 #include "ble_nanoled_service.h" 00004 00005 namespace { 00006 const char DEVICE_NAME[] = "BLE Nano"; 00007 } 00008 00009 namespace { 00010 BLE mBle; 00011 ServiceUart mServiceUart; 00012 } 00013 00014 00015 namespace { 00016 inline int calcAdvertisingIntervalMs(int msec) 00017 { 00018 return 1000 * msec / 625; 00019 } 00020 } 00021 00022 00023 namespace { 00024 void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params) 00025 { 00026 mBle.gap().startAdvertising(); 00027 } 00028 00029 00030 void writtenHandler(const GattWriteCallbackParams* params) 00031 { 00032 mServiceUart.writtenHandler(mBle, params); 00033 } 00034 00035 void readHandler(const GattReadCallbackParams* params) 00036 { 00037 mServiceUart.readHandler(mBle, params); 00038 } 00039 } 00040 00041 00042 int main(void) 00043 { 00044 mBle.init(); 00045 mBle.onDisconnection(disconnectionCallback); 00046 mBle.onDataWritten(writtenHandler); 00047 mBle.onDataRead(readHandler); 00048 00049 //services 00050 mServiceUart.addService(mBle); 00051 00052 // setup advertising 00053 mBle.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED); 00054 mBle.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); 00055 mBle.accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME, 00056 (const uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME) - 1); 00057 // 100ms; in multiples of 0.625ms. 00058 mBle.setAdvertisingInterval(calcAdvertisingIntervalMs(100)); 00059 mBle.startAdvertising(); 00060 00061 while (true) { 00062 mBle.waitForEvent(); 00063 } 00064 } 00065
Generated on Sat Jul 16 2022 07:31:50 by 1.7.2