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:
- 54:6ce808d0995e
- Parent:
- 50:83d5864c64a0
- Child:
- 55:591406a71fa8
--- a/displayModes.cpp Sun Apr 07 17:11:28 2013 +0000 +++ b/displayModes.cpp Tue Apr 09 06:16:26 2013 +0000 @@ -19,11 +19,9 @@ tt.foreground(Yellow); tt.background(DarkCyan); tt.set_font((unsigned char*) Arial12x12); - sprintf(sTemp1,"<up>"); - sprintf(sTemp2,""); - showButton(0,0,sTemp1,sTemp2,3,3); - sprintf(sTemp1,"<down>"); - showButton(2,0,sTemp1,sTemp2,3,3); + + showButton(0,0," <up>","",4,4); + showButton(2,0,"<down>","",4,4); } } @@ -49,14 +47,10 @@ tt.foreground(Yellow); tt.background(DarkCyan); tt.set_font((unsigned char*) Arial12x12); - sprintf(sTemp1,"<up>"); - sprintf(sTemp2,""); - showButton(0,0,sTemp1,sTemp2,3,3); - sprintf(sTemp1," <down>"); - showButton(2,0,sTemp1,sTemp2,3,3); - sprintf(sTemp1," Reset"); - sprintf(sTemp2," Baseline"); - showButton(1,0,sTemp1,sTemp2,3,3); + + showButton(0,0," <up>","",4,4); + showButton(2,0," <down>","",4,4); + showButton(1,0," Reset","Baseline",4,4); } } @@ -359,9 +353,8 @@ tt.foreground(Yellow); tt.background(DarkCyan); tt.set_font((unsigned char*) Arial12x12); - sprintf(sTemp1," Request"); - sprintf(sTemp2," CP data"); - showButton(1,0,sTemp1,sTemp2,3,3); + + showButton(1,0,"Request","CP Data",4,4); } } @@ -485,9 +478,8 @@ tt.foreground(Yellow); tt.background(DarkCyan); tt.set_font((unsigned char*) Arial12x12); - sprintf(sTemp1," Request"); - sprintf(sTemp2," CP data"); - showButton(1,0,sTemp1,sTemp2,3,3); + + showButton(1,0,"Request","CP Data",4,4); } } @@ -592,10 +584,9 @@ tt.foreground(Yellow); tt.background(DarkCyan); tt.set_font((unsigned char*) Arial12x12); - sprintf(sTemp1," Request"); - sprintf(sTemp2," CP data"); - showButton(1,0,sTemp1,sTemp2,3,3); - } + + showButton(1,0,"Request","CP Data",4,4); + } } //--------------- @@ -607,41 +598,35 @@ tt.foreground(Yellow); tt.background(DarkCyan); tt.set_font((unsigned char*) Arial12x12); - sprintf(sTemp1," Calibrate"); - sprintf(sTemp2," Touch"); - showButton(0,0,sTemp1,sTemp2,3,3); - sprintf(sTemp1," Reset"); - sprintf(sTemp2,""); - showButton(1,0,sTemp1,sTemp2,3,3); - sprintf(sTemp1," Save"); - sprintf(sTemp2," Config"); - showButton(2,0,sTemp1,sTemp2,3,3); + + showButton(0,0,"Calibrate"," Touch",4,4); // gg - 4x4 + + showButton(1,0," Reset","",4,4); + + showButton(2,0," Save"," Config",4,4); //------- second row ----- if (logEn) { - sprintf(sTemp1," Disable"); + sprintf(sTemp1,"Disable"); } else { - sprintf(sTemp1," Enable"); + sprintf(sTemp1,"Enable"); } - sprintf(sTemp2," Logging"); - showButton(0,1,sTemp1,sTemp2,3,3); + showButton(0,1,sTemp1,"Logging",4,4); if (repeatPoll) { - sprintf(sTemp1," Disable"); + sprintf(sTemp1,"Disable"); } else { - sprintf(sTemp1," Enable"); + sprintf(sTemp1,"Enable"); } - sprintf(sTemp2," Auto CP"); - showButton(1,1,sTemp1,sTemp2,3,3); + showButton(1,1,sTemp1,"Auto CP",4,4); // add Enable/Disable Batt Log gg - yesBattLog if (yesBattLog) { - sprintf(sTemp1," Disable"); + sprintf(sTemp1,"Disable"); } else { - sprintf(sTemp1," Enable"); + sprintf(sTemp1,"Enable"); } - sprintf(sTemp2," Batt Log"); - showButton(2,1,sTemp1,sTemp2,3,3); + showButton(2,1,sTemp1,"Batt Log",4,4); } void pbScreen(bool force, bool showButtons){ @@ -653,27 +638,24 @@ tt.background(DarkCyan); tt.set_font((unsigned char*) Arial12x12); if(playbackOpen){ - sprintf(sTemp1,"Slower"); - sprintf(sTemp2," <--"); - showButton(0,0,sTemp1,sTemp2,3,3); + showButton(0,0,"Slower"," <--",4,4); + if(playbackEn){ - sprintf(sTemp1," Pause"); + sprintf(sTemp1,"Pause"); }else{ - sprintf(sTemp1," Run"); + sprintf(sTemp1," Run"); } - sprintf(sTemp2," %4.3f ",playbackInt); - showButton(1,0,sTemp1,sTemp2,3,3); - sprintf(sTemp1,"Faster"); - sprintf(sTemp2," -->"); - showButton(2,0,sTemp1,sTemp2,3,3); + sprintf(sTemp2,"%4.3f ",playbackInt); + showButton(1,0,sTemp1,sTemp2,4,4); + + showButton(2,0,"Faster"," -->",4,4); } if(playbackOpen){ sprintf(sTemp1," Stop"); }else{ - sprintf(sTemp1," Start"); + sprintf(sTemp1,"Start"); } - sprintf(sTemp2,"Playback"); - showButton(1,1,sTemp1,sTemp2,3,3); + showButton(1,1,sTemp1,"Playback",4,4); } void showDateTime(bool force, bool showButtons){ @@ -691,7 +673,6 @@ strftime(sTemp1, 32, "%a %m/%d/%Y %X \n", &t); printf("%s",sTemp1); if((sMode==1)&&showButtons){ - sprintf(sTemp2,""); switch(dtMode){ case 0: sprintf(sTemp1,"Year"); @@ -718,11 +699,10 @@ break; } tt.background(DarkCyan); - showButton(0,1,sTemp1,sTemp2,3,3); - sprintf(sTemp1," UP"); - showButton(1,1,sTemp1,sTemp2,3,3); - sprintf(sTemp1," DOWN"); - showButton(2,1,sTemp1,sTemp2,3,3); + showButton(0,1,sTemp1,"",4,4); + + showButton(1,1," UP","",4,4); + showButton(2,1," DOWN","",4,4); } } } @@ -914,91 +894,82 @@ case 1: // Select screens tt.foreground(Yellow); tt.background(DarkCyan); - tt.set_font((unsigned char*) Arial12x12); - sprintf(sTemp1,"<-Prev"); - sprintf(sTemp2,""); - showButton(0,2,sTemp1,sTemp2,3,3); - sprintf(sTemp1," Next->"); - showButton(2,2,sTemp1,sTemp2,3,3); - sprintf(sTemp1," Select"); + tt.set_font((unsigned char*) Arial12x12); + + showButton(0,tNavRow," <-Prev","",4,4); // gg - 4x4 + showButton(3,tNavRow," Next->","",4,4); // gg - move next + + showButton(2,tNavRow," Go To"," Main",4,4); // gg - index + switch (dMode[display]) { case offScreen: - sprintf(sTemp2," Off"); + sprintf(sTemp2," Off"); break; case logScreen: - sprintf(sTemp2," Log"); + sprintf(sTemp2," Log"); break; case mainScreen: - sprintf(sTemp2," Main"); + sprintf(sTemp2," Main"); break; case brakeScreen: - sprintf(sTemp2," Braking"); + sprintf(sTemp2,"Braking"); break; case dteScreen: - sprintf(sTemp2," DTE"); + sprintf(sTemp2," DTE"); break; case effScreen: - sprintf(sTemp2," Eff"); + sprintf(sTemp2," Eff"); break; case monitorScreen: - sprintf(sTemp2," Monitor"); + sprintf(sTemp2," Monitor"); break; case changedScreen: - sprintf(sTemp2,"Delta Mon"); + sprintf(sTemp2,"DeltaMon"); break; case cpScreen: - sprintf(sTemp2," Cell Pair"); + sprintf(sTemp2,"Cell Pair"); break; case config1Screen: - sprintf(sTemp2," Config"); + sprintf(sTemp2," Config"); break; case playbackScreen: - sprintf(sTemp2," Playback"); + sprintf(sTemp2,"Playback"); break; case dateScreen: - sprintf(sTemp2," Set Time"); + sprintf(sTemp2,"Set Time"); break; case cpHistScreen: // gg - hist - sprintf(sTemp2," CP Hist"); + sprintf(sTemp2,"CP Hist"); break; case cpBarScreen: // gg - cpbars - sprintf(sTemp2," CP Bars"); + sprintf(sTemp2,"CP Bars"); break; } - showButton(1,2,sTemp1,sTemp2,3,3); + showButton(1,tNavRow," Select",sTemp2,4,4); + wait_ms(100); // pause a moment to reduce flicker break; + case 2: // numpad - sprintf(sTemp2,""); tt.foreground(Yellow); tt.background(DarkCyan); tt.set_font((unsigned char*) Arial24x23); - sprintf(sTemp1," 1"); - showButton(0,0,sTemp1,sTemp2,4,4); - sprintf(sTemp1," 2"); - showButton(1,0,sTemp1,sTemp2,4,4); - sprintf(sTemp1," 3"); - showButton(2,0,sTemp1,sTemp2,4,4); - sprintf(sTemp1," 4"); - showButton(0,1,sTemp1,sTemp2,4,4); - sprintf(sTemp1," 5"); - showButton(1,1,sTemp1,sTemp2,4,4); - sprintf(sTemp1," 6"); - showButton(2,1,sTemp1,sTemp2,4,4); - sprintf(sTemp1," 7"); - showButton(0,2,sTemp1,sTemp2,4,4); - sprintf(sTemp1," 8"); - showButton(1,2,sTemp1,sTemp2,4,4); - sprintf(sTemp1," 9"); - showButton(2,2,sTemp1,sTemp2,4,4); - sprintf(sTemp1," 0"); - showButton(1,3,sTemp1,sTemp2,4,4); - sprintf(sTemp1,"<--"); - showButton(0,3,sTemp1,sTemp2,4,4); - sprintf(sTemp1,"-->"); - showButton(2,3,sTemp1,sTemp2,4,4); - sprintf(sTemp1,"return"); - showButton(3,3,sTemp1,sTemp2,4,4); + + sprintf(sTemp2,""); + showButton(0,0," 1",sTemp2,4,4); + showButton(1,0," 2",sTemp2,4,4); + showButton(2,0," 3",sTemp2,4,4); + showButton(0,1," 4",sTemp2,4,4); + showButton(1,1," 5",sTemp2,4,4); + showButton(2,1," 6",sTemp2,4,4); + showButton(0,2," 7",sTemp2,4,4); + showButton(1,2," 8",sTemp2,4,4); + showButton(2,2," 9",sTemp2,4,4); + showButton(1,3," 0",sTemp2,4,4); + + showButton(0,3,"<--",sTemp2,4,4); + showButton(2,3,"-->",sTemp2,4,4); + showButton(3,3,"return",sTemp2,4,4); case 3: break; default: @@ -1009,16 +980,22 @@ void showButton(unsigned char column, unsigned char row, char * text1, char * text2, unsigned char columns, unsigned char rows){ unsigned short x1,x2,y1,y2; + x1=column*(320/columns)+btnGap/2; x2=(column+1)*(320/columns)-btnGap/2; y1=row*(240/rows)+btnGap/2; y2=(row+1)*(240/rows)-btnGap/2; tt.fillrect(x1,y1,x2,y2,DarkCyan); - tt.locate(x1+btnGap,y1+btnGap); + + // adapt formatting of text to the smaller 4x4 box + tt.locate(x1+btnGap/2,y1+btnGap); // gg - 4x4 printf("%s\n",text1); - tt.locate(x1+btnGap,y1+btnGap+30); + + tt.locate(x1+btnGap/2,y1+btnGap+20); printf("%s\n",text2); } + +//------------- // below is braking screen normalized to power rather than force // changed to force since power had too large a dynamic range /*void braking (bool force, bool showButtons, bool prdata=false){