Dual CANbus monitor and instrumentation cluster

Dependencies:   SPI_TFTx2 TFT_fonts TOUCH_TFTx2 beep mbed

Fork of CANary by Tick Tock

Branch:
Metric
Revision:
103:1389e9efe8c3
Parent:
102:fd19f777a0b4
Child:
106:f016912a03db
--- a/displayModes.cpp	Thu Jun 20 05:35:36 2013 +0000
+++ b/displayModes.cpp	Thu Jun 20 23:07:27 2013 +0000
@@ -142,12 +142,12 @@
         }
         if(force||Ah_x10000!=lAh){
             tt.locate(10,70);
-            printf("%4.2fAh  \n",(float)Ah_x10000/10000);
+            printf("% 4.2fAh \n",(float)Ah_x10000/10000);
             lAh=Ah_x10000;
         }
         if(force||SOH_x100!=lSOH){
             tt.locate(180,40);
-            printf("%3.1f%s\n",(float)SOH_x100/100,"% ");
+            printf(" %3.1f%s\n",(float)SOH_x100/100,"% ");
             lSOH=SOH_x100;
         }
     }else {//if(skin==ggSkin){
@@ -346,7 +346,7 @@
         min=9999;
         avg=0;
         for(i=0; i<96; i++){
-           bd=(battData[i*2+3]<<8)+battData[i*2+4];
+           bd=(battData[BatDataBaseG2*7+i*2+3]<<8)+battData[BatDataBaseG2*7+i*2+4];
            avg+=bd;
             if(bd>max) max=bd;
             if(bd<min) min=bd;
@@ -365,13 +365,12 @@
                 break;
             case 1:
                 tt.locate(0,6);
-                // BatDataBaseG4 * 7 = 280
                 char* sTemperatureUnit = temperatureUnit();
                 printf(" MAX  MIN  AVG CVLI T1  T2  T3  T4\n %04d %04d %04d %04d %2.0f%s %2.0f%s %2.0f%s %2.0f%s\n\n",
-                    max,min,avg,jv, convertTemperature(battData[(BatDataBaseG4*7)+5]),sTemperatureUnit,convertTemperature(battData[(BatDataBaseG4*7)+8]),sTemperatureUnit,
-                    convertTemperature(battData[(BatDataBaseG4*7)+11]),sTemperatureUnit,convertTemperature(battData[(BatDataBaseG4*7)+14]),sTemperatureUnit);
+                    max,min,avg,jv, convertTemperature(battData[BatDataBaseG4*7+5]),sTemperatureUnit,convertTemperature(battData[BatDataBaseG4*7+8]),sTemperatureUnit,
+                    convertTemperature(battData[BatDataBaseG4*7+11]),sTemperatureUnit,convertTemperature(battData[BatDataBaseG4*7+14]),sTemperatureUnit);
                 //printf(" MAX  MIN  AVG CVLI T1  T2  T3  T4\n %04d %04d %04d %04d %02dC %02dC %02dC %02dC\n\n",
-                //            max,min,avg,jv, battData[(BatDataBaseG4*7)+5],battData[(BatDataBaseG4*7)+8],battData[(BatDataBaseG4*7)+11],battData[(BatDataBaseG4*7)+14]);
+                //            max,min,avg,jv, battData[BatDataBaseG4*7+5],battData[BatDataBaseG4*7+8],battData[BatDataBaseG4*7+11],battData[BatDataBaseG4*7+14]);
                 tt.rect(8+0*41,16,40+0*41,28,Green);
                 tt.rect(8+1*41,16,40+1*41,28,Yellow);
                 //tt.rect(8+2*41,16,40+2*41,28,White);
@@ -382,12 +381,12 @@
                 for(i=(step-2)*4; i<(step-1)*4; i++){
                     printf("%02d-%02d : %04d %04d %04d %04d %04d %04d\n",
                         i*6+1,i*6+6,
-                        (battData[i*12+3]<<8)+battData[i*12+4],(battData[i*12+5]<<8)+battData[i*12+6],
-                        (battData[i*12+7]<<8)+battData[i*12+8],(battData[i*12+9]<<8)+battData[i*12+10],
-                        (battData[i*12+11]<<8)+battData[i*12+12],(battData[i*12+13]<<8)+battData[i*12+14]);
+                        (battData[BatDataBaseG2*7+i*12+3]<<8)+battData[BatDataBaseG2*7+i*12+4],(battData[BatDataBaseG2*7+i*12+5]<<8)+battData[BatDataBaseG2*7+i*12+6],
+                        (battData[BatDataBaseG2*7+i*12+7]<<8)+battData[BatDataBaseG2*7+i*12+8],(battData[BatDataBaseG2*7+i*12+9]<<8)+battData[BatDataBaseG2*7+i*12+10],
+                        (battData[BatDataBaseG2*7+i*12+11]<<8)+battData[BatDataBaseG2*7+i*12+12],(battData[BatDataBaseG2*7+i*12+13]<<8)+battData[BatDataBaseG2*7+i*12+14]);
                 }
                 for(i=(step-2)*24; i<(step-1)*24; i++){
-                    bd=(battData[i*2+3]<<8)+battData[i*2+4];
+                    bd=(battData[BatDataBaseG2*7+i*2+3]<<8)+battData[BatDataBaseG2*7+i*2+4];
                     if(bd>0){
                         if(bd==max) tt.rect(58+(i%6)*41,34+(int)(i/6)*12,90+(i%6)*41,46+(int)(i/6)*12,Green);
                         //if(bd==avg) tt.rect(58+(i%6)*41,34+(int)(i/6)*12,90+(i%6)*41,46+(int)(i/6)*12,White);
@@ -471,7 +470,7 @@
        
         // calc each cell-pair voltage, find max and min
         for(i=0; i<96; i++){
-           bd=(battData[i*2+3]<<8)+battData[i*2+4];
+           bd=(battData[BatDataBaseG2*7+i*2+3]<<8)+battData[BatDataBaseG2*7+i*2+4];
            nBar[i] = bd; // init to bar height
            avg+=bd;
             if(bd>max) max=bd;
@@ -528,7 +527,7 @@
         // BatDataBaseG4 * 7 = 280
         tt.locate( 0, yWinMax+40 );
         printf(" MAX  MIN  AVG CVLI T1  T2  T3  T4\n %04d %04d %04d %04d %02dC %02dC %02dC %02dC\n\n",
-                max,min,avg,jv,  battData[(BatDataBaseG4*7)+5],battData[(BatDataBaseG4*7)+8],  battData[(BatDataBaseG4*7)+11],battData[(BatDataBaseG4*7)+14]);
+                max,min,avg,jv,  battData[BatDataBaseG4*7+5],battData[BatDataBaseG4*7+8],  battData[BatDataBaseG4*7+11],battData[BatDataBaseG4*7+14]);
         
         // label the X axis (approximate)
         tt.locate( 2, yWinMax+5); printf("%04d", min );
@@ -591,7 +590,7 @@
         min=9999;
         avg=0;
         for(i=0; i<96; i++){
-           bd=(battData[i*2+3]<<8)+battData[i*2+4];
+           bd=(battData[BatDataBaseG2*7+i*2+3]<<8)+battData[BatDataBaseG2*7+i*2+4];
            avg+=bd;
             if(bd>max) max=bd;
             if(bd<min) min=bd;
@@ -629,7 +628,7 @@
         
         // do the bin counting
         for(int i=0; i<96; i++){
-          bd=(battData[i*2+3]<<8)+battData[i*2+4] - min ;
+          bd=(battData[BatDataBaseG2*7+i*2+3]<<8)+battData[BatDataBaseG2*7+i*2+4] - min ;
           if( bd > iBinValMax ) bd = iBinValMax ;
           nBin[bd] ++ ;
         }
@@ -651,7 +650,7 @@
         // BatDataBaseG4 * 7 = 280        
         tt.locate( 0, yWinMax+40 );
         printf(" MAX  MIN  AVG CVLI T1  T2  T3  T4\n %04d %04d %04d %04d %02dC %02dC %02dC %02dC\n\n",
-                max,min,avg,jv,  battData[(BatDataBaseG4*7)+5],battData[(BatDataBaseG4*7)+8],  battData[(BatDataBaseG4*7)+11],battData[(BatDataBaseG4*7)+14]);
+                max,min,avg,jv,  battData[BatDataBaseG2*7+BatDataBaseG4*7+5],battData[BatDataBaseG2*7+BatDataBaseG4*7+8],  battData[BatDataBaseG2*7+BatDataBaseG4*7+11],battData[BatDataBaseG2*7+BatDataBaseG4*7+14]);
         
         //---------------
         // show the bars