BLE code for touch signal

Dependencies:   BLE_API mbed nRF51822

Fork of BLE_GATT_Example by Bluetooth Low Energy

Committer:
mbedAustin
Date:
Sat Feb 14 14:48:29 2015 +0000
Revision:
2:e84c13abc479
Parent:
1:94152e7d8b5c
Child:
3:0fb60f81f693
further updates to the example program, still incomplete

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedAustin 0:cd5b6733aeb1 1 #include "mbed.h"
mbedAustin 0:cd5b6733aeb1 2 #include "BLEDevice.h"
mbedAustin 1:94152e7d8b5c 3 #include "CustomService.h"
mbedAustin 1:94152e7d8b5c 4
mbedAustin 1:94152e7d8b5c 5
mbedAustin 1:94152e7d8b5c 6 // BLE object
mbedAustin 1:94152e7d8b5c 7 BLEDevice ble;
mbedAustin 1:94152e7d8b5c 8
mbedAustin 1:94152e7d8b5c 9 // LED object
mbedAustin 1:94152e7d8b5c 10 DigitalOut led(LED1);
mbedAustin 1:94152e7d8b5c 11
mbedAustin 1:94152e7d8b5c 12 const static char DEVICE_NAME[] = "MyDeviceName"; // change this
mbedAustin 1:94152e7d8b5c 13 static const uint16_t uuid16_list[] = {0xFF}; //Custom UUID, FF is reserved for development
mbedAustin 1:94152e7d8b5c 14
mbedAustin 2:e84c13abc479 15 // Set Up Characteristics
mbedAustin 2:e84c13abc479 16 static uint8_t readValue[1] = {0x00};
mbedAustin 2:e84c13abc479 17 GattCharacteristic readChar(0xAAAA /* read char UUID*/, readValue, sizeof(readValue), sizeof(readValue),
mbedAustin 2:e84c13abc479 18 GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
mbedAustin 2:e84c13abc479 19
mbedAustin 2:e84c13abc479 20 static uint8_t writeValue[1] = {0x00};
mbedAustin 2:e84c13abc479 21 GattCharacteristic writeChar(0xBBBB /*write char UUID*/, writeValue, sizeof(writeValue), sizeof(writeValue),
mbedAustin 2:e84c13abc479 22 GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
mbedAustin 2:e84c13abc479 23
mbedAustin 2:e84c13abc479 24 GattCharacteristic *characteristics[] = {&readChar, &writeChar};
mbedAustin 2:e84c13abc479 25
mbedAustin 2:e84c13abc479 26 // Set up custom service
mbedAustin 2:e84c13abc479 27 GattService customService(0x221D /*Service UUID*/, characteristics, sizeof(characteristics) / sizeof(GattCharacteristic *));
mbedAustin 2:e84c13abc479 28
mbedAustin 2:e84c13abc479 29
mbedAustin 1:94152e7d8b5c 30 // Restart advertising when phone app disconnects
mbedAustin 1:94152e7d8b5c 31 void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason)
mbedAustin 1:94152e7d8b5c 32 {
mbedAustin 1:94152e7d8b5c 33 ble.startAdvertising(); // restart advertising
mbedAustin 1:94152e7d8b5c 34 }
mbedAustin 0:cd5b6733aeb1 35
mbedAustin 0:cd5b6733aeb1 36
mbedAustin 0:cd5b6733aeb1 37 int
mbedAustin 0:cd5b6733aeb1 38 main(void)
mbedAustin 0:cd5b6733aeb1 39 {
mbedAustin 1:94152e7d8b5c 40 led = 0; // turn LED off
mbedAustin 2:e84c13abc479 41 ble.init();
mbedAustin 2:e84c13abc479 42 ble.onDisconnection(disconnectionCallback);
mbedAustin 2:e84c13abc479 43
mbedAustin 2:e84c13abc479 44 /* setup advertising */
mbedAustin 2:e84c13abc479 45 ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED);
mbedAustin 2:e84c13abc479 46 ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
mbedAustin 2:e84c13abc479 47 ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */
mbedAustin 2:e84c13abc479 48 ble.startAdvertising(); // start advertising
mbedAustin 2:e84c13abc479 49
mbedAustin 2:e84c13abc479 50 ble.addService(customService); // Add our custom service to device
mbedAustin 2:e84c13abc479 51
mbedAustin 2:e84c13abc479 52 while (true) {
mbedAustin 2:e84c13abc479 53 ble.waitForEvent(); //Save power
mbedAustin 2:e84c13abc479 54 }
mbedAustin 2:e84c13abc479 55
mbedAustin 1:94152e7d8b5c 56
mbedAustin 1:94152e7d8b5c 57 // TODO: impliment the rest of triggering for LED based on Write of characteristic.
mbedAustin 1:94152e7d8b5c 58 // TODO: impliment a read characteristic that sends text back to app
mbedAustin 1:94152e7d8b5c 59 // take a look at http://developer.mbed.org/teams/Bluetooth-Low-Energy/code/BLE_GroveColourSensor/file/000c8f8c7f03/main.cpp for inspiration.
mbedAustin 0:cd5b6733aeb1 60 }