Example program for BLE devices using updated Puck library.

Dependencies:   Puck mbed

Fork of location-puck by Nordic Pucks

main.cpp

Committer:
cristea
Date:
2014-06-19
Revision:
3:4cb285fb29e7
Parent:
2:67d603617000
Child:
4:4324d5acd5d8

File content as of revision 3:4cb285fb29e7:

#include <mbed.h>
#include <nRF51822.h>

#define DEBUG 1

#ifdef DEBUG
    #define LOG(args...)    pc.printf(args)
#else
    #define LOG(args...)
#endif

nRF51822n nrf;
DigitalOut led1(p1);
DigitalOut advertisiingStateLed(p30);

GapAdvertisingData advData;
GapAdvertisingData scanResponse;
GapAdvertisingParams advParams(GapAdvertisingOParams::ADV_CONNECTABLE_UNDIRECTED);

class GapEventHandler : public GapEvents {
    virtual void onConnected(void) {
        advertisingStateLed = 0;
        LOG("Connected!\n\r");
    }

    virtual void onDisconnected(void) {
        nrf.getGap().startAdvertising(advParams);
        advertisingStateLed = 1;
        LOG("Disconnected!\n\r");
        LOG("Restarting the advertising process\n\r");
    }
}

int main() {
    nrf.getGap().setEventHandler(new GapEventHandler());

    nrf.init();
    nrf.reset();

    advData.addFlags(GapAdvertisingData::BREDR_NOT_SUPPORTED);
    advData.addData(GapAdvertisingData::SHORTENED_LOCAL_NAME,
                    (uint8_t*)"phlemz", sizeof("phlemz") - 1);
    advData.addAppearance(GapAdvertisingData::UNKNOWN);
    nrf.getGap().setAdvertisingData(advData. scanResponse);

    nrf.getGap().startAdvertising(advParams);

    for(;;) {
        led1 = !led1;
        wait(1);
    }
}