BLE Application to open a Garage door

Dependencies:   BLE_API Crypto RNG mbed nRF51822

Fork of BLE_LED by Bluetooth Low Energy

Revision:
10:80850cd6c29e
Parent:
9:329af8cdc923
Child:
11:3de9b542eeac
--- a/main.cpp	Tue Aug 25 22:18:21 2015 +0000
+++ b/main.cpp	Tue Aug 25 23:26:43 2015 +0000
@@ -32,7 +32,12 @@
 
 //how-to test:
 //create a string to write to the characteristic
-//openssl enc -aes-128-cbc -K 9734062BA852A049CF5D40593B769014 -iv A2685636521871D02306E2EB8F7027B3 -out /dev/stdout
+//openssl enc -aes-128-cbc -K 9734062BA852A049CF5D40593B769014 -iv A2685636521871D02306E2EB8F7027B3 -out /dev/stdout -in inputfile
+// TTTTIIIISSSSSSSS
+// T -> 4 bytes Timestamp uint32_t
+// I -> 4 bytes ID (chars)
+// S -> 8 bytes SHARED_SECRET   (chars)
+
 #define SHARED_KEY  "figueiredo"
 #define DEVICE_NAME    "Garagem"
 //openssl enc -aes-128-cbc -pass pass:********** -nosalt -P
@@ -72,28 +77,29 @@
  */
 void onDataWrittenCallback(const GattWriteCallbackParams *params) {
     DBG("onDataWrittenCallback: handle = %d      len = %d\r\n", params->handle, params->len);
-    
+    garagemServicePtr->nextLastOpen(params->data, params->len);
+
     if ((params->handle == garagemServicePtr->getChallengeHandle()) && (params->len ==16)) {
-        DBG("onDataWrittenCallback: data = %s\r\n", (char *) (params->data));
-        actuatedLED = !actuatedLED;
+        DBG("We have Challenge: data = %s\r\n", (char *) (params->data));
         
         AES myAES(AES_128, myKey, iv);
         uint8_t msg[16];
         myAES.decrypt(msg,(uint8_t *) (params->data),16);
         
         if(garagemServicePtr->checkMessage(msg) == GARAGEM_OK) {  
+            DBG("ABRE-TE SESAMO!\r\n");
+
             #ifndef DEBUG
             relay = 1;
             #endif
-            DBG("ABRE-TE SESAMO!\r\n");
-
+            actuatedLED = !actuatedLED;
             //please cleanup afterwards
             offRelay.attach(&switchOffRelay, 1.0);
             
         } else {
             DBG("NO SUCH LUCK...\r\n");
         }
-    }
+    } 
 }
 
 int main(void)