test fork
Dependencies: SPI_TFTx2 SPI_TFTx2_ILI9341 TFT_fonts TOUCH_TFTx2 mbed
Fork of CANary_9341 by
Diff: displayModes.cpp
- Revision:
- 23:cd03f9c3395e
- Parent:
- 22:a43df3905863
- Child:
- 24:6cf76ed8c432
diff -r a43df3905863 -r cd03f9c3395e displayModes.cpp --- a/displayModes.cpp Mon Mar 11 06:23:00 2013 +0000 +++ b/displayModes.cpp Thu Mar 14 04:41:11 2013 +0000 @@ -97,8 +97,8 @@ } void braking (bool force, bool prdata){ - unsigned short targetBraking, regenBraking, speed; - static unsigned short maxTarget = 0, maxRegen = 0, tarDivReg = 0; + unsigned long targetBraking, regenBraking, speed; + static unsigned long maxTarget = 0, maxRegen = 0, tarDivReg = 0; short rpm; unsigned long temp; static unsigned char lastPressure[4] = {200,200,200,200}; @@ -109,18 +109,26 @@ msg = lastMsg[indexLastMsg[0x1cb]]; //Get Target and Regen regenBraking = (msg.data[0]<<3)+(msg.data[1]>>5); targetBraking = (msg.data[2]<<3)+(msg.data[3]>>5); - if (targetBraking>maxTarget) maxTarget=targetBraking; - if (regenBraking>maxRegen) maxRegen=regenBraking; - if (regenBraking>50) { - temp = 1000*targetBraking; - temp /= regenBraking; - if (temp>tarDivReg) tarDivReg=temp; - } msg = lastMsg[indexLastMsg[0x176]]; //Get rpms - not sure what this is but scales to mph with .0725 rpm = ((short)msg.data[0]<<8)+msg.data[1]; speed =rpm>0?rpm>>3:-rpm>>3; //Take absolute to get speed; div8 + if ((targetBraking>2039)||(speed>200)) { //Filter weird messages + targetBraking = 0; + regenBraking = 0; + } else { + if ((targetBraking>50)&&(regenBraking>50)){ + temp = targetBraking; + temp *= 1000; + temp /= regenBraking; + if (temp<tarDivReg) tarDivReg=temp; + } + targetBraking *= speed; + regenBraking *= speed; + if (targetBraking>maxTarget) maxTarget=targetBraking; + if (regenBraking>maxRegen) maxRegen=regenBraking; + } + msg = lastMsg[indexLastMsg[0x1ca]]; //Get brake pressure - tt.background(Navy); if (force) { tt.cls(); @@ -146,12 +154,17 @@ } if(targetBraking>50){ - targetBraking *= speed; - regenBraking *= speed; - temp = 200*targetBraking/maxTarget; + temp = targetBraking; + temp *= 200; + temp /= maxTarget; t = (char) temp; - temp = 200*regenBraking*tarDivReg/maxTarget; + if (t>238) t=238; + temp = regenBraking; + temp *= tarDivReg; + temp *= 200; + temp /= maxTarget; r = (char) temp; + if (r>238) r=238; if(lr!=r&&prdata){ tt.foreground(Amber); tt.set_font((unsigned char*) Arial28x28); @@ -170,14 +183,14 @@ if(r<lr) tt.fillrect(200,239-lr,300,239-r,Red); else - tt.fillrect(200,239-r,300,239,Green); + tt.fillrect(200,239-r,300,239-lr,Green); if(t<lt) tt.fillrect(200,239-lt,300,239-t,Navy); else tt.fillrect(200,239-t,300,238-r,Red); - lt=t; - lr=r; } + lt=t; + lr=r; } } @@ -227,6 +240,28 @@ } } +void config1(bool force){ + if (force) { + tt.background(Black); + tt.cls(); + } + tt.foreground(Yellow); + tt.background(DarkCyan); + tt.set_font((unsigned char*) Arial12x12); + sprintf(sTemp,"Calibrate"); + showButton(0,0,sTemp,3,3); + sprintf(sTemp,"Reset"); + showButton(1,0,sTemp,3,3); + sprintf(sTemp,"Save"); + showButton(2,0,sTemp,3,3); + if (logEn) { + sprintf(sTemp,"Disable"); + } else { + sprintf(sTemp,"Enable"); + } + showButton(0,1,sTemp,3,3); +} + void updateDisplay(char display){ bool changed; changed = dMode[display]!=lastDMode[display]; @@ -252,17 +287,11 @@ tt.set_font((unsigned char*) Arial12x12); sprintf(sTemp,"<up>"); showButton(0,0,sTemp,3,3); - //tt.fillrect(btn31x1,btn31y1,btn31x2,btn31y2,DarkCyan); - //tt.locate(btn31x1+5,btn31y1+5); - //printf(" <up>\n"); tt.foreground(Yellow); tt.background(DarkCyan); tt.set_font((unsigned char*) Arial12x12); sprintf(sTemp,"<down>"); showButton(2,0,sTemp,3,3); - //tt.fillrect(btn33x1,btn31y1,btn33x2,btn31y2,DarkCyan); - //tt.locate(btn33x1+5,btn31y1+5); - //printf(" <down>\n"); } break; case changedScreen: @@ -279,8 +308,7 @@ } break; case configScreen: - printLog(changed); - //sMode=2; + config1(changed); break; default: tt.background(Black); @@ -331,7 +359,8 @@ showButton(2,3,sTemp,4,4); sprintf(sTemp,"rtn"); showButton(3,3,sTemp,4,4); - + case 3: + break; default: break; } @@ -347,3 +376,4 @@ tt.locate(x1+btnGap,y1+btnGap); printf("%s\n",text); } +