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:
- 107:e9be732c1ad4
- Parent:
- 106:f016912a03db
- Child:
- 108:29b5a760adc2
diff -r f016912a03db -r e9be732c1ad4 displayModes.cpp --- a/displayModes.cpp Fri Jun 28 20:26:11 2013 +0000 +++ b/displayModes.cpp Sat Jun 29 02:44:02 2013 +0000 @@ -71,10 +71,30 @@ lastldl=ldl; } +void tripDisplay (bool force, bool showButtons){ + static float lmiles=0; + tt.background(White); + if(force){ + tt.cls(); + } + if(force||lmiles!=miles_trip[0]){ //only update if changed + tt.foreground(Navy); + tt.set_font((unsigned char*) Arial28x28); + tt.locate(1,10); + printf("kWh : %s : Eff\n",distanceUnit()); + for(int i=0; i<3; i++){ + tt.locate(1,60+i*40); + printf("%3.2f : %3.1f : %2.1f\n",kWh_trip[i],convertDistance(miles_trip[i]),convertDistance(miles_trip[i])/kWh_trip[i]); + } + tt.set_font((unsigned char*) Arial12x12); + showButton(3,1," Reset","",4,4); + showButton(3,2," Reset","",4,4); + } +} + void mainDisplay (bool force, bool showButtons){ unsigned short gids, SOC, packV; 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; @@ -363,6 +383,7 @@ jv=0; } + char* sTemperatureUnit = temperatureUnit(); switch(step){ case 0: tt.cls(); @@ -370,7 +391,6 @@ break; case 1: tt.locate(0,6); - 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); @@ -1076,6 +1096,9 @@ case indexScreen: showIndex(changed,(display==whichTouched)); break; + case tripScreen: + tripDisplay(changed,(display==whichTouched)); + break; default: if (changed){ tt.background(Black); @@ -1141,6 +1164,9 @@ case cpBarScreen: // gg - cpbars sprintf(sTemp2,"CP Bars"); break; + case tripScreen: + sprintf(sTemp2," Trip"); + break; case indexScreen: // gg - index sprintf(sTemp2," Index"); break;