test fork

Dependencies:   SPI_TFTx2 SPI_TFTx2_ILI9341 TFT_fonts TOUCH_TFTx2 mbed

Fork of CANary_9341 by Tick Tock

Revision:
23:cd03f9c3395e
Parent:
22:a43df3905863
Child:
24:6cf76ed8c432
--- a/displayModes.cpp	Mon Mar 11 06:23:00 2013 +0000
+++ b/displayModes.cpp	Thu Mar 14 04:41:11 2013 +0000
@@ -97,8 +97,8 @@
 }
 
 void braking (bool force, bool prdata){
-    unsigned short targetBraking, regenBraking, speed;
-    static unsigned short maxTarget = 0, maxRegen = 0, tarDivReg = 0;
+    unsigned long targetBraking, regenBraking, speed;
+    static unsigned long maxTarget = 0, maxRegen = 0, tarDivReg = 0;
     short rpm;
     unsigned long temp;
     static unsigned char lastPressure[4] = {200,200,200,200};
@@ -109,18 +109,26 @@
     msg = lastMsg[indexLastMsg[0x1cb]]; //Get Target and Regen
     regenBraking = (msg.data[0]<<3)+(msg.data[1]>>5);
     targetBraking = (msg.data[2]<<3)+(msg.data[3]>>5);
-    if (targetBraking>maxTarget) maxTarget=targetBraking;
-    if (regenBraking>maxRegen) maxRegen=regenBraking;
-    if (regenBraking>50) {
-        temp = 1000*targetBraking;
-        temp /= regenBraking;
-        if (temp>tarDivReg) tarDivReg=temp;
-    }
     msg = lastMsg[indexLastMsg[0x176]]; //Get rpms - not sure what this is but scales to mph with .0725
     rpm = ((short)msg.data[0]<<8)+msg.data[1];
     speed =rpm>0?rpm>>3:-rpm>>3; //Take absolute to get speed; div8
+    if ((targetBraking>2039)||(speed>200)) { //Filter weird messages
+        targetBraking = 0;
+        regenBraking = 0;
+    } else {
+        if ((targetBraking>50)&&(regenBraking>50)){
+            temp = targetBraking;
+            temp *= 1000;
+            temp /= regenBraking;
+            if (temp<tarDivReg) tarDivReg=temp;
+        }
+        targetBraking *= speed;
+        regenBraking *= speed;
+        if (targetBraking>maxTarget) maxTarget=targetBraking;
+        if (regenBraking>maxRegen) maxRegen=regenBraking;
+    }
+
     msg = lastMsg[indexLastMsg[0x1ca]]; //Get brake pressure
-
     tt.background(Navy);
     if (force) {
         tt.cls();
@@ -146,12 +154,17 @@
     }
 
     if(targetBraking>50){
-        targetBraking *= speed;
-        regenBraking *= speed;
-        temp = 200*targetBraking/maxTarget;
+        temp = targetBraking;
+        temp *= 200;
+        temp /= maxTarget;
         t = (char) temp;
-        temp = 200*regenBraking*tarDivReg/maxTarget;
+        if (t>238) t=238;
+        temp = regenBraking;
+        temp *= tarDivReg;
+        temp *= 200;
+        temp /= maxTarget;
         r = (char) temp;
+        if (r>238) r=238;
         if(lr!=r&&prdata){
             tt.foreground(Amber);
             tt.set_font((unsigned char*) Arial28x28);
@@ -170,14 +183,14 @@
             if(r<lr)
                 tt.fillrect(200,239-lr,300,239-r,Red);
             else
-                tt.fillrect(200,239-r,300,239,Green);
+                tt.fillrect(200,239-r,300,239-lr,Green);
             if(t<lt)
                 tt.fillrect(200,239-lt,300,239-t,Navy);
             else
                 tt.fillrect(200,239-t,300,238-r,Red);
-            lt=t;
-            lr=r;
         }
+        lt=t;
+        lr=r;
     }
 }
 
@@ -227,6 +240,28 @@
     }
 }
 
+void config1(bool force){
+    if (force) {
+        tt.background(Black);
+        tt.cls();
+    }
+    tt.foreground(Yellow);
+    tt.background(DarkCyan);
+    tt.set_font((unsigned char*) Arial12x12);
+    sprintf(sTemp,"Calibrate");
+    showButton(0,0,sTemp,3,3);
+    sprintf(sTemp,"Reset");
+    showButton(1,0,sTemp,3,3);
+    sprintf(sTemp,"Save");
+    showButton(2,0,sTemp,3,3);
+    if (logEn) {
+        sprintf(sTemp,"Disable");
+    } else {
+        sprintf(sTemp,"Enable");
+    }
+    showButton(0,1,sTemp,3,3);
+}
+
 void updateDisplay(char display){
     bool changed;
     changed = dMode[display]!=lastDMode[display];
@@ -252,17 +287,11 @@
                 tt.set_font((unsigned char*) Arial12x12);
                 sprintf(sTemp,"<up>");
                 showButton(0,0,sTemp,3,3);
-                //tt.fillrect(btn31x1,btn31y1,btn31x2,btn31y2,DarkCyan);
-                //tt.locate(btn31x1+5,btn31y1+5);
-                //printf(" <up>\n");                
                 tt.foreground(Yellow);
                 tt.background(DarkCyan);
                 tt.set_font((unsigned char*) Arial12x12);
                 sprintf(sTemp,"<down>");
                 showButton(2,0,sTemp,3,3);
-                //tt.fillrect(btn33x1,btn31y1,btn33x2,btn31y2,DarkCyan);
-                //tt.locate(btn33x1+5,btn31y1+5);
-                //printf(" <down>\n");                
             }
             break;
         case changedScreen:
@@ -279,8 +308,7 @@
             }
             break;
         case configScreen:
-            printLog(changed);
-            //sMode=2;
+            config1(changed);
             break;
         default:
             tt.background(Black);
@@ -331,7 +359,8 @@
             showButton(2,3,sTemp,4,4);
             sprintf(sTemp,"rtn");
             showButton(3,3,sTemp,4,4);
- 
+        case 3:
+            break;
         default:
             break;
     }
@@ -347,3 +376,4 @@
     tt.locate(x1+btnGap,y1+btnGap);
     printf("%s\n",text);
 }
+