.

Dependencies:   Puck mbed

Committer:
sigveseb
Date:
Wed Mar 04 12:18:13 2015 +0000
Revision:
0:fb6e10232b73
add button notify

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sigveseb 0:fb6e10232b73 1 #define LOG_LEVEL_INFO
sigveseb 0:fb6e10232b73 2 #include "Puck.h"
sigveseb 0:fb6e10232b73 3
sigveseb 0:fb6e10232b73 4 Puck* puck = &Puck::getPuck();
sigveseb 0:fb6e10232b73 5
sigveseb 0:fb6e10232b73 6 InterruptIn pb1(BUTTON1);
sigveseb 0:fb6e10232b73 7 InterruptIn pb2(BUTTON2);
sigveseb 0:fb6e10232b73 8
sigveseb 0:fb6e10232b73 9 uint8_t currentlyPushedButton = 0;
sigveseb 0:fb6e10232b73 10
sigveseb 0:fb6e10232b73 11 void onButton1Pushed(void) {
sigveseb 0:fb6e10232b73 12 currentlyPushedButton = 1;
sigveseb 0:fb6e10232b73 13 }
sigveseb 0:fb6e10232b73 14
sigveseb 0:fb6e10232b73 15 void onButton2Pushed(void) {
sigveseb 0:fb6e10232b73 16 currentlyPushedButton = 2;
sigveseb 0:fb6e10232b73 17 }
sigveseb 0:fb6e10232b73 18
sigveseb 0:fb6e10232b73 19 void onButton3Pushed(void) {
sigveseb 0:fb6e10232b73 20 currentlyPushedButton = 3;
sigveseb 0:fb6e10232b73 21 }
sigveseb 0:fb6e10232b73 22
sigveseb 0:fb6e10232b73 23 void onButton4Pushed(void) {
sigveseb 0:fb6e10232b73 24 currentlyPushedButton = 4;
sigveseb 0:fb6e10232b73 25 }
sigveseb 0:fb6e10232b73 26
sigveseb 0:fb6e10232b73 27 // Sample Gatt characteristic and service UUIDs
sigveseb 0:fb6e10232b73 28 const UUID SAMPLE_GATT_SERVICE = stringToUUID("bftj sample ");
sigveseb 0:fb6e10232b73 29 const UUID SAMPLE_GATT_CHARACTERISTIC = stringToUUID("bftj sample char");
sigveseb 0:fb6e10232b73 30
sigveseb 0:fb6e10232b73 31 int main(void) {
sigveseb 0:fb6e10232b73 32
sigveseb 0:fb6e10232b73 33 pb1.rise(&onButton1Pushed);
sigveseb 0:fb6e10232b73 34 pb1.enable_irq();
sigveseb 0:fb6e10232b73 35
sigveseb 0:fb6e10232b73 36 pb2.rise(&onButton2Pushed);
sigveseb 0:fb6e10232b73 37 pb2.enable_irq();
sigveseb 0:fb6e10232b73 38
sigveseb 0:fb6e10232b73 39
sigveseb 0:fb6e10232b73 40
sigveseb 0:fb6e10232b73 41 // Add the Gatt characteristic
sigveseb 0:fb6e10232b73 42 int characteristicValueLength = 1;
sigveseb 0:fb6e10232b73 43 puck->addCharacteristic(
sigveseb 0:fb6e10232b73 44 SAMPLE_GATT_SERVICE,
sigveseb 0:fb6e10232b73 45 SAMPLE_GATT_CHARACTERISTIC,
sigveseb 0:fb6e10232b73 46 characteristicValueLength,
sigveseb 0:fb6e10232b73 47 GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
sigveseb 0:fb6e10232b73 48
sigveseb 0:fb6e10232b73 49 // Initialize the puck
sigveseb 0:fb6e10232b73 50 puck->init(0xFEED);
sigveseb 0:fb6e10232b73 51
sigveseb 0:fb6e10232b73 52 // Set the initial value of the characteristic
sigveseb 0:fb6e10232b73 53 uint8_t new_value = 0;
sigveseb 0:fb6e10232b73 54 puck->updateCharacteristicValue(SAMPLE_GATT_CHARACTERISTIC, &new_value, characteristicValueLength);
sigveseb 0:fb6e10232b73 55
sigveseb 0:fb6e10232b73 56 // Let the puck do its thing
sigveseb 0:fb6e10232b73 57 while(puck->drive()) {
sigveseb 0:fb6e10232b73 58 if(currentlyPushedButton) {
sigveseb 0:fb6e10232b73 59 puck->updateCharacteristicValue(SAMPLE_GATT_CHARACTERISTIC, &currentlyPushedButton, 1);
sigveseb 0:fb6e10232b73 60 LOG_INFO("button: %i\n", currentlyPushedButton);
sigveseb 0:fb6e10232b73 61 currentlyPushedButton = 0;
sigveseb 0:fb6e10232b73 62 }
sigveseb 0:fb6e10232b73 63 };
sigveseb 0:fb6e10232b73 64 }