Attempts to merge SPI_TFT2 & SPI_TFT_ILI9341
Dependencies: SPI_TFTx2 TFT_fonts TOUCH_TFTx2 mbed
Fork of CANary by
Diff: main.cpp
- Revision:
- 69:6bfdfc002036
- Parent:
- 67:2022fce701d0
- Child:
- 70:0700b769ac15
--- a/main.cpp Thu Apr 11 18:52:12 2013 +0000 +++ b/main.cpp Sun Apr 14 01:21:11 2013 +0000 @@ -45,6 +45,11 @@ PwmOut dled(p23); Beep spkr(p21); +// revision string, max 6 characters +//char revStr[7] = "65"; // gg - revStr is used in 2 places +//char revStr[7] = "65-gg1"; // gg - and is easy to edit here +char revStr[7] = "65-gg2"; // gg - ZeroSecTick + bool logEn = false, logOpen = false; bool yesBattLog = false ; // gg - Batt Log unsigned char tNavRow = 3 ; // gg - 4x4 touch @@ -79,6 +84,7 @@ bool repeatPoll = false; bool headlights = false; bool tick = false; +bool ZeroSecTick = false; float ledHi = 0.8; // Bright LED value (until config file read) float ledLo = 0.1; // Dim LED value (until config file read) unsigned short pollInt = 300; // polling interval=5 minutes (until config file read) @@ -154,14 +160,15 @@ } t = *localtime(&seconds) ; strftime(sTemp, 32, "%a %m/%d/%Y %X\n", &t); - logMsg(sTemp); + logMsg(sTemp); // record RTC // revision //sprintf(sTemp,"CANary firmware rev62\n"); // wrong rev, should be rev63 //sprintf(sTemp,"CANary firmware rev64\n"); //sprintf(sTemp,"CANary firmware rev64-gg1\n"); // gg - adding Index screen - sprintf(sTemp,"CANary firmware rev65\n"); // gg - commit Index screen - logMsg(sTemp); + //sprintf(sTemp,"CANary firmware rev65\n"); // gg - commit Index screen + sprintf(sTemp,"CANary firmware rev%s\n", revStr); // gg - test Date + logMsg(sTemp); // revision // 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) @@ -169,11 +176,11 @@ 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); + logMsg(sTemp); // new binary file = fopen("/local/CANary.bin", "wb"); if (file==NULL){ //failed to open destination sprintf(sTemp,"Unable to open destination file.\n"); - logMsg(sTemp); + logMsg(sTemp); // cannot open CANary.bin } else { tt.set_display(2); tt.foreground(White); @@ -211,10 +218,10 @@ } fclose(cfile); sprintf(sTemp,"History Loaded.\n"); - logMsg(sTemp); + logMsg(sTemp); // History loaded } else { // create initial file sprintf(sTemp,"History not found. Created.\n"); - logMsg(sTemp); + logMsg(sTemp); // history not found, created for(i=0;i<39;i++){ // Pre-load with 4 mpkWh @ 40 mph mph[i]=40*timeConstant[i]; @@ -235,20 +242,25 @@ t = *localtime(&seconds) ; strftime(fileName, 32, "/usb/%m%d%H%M.alc", &t); //mmddhhmm.alc //sprintf(sTemp,"Using file %s\n",fileName); - //logMsg(sTemp); + //logMsg(sTemp); // using alc file ... 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); + logMsg(sTemp); // cannot open alc file logEn=false; spkr.beep(1000,0.25); } else { logOpen = true; readPointer=writePointer; sprintf(sTemp,"Starting Can Log %s\n",fileName); - logMsg(sTemp); - logTS(); + logMsg(sTemp); // starting alc log file + + logTS(); // Date Time at start + logErrMsg("Starting"); // Log startup msg for testing + sprintf(sTemp,"Cr%s",revStr); + logErrMsg(sTemp); // gg - log firmware version + spkr.beep(2000,0.25); } }//logging enabled @@ -258,13 +270,13 @@ if (file == NULL) { logOpen = false; sprintf(sTemp,"Failed to append log file.\n"); - logMsg(sTemp); + logMsg(sTemp); // failed to append spkr.beep(1000,0.25); logEn=false; } else { if (((writePointer+maxBufLen-readPointer)%maxBufLen)>(maxBufLen*7/8)) { // Hi-water mark sprintf(sTemp,"Write buffer overrun.\n"); - logMsg(sTemp); + logMsg(sTemp); // write buffer overrun spkr.beep(1000,0.25); } while (readPointer != writePointer) { @@ -289,7 +301,7 @@ seconds = time(NULL); t = *localtime(&seconds) ; strftime(sTemp, 40, "Sleeping: %a %m/%d/%Y %X\n", &t); - logMsg(sTemp); + logMsg(sTemp); // sleeping date time updateDisplay(0); //Added for turbo3 who has a display override and wants to see the sleep message before going to sleep updateDisplay(1); //LPC_RTC->CIIR=0x00; // block RTC interrupts @@ -312,13 +324,14 @@ seconds = time(NULL); t = *localtime(&seconds) ; strftime(sTemp, 40, "Waking: %a %m/%d/%Y %X\n", &t); - logMsg(sTemp); + logMsg(sTemp); // wakeup date time 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 (logOpen){ // insert timestamp on each wake if logging enabled (disabled for now) file = fopen(fileName, "ab"); - logTS(); + logErrMsg("WakingUp"); // gg - use messeges + logTS(); // Date-Time at wakeup } } // if idle @@ -344,7 +357,7 @@ sMode = 1; } //sprintf(sTemp,"%d,%d ",lastTouch.x,lastTouch.y); - //logMsg(sTemp); + //logMsg(sTemp); // touch x,y - for debug touched = false; // clear interrupt flag } //--------------- @@ -358,7 +371,7 @@ secsNoTouch +=2; // increment to prevent double touch sMode = 1; //sprintf(sTemp,"button %d %d,%d %d\n",i,buttonX(lastTouch.x,3),buttonY(lastTouch.y,3),lastTouch.x); - //logMsg(sTemp); + //logMsg(sTemp); // button parms - for debug switch (sMode) { case 0: // no select break; @@ -429,7 +442,7 @@ dMode[whichTouched] = effScreen ; // GoTo EFF Screen } else if (dMode[whichTouched]==config1Screen) { sprintf(sTemp,"Saving config file.\n"); - logMsg(sTemp); + logMsg(sTemp); // saving config saveConfig(); spkr.beep(2000,0.25); } else if (dMode[whichTouched]==playbackScreen) { // faster @@ -459,9 +472,10 @@ lastDMode[whichTouched ^ 1]=99; // repaint other screen (^ = XOR) //sprintf(sTemp,"Changed Skin to %d.\n"); - //logMsg(sTemp); + //logMsg(sTemp); /// changed skin - for debug //saveConfig(); //spkr.beep(2000,0.25); + } else if (dMode[whichTouched] == indexScreen) { // gg - index dMode[whichTouched] = dteScreen ; // GoTo DTE Screen }else{ @@ -506,21 +520,21 @@ lastDMode[whichTouched]=99;//force refresh if(file==NULL){ sprintf(sTemp,"Unable to open /usb/playback.alc\n"); - logMsg(sTemp); + logMsg(sTemp); // no playback.alc spkr.beep(1000,0.25); } else { playbackOpen = true; playbackEn=true; playback.attach(&playbackISR,playbackInt); sprintf(sTemp,"Starting playback\n"); - logMsg(sTemp); + logMsg(sTemp); // start playback spkr.beep(2000,0.25); can1.attach(&doNothing);// Stop recieving CAN data can2.attach(&doNothing); } } else { sprintf(sTemp,"Must stop logging first\n"); - logMsg(sTemp); + logMsg(sTemp); // Must stop logging first } } else { playback.detach(); @@ -634,7 +648,8 @@ laccOn=accOn; if(!accOn&&!logEn&&userIdle&&!playbackEn){ //sprintf(sTemp,"Display Off %4.2f\n",accV); - //logMsg(sTemp); + //logMsg(sTemp); // display off - for debug + dled = 0; // turn off display if car off and logging disabled and no user activity }else if(!headlights){ dled = ledHi; @@ -685,7 +700,7 @@ } updateDTE=true; if(logCP) - logPackVoltages(); // Turbo3 + logPackVoltages(); // Turbo3, only call tick=false; } @@ -704,7 +719,7 @@ for(i=0;i<120;i++){ if(!feof(file)){ fscanf(file,"%5c%8c",&header,&data); - logCan(header[0],CANMessage(0x7ff&((header[4]<<8)+header[3]), data, 8)); + logCan(header[0],CANMessage(0x7ff&((header[4]<<8)+header[3]), data, 8)); // Playback }else{ fclose(file); // restart file = fopen("/usb/playback.alc", "rb");