Attempts to merge SPI_TFT2 & SPI_TFT_ILI9341

Dependencies:   SPI_TFTx2 TFT_fonts TOUCH_TFTx2 mbed

Fork of CANary by Tick Tock

Revision:
169:84d790ac18a2
Parent:
168:9227024c4e3a
Child:
170:7ee98e3611bc
--- a/main.cpp	Wed Dec 04 12:45:39 2013 +0000
+++ b/main.cpp	Tue Dec 17 15:25:41 2013 +0000
@@ -9,9 +9,11 @@
 // * Add tire pressure cal (40psi for me = FR 38, RR 38.2, FL 37.8, RL 38 - maybe 2psi error on my tire gauge?)
 // * Add on screen messages for heater on, etc, and use refresh feature above to clear in x seconds
 // * Add climate control impact to main max/min dte and new trip display
+// * Be more efficient with write buffer (use msgLen instead of always storing 8 bytes)
 
 // rev168
 // Added trip meter including climate control impact
+// Pulled updateConfig to dedicated procedure
 
 #include "mbed.h"
 #include "CAN.h"
@@ -472,6 +474,7 @@
                                 if (dMode[whichTouched]==changedScreen) {
                                     for(j=0;j<100;j++) msgChanged[j]=0; // clear changed data
                                     lastDMode[whichTouched]=99;//force refresh
+                                    sMode=0;
                                 } else if (dMode[whichTouched] == indexScreen) { // gg - index
                                     sMode=0;
                                     dMode[whichTouched] = brakeScreen ; // GoTo Brake Screen
@@ -513,6 +516,22 @@
                                     dMode[whichTouched]=mainScreen;
                                     saveConfig();
                                     beep(2000,0.25);
+                                    //write efficiency history data
+                                    hfile = fopen("/local/ehist.cny", "w");
+                                    if (hfile!=NULL){ // found a efficiency history file
+                                        for(i=0;i<39;i++){
+                                            fprintf(hfile,"%f %f\r\n",mph[i],kW[i]);
+                                        }
+                                        fprintf(hfile,"%f %f\r\n",maxTripEff,minTripEff); // Save max and min
+                                        fprintf(hfile,"%f \r\n",Resr); // Save series resistance
+                                        fprintf(hfile,"%f %f\r\n",maxTripMiles,minTripMiles); // Save max and min
+                                        fprintf(hfile,"%f %f\r\n",maxTripkWh,minTripkWh); // Save max and min
+                                        fprintf(hfile,"%f %f\r\n",maxTripCCkWh,minTripCCkWh); // Save max and min
+                                        fclose(hfile);
+                                    }
+                                    beep(2000,0.25);
+                                } else if (dMode[whichTouched]==config2Screen) {
+                                    showHealth = !showHealth;
                                 } else if (dMode[whichTouched]==playbackScreen) { // faster
                                     if(playbackInt>.002){
                                         playbackInt/=2;
@@ -541,7 +560,7 @@
                                 } else if (dMode[whichTouched] == indexScreen) { // gg - index
                                     dMode[whichTouched] = healthScreen ; // Goto health screen
                                     sMode=0;
-                                } else if (dMode[whichTouched] == testScreen) { // gg - index
+                                } else if (dMode[whichTouched] == testScreen) { // gg - 
                                     clearTest=true;
                                 } else { // top-right corner always mute/unmute unless used by specific screen
                                     enableSound = !enableSound;
@@ -677,10 +696,13 @@
                              case 22: // right-middle col, bottom row (not nav)
                                 if (dMode[whichTouched]==indexScreen) { // gg - index
                                     dMode[whichTouched] = logScreen ;    
+                                    sMode=0;
                                 } else if (dMode[whichTouched]==configScreen) {
                                     heaterMon = !heaterMon;
                                 } else if (dMode[whichTouched]==config2Screen) {
-                                    showHealth = !showHealth;
+                                    updateConfig();
+                                    lastDMode[whichTouched]=99;//force refresh
+                                    sMode=0;
                                 } else {
                                     lastDMode[whichTouched]=99;//repaint to clear highlight
                                 } 
@@ -698,6 +720,7 @@
                                     lastDMode[whichTouched]=99;//repaint to clear highlight
                                 } else if (dMode[whichTouched]==indexScreen) {
                                     dMode[whichTouched] = tripScreen ;    
+                                    sMode=0;
                                 } else if (dMode[whichTouched]==dateScreen){
                                     autoSync=!autoSync; // toggle autoSync mode
                                     lastDMode[whichTouched]=99;