test fork

Dependencies:   SPI_TFTx2 SPI_TFTx2_ILI9341 TFT_fonts TOUCH_TFTx2 mbed

Fork of CANary_9341 by Tick Tock

Revision:
174:cd27e80f197d
Parent:
170:7ee98e3611bc
Child:
175:0357b4159b40
--- a/utility.cpp	Sun Dec 29 22:35:09 2013 +0000
+++ b/utility.cpp	Sun Jan 05 05:02:41 2014 +0000
@@ -1,7 +1,7 @@
 // utility.cpp
 #include "utility.h"
-unsigned long brkMonRate = 400000;
-unsigned short brkMonThr = 4000;
+unsigned long brkMonRate = 378947;
+unsigned short brkMonThr = 1895;
 Timeout beepOff;
 unsigned char bCount = 2;
 float bFreq[2] = { 1000, 1000 };
@@ -50,7 +50,7 @@
     static unsigned char ii = 0;
     static unsigned char lasti = 0; // indexindex
     static unsigned char bdi=0;
-    static signed short imotorRPM_x2 = 0;
+    static signed short imotorRPM = 0;
     static unsigned short nLost = 0; // gg - overrun
  
     char sTemp[40];    
@@ -348,21 +348,25 @@
                 incRmin=temp;
             }
             numWsamples++;
