Bluetooth Low Energy for Smart Plug
Dependencies: BLE_API mbed nRF51822
Fork of SmartPlugBLE by
main.cpp
- Committer:
- Slepnir
- Date:
- 2015-07-07
- Revision:
- 0:25ad6eba7916
- Child:
- 2:6db5c9a2894c
File content as of revision 0:25ad6eba7916:
#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(); } }