Attempts to merge SPI_TFT2 & SPI_TFT_ILI9341

Dependencies:   SPI_TFTx2 TFT_fonts TOUCH_TFTx2 mbed

Fork of CANary by Tick Tock

Files at this revision

API Documentation at this revision

Comitter:
TickTock
Date:
Fri Aug 02 05:13:26 2013 +0000
Parent:
137:70853cf5a30f
Child:
139:ac227b203ef2
Commit message:
Fixed metric DTE formatting

Changed in this revision

TOUCH_TFTx2.lib Show annotated file Show diff for this revision Revisions of this file
displayModes.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
utility.cpp Show annotated file Show diff for this revision Revisions of this file
utility.h Show annotated file Show diff for this revision Revisions of this file
--- a/TOUCH_TFTx2.lib	Sun Jul 28 05:32:17 2013 +0000
+++ b/TOUCH_TFTx2.lib	Fri Aug 02 05:13:26 2013 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/TickTock/code/TOUCH_TFTx2/#220e3da2dd00
+http://mbed.org/users/TickTock/code/TOUCH_TFTx2/#c58c98c5020a
--- a/displayModes.cpp	Sun Jul 28 05:32:17 2013 +0000
+++ b/displayModes.cpp	Fri Aug 02 05:13:26 2013 +0000
@@ -7,9 +7,10 @@
 void mainDisplay (bool force, bool showButtons){
     unsigned short gids, SOC_x10, packV_x2, tireP;
     float useable_kWh,dte;
+    //unsigned char aTemp,c1Temp,c2Temp;
     static unsigned short lgids=0, lSOC=0, lpackV_x2=0, ltireP=0, maxPS=0;
-    static float lmaxTemp=0;
-    static float lkW=0, laccV=0, lmpkWh=0;
+    //static unsigned char laTemp=0,lc1Temp=0,lc2Temp=0;
+    static float lmaxTemp=0, lkW=0, laccV=0, lmpkWh=0;
 
     CANMessage msg;
 
@@ -19,6 +20,10 @@
     SOC_x10 = (msg.data[0]<<2)+(msg.data[1]>>6);
     msg = lastMsg[indexLastMsg[0x1db]]; //Get pack volts
     packV_x2 = (msg.data[2]<<2)+(msg.data[3]>>6);
+    //msg = lastMsg[indexLastMsg[0x79a]]; //Get ambient and cabin temperature
+    //aTemp = msg.data[5]-41; // Need to add convertsion to C if metric
+    //c1Temp = msg.data[4]-41;
+    //c2Temp = msg.data[6]-41;
     msg = lastMsg[indexLastMsg[0x385]]; //Get tire pressure
     tireP = msg.data[2]+msg.data[3]+msg.data[4]+msg.data[5];
 
@@ -46,7 +51,7 @@
             // Display DTE
             dte=convertDistance(minTripEff*useable_kWh);
             tt.foreground(Green);
-            tt.locate(30,80);            
+            tt.locate(20,80);            
             if(dte>=10){
                 printf("%2.0f \n",dte); //LM - add metric conversion
             }else{
@@ -61,25 +66,29 @@
             }
             // " "=0x10, "."=0x15, #=0x1D
             if(dte>=100){
-                tt.locate(75,85);
-                printf(" %2.0f\n",dte); //LM - add metric conversion
+                tt.locate(80,85);
+                printf(" %3.0f\n",dte); //LM - add metric conversion
             }else if(dte>=10){
-                tt.locate(89,85);
+                tt.locate(94,85);
                 printf("  %2.0f\n",dte); //LM - add metric conversion
             }else{
-                tt.locate(84,85);
+                tt.locate(89,85);
                 printf(" %2.1f\n",dte); //LM - add metric conversion
             }
             tt.set_font((unsigned char*) Arial28x28);
-            tt.locate(190,106);
+            tt.locate(195,106);
             printf("%s\n",distanceUnit()); //LM - add metric conversion
 
             dte=convertDistance(maxTripEff*useable_kWh);
             tt.foreground(Orange);
-            tt.locate(260,80);            
-            if(dte>=10){
+            if(dte>=100){
+                tt.locate(255,80);            
+                printf("%3.0f \n",dte); //LM - add metric conversion            
+            }else if(dte>=10){
+                tt.locate(270,80);            
                 printf("%2.0f \n",dte); //LM - add metric conversion
             }else{
+                tt.locate(265,80);            
                 printf("%2.1f \n",dte); //LM - add metric conversion
             }
             lgids=gids;
@@ -115,13 +124,20 @@
             lpackV_x2=packV_x2;
             ltireP=0;//Force tire pressure redraw, too
         }
+        /*if(force||aTemp!=laTemp){
+            tt.foreground(Cyan);
+            tt.locate(10,146);
+            printf("%d %d %d\n",aTemp,c1Temp,c2Temp);
+            laTemp=aTemp;
+            lc1Temp=c1Temp;
+            lc2Temp=c2Temp;
+        }*/
         if(force||maxTemp!=lmaxTemp){
             tt.foreground(Cyan);
+            tt.locate(210,146);
             if (convertTemperature(maxTemp)<100){
-                tt.locate(210,146);
                 printf(" %3.1f%s\n",convertTemperature(maxTemp),temperatureUnit());
             }else{
-                tt.locate(210,146);
                 printf("%4.1f%s\n",convertTemperature(maxTemp),temperatureUnit());
             }
             lmaxTemp=maxTemp;
@@ -723,20 +739,20 @@
           nBar[i] *= nBarScale ; // scale, as needed
         }
         
+        // label the X axis (approximate)
+        //tt.locate( 2, yWinMin-14 ); printf("%04d = %04d from %1.4f", max, int( height / nBarScale ) + min, nBarScale );
+        tt.locate( 2, yWinMin-14 ); printf("%04d = (%d) mv range.\n", max , max - min );
+        tt.locate( 2, yWinMax+5); printf("%04d\n", min );
         // values, for now
         // BatDataBaseG4 * 7 = 280
         tt.locate( 0, yWinMax+40 );
         char* sTemperatureUnit = temperatureUnit();
-        printf(" MAX  MIN  AVG CVLI T1  T2  T3  T4\n %04d %04d %04d %04d %2.0f%s %2.0f%s %2.0f%s %2.0f%s\n\n",
+        printf(" MAX  MIN  AVG CVLI T1  T2  T3  T4\n %04d %04d %04d %04d %2.0f%s %2.0f%s %2.0f%s %2.0f%s\n",
             max,min,avg,jv, convertTemperature(battData[BatDataBaseG4*7+5]),sTemperatureUnit,convertTemperature(battData[BatDataBaseG4*7+8]),sTemperatureUnit,
             convertTemperature(battData[BatDataBaseG4*7+11]),sTemperatureUnit,convertTemperature(battData[BatDataBaseG4*7+14]),sTemperatureUnit);
         //printf(" MAX  MIN  AVG CVLI T1  T2  T3  T4\n %04d %04d %04d %04d %02dC %02dC %02dC %02dC\n\n",
         //        max,min,avg,jv,  battData[BatDataBaseG4*7+5],battData[BatDataBaseG4*7+8],  battData[BatDataBaseG4*7+11],battData[BatDataBaseG4*7+14]);
         
-        // label the X axis (approximate)
-        tt.locate( 2, yWinMax+5); printf("%04d", min );
-        //tt.locate( 2, yWinMin-14 ); printf("%04d = %04d from %1.4f", max, int( height / nBarScale ) + min, nBarScale );
-        tt.locate( 2, yWinMin-14 ); printf("%04d = (%d) mv range.", max , max - min );
                
         //---------------
         // show the bars
--- a/main.cpp	Sun Jul 28 05:32:17 2013 +0000
+++ b/main.cpp	Fri Aug 02 05:13:26 2013 +0000
@@ -10,9 +10,10 @@
 // * Subtract accessory power from efficiency history (add back in when displaying)
 // * Add trip history display
 
-// rev137
+// rev138
 // Added update if screen touched on power
 // Fixed hang on immediate USB access
+// Fixed metric DTE formatting
 
 #include "mbed.h"
 #include "CAN.h"
@@ -24,7 +25,7 @@
 #include "displayModes.h"
 #include "TOUCH_TFTx2.h"
 
-char revStr[7] = "137"; // gg - revision string, max 6 characters
+char revStr[7] = "138"; // gg - revision string, max 6 characters
 
 FATFS USBdrive;
 LocalFileSystem local("local");
@@ -547,8 +548,8 @@
                                                 playback.attach(&playbackISR,playbackInt);
                                                 printMsg("Starting playback\n"); // start playback
                                                 spkr.beep(2000,0.25);
-                                                can1.attach(NULL);// Stop recieving CAN data
-                                                can2.attach(NULL);
+                                                can1.attach(NULL);// Stop recieving EVCAN data
+                                                can2.attach(NULL);// Stop recieving CARCAN data
                                             }
                                         } else {
                                             printMsg("Must stop logging first\n");
@@ -558,8 +559,8 @@
                                         f_close(&efile);
                                         playbackOpen=false;
                                         playbackEn=false;
-                                        can1.attach(&recieve1);// Restore CAN data recieve
-                                        can2.attach(&recieve2);
+                                        can1.attach(&recieve1);// Restore EVCAN data recieve
+                                        can2.attach(&recieve2);// Restore EVCAN data recieve
                                         lastDMode[whichTouched]=99;
                                     }
                                 } else if (dMode[whichTouched]==dateScreen){
@@ -742,7 +743,6 @@
                 }
             }
             laccOn=accOn;
