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: main.cpp
- Revision:
- 50:83d5864c64a0
- Parent:
- 49:a3d2c5bb3cfa
- Child:
- 51:6187c5264a73
--- a/main.cpp Sun Apr 07 08:29:04 2013 +0000 +++ b/main.cpp Sun Apr 07 16:34:12 2013 +0000 @@ -96,6 +96,7 @@ char data[8]; signed long motorRPM; unsigned char skin = 0; +unsigned char dtePeriod = 14; //ten minute averaging interval float mph[39]={0}; float kW[39]={0}; float mpkWh[39]={0}; @@ -113,7 +114,7 @@ char sTemp[40]; unsigned long secs; unsigned char i,j,display=0,lwt=0; - unsigned char sixtySecCount=0; + unsigned char minuteCount=0; point lastTouch; float average,mph9,kW9; @@ -154,12 +155,13 @@ t = *localtime(&seconds) ; strftime(sTemp, 32, "%a %m/%d/%Y %X\n", &t); logMsg(sTemp); - sprintf(sTemp,"CANary firmware rev49\n"); + sprintf(sTemp,"CANary firmware rev50\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) /*cfile = fopen("/usb/CANary.bin", "rb"); + lastDMode[whichTouched]=99;//force refresh if (cfile!=NULL){ //found a new binary on the thumbdrive so copy it over sprintf(sTemp,"New binary found.\n"); logMsg(sTemp); @@ -230,7 +232,7 @@ //sprintf(sTemp,"Using file %s\n",fileName); //logMsg(sTemp); file = fopen(fileName, "ab"); - + lastDMode[whichTouched]=99;//force refresh if(file==NULL){ sprintf(sTemp,"\nUnable to open %s\n\n\n\n",fileName); logMsg(sTemp); @@ -432,12 +434,15 @@ if(!playbackOpen){ if(!logOpen){ file = fopen("/usb/playback.alc", "rb"); + lastDMode[whichTouched]=99;//force refresh if(file==NULL){ sprintf(sTemp,"Unable to open /usb/playback.alc\n"); logMsg(sTemp); spkr.beep(1000,0.25); } else { playbackOpen = true; + playbackEn=true; + playback.attach(&playbackISR,playbackInt); sprintf(sTemp,"Starting playback\n"); logMsg(sTemp); spkr.beep(2000,0.25); @@ -452,11 +457,11 @@ playback.detach(); fclose(file); playbackOpen=false; + playbackEn=false; can1.attach(&recieve1);// Restore CAN data recieve can2.attach(&recieve2); lastDMode[whichTouched]=99; } - playbackEn=false; } else if (dMode[whichTouched]==dateScreen){ upDate(dtMode,true); lastDMode[whichTouched]=99; @@ -559,28 +564,28 @@ mph9=mph[i]/timeConstant[i]; mph[i]-=mph9; mph[i]+=mph[0]; - mpkWh[i]=mph9; kW9=kW[i]/timeConstant[i]; kW[i]-=kW9; kW[i]+=kW[0]; - mpkWh[i]/=kW9; + mpkWh[i]=mph[i]; + mpkWh[i]/=kW[i]; if (mpkWh[i]<0) { mpkWh[i]=99;// negative means inf. } //mpkWh[i]=floor(mpkWh[i]*10+0.5)/10; // Round to nearest 10th } // The rest are updated each minute - if(++sixtySecCount>59){ // - sixtySecCount=0; + if(++minuteCount>59){ // + minuteCount=0; for(i=10;i<39;i++){ average=mph[i]/timeConstant[i]; mph[i]-=average; mph[i]+=mph9; - mpkWh[i]=average; average=kW[i]/timeConstant[i]; kW[i]-=average; kW[i]+=kW9; - mpkWh[i]/=average; + mpkWh[i]=mph[i]; + mpkWh[i]/=kW[i]; if (mpkWh[i]<0) { mpkWh[i]=99;// negative means inf. } @@ -612,6 +617,7 @@ }else{ fclose(file); // restart file = fopen("/usb/playback.alc", "rb"); + lastDMode[whichTouched]=99;//force refresh spkr.beep(2000,0.25); } }