USED IMAGE2GLCD

Dependencies:   BLE_API SharpLCD_LucidaFont mbed nRF51822

Fork of Renard_YO by Andrea Corrado

Revision:
8:bb11edbf5708
Parent:
7:8712aa56ee92
Child:
9:bae7cfbe8d85
--- a/main.cpp	Thu Apr 23 08:04:41 2015 +0000
+++ b/main.cpp	Fri Apr 24 10:11:59 2015 +0000
@@ -26,15 +26,22 @@
 DigitalOut motor(P0_1);
 DigitalOut screen(P0_21);
 DigitalIn  button(P0_16);
+//a50,a60,a70,a80,a90,a100,a110,a120,a130,a140,a150,a160,a170
 
 char strn[50]; // incoming tx data
 char user[50]; // username to display
+uint8_t* rings[2] = {a0,a10};
 int set=0;
 int set2=0;
+int pairing =1;
+int anim=0;
+int elip=0;
 
 int timeUpdate = 1;
 time_t unixTime;
 char timeStr[50]; // time to display
+char dayStr[50]; // day to display
+char dateStr[50]; // date to display
 Timer mClock;
 int clockOffset = 0;
 int lastms = 0;
@@ -69,6 +76,61 @@
     lcd.enableDisplay();
     fb.clear();
     lcd.clear();
+
+
+}
+
+void showPairing()
+{
+    fb.clear();
+    fb.bitBlit( sScreen, 96, 96, 0, 0);
+    fb.bitBlit(rings[anim], 32, 32, 2, 57);  
+    switch (elip) {
+    
+    case 0: fb.printString(lookupFontFace("Lucida 8pt", 8),
+               38,
+               80,
+               BLACK,
+               "Pairing");
+               break;
+    case 1: fb.printString(lookupFontFace("Lucida 8pt", 8),
+               38,
+               80,
+               BLACK,
+               "Pairing..");
+               break;
+               
+    case 2: fb.printString(lookupFontFace("Lucida 8pt", 8),
+               38,
+               80,
+               BLACK,
+               "Pairing...");
+               break;
+
+    case 3: fb.printString(lookupFontFace("Lucida 8pt", 8),
+               38,
+               80,
+               BLACK,
+               "Pairing...");
+               break;                   
+               
+           
+}
+               
+               
+    lcd.drawFrameBuffer(fb);
+    elip++;
+    anim++;
+    wait(0.15);
+    
+    
+    if (anim>=2) {
+        anim = 0;   
+    }
+    
+    if (elip>=4) {
+        elip = 0;   
+    }
 }
 
 void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason)
@@ -117,24 +179,40 @@
 void setTime(int newTime) {
     unixTime = newTime;
     struct tm* timeinfo = localtime (&unixTime);
-    strftime (timeStr, 20, "%I:%M:%S%p", timeinfo);
+    strftime (timeStr, 20, "%R", timeinfo);
+    strftime (dayStr, 20, "%A", timeinfo);
+    strftime (dateStr, 20, "%B %e", timeinfo);
 }
 
 // Main LCD display function, add all framebuffer updates here ONLY
 void updateLCD() {
     fb.clear();
+    
+    //fb.bitBlit(YO, 80, 50, 0, 40);  
     fb.printString(lookupFontFace("Lucida 8pt", 8),
-                   20,
-                   40,
+                   60,
+                   65,
                    BLACK,
                    user);
     
     fb.printString(lookupFontFace("Lucida 8pt", 8),
-                   20,
-                   80,
+                   35,
+                   16,
                    BLACK,
                    timeStr);
+                   
+    fb.printString(lookupFontFace("Lucida 8pt", 8),
+                   35,
+                   35,
+                   BLACK,
+                   dayStr);
     
+    fb.printString(lookupFontFace("Lucida 8pt", 8),
+                   35,
+                   60,
+                   BLACK,
+                   dateStr);
+                   
     lcd.drawFrameBuffer(fb);
 }
 
@@ -145,19 +223,26 @@
     
     led1 = 0;
     set2 = 0;
+
     uint16_t rxHandle = rxCharacteristic.getValueAttribute().getHandle();
     
     // Initial time update
     pc.printf("\n\r Updating time");
     char cmd[5] = "time";
     ble.updateCharacteristicValue(rxHandle, (const uint8_t*)cmd, 4);
+
+    while (true) {
+        
+        if (pairing){
+            showPairing();
+        }
     
-    while (true) {
         if(set){
             if (timeUpdate) {
                 setTime(atoi(strn));
                 pc.printf("\n\r New time: %s", timeStr);
                 timeUpdate = 0;
+                pairing=0;
                 mClock.start();
             } else {
                 strncpy(user, strn, sizeof(strn));