We are making a bluetooth application for a vehicle.
Dependencies: BLE_API X_NUCLEO_IDB0XA1 mbed
Fork of BLE_HeartRate_IDB0XA1 by
Diff: main.cpp
- Revision:
- 28:a56710056f4d
- Parent:
- 27:49f379daad68
- Child:
- 29:e7d4922a4620
--- a/main.cpp Tue Jun 27 19:44:12 2017 +0000 +++ b/main.cpp Mon Jul 17 17:16:11 2017 +0000 @@ -19,24 +19,29 @@ #include "bike_service.h" #include "ble/services/BatteryService.h" -int alarm = 0; +int alarm_activated = 0; +int alarm_on = 0; +int alarm_counter = 0; +DigitalOut led_0(PC_6); +DigitalOut led_1(PC_7); DigitalOut buzzer(PC_8); +DigitalOut rumblr(PC_9);; DigitalOut led1(LED1, 1); -const static char DEVICE_NAME[] = "HeckBike"; +const static char DEVICE_NAME[] = "HeckBike!"; static const uint16_t uuid16_list[] = {GattService::UUID_BATTERY_SERVICE, 0x8EC5};//made up UUID for the Heck bike #define on 0xFFFF #define off 0 -#define buttonMask 0x006F +#define buttonMask 0x003F PortIn sixButtons(PortC, buttonMask); unsigned char byteOut = 0; - +unsigned char prevByteOut = 0; unsigned char byteIn = 0x08; uint8_t inputs = 0x00; @@ -109,44 +114,75 @@ while (true) { // check for trigger from periodicCallback() if (triggerSensorPolling && ble.getGapState().connected) { - if (outputs & 0x80){ - if (alarm == 0) { - alarm = 1; + if (outputs & 0x01){ + led_0 = 1; + } + if ((outputs & 0x01) == 0){ + led_0 = 0; + } + if (outputs & 0x02){ + led_1 = 1; + } + if ((outputs & 0x02) == 0){ + led_1 = 0; + } + if (outputs & 0x04){ + buzzer = 1; + } + if ((outputs & 0x04) == 0){ + buzzer = 0; } - + if (outputs & 0x08){ + rumblr = 1; + } + if ((outputs & 0x08) == 0){ + rumblr = 0; + } + if (outputs & 0x10){ + alarm_activated = 1; } - else { - alarm = 0; - buzzer = 0; + if ((outputs & 0x10) == 0){ + alarm_activated = 0; + } + if (outputs & 0x20){ + alarm_on = 1; + } + if ((outputs & 0x20) == 0){ + alarm_on = 0; } triggerSensorPolling = false; byteOut = sixButtons & buttonMask; - - // update the ble with the inputs - bikeService.updateInputs(byteOut); - bikeService.updateTimestamp(); + if ((byteOut & 0x01) && alarm_activated==1) { + alarm_on = 1; + } + if (byteOut != prevByteOut){ + // update the ble with the inputs + bikeService.updateInputs(byteOut); + bikeService.updateTimestamp(); + } + prevByteOut = byteOut; } else { ble.waitForEvent(); // low power wait for event } - if (alarm) { //Flag set to sound the alarm? + if (alarm_activated && alarm_on) { //Flag set to sound the alarm? - if (alarm++ < 500) { //Beep it on and off + if (alarm_counter++ < 500) { //Beep it on and off buzzer = 1; + led_0 = 1; + led_1 = 1; + rumblr = 1; } else { + if (alarm_counter > 1000){alarm_counter = 0;} buzzer = 0; + led_0 = 0; + led_1 = 0; + rumblr = 0; } - - if (alarm > 1000) { - alarm = 1; - } - - } - - + } } }