door
Dependencies: BLE_API mbed DOOR
Fork of BLE_iBeacon_POC by
Diff: main.cpp
- Revision:
- 69:bc2f5bfe5e33
- Parent:
- 68:4a8fdfe70ab3
- Child:
- 70:468aa9135c41
--- a/main.cpp Fri Nov 13 15:31:58 2015 +0000 +++ b/main.cpp Mon Nov 16 17:05:52 2015 +0000 @@ -19,7 +19,7 @@ #include "UARTService.h" /** - * For this demo application, populate the beacon advertisement payload + * For this demo application, populate the beacon advertisement load * with 2 AD structures: FLAG and MSD (manufacturer specific data). * * Reference: @@ -42,13 +42,54 @@ 0xA1, 0x2F, 0x17, 0xD1, 0xAD, 0x07, 0xA9, 0x62 }; uint16_t majorNumber = 1122; -uint16_t minorNumber = 3344; +uint16_t minorNumber = 3345; uint16_t txPower = 0xC8; -DigitalOut led1(P0_19); // 19 is led on board + + +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; + + +//setup led +DigitalOut led1(P0_19); + +//setup digital outs + +DigitalOut b1(b1_p); +DigitalOut b2(b2_p); +DigitalOut b3(b3_p); +DigitalOut b4(b4_p); + void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason); void onDataWritten(const GattCharacteristicWriteCBParams *params); - +int flip(char value); +void testAll(void); void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason) { ble.startAdvertising(); @@ -57,18 +98,31 @@ 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]); } int main(void) { - led1=1; + /* initialize stuff */ + led1 = 1; + + b1 = 0; + b2 = 1; + b3 = 1; + b4 = 1; + + + + //testAll(); ble.init(); @@ -86,3 +140,96 @@ ble.waitForEvent(); // allows or low power operation } } + +void testAll(void) +{ + 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; + */ + wait(1); + } +} + +void blinky(void) +{ + for(int i=0; i<15; i++) + { + led1 = !led1; + wait(.3); + } +} + +int flip(char value) +{ + int ret = 0; + + + switch(value) + { + // open door + case b1_id : + case bA1_id : led1 = !led1; + b1 = 1; + break; + // close door + case b2_id : + case bA2_id : led1 = !led1; + b1 = 0; + break; + // timed open 10 seconds + case b3_id : + case bA3_id : led1 = !led1; + b1 = 1; + wait(10); + b1 = 0; + break; + // light 1 on + case b4_id : + case bA4_id : led1 = !led1; + b2 = 0; + break; + // light 1 off + case b5_id : + case bA5_id : led1 = !led1; + b2 = 1; + break; + // light 2 on + case b6_id : + case bA6_id : led1 = !led1; + b3 = 0; + break; + // light 2 off + case b7_id : + case bA7_id : led1 = !led1; + b3 = 1; + break; + // light 3 on + case b8_id : + case bA8_id : led1 = !led1; + b4 = 0; + break; + // light 3 off + case b9_id : + case bA9_id : led1 = !led1; + b4 = 1; + break; + + default : blinky(); + ret = 1; + break; + } + + return ret; +} \ No newline at end of file