v2

Dependencies:   BLE_API mbed DOOR

Fork of DOOR by Aura-Tech Solutions

Revision:
72:371bb75cdd1a
Parent:
71:468aa9135c41
--- 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