test fork

Dependencies:   SPI_TFTx2 SPI_TFTx2_ILI9341 TFT_fonts TOUCH_TFTx2 mbed

Fork of CANary_9341 by Tick Tock

Revision:
42:4533b13b297d
Parent:
41:8d4609ea7259
Child:
43:e7f6f80590e3
--- a/displayModes.cpp	Sun Mar 31 18:57:36 2013 +0000
+++ b/displayModes.cpp	Sun Mar 31 20:38:15 2013 +0000
@@ -4,7 +4,7 @@
 char sTemp1[40];
 char sTemp2[16];
 
-void printLast (bool force){
+void printLast (bool force, bool showButtons){
     CANMessage msg;
     tt.locate(0,6);
     tt.foreground(Red);
@@ -15,7 +15,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){
+    if((sMode==1)&&showButtons){
         tt.foreground(Yellow);
         tt.background(DarkCyan);
         tt.set_font((unsigned char*) Arial12x12);
@@ -27,7 +27,7 @@
     }
 }
 
-void printChanged (bool force){
+void printChanged (bool force, bool showButtons){
     CANMessage msg;
     unsigned char i,j;
     tt.locate(0,6);
@@ -45,7 +45,7 @@
             i++;
         }// if changed
     }while(i<19&&j<99);
-    if(sMode==1){
+    if((sMode==1)&&showButtons){
         tt.foreground(Yellow);
         tt.background(DarkCyan);
         tt.set_font((unsigned char*) Arial12x12);
@@ -59,7 +59,7 @@
     }
 }
 
-void printLog (bool force){
+void printLog (bool force, bool showButtons){
     static unsigned char lastDisplayLoc = 0;
     if(force||displayLoc!=lastDisplayLoc){ //only update if changed
         tt.foreground(Amber);
@@ -75,7 +75,7 @@
     lastDisplayLoc=displayLoc;
 }
 
-void mainDisplay (bool force){
+void mainDisplay (bool force, bool showButtons){
     unsigned short gids, SOC, packV;
     static unsigned short lgids=0, lSOC=0, lpackV=0;
     static float lmpkWh=0, laccV=0;;
@@ -127,7 +127,7 @@
     }
 }
 
-void braking (bool force, bool prdata=false){
+void braking (bool force, bool showButtons, bool prdata=false){
     unsigned long targetBraking, regenBraking;
     static unsigned long maxTarget = 1000, maxRegen = 1000, tarDivReg = 1000;
     unsigned long temp;
@@ -238,7 +238,7 @@
     lr=r;
 }
 
-void cpData(bool force){
+void cpData(bool force, bool showButtons){
     short unsigned max, min, jv, i, bd;
     unsigned avg;
     if(force){
@@ -282,7 +282,7 @@
         }
         showCP=false;
     }
-    if(sMode==1){
+    if((sMode==1)&&showButtons){
         tt.foreground(Yellow);
         tt.background(DarkCyan);
         tt.set_font((unsigned char*) Arial12x12);
@@ -292,7 +292,7 @@
     }
 }
 
-void config1(bool force){
+void config1(bool force, bool showButtons){
     if (force) {
         tt.background(Black);
         tt.cls();
@@ -328,7 +328,7 @@
     showButton(2,1,sTemp1,sTemp2,3,3);
 }
 
-void config2(bool force){
+void pbScreen(bool force, bool showButtons){
     if (force) {
         tt.background(Black);
         tt.cls();
@@ -360,7 +360,7 @@
     showButton(1,1,sTemp1,sTemp2,3,3);
 }
 
-void showDateTime(bool force){
+void showDateTime(bool force, bool showButtons){
     struct tm t; // pointer to a static tm structure
     time_t seconds ;
     tt.foreground(Yellow);
@@ -373,7 +373,7 @@
         tt.locate(10,10);
         strftime(sTemp1, 32, "%a %m/%d/%Y %X  \n", &t);
         printf("%s",sTemp1);
-        if(sMode==1){
+        if((sMode==1)&&showButtons){
             tt.foreground(Yellow);
             tt.background(DarkCyan);
             tt.set_font((unsigned char*) Arial12x12);
@@ -412,7 +412,7 @@
     }
 }
 
-void dteDisplay(bool force){
+void dteDisplay(bool force, bool showButtons){
     static float lmpkWh=0;
     static float lMPH=0;
     tt.background(Navy);
@@ -435,34 +435,34 @@
     tt.set_display(display);
     switch (dMode[display]) {
         case logScreen:
-            printLog(changed);
+            printLog(changed,(display==whichTouched));
             break;
         case mainScreen:
-            mainDisplay(changed);
+            mainDisplay(changed,(display==whichTouched));
             break;
         case brakeScreen:
-            braking(changed);
+            braking(changed,(display==whichTouched));
             break;
         case dteScreen:
-            dteDisplay(changed);
+            dteDisplay(changed,(display==whichTouched));
             break;
         case monitorScreen:
-            printLast(changed);
+            printLast(changed,(display==whichTouched));
             break;
         case changedScreen:
-            printChanged(changed);
+            printChanged(changed,(display==whichTouched));
             break;
         case cpScreen:
-            cpData(changed||showCP);
+            cpData(changed||showCP,(display==whichTouched));
             break;
         case config1Screen:
-            config1(changed);
+            config1(changed,(display==whichTouched));
             break;
         case playbackScreen:
-            config2(changed);
+            pbScreen(changed,(display==whichTouched));
             break;
         case dateScreen:
-            showDateTime(changed);
+            showDateTime(changed,(display==whichTouched));
             break;
         default:
             tt.background(Black);
@@ -471,90 +471,92 @@
     }
     lastDMode[display]=dMode[display];
 
-    switch (sMode) {
-        case 1: // Select screens
-            tt.foreground(Yellow);
-            tt.background(DarkCyan);
-            tt.set_font((unsigned char*) Arial12x12);
-            sprintf(sTemp1,"<-Prev");
-            sprintf(sTemp2,"");
-            showButton(0,2,sTemp1,sTemp2,3,3);
-            sprintf(sTemp1,"   Next->");
-            showButton(2,2,sTemp1,sTemp2,3,3);
-            sprintf(sTemp1," Select");
-            switch (dMode[display]) {
-                case 0:
-                    sprintf(sTemp2,"  Off");
-                    break;
-                case 1:
-                    sprintf(sTemp2,"  Log");
-                    break;
-                case 2:
-                    sprintf(sTemp2,"  Main");
-                    break;
-                case 3:
-                    sprintf(sTemp2," Braking");
-                    break;
-                case 4:
-                    sprintf(sTemp2,"  DTE");
-                    break;
-                case 5:
-                    sprintf(sTemp2," Monitor");
-                    break;
-                case 6:
-                    sprintf(sTemp2,"Delta Mon");
-                    break;
-                case 7:
-                    sprintf(sTemp2,"Cell Pair");
-                    break;
-                case 8:
-                    sprintf(sTemp2," Config");
-                    break;
-                case 9:
-                    sprintf(sTemp2,"Playback");
-                    break;
-                case 10:
-                    sprintf(sTemp2,"Set Time");
-                    break;
-            }
-            showButton(1,2,sTemp1,sTemp2,3,3);
-            wait_ms(100); //  pause a moment to reduce flicker
-            break;
-        case 2: // numpad
-            sprintf(sTemp2,"");
-            tt.foreground(Yellow);
-            tt.background(DarkCyan);
-            tt.set_font((unsigned char*) Arial24x23);
-            sprintf(sTemp1," 1");
-            showButton(0,0,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1," 2");
-            showButton(1,0,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1," 3");
-            showButton(2,0,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1," 4");
-            showButton(0,1,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1," 5");
-            showButton(1,1,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1," 6");
-            showButton(2,1,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1," 7");
-            showButton(0,2,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1," 8");
-            showButton(1,2,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1," 9");
-            showButton(2,2,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1," 0");
-            showButton(1,3,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1,"<--");
-            showButton(0,3,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1,"-->");
-            showButton(2,3,sTemp1,sTemp2,4,4);
-            sprintf(sTemp1,"return");
-            showButton(3,3,sTemp1,sTemp2,4,4);
-        case 3:
-            break;
-        default:
-            break;
+    if(display==whichTouched){
+        switch (sMode) {
+            case 1: // Select screens
+                tt.foreground(Yellow);
+                tt.background(DarkCyan);
+                tt.set_font((unsigned char*) Arial12x12);
+                sprintf(sTemp1,"<-Prev");
+                sprintf(sTemp2,"");
+                showButton(0,2,sTemp1,sTemp2,3,3);
+                sprintf(sTemp1,"   Next->");
+                showButton(2,2,sTemp1,sTemp2,3,3);
+                sprintf(sTemp1," Select");
+                switch (dMode[display]) {
+                    case 0:
+                        sprintf(sTemp2,"  Off");
+                        break;
+                    case 1:
+                        sprintf(sTemp2,"  Log");
+                        break;
+                    case 2:
+                        sprintf(sTemp2,"  Main");
+                        break;
+                    case 3:
+                        sprintf(sTemp2," Braking");
+                        break;
+                    case 4:
+                        sprintf(sTemp2,"  DTE");
+                        break;
+                    case 5:
+                        sprintf(sTemp2," Monitor");
+                        break;
+                    case 6:
+                        sprintf(sTemp2,"Delta Mon");
+                        break;
+                    case 7:
+                        sprintf(sTemp2,"Cell Pair");
+                        break;
+                    case 8:
+                        sprintf(sTemp2," Config");
+                        break;
+                    case 9:
+                        sprintf(sTemp2,"Playback");
+                        break;
+                    case 10:
+                        sprintf(sTemp2,"Set Time");
+                        break;
+                }
+                showButton(1,2,sTemp1,sTemp2,3,3);
+                wait_ms(100); //  pause a moment to reduce flicker
+                break;
+            case 2: // numpad
+                sprintf(sTemp2,"");
+                tt.foreground(Yellow);
+                tt.background(DarkCyan);
+                tt.set_font((unsigned char*) Arial24x23);
+                sprintf(sTemp1," 1");
+                showButton(0,0,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1," 2");
+                showButton(1,0,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1," 3");
+                showButton(2,0,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1," 4");
+                showButton(0,1,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1," 5");
+                showButton(1,1,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1," 6");
+                showButton(2,1,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1," 7");
+                showButton(0,2,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1," 8");
+                showButton(1,2,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1," 9");
+                showButton(2,2,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1," 0");
+                showButton(1,3,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1,"<--");
+                showButton(0,3,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1,"-->");
+                showButton(2,3,sTemp1,sTemp2,4,4);
+                sprintf(sTemp1,"return");
+                showButton(3,3,sTemp1,sTemp2,4,4);
+            case 3:
+                break;
+            default:
+                break;
+        }
     }
 }
 
@@ -572,7 +574,7 @@
 }
 // below is braking screen normalized to power rather than force
 // changed to force since power had too large a dynamic range
-/*void braking (bool force, bool prdata=false){
+/*void braking (bool force, bool showButtons, bool prdata=false){
     unsigned long targetBraking, regenBraking, speed;
     static unsigned long maxTarget = 20000, maxRegen = 20000, tarDivReg = 1000;
     short rpm;