-        }else if((mType==1)&&(canRXmsg.id==0x1da)){ //Motor Speed
-            imotorRPM_x2=((canRXmsg.data[4]<<8)|(canRXmsg.data[5]));
-            if(imotorRPM_x2<0){ // take absolute value
-                imotorRPM_x2=-imotorRPM_x2;
-            }
-            motorRPM_x2+=imotorRPM_x2;
+        }else if((mType==2)&&(canRXmsg.id==0x176)){ //Motor Speed
+            imotorRPM=((canRXmsg.data[2]<<8)|(canRXmsg.data[3]));
+            motorRPM+=imotorRPM;
             numSsamples++;
+//        }else if((mType==1)&&(canRXmsg.id==0x1da)){ //Motor Speed
+//            imotorRPM_x2=((canRXmsg.data[4]<<8)|(canRXmsg.data[5]));
+//            if(imotorRPM_x2<0){ // take absolute value
+//                imotorRPM_x2=-imotorRPM_x2;
+//            }
+//            motorRPM_x2+=imotorRPM_x2;
+//            numSsamples++;
 //        }else if((mType==2)&&(canRXmsg.id==0x1ca)){ //Brake Pressure
         }else if((mType==2)&&(canRXmsg.id==0x292)){ //Brake Pressure
             if(brakeMon){
                 if(canRXmsg.data[0]<0xff){
-                    if((canRXmsg.data[6]*imotorRPM_x2)<brkMonThr){
+                    if((canRXmsg.data[6]*imotorRPM)<brkMonThr){ // brkMonThr = 3.6/.0019 = 1895 --> squelch threshold 1Wh/sec
                         chirpInt=0;
-                    }else{
-                        chirpInt=brkMonRate/imotorRPM_x2;
+                    }else{ // imotorRPM*data[6]*.0019=kW; 3.6/kW = seconds until 1Wh;
+                        chirpInt=brkMonRate/imotorRPM; // brkMonRate=3.6/.0019/.02=94736.8 --> 1 chirp per Wh
                         chirpInt/=canRXmsg.data[6];
                     }
                 }
@@ -516,10 +520,17 @@
     const int bufSize = 2048;
     char buffer[bufSize];
     char sTemp[16];
+
+    tt.set_font((unsigned char*) Arial12x12);
+    tt.background(Blue);
+    tt.foreground(Yellow);
+    tt.locate(0,10);
+    tt.cls();
+
     printMsg("Saving local config file.\n");
-    //wait(2);
+    printf("Saving local config file.\n");
     cfile = fopen("/local/config.txt", "w");    
-    fprintf(cfile,"format 10\r\n");
+    fprintf(cfile,"format 11\r\n");
     fprintf(cfile,"x0_off %d\r\n",tt.x0_off);
     fprintf(cfile,"y0_off %d\r\n",tt.y0_off);
     fprintf(cfile,"x0_pp %d\r\n",tt.x0_pp);
@@ -548,8 +559,8 @@
     fprintf(cfile, "firmware %d\r\n", fwCount );            
     fprintf(cfile,"showHealth %d\r\n",(showHealth?1:0));
     fprintf(cfile,"brakeMon %d\r\n",(heaterMon?4:0)+(brakeMon?2:0)+(regenMon?1:0));
-    fprintf(cfile,"brkMonRate %d\r\n", brkMonRate );            
-    fprintf(cfile,"brkMonThr %d\r\n", brkMonThr );            
+    fprintf(cfile,"brkMonRate %2.1f\r\n", (float) brkMonRate/94737 );            
+    fprintf(cfile,"brkMonThr %2.1f\r\n", (float) brkMonThr/1895);            
     for(char i=0;i<8;i++){
         sprintf(sTemp,"usrMsgId %04x",uMsgId[i]);
         fprintf(cfile,"%s\r\n", sTemp );
@@ -561,11 +572,10 @@
     
     // Make copy of CONFIG.TXT
     printMsg("Saving CONFIG.BAK.\n");
-    //wait(2);
     cfile = fopen("/local/CONFIG.TXT", "r");
     sfr = f_open(&efile,"CONFIG.BAK",FA_WRITE|FA_CREATE_NEW);    
     if((cfile != NULL)&&(sfr == FR_OK)){
-        printMsg("Copy config file to USB\n");
+        printf("Copy config file to USB\n");
         while (!feof(cfile))
         {
             bytesRW=fread(buffer, 1, bufSize, cfile);
@@ -578,11 +588,10 @@
 
     // Make copy of ehist.cny
     printMsg("Saving ehist.bak.\n");
-    //wait(2);
     cfile = fopen("/local/ehist.cny", "r");
     sfr = f_open(&efile,"ehist.bak",FA_WRITE|FA_CREATE_NEW);    
     if((cfile != NULL)&&(sfr == FR_OK)){
-        printMsg("Copy ehist file to USB\n");
+        printf("Copy ehist file to USB\n");
         while (!feof(cfile))
         {
             bytesRW=fread(buffer, 1, bufSize, cfile);
@@ -592,13 +601,14 @@
         fclose(cfile);
         f_close(&efile);
     }
-    //wait(2);
+    wait(3);
 }
 
 void readConfig(){
     FILE *cfile;
     int ff,readHex,readBool;
     char sTemp[16];
+    float readFloat;
 
     cfile = fopen("/local/config.txt", "r");
     if (cfile==NULL){ // if doesn't exist --> create
@@ -655,8 +665,17 @@
             brakeMon = (bool)(readBool&1);
             regenMon = (bool)(readBool&2);
             heaterMon = (bool)(readBool&4);
-            fscanf(cfile, "brkMonRate %d\r\n", &brkMonRate );        
-            fscanf(cfile, "brkMonThr %d\r\n", &brkMonThr );            
+            if(ff>10){
+                fscanf(cfile, "brkMonRate %f\r\n", &readFloat );
+                brkMonRate = 94737 * readFloat;
+                fscanf(cfile, "brkMonThr %f\r\n", &readFloat );
+                brkMonThr = 1895 * readFloat;
+            }else{
+                fscanf(cfile, "brkMonRate %d\r\n", &brkMonRate );
+                fscanf(cfile, "brkMonThr %d\r\n", &brkMonThr);
+                brkMonRate = 378948;
+                brkMonThr = 1895;
+            }
         }
         if(ff>7){
             for(char i=0;i<8;i++){
@@ -674,11 +693,11 @@
             fscanf(cfile, "kWperGid %f\r\n", &kWperGid );
             }
         fclose(cfile);
-        if((ff>10)||(ff<1)||(ledHi<0.1)||(scale12V<10)||(tt.x_mid<16000)||(ledHi>1)||(ledLo>1)||(dMode[0]>maxScreens)||(dMode[1]>maxScreens)){ //Sanity check a few things
+        if((ff>11)||(ff<1)||(ledHi<0.1)||(scale12V<10)||(tt.x_mid<16000)||(ledHi>1)||(ledLo>1)||(dMode[0]>maxScreens)||(dMode[1]>maxScreens)){ //Sanity check a few things
             //Something wrong. Load defaults
-            printf("Invalid config file.  Loading defaults.\n");
+            printMsg("Invalid config file.  Loading defaults.\n");
             wait(3);
-            ff=10;
+            ff=11;
             tt.x0_off=5732;
             tt.y0_off=34009;
             tt.x0_pp=77;
@@ -703,8 +722,8 @@
             brakeMon=true;
             regenMon=true;
             heaterMon=true;
-            brkMonRate=400000;
-            brkMonThr=4000;
+            brkMonRate=378947; // 4Wh per chirp
+            brkMonThr=1895; // 1Wh per second
             uMsgId[0]=0x5103;
             uMsgId[1]=0x50a3;
             uMsgId[2]=0x54a4;
@@ -717,9 +736,9 @@
             autoSync=false;
             kWperGid=0.080;
             }
-        if(ff<9){//If not latest format, save as latest format
+        if(ff<11){//If not latest format, save as latest format
             saveConfig();
-            printMsg("Config file format updated.\n"); // config forat updates
+            printMsg("Config file format updated.\n"); // config format updates
         }
         printMsg("Config file loaded.\n"); // config file loaded
     }
@@ -1050,6 +1069,8 @@
     tt.foreground(Yellow);
     tt.locate(0,10);
     tt.cls();
+    
+    printMsg("Copy config file from USB\n");
     // Check for config file on USB drive
     sfr = f_open(&efile,"CONFIG.TXT",FA_READ|FA_OPEN_EXISTING);    
     if(sfr == FR_OK){        
@@ -1070,6 +1091,7 @@
     }
 
     // Check for history file on USB drive
+    printMsg("Copy ehist file from USB\n");
     sfr = f_open(&efile,"ehist.cny",FA_READ|FA_OPEN_EXISTING);    
     if(sfr == FR_OK){        
         printf("Copy ehist file from USB\n");
@@ -1145,7 +1167,7 @@
 
 //Sample CONFIG.TXT
 /*
-format 9
+format 11
 x0_off 5732
 y0_off 34009
 x0_pp 77
@@ -1168,8 +1190,8 @@
 firmware 1
 showHealth 1
 brakeMon 1
-brkMonRate 400000
-brkMonThr 4000
+brkMonRate 4.0
+brkMonThr 1.0
 usrMsgId 5103
 usrMsgId 50a3
 usrMsgId 54a4
@@ -1180,5 +1202,5 @@
 usrMsgId 0000
 modelYear 2011
 autoSync 1
-kWperGid 0.080
+kWperGid 0.075
 */
\ No newline at end of file