![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Runlock POC code
Dependencies: BLE_API mbed nRF51822
Fork of BLE_GATT_Example by
Diff: main.cpp
- Revision:
- 2:e84c13abc479
- Parent:
- 1:94152e7d8b5c
- Child:
- 3:0fb60f81f693
diff -r 94152e7d8b5c -r e84c13abc479 main.cpp --- a/main.cpp Sat Feb 14 06:49:01 2015 +0000 +++ b/main.cpp Sat Feb 14 14:48:29 2015 +0000 @@ -12,6 +12,21 @@ const static char DEVICE_NAME[] = "MyDeviceName"; // change this static const uint16_t uuid16_list[] = {0xFF}; //Custom UUID, FF is reserved for development +// Set Up Characteristics +static uint8_t readValue[1] = {0x00}; +GattCharacteristic readChar(0xAAAA /* read char UUID*/, readValue, sizeof(readValue), sizeof(readValue), + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY); + +static uint8_t writeValue[1] = {0x00}; +GattCharacteristic writeChar(0xBBBB /*write char UUID*/, writeValue, sizeof(writeValue), sizeof(writeValue), + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY); + +GattCharacteristic *characteristics[] = {&readChar, &writeChar}; + +// Set up custom service +GattService customService(0x221D /*Service UUID*/, characteristics, sizeof(characteristics) / sizeof(GattCharacteristic *)); + + // Restart advertising when phone app disconnects void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason) { @@ -23,7 +38,21 @@ main(void) { led = 0; // turn LED off - ble.init(); // initialize BLE + ble.init(); + ble.onDisconnection(disconnectionCallback); + + /* setup advertising */ + ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED); + ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); + ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */ + ble.startAdvertising(); // start advertising + + ble.addService(customService); // Add our custom service to device + + while (true) { + ble.waitForEvent(); //Save power + } + // TODO: impliment the rest of triggering for LED based on Write of characteristic. // TODO: impliment a read characteristic that sends text back to app