test fork

Dependencies:   SPI_TFTx2 SPI_TFTx2_ILI9341 TFT_fonts TOUCH_TFTx2 mbed

Fork of CANary_9341 by Tick Tock

Branch:
Metric
Revision:
128:25314f339565
Parent:
127:27c739fd6d71
Child:
129:8991d0de01ab
--- a/main.cpp	Sun Jul 21 11:27:43 2013 +0000
+++ b/main.cpp	Sun Jul 21 23:44:10 2013 +0000
@@ -20,7 +20,7 @@
 #include "displayModes.h"
 #include "TOUCH_TFTx2.h"
 
-char revStr[7] = "127"; // gg - revision string, max 6 characters
+char revStr[7] = "128b"; // gg - revision string, max 6 characters
 
 FATFS USBdrive;
 LocalFileSystem local("local");
@@ -53,7 +53,7 @@
 
 bool debugMode = false;
 bool usbEn = false;
-bool logEn = true;
+bool logEn = false;
 bool logOpen = false; 
 bool yesBattLog = true; // gg - Batt Log
 unsigned char tNavRow = 3; // gg - 4x4 touch
@@ -83,7 +83,7 @@
 unsigned char dMode[2] = {mainScreen,brakeScreen}; //display mode
 unsigned char sMode = 0; // setup mode
 unsigned char lastDMode[2] = {0,0}; //last screen mode
-unsigned char dtMode = 6;
+unsigned char dtMode = 0;
 char displayLog[20][40];
 unsigned char displayLoc = 0;
 unsigned int fwCount=1;
@@ -138,6 +138,9 @@
 bool metric = false;
 bool shunt[96]={0};
 bool charging=false;
+bool showHealth=false;
+unsigned char saveDmode=99;
+bool moving=false;
 
 int main() {
     //can1SleepMode.mode(OpenDrain);
@@ -223,7 +226,7 @@
     secsNoTouch=2;
     while (true) {
         if (!logOpen) { // Open new file if one is not already open
-            if(logEn&&usbEn){ //logging enables and USB device detected
+            if(logEn&&usbEn){ //logging enabled and USB device detected
                 strftime(fileName, 32, "%m%d%H%M.alc", &t); //mmddhhmm.alc
                 efr = f_open(&efile,fileName,FA_WRITE|FA_OPEN_ALWAYS);
                 seconds = time(NULL);
@@ -491,7 +494,7 @@
                                     dMode[whichTouched] = cpScreen ; // GoTo CP Data Screen                                
                                     sMode=0;
                                 } else if (dMode[whichTouched]==dateScreen){
-                                    dtMode=(dtMode<6)?dtMode+1:0;
+                                    dtMode=(dtMode<5)?dtMode+1:0;
                                     lastDMode[whichTouched]=99;
                                 } else {
                                     lastDMode[whichTouched]=99;//repaint to clear highlight
@@ -593,7 +596,7 @@
                                 break;
                                 
                              case 12: // left-middle col, bottom row (not nav)
-                                if (dMode[whichTouched] == indexScreen) { // gg - index
+                                if (dMode[whichTouched] == configScreen) { // gg - index
                                     dMode[whichTouched] = dateScreen ; // GoTo Set Date/Time Screen  
                                 } else {
                                     lastDMode[whichTouched]=99;//repaint to clear highlight
@@ -603,6 +606,8 @@
                              case 22: // right-middle col, bottom row (not nav)
                                 if (dMode[whichTouched] == indexScreen) { // gg - index
                                     dMode[whichTouched] = logScreen ;    
+                                } else if (dMode[whichTouched]==configScreen) {
+                                    showHealth = !showHealth;
                                 } else {
                                     lastDMode[whichTouched]=99;//repaint to clear highlight
                                 } 
@@ -674,7 +679,8 @@
             headlights = (lastMsg[indexLastMsg[0x358]].data[1]&0x80)?true:false;  // headlight/turn signal indicator
             accV=floor(mon12V*scale12V*10+0.5)/10; //Round to nearest 10th
             accOn=(accV>5)?true:false;
-            charging=(mph[0]<0.1)&&(kW[0]<-1); // not moving and generating energy so much be charging
+            moving=(mph[0]>0.1);
+            charging=!moving&&(kW[0]<-1); // not moving and generating energy so must be charging
             if(laccOn&&!accOn){ // Car turned off
                 if (repeatPoll) { // Log on shutdown if autopoll enabled
                     tripLog(); // Write trip log on powerdown
@@ -692,6 +698,10 @@
                 miles_trip[0]=0;
                 kWh_trip[0]=0;
                 wait5secs=5;
+                if(showHealth){
+                    saveDmode=dMode[0];
+                    dMode[0]=healthScreen;
+                }
             }
             laccOn=accOn;
             if(!accOn&&!logEn&&userIdle&&!playbackEn){ // Car off and logging disabled and no user activity
@@ -709,6 +719,10 @@
                     msgReq.attach(&sendReq,0.015);
                 }
             }
+            if(moving&&(saveDmode<99)&&(wait5secs==0)){
+                dMode[0]=saveDmode;
+                saveDmode=99;
+            }
 
             //compute historic efficiency
             if(numSsamples>0){ // Avoid div0