-            //if(!accOn&&!logEn&&userIdle&&!playbackEn){ // Car off and logging disabled and no user activity
             if(!accOn&&userIdle&&!playbackEn){ // Car off and no user activity - turn off screen
                 dled = 0;
                 if (saveDmode<99){
@@ -759,6 +759,7 @@
                 if (repeatPoll&&(wait5secs==0)) { // Poll on startup if autopoll enabled
                     logOnce=true;
                     reqMsgCnt=0;
+                    //sendTempReq();
                     msgReq.attach(&sendReq,0.015);
                 }
                 lastDMode[0]=99;
--- a/mbed.bld	Sun Jul 28 05:32:17 2013 +0000
+++ b/mbed.bld	Fri Aug 02 05:13:26 2013 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/10b9abbe79a6
\ No newline at end of file
--- a/utility.cpp	Sun Jul 28 05:32:17 2013 +0000
+++ b/utility.cpp	Fri Aug 02 05:13:26 2013 +0000
@@ -28,7 +28,7 @@
 }
 
 void touch_ISR(){
-    //LPC_GPIOINT->IO2IntClr = (LPC_GPIOINT->IO2IntStatR | LPC_GPIOINT->IO2IntStatF); // seems to work without so maybe not necessary (performed inInterruptIn handler?)
+    //LPC_GPIOINT->IO2IntClr = (LPC_GPIOINT->IO2IntStatR | LPC_GPIOINT->IO2IntStatF); // seems to work without so maybe not necessary (performed in InterruptIn handler?)
     touched=true; // just set flag - touch screen algorythm is long and we don't want to block other interrupts
 }
 
@@ -393,8 +393,8 @@
     if(reqMsgCnt<99){
         switch (reqMsgCnt){
             case BatDataBaseG1:
-                can1.monitor(false); // set to active mode
-                can1SleepMode = 0; // enable TX
+                can2.monitor(false); // set to active mode
+                can2SleepMode = 0; // enable TX
                 data[0]=0x02; //change to request group 1
                 data[1]=0x21;
                 data[2]=0x01;
@@ -426,23 +426,30 @@
                 break;
             case BatDataBaseG7: // group 5 has 11 frames
                 reqMsgCnt = 99;
-                can1SleepMode = VP230Sleep; // disable TX
-                can1.monitor(true); // set to snoop mode
+                can2SleepMode = VP230Sleep; // disable TX
+                can2.monitor(true); // set to snoop mode
                 msgReq.detach(); // stop ticker
             default:
                 data[0]=0x30; //change to request next line message
                 data[1]=0x01;
                 data[2]=0x00;
         }
-        can1.write(CANMessage(0x79b, data, 8));
+        can2.write(CANMessage(0x79b, data, 8));
         reqMsgCnt++;
     }
 }
 
