Bluetooth Low Energy for Smart Plug
Dependencies: BLE_API mbed nRF51822
Fork of SmartPlugBLE by
Diff: main.cpp
- Revision:
- 0:25ad6eba7916
- Child:
- 2:6db5c9a2894c
diff -r 000000000000 -r 25ad6eba7916 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Jul 07 04:02:14 2015 +0000 @@ -0,0 +1,37 @@ +#include "mbed.h" +#include "SmartPlugBLE.h" +#include "BLECommunication.h" +#include "BLE.h" +BLE ble; +uint8_t DEVICE_NAME[] = "NRFTEST"; +uint16_t list[] = {SPS_UUID_SERVICE}; + +void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason) +{ + ble.gap().startAdvertising(); +} + +int main(void) +{ + ble.gap().onDisconnection(disconnectionCallback); + Ticker ticker; + SmartPlugBLE smartPlugBLE; + BLECommunication bleComm(smartPlugBLE,ble); + ticker.attach(&bleComm,&BLECommunication::periodicCallback, 1); + /* Setup advertising. */ + + ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE); + ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS, (uint8_t*)list, sizeof(list)); + ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::UNKNOWN); + ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME));//cannot blink after this + + ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); + ble.gap().setAdvertisingInterval(1000); /* 1000ms */ + + ble.gap().startAdvertising(); + + + while(1) { + ble.waitForEvent(); + } +}