Sigve Sebastian Farstad
/
Example_Puck_BLE
.
main.cpp@0:fb6e10232b73, 2015-03-04 (annotated)
- Committer:
- sigveseb
- Date:
- Wed Mar 04 12:18:13 2015 +0000
- Revision:
- 0:fb6e10232b73
add button notify
Who changed what in which revision?
User | Revision | Line number | New 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, ¤tlyPushedButton, 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 | } |