+void sendTempReq(){
+    //Requests ambient and cabin temperature
+    char data[8] = {0x03, 0x22, 0x11, 0x5d, 0xff, 0xff, 0xff, 0xff};
+    can2.monitor(false); // set to active mode
+    can2SleepMode = 0; // enable TX
+    can2.write(CANMessage(0x797, data, 8));
+    can2SleepMode = VP230Sleep; // disable TX
+}
+
 void autoPollISR(){
-    //char sTemp[40]; // just for debug
-    //sprintf(sTemp,"Requesting cp data\n"); // just for debug
-    //printMsg(sTemp); // just for debug
+    //sendTempReq();
     reqMsgCnt = 0; //reset message counter
     msgReq.attach(&sendReq,0.015);
 }
--- a/utility.h	Sun Jul 28 05:32:17 2013 +0000
+++ b/utility.h	Fri Aug 02 05:13:26 2013 +0000
@@ -81,9 +81,8 @@
     unsigned short getTimeStamp();
     void logCan (char mType, CANMessage canRXmsg);
     void logTS ();    
-    void logEvent (char * errMsg); // gg - messeges
-    //void sendCPreq();    
-    //void sendTreq();    
+    void logEvent (char * errMsg); // gg - messeges   
+    void sendTempReq();    
     void sendReq();    
     void autoPollISR();
     void playbackISR();