Attempts to merge SPI_TFT2 & SPI_TFT_ILI9341

Dependencies:   SPI_TFTx2 TFT_fonts TOUCH_TFTx2 mbed

Fork of CANary by Tick Tock

Branch:
Metric
Revision:
122:138a40892a4c
Parent:
121:553faf139a20
Child:
123:a8c0042df617
--- a/displayModes.cpp	Thu Jul 11 05:29:18 2013 +0000
+++ b/displayModes.cpp	Wed Jul 17 13:48:51 2013 +0000
@@ -5,7 +5,7 @@
 char sTemp2[16];
 
 void mainDisplay (bool force, bool showButtons){
-    unsigned short gids, SOC, packV_x2;
+    unsigned short gids, SOC_x10, packV_x2;
     static unsigned short lgids=0, lSOC=0, lSOH=0, lpackV_x2=0, maxPS=0;
     static float lmaxTemp=0;
     static float lkW=0, laccV=0, lmpkWh=0;
@@ -15,7 +15,7 @@
     msg = lastMsg[indexLastMsg[0x5bc]]; //Get gids
     gids = (msg.data[0]<<2)+(msg.data[1]>>6);
     msg = lastMsg[indexLastMsg[0x55b]]; //Get SOC
-    SOC = (msg.data[0]<<2)+(msg.data[1]>>6);
+    SOC_x10 = (msg.data[0]<<2)+(msg.data[1]>>6);
     msg = lastMsg[indexLastMsg[0x1db]]; //Get pack volts
     packV_x2 = (msg.data[2]<<2)+(msg.data[3]>>6);
 
@@ -44,10 +44,10 @@
             tt.foreground(Yellow);
             tt.set_font((unsigned char*) Arial28x28);
         }
-        if(force||SOC!=lSOC){
+        if(force||SOC_x10!=lSOC){
             tt.locate(200,10);
-            printf("%4.1f%s\n",(float)SOC/10,"% ");
-            lSOC=SOC;
+            printf("%4.1f%s\n",(float)SOC_x10/10,"% ");
+            lSOC=SOC_x10;
         }
         if(force||packV_x2!=lpackV_x2){
             tt.locate(200,200);
@@ -65,19 +65,30 @@
             laccV=accV;
         }
         if(force||kW[0]!=lkW){
-            tt.locate(180,40);
-            printf("%3.2fkW  \n",kW[0]);
+            if(kW[0]<-10){ //Right justify
+                tt.locate(171,40);
+                printf("%4.2fkW\n",kW[0]);
+            } else if (kW[0]<0){
+                tt.locate(171,40);
+                printf(" %4.2fkW\n",kW[0]);
+            } else if (kW[0]<10){
+                tt.locate(165,40);
+                printf("  %4.2fkW\n",kW[0]);
+            } else {
+                tt.locate(165,40);
+                printf(" %4.2fkW\n",kW[0]);
+            }
             lkW=kW[0];
         }
-        tt.foreground(DarkGrey);
+        tt.foreground(LightGrey);
         if(force||Ah_x10000!=lAh){
             tt.locate(10,70);
             printf("% 4.2fAh \n",(float)Ah_x10000/10000);
             lAh=Ah_x10000;
         }
         if(force||SOH_x100!=lSOH){
-            tt.locate(180,70);
-            printf(" %3.1f%s\n",(float)SOH_x100/100,"% ");
+            tt.locate(200,70);
+            printf("%4.1f%s\n",(float)SOH_x100/100,"% ");
             lSOH=SOH_x100;
         }
     }else {//if(skin==ggSkin){
@@ -100,10 +111,10 @@
             tt.set_font((unsigned char*) Arial28x28);
         }
         
