Dual CANbus monitor and instrumentation cluster
Dependencies: SPI_TFTx2 TFT_fonts TOUCH_TFTx2 beep mbed
Fork of CANary by
Diff: displayModes.cpp
- Branch:
- Metric
- Revision:
- 102:fd19f777a0b4
- Parent:
- 99:c05abf8e1cdc
- Child:
- 103:1389e9efe8c3
--- a/displayModes.cpp Sat Jun 15 19:05:32 2013 +0000 +++ b/displayModes.cpp Thu Jun 20 05:35:36 2013 +0000 @@ -73,9 +73,11 @@ void mainDisplay (bool force, bool showButtons){ unsigned short gids, SOC, packV; - static unsigned short lgids=0, lSOC=0, lpackV=0, maxPS=0; - static unsigned char lbattTemp_x4=0; + static unsigned short lgids=0, lSOC=0, lSOH=0, lpackV=0, maxPS=0; + //static unsigned char lbattTemp_x4=0; + static signed short lbattTemp_x10=0; static float lkW=0, laccV=0, lmpkWh=0; + static unsigned long lAh=0; CANMessage msg; msg = lastMsg[indexLastMsg[0x5bc]]; //Get gids @@ -102,7 +104,7 @@ printf("%4.1f kWh \n",(float)(gids-5)*0.075); tt.set_font((unsigned char*) SCProSB31x55); tt.foreground(Green); - tt.locate(60,96); + tt.locate(60,106); printf("%4.1f %s \n",convertDistance(mpkWh[dtePeriod]*((float)(gids-5)*.075)),distanceUnit()); //LM - add metric conversion lgids=gids; lmpkWh=mpkWh[dtePeriod]; @@ -119,10 +121,13 @@ printf("%4.1fV \n",(float)packV/2); lpackV=packV; } - if(force||battTemp_x4!=lbattTemp_x4){ + //if(force||battTemp_x4!=lbattTemp_x4){ + if(force||battTemp_x10!=lbattTemp_x10){ tt.locate(200,170); - printf("%4.1f%s\n",convertTemperature((float)battTemp_x4*0.25f),temperatureUnit()); - lbattTemp_x4=battTemp_x4; + //printf("%4.1f%s\n",convertTemperature((float)battTemp_x4*0.25f),temperatureUnit()); + printf("%4.1f%s\n",convertTemperature((float)battTemp_x10*0.1f),temperatureUnit()); + //lbattTemp_x4=battTemp_x4; + lbattTemp_x10=battTemp_x10; } if(force||accV!=laccV){ tt.locate(20,200); @@ -130,11 +135,21 @@ laccV=accV; } if(force||kW[0]!=lkW){ - tt.locate(180,40); + tt.locate(180,70); printf("%3.2fkW \n",kW[0]); //printf("%3.1f mpkWh \n",mpkWh[0]); lkW=kW[0]; } + 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,40); + printf("%3.1f%s\n",(float)SOH_x100/100,"% "); + lSOH=SOH_x100; + } }else {//if(skin==ggSkin){ if(force||gids!=lgids){ tt.locate(10,10); @@ -350,13 +365,13 @@ break; case 1: tt.locate(0,6); - // BatDataBaseG4 * 7 = 224 + // 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[224+5]),sTemperatureUnit,convertTemperature(battData[224+8]),sTemperatureUnit, - convertTemperature(battData[224+11]),sTemperatureUnit,convertTemperature(battData[224+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[224+5],battData[224+8],battData[224+11],battData[224+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); @@ -510,10 +525,10 @@ } // values, for now - // BatDataBaseG4 * 7 = 224 + // 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[224+5],battData[224+8], battData[224+11],battData[224+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 ); @@ -633,10 +648,10 @@ } // the values, for now - // BatDataBaseG4 * 7 = 224 + // 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[224+5],battData[224+8], battData[224+11],battData[224+14]); + max,min,avg,jv, battData[(BatDataBaseG4*7)+5],battData[(BatDataBaseG4*7)+8], battData[(BatDataBaseG4*7)+11],battData[(BatDataBaseG4*7)+14]); //--------------- // show the bars