Bluetooth Low Energy for Smart Plug

Dependencies:   BLE_API mbed nRF51822

Fork of SmartPlugBLE by Pavit Noinongyao

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();
    }
}