v2
Dependencies: BLE_API mbed DOOR
Fork of DOOR by
Diff: main.cpp
- Revision:
- 72:371bb75cdd1a
- Parent:
- 71:468aa9135c41
diff -r 468aa9135c41 -r 371bb75cdd1a main.cpp --- a/main.cpp Mon Nov 16 19:10:31 2015 +0000 +++ b/main.cpp Tue Nov 17 20:19:28 2015 +0000 @@ -17,6 +17,7 @@ #include "mbed.h" #include "iBeaconService.h" #include "UARTService.h" +#include "stdbool.h" /** * For this demo application, populate the beacon advertisement load @@ -42,54 +43,38 @@ 0xA1, 0x2F, 0x17, 0xD1, 0xAD, 0x07, 0xA9, 0x62 }; uint16_t majorNumber = 1122; -uint16_t minorNumber = 3345; +uint16_t minorNumber = 3346; uint16_t txPower = 0xC8; const uint8_t b1_id = 0x01; -const uint8_t b2_id = 0x02; -const uint8_t b3_id = 0x03; -const uint8_t b4_id = 0x04; -const uint8_t b5_id = 0x05; -const uint8_t b6_id = 0x06; -const uint8_t b7_id = 0x07; -const uint8_t b8_id = 0x08; -const uint8_t b9_id = 0x09; -const uint8_t b0_id = 0x00; - const uint8_t bA1_id = 0x31; -const uint8_t bA2_id = 0x32; -const uint8_t bA3_id = 0x33; -const uint8_t bA4_id = 0x34; -const uint8_t bA5_id = 0x35; -const uint8_t bA6_id = 0x36; -const uint8_t bA7_id = 0x37; -const uint8_t bA8_id = 0x38; -const uint8_t bA9_id = 0x39; -const uint8_t bA0_id = 0x30; -PinName b1_p = P0_4; -PinName b2_p = P0_5; -PinName b3_p = P0_9; -PinName b4_p = P0_10; +PinName sensor_pin = P0_5; +PinName trigger_pin = P0_10; +const _Bool turn_on = 0; +const _Bool turn_off = 1; //setup led DigitalOut led1(P0_19); -//setup digital outs +//setup digital ins/outs +DigitalIn digi_sensor(sensor_pin); +DigitalOut digi_trigger(trigger_pin); -DigitalOut b1(b1_p); -DigitalOut b2(b2_p); -DigitalOut b3(b3_p); -DigitalOut b4(b4_p); +//set interrupt pin +InterruptIn intrpt_sensor(sensor_pin); void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason); void onDataWritten(const GattCharacteristicWriteCBParams *params); int flip(char value); void testAll(void); +void signal_off(void); +void signal_on(void); + void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason) { ble.startAdvertising(); @@ -97,46 +82,44 @@ void onDataWritten(const GattCharacteristicWriteCBParams *params) { - // TODO - this stuff will need to be retrofitted to deal with string commands - /* - if(*params->data == 0x33){ - led1 = 0; - } - else if(*params->data == 0x34){ - led1 = 1; - }*/ - - flip(params->data[0]); } +void signal_off(void) +{ + digi_trigger = turn_off; + wait(.5); + //ble.updateCharacteristicValue(readChar.getValueHandle(),"OFF",sizeof("OFF")); +} + +void signal_on(void) +{ + digi_trigger = turn_on; + wait(.5); +} + + int main(void) { /* initialize stuff */ led1 = 1; - - b1 = 0; - b2 = 1; - b3 = 1; - b4 = 1; - - - //testAll(); ble.init(); + digi_trigger = turn_on; + ble.onDisconnection(disconnectionCallback); ble.onDataWritten(onDataWritten); - - uart = new UARTService(ble); iBeaconService ibeacon(ble, uuid, majorNumber, minorNumber, txPower); - ble.setAdvertisingInterval(1000); /* 1000ms. */ ble.startAdvertising(); - while(1) { + while(1) + { + intrpt_sensor.rise(&signal_on); + intrpt_sensor.fall(&signal_off); ble.waitForEvent(); // allows or low power operation } } @@ -146,18 +129,7 @@ for(int i=0; i<2; i++) { led1 = !led1; - b1 = !b1; - b2 = !b2; - b3 = !b3; - b4 = !b4; - /* - b5 = !b5; - b6 = !b6; - b7 = !b7; - b8 = !b5; - b9 = !b6; - b0 = !b7; - */ + digi_trigger = !digi_trigger; wait(1); } } @@ -174,7 +146,7 @@ int flip(char value) { int ret = 0; - +/* switch(value) { @@ -230,6 +202,6 @@ ret = 1; break; } - +*/ return ret; } \ No newline at end of file