van
Dependencies: BLE_API mbed VAN
Fork of BLE_iBeacon_POC by
Diff: main.cpp
- Revision:
- 69:1bcf3f0174c9
- Parent:
- 68:4a8fdfe70ab3
- Child:
- 70:1281fe7166fb
diff -r 4a8fdfe70ab3 -r 1bcf3f0174c9 main.cpp --- a/main.cpp Fri Nov 13 15:31:58 2015 +0000 +++ b/main.cpp Mon Nov 16 17:43:08 2015 +0000 @@ -44,10 +44,60 @@ uint16_t majorNumber = 1122; uint16_t minorNumber = 3344; 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_28; +PinName b2_p = P0_29; +PinName b3_p = P0_15; +PinName b4_p = P0_10; //CTX +PinName b5_p = P0_9; //TXD +PinName b6_p = P0_11; //RXD +PinName b7_p = P0_8; //RTS +PinName b8_p = P0_4; +PinName b9_p = P0_28; +PinName b0_p = P0_29; + +//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); +DigitalOut b5(b5_p); +DigitalOut b6(b6_p); +DigitalOut b7(b7_p); +DigitalOut b8(b8_p); +DigitalOut b9(b9_p); +DigitalOut b0(b0_p); void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason); void onDataWritten(const GattCharacteristicWriteCBParams *params); +int flip(char value); void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason) { @@ -57,19 +107,36 @@ 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 = 1; // 0x01 flash hazards in5 d4 p28 + b2 = 1; // 0x02 horn in6 d5 p29 + b3 = 1; // 0x03 headlights in7 d6 p15 + b4 = 1; // 0x04 door locking 0.8 in2 in3 d2 cts + b5 = 1; // 0x05 remote start 2x .25 in1 d1 txd + b7 = 1; // 0x07 trip alarm 0.8 in4 d3 rts + + b6 = 1; // P0_11 ??? + b8 = 1; // P0_9 ??? + b9 = 1; // P0_11 ??? + b0 = 1; // P0_8 ??? + + ble.init(); ble.onDisconnection(disconnectionCallback); @@ -86,3 +153,105 @@ 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) + { + // 0x01 flash hazards in5 d4 p28 + case b1_id : + case bA1_id : led1 = !led1; + b1 = !b1; + break; + // 0x02 horn in6 d5 p29 + case b2_id : + case bA2_id : led1 = !led1; + b2 = !b2; + break; + // 0x03 headlights in7 d6 p15 + case b3_id : + case bA3_id : led1 = !led1; + b3 = !b3; + break; + // 0x04 door locking 0.8 in2 in3 d2 cts + case b4_id : + case bA4_id : led1 = !led1; + b4 = !b4; + wait(0.8); + b4 = !b4; + break; + // 0x05 remote start 2x .25 in1 d1 txd + case b5_id : + case bA5_id : led1 = !led1; + b5 = !b5; + wait(0.25); + b5 = !b5; + + b5 = !b5; + wait(0.25); + b5 = !b5; + break; + + case b6_id : + case bA6_id : led1 = !led1; + b6 = !b6; + break; + // 0x07 trip alarm 0.8 in4 d3 rts + case b7_id : + case bA7_id : led1 = !led1; + b7 = !b7; + wait(0.8); + b7 = !b7; + break; + + case b8_id : + case bA8_id : led1 = !led1; + b8 = !b8; + break; + + case b9_id : + case bA9_id : led1 = !led1; + b9 = !b9; + break; + + case b0_id : + case bA0_id : led1 = !led1; + b0 = !b0; + break; + + default : blinky(); + ret = 1; + break; + } + return ret; +} \ No newline at end of file