Dual CANbus monitor and instrumentation cluster supporting ILI9341 display controller
Dependencies: SPI_TFTx2_ILI9341 TOUCH_TFTx2_ILI9341 TFT_fonts mbed
Fork of CANary by
Diff: displayModes.cpp
- Revision:
- 182:10017d74de67
- Parent:
- 181:396fdcceefd2
- Child:
- 184:5ca7b78297fe
--- a/displayModes.cpp Tue Mar 25 19:57:08 2014 +0000 +++ b/displayModes.cpp Sun Mar 30 03:00:14 2014 +0000 @@ -1427,51 +1427,41 @@ } void whpgDisplay(bool force, bool showButtons, bool showWh){ - unsigned short maxVal, minVal, maxGid, minGid, i, j, y; - float avg; + unsigned short maxGid, minGid, i, y, delta; static unsigned short lmg; tt.foreground(White); tt.background(Navy); tt.set_font((unsigned char*) Arial12x12_prop); // select the font - maxVal=0; - minVal=9999; maxGid=0; minGid=9999; - avg=0; + delta=0; if(force){ lmg=281; } - // find max/min/avg + // find max/min/delta if(showWh){ - for(i=0; i<299; i++){ + for(i=0; i<300; i++){ if(wh[i]>0){ - j=(wh[i+1]-wh[i]); - avg+=j; - if(j>maxVal) maxVal=j; - if(j<minVal) minVal=j; if(i>maxGid) maxGid=i; if(i<minGid) minGid=i; } } + delta = (wh[maxGid]-wh[minGid]); }else{ - for(i=0; i<299; i++){ + for(i=0; i<300; i++){ if(whpg[i]>0){ - j=(whpg[i]-whpg[i+1]); - avg+=j; - if(j>maxVal) maxVal=j; - if(j<minVal) minVal=j; if(i>maxGid) maxGid=i; if(i<minGid) minGid=i; } } + delta = (whpg[minGid]-whpg[maxGid]); } - avg /= (maxGid-minGid+1); - if (minGid<lmg){ //update if new data + if (force||(minGid<lmg)){ //update if new data lmg = minGid; //------------------ tt.cls(); @@ -1485,36 +1475,45 @@ tt.rect( xWinMin-1,yWinMin-1, xWinMax+1,yWinMax+1, Red); tt.rect( xWinMin-2,yWinMin-2, xWinMax+2,yWinMax+2, Green); // draw grid - for( i=20; i<yWinMax-yWinMin; i+=20){ + for( i=0; i<yWinMax-yWinMin; i+=20){ tt.line(xWinMin,yWinMax-i,xWinMax,yWinMax-i,DarkGrey); + if(i%40 == 0){ + // label the y axis each 40 + tt.line( xWinMin-8,yWinMax-i, xWinMin-2,yWinMax-i, White ); // a white tick mark + tt.locate( 0, yWinMax-i-4 ); + printf("%d\n", i ); + } } - for( i=20; i<xWinMax-xWinMin; i+=20){ - tt.line(xWinMin+i,yWinMin,xWinMin+i,yWinMax,DarkGrey); + for( i=0; i<xWinMax-xWinMin; i+=10){ + // tic mark the x axis each 10 + tt.line( i+xWinMin,yWinMax+2, i+xWinMin,yWinMax+4, White ); // a white tick mark + if(i%40 == 0){ + // label the x axis each 40 + tt.line( i+xWinMin,yWinMax+2, i+xWinMin,yWinMax+8, White ); // a white tick mark + if(i<100){ + tt.locate( i+xWinMin-7, yWinMax+8 ); + }else{ + tt.locate( i+xWinMin-15, yWinMax+8 ); + } + printf("%d\n", i ); + } + if(i%20 == 0){ + tt.line(xWinMin+i,yWinMin,xWinMin+i,yWinMax,DarkGrey); + } } - //---------------- - if( maxVal > minVal ) { - - // label the Y axis - tt.locate( 2, yWinMin-6); printf("%d\n",yWinMax-yWinMin); - tt.locate( 2, yWinMax-6); printf("0\n"); - //tt.locate( xWinMin+3, yWinMax-avg-6); printf("%3.1f avg\n", avg ); - tt.locate( xWinMin+4, yWinMin+4); printf("%3.1f avg\n", avg ); + // plot + if( maxGid >= minGid ) { + tt.locate( xWinMin+4, yWinMin+4); + printf("%3.1f avg\n", (float) delta/(maxGid-minGid) ); + if(debugMode){ + tt.locate( xWinMin+4, yWinMin+20); + printf("minGids=%d; maxGids=%d\n", minGid,maxGid); + tt.locate( xWinMin+4, yWinMin+36); + printf("minwhpg=%d; maxwhpg=%d\n", whpg[minGid],whpg[maxGid]); + } for( i=4; i<=286; i++) { - if(i%40 == 0){ - // label the x axis each 40 - tt.line( i+xWinMin,yWinMax+2, i+xWinMin,yWinMax+8, White ); // a white tick mark - if(i<10){ - tt.locate( i+xWinMin-12, yWinMax+8 ); - }else{ - tt.locate( i+xWinMin-20, yWinMax+8 ); - } - printf("%d\n", i ); - } else if(i%10 == 0){ - // tic mark the x axis each 10 - tt.line( i+xWinMin,yWinMax+2, i+xWinMin,yWinMax+4, White ); // a white tick mark - } if(showWh){ y = wh[i]-wh[i-1]; tt.fillcircle(i+xWinMin,yWinMax-y,2,Green);