Dual CANbus monitor and instrumentation cluster
Dependencies: SPI_TFTx2 TFT_fonts TOUCH_TFTx2 beep mbed
Fork of CANary by
Revision 43:e7f6f80590e3, committed 2013-04-02
- Comitter:
- TickTock
- Date:
- Tue Apr 02 06:32:25 2013 +0000
- Parent:
- 42:4533b13b297d
- Child:
- 44:6262a9fd1e56
- Commit message:
- Fixed bench button display bugs
Changed in this revision
--- a/displayModes.cpp Sun Mar 31 20:38:15 2013 +0000 +++ b/displayModes.cpp Tue Apr 02 06:32:25 2013 +0000 @@ -323,9 +323,9 @@ } sprintf(sTemp2," Auto CP"); showButton(1,1,sTemp1,sTemp2,3,3); - sprintf(sTemp1," Start"); - sprintf(sTemp2,"Playback"); - showButton(2,1,sTemp1,sTemp2,3,3); + //sprintf(sTemp1," Start"); + //sprintf(sTemp2,"Playback"); + //showButton(2,1,sTemp1,sTemp2,3,3); } void pbScreen(bool force, bool showButtons){ @@ -371,12 +371,12 @@ t = *localtime(&seconds) ; tt.locate(10,10); + tt.foreground(Yellow); + tt.background(DarkCyan); + tt.set_font((unsigned char*) Arial12x12); strftime(sTemp1, 32, "%a %m/%d/%Y %X \n", &t); printf("%s",sTemp1); if((sMode==1)&&showButtons){ - tt.foreground(Yellow); - tt.background(DarkCyan); - tt.set_font((unsigned char*) Arial12x12); sprintf(sTemp2,""); switch(dtMode){ case 0: @@ -421,9 +421,9 @@ tt.foreground(Yellow); tt.set_font((unsigned char*) Arial28x28); tt.locate(10,200); - printf("%3.1f\n",MPH); + printf("%3.1f \n",MPH); tt.locate(200,200); - printf("%3.1f\n",mpkWh); + printf("%3.1f \n",mpkWh); lmpkWh=mpkWh; lMPH=MPH; } @@ -465,8 +465,10 @@ showDateTime(changed,(display==whichTouched)); break; default: - tt.background(Black); - tt.cls(); + if (changed){ + tt.background(Black); + tt.cls(); + } break; } lastDMode[display]=dMode[display]; @@ -480,42 +482,42 @@ sprintf(sTemp1,"<-Prev"); sprintf(sTemp2,""); showButton(0,2,sTemp1,sTemp2,3,3); - sprintf(sTemp1," Next->"); + sprintf(sTemp1," Next->"); showButton(2,2,sTemp1,sTemp2,3,3); - sprintf(sTemp1," Select"); + sprintf(sTemp1," Select"); switch (dMode[display]) { case 0: - sprintf(sTemp2," Off"); + sprintf(sTemp2," Off"); break; case 1: - sprintf(sTemp2," Log"); + sprintf(sTemp2," Log"); break; case 2: - sprintf(sTemp2," Main"); + sprintf(sTemp2," Main"); break; case 3: sprintf(sTemp2," Braking"); break; case 4: - sprintf(sTemp2," DTE"); + sprintf(sTemp2," DTE"); break; case 5: - sprintf(sTemp2," Monitor"); + sprintf(sTemp2," Monitor"); break; case 6: sprintf(sTemp2,"Delta Mon"); break; case 7: - sprintf(sTemp2,"Cell Pair"); + sprintf(sTemp2," Cell Pair"); break; case 8: - sprintf(sTemp2," Config"); + sprintf(sTemp2," Config"); break; case 9: - sprintf(sTemp2,"Playback"); + sprintf(sTemp2," Playback"); break; case 10: - sprintf(sTemp2,"Set Time"); + sprintf(sTemp2," Set Time"); break; } showButton(1,2,sTemp1,sTemp2,3,3);
--- a/main.cpp Sun Mar 31 20:38:15 2013 +0000 +++ b/main.cpp Tue Apr 02 06:32:25 2013 +0000 @@ -102,7 +102,7 @@ int readPointer=0; char sTemp[40]; unsigned long secs; - unsigned char i,j,display=0; + unsigned char i,j,display=0,lwt=0;; point lastTouch; can1.monitor(true); // set to snoop mode @@ -143,6 +143,8 @@ t = *localtime(&seconds) ; strftime(sTemp, 32, "%a %m/%d/%Y %X\n", &t); logMsg(sTemp); + sprintf(sTemp,"CANary firmware rev43\n"); + logMsg(sTemp); // Look for new binary on thumbdrive // Can't make this work right now since USB doesn't attach the right timestamp (so new binary isn't loaded) @@ -179,9 +181,15 @@ }*/ secsNoMsg = 0; - secsNoTouch = 0; + + dMode[1]=logScreen; + lastDMode[1]=99; + updateDisplay(1); + // Read config file readConfig(); + wait_ms(4000); // Pause for a few seconds + touched=false; secsNoTouch=2; while (true) { @@ -261,9 +269,9 @@ //__wfi(); // freeze CPU and wait for interrupt (from canbus or touch) Sleep(); } - secsNoTouch=0; + secsNoTouch=2; canIdle=secsNoMsg>canTimeout; - userIdle=secsNoTouch>userTimeout; + //userIdle=!touched; dled=0.8; // turn on display LED seconds = time(NULL); t = *localtime(&seconds) ; @@ -272,7 +280,7 @@ if (time(NULL)>(secs+1800)) { logOpen = false; // Start new file if asleep for more than 30 minutes if (secsNoTouch>100) secsNoTouch = 100; // also mostly reset user Idle counter - } else if (false){ // insert timestamp on each wake if logging enabled (disabled for now) + } else if (logOpen){ // insert timestamp on each wake if logging enabled (disabled for now) file = fopen(fileName, "ab"); logTS(); } @@ -282,11 +290,22 @@ lastTouch = tt.get_touch(); lastTouch = tt.to_pixel(lastTouch); // convert to pixel pos if((lastTouch.x!=639)&&(lastTouch.x!=319)&&(lastTouch.y!=239)){ // filter phantom touches - if (!userIdle) { - secsNoTouch=0; + if (userIdle) { + secsNoTouch=2; // Ignore first touch if user idle + userIdle=false; } else { - secsNoTouch=2; // Ignore first touch if user idle + secsNoTouch=0; } + if (lastTouch.x>320){ + whichTouched=1; + } else { + whichTouched=0; + } + if (whichTouched!=lwt){ + lastDMode[lwt]=99; // Repaint lastTouched + lwt=whichTouched; + } + sMode = 1; } //sprintf(sTemp,"%d,%d ",lastTouch.x,lastTouch.y); //logMsg(sTemp); @@ -295,12 +314,7 @@ if (!userIdle) { if (secsNoTouch<2) {// Recently touched secsNoTouch +=2; // increment to prevent double touch - if (lastTouch.x>320){ - whichTouched=1; - } else { - whichTouched=0; - } - if (sMode==0) sMode = 1; + sMode = 1; //sprintf(sTemp,"button %d %d,%d %d\n",i,buttonX(lastTouch.x,3),buttonY(lastTouch.y,3),lastTouch.x); //logMsg(sTemp); switch (sMode) { @@ -428,7 +442,9 @@ break; case 12: case 42: - secsNoTouch = userTimeout; // immediately exit config mode + //secsNoTouch = userTimeout; // immediately exit config mode + sMode=0; + lastDMode[whichTouched]=99; // Repaint break; case 22: case 52: @@ -449,8 +465,7 @@ } else { // userIdle if(sMode==1){ sMode=0; - lastDMode[0]=99; - lastDMode[1]=99; + lastDMode[whichTouched]=99; } }
--- a/utility.cpp Sun Mar 31 20:38:15 2013 +0000 +++ b/utility.cpp Tue Apr 02 06:32:25 2013 +0000 @@ -261,8 +261,6 @@ tt.calibrate(); // run touchscreen calibration routine saveConfig(); } else { - sprintf(sTemp,"Reading config file.\n"); - logMsg(sTemp); //tt.setcal(5570, 34030, 80, 108, 33700, 5780, 82, 108, 32500);// bypass calibration using my values fscanf(cfile, "format %c\r\n", &ff ) ; fscanf(cfile, "x0_off %d\r\n", &tt.x0_off ) ; @@ -290,6 +288,8 @@ fclose(cfile); if(ff<2) //If not latest format, save as latest format saveConfig(); + sprintf(sTemp,"Config file loaded.\n"); + logMsg(sTemp); } }