test fork

Dependencies:   SPI_TFTx2 SPI_TFTx2_ILI9341 TFT_fonts TOUCH_TFTx2 mbed

Fork of CANary_9341 by Tick Tock

Revision:
77:7c136766466c
Parent:
76:fb6779d0963e
Child:
78:a383971fe02f
Child:
80:24f1793171e7
--- a/main.cpp	Mon Apr 15 14:40:05 2013 +0000
+++ b/main.cpp	Tue Apr 16 03:28:55 2013 +0000
@@ -8,6 +8,7 @@
 // * Better graphical DTE display with historic efficiency information considered and displayed
 // * Add 50% charge option
 // * Tire Pressure Sensor display
+// * Fix bug in playback while connected to canbus (hangs)
 
 #include "mbed.h"
 #include "CAN.h"
@@ -49,7 +50,7 @@
 // gg - revStr is used in 2 places
 // gg - and is easy to edit here
 // gg - added ZeroSecTick and revStr
-char revStr[7] = "76"; // gg - fix rev number
+char revStr[7] = "77"; // gg - fix rev number
 
 bool logEn = false, logOpen = false; 
 bool yesBattLog = false ; // gg - Batt Log
@@ -126,15 +127,6 @@
     point lastTouch;
     float average;
 
-    can1.monitor(true); // set to snoop mode
-    can2.monitor(true); // set to snoop mode
-    can1.frequency(500000);
-    can2.frequency(500000);
-    can1SleepMode = 1;         // Turn on Monitor_only Mode
-    can2SleepMode = 1;         // Turn on Monitor_only Mode
-    can1.attach(&recieve1);
-    can2.attach(&recieve2);
-    
     tt.set_orientation(1);
     tt.background(Black);
     tt.set_display(2);       // select both displays
@@ -231,6 +223,16 @@
     // Read config file
     readConfig();
 
+    // Start monitors
+    can1.monitor(true); // set to snoop mode
+    can2.monitor(true); // set to snoop mode
+    can1.frequency(500000);
+    can2.frequency(500000);
+    can1SleepMode = 1;         // Turn on Monitor_only Mode
+    can2SleepMode = 1;         // Turn on Monitor_only Mode
+    can1.attach(&recieve1);
+    can2.attach(&recieve2);
+
     touched=false;
     secsNoTouch=2;
     while (true) {
@@ -273,12 +275,6 @@
                     spkr.beep(1000,0.25);
                     logEn=false;
                 } else {
-                    //moved overrun detection to the write code in utility.cpp
-                    //if (pointerSep>(maxBufLen*7/8)) { // Hi-water mark
-                    //    sprintf(sTemp,"Write buffer overrun.\n");
-                    //    logMsg(sTemp); // write buffer overrun
-                    //    spkr.beep(1000,0.25);
-                    //}
                     while (readPointer != writePointer) {
                         for (j = 0; j<13; j++){
                             fprintf(file,"%c",writeBuffer[readPointer][j]);
@@ -290,8 +286,11 @@
                 }
             } // if > 1/16 full, canbus has stopped, or logging stopped
             if (!logEn) {
+                sprintf(sTemp,"Stopping Can Log %s\n",fileName);
+                logMsg(sTemp); // stopping alc log file 
                 fclose(file);
                 logOpen=false;
+                pointerSep=0;
             }
         } // if logOpen
         if (canIdle&&userIdle&&!playbackEn) { // canbus idle --> sleep to save power
@@ -507,7 +506,7 @@
                             //------------------------------
                             case 11:
                                 if (dMode[whichTouched]==config1Screen){
-                                    repeatPoll = !repeatPoll&&logEn;
+                                    repeatPoll = !repeatPoll;
                                     if (repeatPoll) {
                                         autoPoll.attach(&autoPollISR,pollInt);
                                     } else {