-        if(force||SOC!=lSOC){
+        if(force||SOC_x10!=lSOC){
             tt.locate(200,10);
-            printf("%4.1f%s\n",(float)SOC/10,"% ");
-            lSOC=SOC;
+            printf("%4.1f%s\n",(float)SOC_x10/10,"% ");
+            lSOC=SOC_x10;
         }
         if(force||packV_x2!=lpackV_x2){
             tt.locate(200,200);
@@ -139,7 +150,7 @@
         msg = lastMsg[i+indexOffset];
         printf("%03x : %02x %02x %02x %02x %02x %02x %02x %02x    \n",msg.id,msg.data[0],msg.data[1],msg.data[2],msg.data[3],msg.data[4],msg.data[5],msg.data[6],msg.data[7]);
     }
-    if((sMode==1)&&showButtons){
+    if(showButtons){
         tt.foreground(Yellow);
         tt.background(DarkCyan);
         tt.set_font((unsigned char*) Arial12x12);
@@ -167,11 +178,10 @@
             i++;
         }// if changed
     }while(i<19&&j<99);
-    if((sMode==1)&&showButtons){
+    if(showButtons){
         tt.foreground(Yellow);
         tt.background(DarkCyan);
         tt.set_font((unsigned char*) Arial12x12);
-        
         showButton(0,0,"  <up>","",4,4);
         showButton(2,0," <down>","",4,4);
         showButton(1,0," Reset","Baseline",4,4);
@@ -210,6 +220,8 @@
             tt.locate(6,20+i*60);
             printf("%3.2f : %3.1f : %2.1f\n",kWh_trip[i],convertDistance(miles_trip[i]),convertDistance(miles_trip[i])/kWh_trip[i]);
         }
+    }
+    if(showButtons){
         tt.set_font((unsigned char*) Arial12x12);
         tt.background(DarkCyan);
         tt.foreground(Yellow);
@@ -220,7 +232,7 @@
 }
 
 void healthDisplay (bool force, bool showButtons){
-    unsigned short gids, SOC;
+    unsigned short gids, SOC_x10;
     static unsigned short lgids=0, lSOC=0, lSOH=0;
     static float lmaxTemp=0, lresr=0, lunlV=0;
     static unsigned long lAh=0;
@@ -229,7 +241,7 @@
     msg = lastMsg[indexLastMsg[0x5bc]]; //Get gids
     gids = (msg.data[0]<<2)+(msg.data[1]>>6);
     msg = lastMsg[indexLastMsg[0x55b]]; //Get SOC
-    SOC = (msg.data[0]<<2)+(msg.data[1]>>6);
+    SOC_x10 = (msg.data[0]<<2)+(msg.data[1]>>6);
 
     tt.background(Blue);
     tt.foreground(Yellow);
@@ -260,10 +272,10 @@
         printf("%4d gids \n",gids);
         lgids=gids;
     }
-    if(force||SOC!=lSOC){
+    if(force||SOC_x10!=lSOC){
         tt.locate(10,40);
-        printf(" %4.1f%s \n",(float)SOC/10,"% SOC");
-        lSOC=SOC;
+        printf(" %4.1f%s \n",(float)SOC_x10/10,"% SOC");
+        lSOC=SOC_x10;
     }
     if(force||SOH_x100!=lSOH){
         tt.locate(10,70);
@@ -500,7 +512,7 @@
             showCP=false;
         }
     }
-    if((sMode==1)&&showButtons){
+    if(showButtons){
         tt.foreground(Yellow);
         tt.background(DarkCyan);
         tt.set_font((unsigned char*) Arial12x12);
@@ -530,7 +542,7 @@
         showButton(0,0," GoTo"," Main",4,4);               
         showButton(1,0," GoTo"," Brake",4,4);               
         showButton(2,0," GoTo"," EFF",4,4);               
-        showButton(3,0," GoTo"," DTE",4,4);     
+        showButton(3,0," GoTo","Health",4,4);     
         // middle row
         showButton(0,1," GoTo","CP Data",4,4);               
         showButton(1,1," GoTo","CP Hist",4,4);               
@@ -905,7 +917,7 @@
         tt.set_font((unsigned char*) Arial12x12);
         strftime(sTemp1, 32, "%a %m/%d/%Y %X  \n", &t);
         printf("%s",sTemp1);
-        if((sMode==1)&&showButtons){
+        if(showButtons){
             switch(dtMode){
                 case 0:
                     sprintf(sTemp1,"Year");
@@ -1140,57 +1152,58 @@
 }
 
 void updateDisplay(char display){
-    bool changed;
+    bool changed,showButtons;
     changed = dMode[display]!=lastDMode[display];
+    showButtons = (display==whichTouched)&&(sMode==1);
     tt.set_display(display);
     switch (dMode[display]) {
         case logScreen:
-            printLog(changed,(display==whichTouched));
+            printLog(changed,showButtons);
             break;
         case mainScreen:
-            mainDisplay(changed,(display==whichTouched));
+            mainDisplay(changed,showButtons);
             break;
         case brakeScreen:
-            braking(changed,(display==whichTouched));
+            braking(changed,showButtons);
             break;
         case dteScreen:
-            dteDisplay(changed,(display==whichTouched),true);
+            dteDisplay(changed,showButtons,true);
             break;
          case effScreen:
-            dteDisplay(changed,(display==whichTouched),false);
+            dteDisplay(changed,showButtons,false);
             break;
        case monitorScreen:
-            printLast(changed,(display==whichTouched));
+            printLast(changed,showButtons);
             break;
         case changedScreen:
-            printChanged(changed,(display==whichTouched));
+            printChanged(changed,showButtons);
             break;
         case cpScreen:
-            cpData(changed||showCP,(display==whichTouched));
+            cpData(changed||showCP,showButtons);
             break;
         case configScreen:
-            config(changed,(display==whichTouched));
+            config(changed,showButtons);
             break;
         case playbackScreen:
-            pbScreen(changed,(display==whichTouched));
+            pbScreen(changed,showButtons);
             break;
         case dateScreen:
-            showDateTime(changed,(display==whichTouched));
+            showDateTime(changed,showButtons);
             break;
         case cpHistScreen: // gg - hist
-            cpHistogram(changed||showCP,(display==whichTouched));
+            cpHistogram(changed||showCP,showButtons);
             break;
         case cpBarScreen: // gg - cpbars
-            cpBarPlot(changed||showCP,(display==whichTouched));
+            cpBarPlot(changed||showCP,showButtons);
             break;
         case indexScreen:
-            showIndex(changed,(display==whichTouched));
+            showIndex(changed,showButtons);
             break;
         case tripScreen:
-            tripDisplay(changed,(display==whichTouched));
+            tripDisplay(changed,showButtons);
             break;
         case healthScreen:
-            healthDisplay(changed,(display==whichTouched));
+            healthDisplay(changed,showButtons);
             break;
         default:
             if (changed){