Bluetooth Low Energy for Smart Plug

Dependencies:   BLE_API mbed nRF51822

Fork of SmartPlugBLE by Pavit Noinongyao

BLECommunication.cpp

Committer:
Slepnir
Date:
2015-07-14
Revision:
4:721ae30c92f8
Parent:
2:6db5c9a2894c

File content as of revision 4:721ae30c92f8:

#include "BLECommunication.h"


BLECommunication::BLECommunication(SmartPlugBLE& system,BLE &_ble):
    ble(_ble),smartPlugService(ble,system)
{

    ble.init();
    ble.gattServer().onDataWritten(&smartPlugService,&SmartPlugService::onDataWritten);
    smartPlugService.setupService();
    start();
}

void BLECommunication::start(void)
{
    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(true)
    {
        ble.waitForEvent();
    }
}