Dual CANbus monitor and instrumentation cluster

Dependencies:   SPI_TFTx2 TFT_fonts TOUCH_TFTx2 beep mbed

Fork of CANary by Tick Tock

Revision:
67:2022fce701d0
Parent:
65:821fc79cd7fe
Child:
68:10f7d7dbae19
Child:
69:6bfdfc002036
--- a/main.cpp	Wed Apr 10 15:08:38 2013 +0000
+++ b/main.cpp	Thu Apr 11 18:52:12 2013 +0000
@@ -158,7 +158,9 @@
     
     // revision
     //sprintf(sTemp,"CANary firmware rev62\n"); // wrong rev, should be rev63
-    sprintf(sTemp,"CANary firmware rev64\n");
+    //sprintf(sTemp,"CANary firmware rev64\n");
+    //sprintf(sTemp,"CANary firmware rev64-gg1\n"); // gg - adding Index screen
+    sprintf(sTemp,"CANary firmware rev65\n"); // gg - commit Index screen
     logMsg(sTemp);
 
     // Look for new binary on thumbdrive
@@ -373,9 +375,11 @@
                         if( tRow == tNavRow ) tRow = 7 ; // gg                   
                         switch ( (tCol*10) + tRow ) {
                             //---------------------------------
-                            case 00: // 00 on screen 0 or 1
+                            case 00: // top row, left button on screen 0 or 1
                                 if (dMode[whichTouched]==monitorScreen||dMode[whichTouched]==changedScreen) {
-                                indexOffset=indexOffset>4?indexOffset-4:1;
+                                    indexOffset=indexOffset>4?indexOffset-4:1;
+                                } else if (dMode[whichTouched] == indexScreen) { // gg - index
+                                    dMode[whichTouched] = mainScreen ; // GoTo Main Screen
                                 } else if (dMode[whichTouched]==config1Screen) {
                                     wait_ms(500);
                                     tt.background(Black);
@@ -391,10 +395,12 @@
                                 }
                                 break;
                             //-----------------------------------------------
-                            case 10: // 1,0 (col,row) on screen 0 or 1
+                            case 10: // 1,0 (col left of center,top row) on screen 0 or 1
                                 if (dMode[whichTouched]==changedScreen) {
                                     for(j=0;j<100;j++) msgChanged[j]=0; // clear changed data
                                     lastDMode[whichTouched]=99;//force refresh
+                                } else if (dMode[whichTouched] == indexScreen) { // gg - index
+                                    dMode[whichTouched] = brakeScreen ; // GoTo Brake Screen
                                 } else if (dMode[whichTouched]==cpScreen) {
                                     pollCP=true;
                                 } else if (dMode[whichTouched]==cpHistScreen) { // gg - hist
@@ -419,6 +425,8 @@
                             case 20: // col 2 and row 0 on either screen 0 or 1
                                 if (dMode[whichTouched]==monitorScreen||dMode[whichTouched]==changedScreen) {
                                     indexOffset=indexOffset<77?indexOffset+4:80;
+                                } else if (dMode[whichTouched] == indexScreen) { // gg - index
+                                    dMode[whichTouched] = effScreen ; // GoTo EFF Screen
                                 } else if (dMode[whichTouched]==config1Screen) {
                                     sprintf(sTemp,"Saving config file.\n");
                                     logMsg(sTemp);
@@ -438,7 +446,7 @@
 
                                 break;
                                 
-                            case 30: // rightmost on top row
+                            case 30: // right-most on top row
                                 
                                 if (dMode[whichTouched]==config1Screen) {
                                     // step through skins
@@ -454,7 +462,8 @@
                                     //logMsg(sTemp);
                                     //saveConfig();
                                     //spkr.beep(2000,0.25);
-                               
+                                } else if (dMode[whichTouched] == indexScreen) { // gg - index
+                                    dMode[whichTouched] = dteScreen ; // GoTo DTE Screen
                                 }else{
                                     lastDMode[whichTouched]=99;//repaint to clear highlight
                                 }
@@ -462,10 +471,13 @@
                                 break;
                             //----------------------------------
                             //----------------------------------
-                            case 01: // col 0 row 1
+                            case 01: // left col middle row
                                 if (dMode[whichTouched]==config1Screen) {
                                     logEn = !logEn;
                                     if (!logEn) repeatPoll=false; // disable auto polling, too
+                                } else if (dMode[whichTouched] == indexScreen) { // gg - index
+                                    dMode[whichTouched] = cpScreen ; // GoTo CP Data Screen
+                                
                                 } else if (dMode[whichTouched]==dateScreen){
                                     dtMode=(dtMode<6)?dtMode+1:0;
                                     lastDMode[whichTouched]=99;
@@ -483,6 +495,9 @@
                                     } else {
                                         autoPoll.detach();
                                     }
+                                } else if (dMode[whichTouched] == indexScreen) { // gg - index
+                                    dMode[whichTouched] = cpHistScreen ; // GoTo CP Hist Screen
+                                    
                                 } else if (dMode[whichTouched]==playbackScreen) {
                                     // Start/stop playback
                                     if(!playbackOpen){
@@ -528,7 +543,8 @@
                             case 21: // col 2 row 1
                                 if (dMode[whichTouched]==config1Screen) { // gg - Batt Log Enable Button
                                     yesBattLog = !yesBattLog;
-                                    
+                                } else if (dMode[whichTouched] == indexScreen) { // gg - index
+                                    dMode[whichTouched] = cpBarScreen ; // GoTo CP Bars Screen  
                                 } else if (dMode[whichTouched]==dateScreen){
                                     upDate(dtMode,false);
                                     lastDMode[whichTouched]=99;
@@ -539,6 +555,25 @@
                                 break;
                                 
                             //-----------------------------------
+                            case 02: // left col, bottom row (not nav)
+                                if (dMode[whichTouched] == indexScreen) { // gg - index
+                                    dMode[whichTouched] = config1Screen ; // GoTo Config Screen   
+                                }
+                                break;
+                                
+                             case 12: // left-middle col, bottom row (not nav)
+                                if (dMode[whichTouched] == indexScreen) { // gg - index
+                                    dMode[whichTouched] = playbackScreen ; // GoTo Playback Screen   
+                                }
+                                break;
+                             
+                             case 22: // right-middle col, bottom row (not nav)
+                                if (dMode[whichTouched] == indexScreen) { // gg - index
+                                    dMode[whichTouched] = dateScreen ; // GoTo Set Date/Time Screen   
+                                }
+                                break;
+                                
+                            //-----------------------------------
                             //-----------------------------------
                             // Prev Navigation
                             case 07: // col 0 row tNavRow
@@ -554,7 +589,7 @@
                             //-----------------------------------
                             // Index Navigation
                             case 27: // col 2 row tNavRow
-                                dMode[whichTouched]= mainScreen; // indexScreen ; // gg - index
+                                dMode[whichTouched]= indexScreen ; // gg - index
                                 break;
                             //------------------------------------
                             // Next Navigation