Dual CANbus monitor and instrumentation cluster

Dependencies:   SPI_TFTx2 TFT_fonts TOUCH_TFTx2 beep mbed

Fork of CANary by Tick Tock

Files at this revision

API Documentation at this revision

Comitter:
TickTock
Date:
Mon Mar 04 14:00:49 2013 +0000
Parent:
17:e32324a2678d
Child:
19:d576298c46f3
Commit message:
Added buttons for requesting cp data.

Changed in this revision

common.h 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
--- a/common.h	Mon Mar 04 04:41:24 2013 +0000
+++ b/common.h	Mon Mar 04 14:00:49 2013 +0000
@@ -17,5 +17,9 @@
 #define btn32x2 204
 #define btn33x1 218
 #define btn33x2 307
-#define btn11y1 180
-#define btn11y2 229
+#define btn31y1 12
+#define btn31y2 77
+#define btn32y1 87
+#define btn32y2 152
+#define btn33y1 162
+#define btn33y2 228
--- a/displayModes.cpp	Mon Mar 04 04:41:24 2013 +0000
+++ b/displayModes.cpp	Mon Mar 04 14:00:49 2013 +0000
@@ -245,12 +245,36 @@
             break;
         case monitorScreen:
             printLast(changed);
+            if(sMode==1){
+                tt.foreground(Yellow);
+                tt.background(DarkCyan);
+                tt.set_font((unsigned char*) Arial12x12);
+                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);
+                tt.fillrect(btn33x1,btn31y1,btn33x2,btn31y2,DarkCyan);
+                tt.locate(btn33x1+5,btn31y1+5);
+                printf(" <down>\n");                
+            }
             break;
         case changedScreen:
             printChanged(changed);
             break;
         case cpScreen:
             cpData(changed||showCP);
+            if(sMode==1){
+                tt.foreground(Yellow);
+                tt.background(DarkCyan);
+                tt.set_font((unsigned char*) Arial12x12);
+                tt.fillrect(btn32x1,btn31y1,btn32x2,btn31y2,DarkCyan);
+                tt.locate(btn32x1+5,btn31y1+5);
+                printf(" Request\n");                
+                tt.locate(btn32x1+5,btn31y1+20);
+                printf(" CP data\n");                
+            }
             break;
         default:
             tt.background(Black);
@@ -264,18 +288,18 @@
             tt.foreground(Yellow);
             tt.background(DarkCyan);
             tt.set_font((unsigned char*) Arial12x12);
-            tt.fillrect(btn31x1,btn11y1,btn31x2,btn11y2,DarkCyan);
-            tt.locate(btn31x1+5,btn11y1+5);
+            tt.fillrect(btn31x1,btn33y1,btn31x2,btn33y2,DarkCyan);
+            tt.locate(btn31x1+5,btn33y1+5);
             printf("<-Prev\n");
-            tt.fillrect(btn32x1,btn11y1,btn32x2,btn11y2,DarkCyan);
-            tt.fillrect(btn33x1,btn11y1,btn33x2,btn11y2,DarkCyan);
-            tt.locate(btn33x2-50,btn11y1+5);
+            tt.fillrect(btn32x1,btn33y1,btn32x2,btn33y2,DarkCyan);
+            tt.fillrect(btn33x1,btn33y1,btn33x2,btn33y2,DarkCyan);
+            tt.locate(btn33x2-50,btn33y1+5);
             printf("Next->\n");
             tt.set_display(0);
-            tt.locate(btn32x1+15,btn11y1+5);
+            tt.locate(btn32x1+15,btn33y1+5);
             printf("Select %d\n",dMode[0]);
             tt.set_display(1);
-            tt.locate(btn32x1+15,btn11y1+5);
+            tt.locate(btn32x1+15,btn33y1+5);
             printf("Select %d\n",dMode[1]);
             tt.background(Black);
             break;
--- a/main.cpp	Mon Mar 04 04:41:24 2013 +0000
+++ b/main.cpp	Mon Mar 04 14:00:49 2013 +0000
@@ -60,7 +60,7 @@
 volatile bool canIdle = false, userIdle = false;
 bool touched=0; //flag to read touchscreen
 char counter = 0;
-unsigned char dMode[2] = {1,2}; //display mode
+unsigned char dMode[2] = {1,7}; //display mode
 unsigned char sMode = 0; // setup mode
 unsigned char lastDMode[2] = {0,0}; //last screen mode
 char displayLog[20][40];
@@ -139,7 +139,7 @@
 
     // Look for new binary 
     // Can't make this work right now since USB doesn't attach the right timestamp (so new binary isn't loaded)
-    cfile = fopen("/fs/CANary.bin", "rb");
+    /*cfile = fopen("/fs/CANary.bin", "rb");
     if (cfile!=NULL){ //found a new binary on the thumbdrive so copy it over
         sprintf(sTemp,"New binary found.\n");
         logMsg(sTemp);
@@ -148,18 +148,28 @@
             sprintf(sTemp,"Unable to open destination file.\n");
             logMsg(sTemp);
         } else {
+            tt.set_display(2);
+            tt.foreground(White);
+            tt.background(Black);
+            tt.cls();
+            tt.locate(1,40);
+            printf("%s\n","Copying binary - Do no remove power.");
+            tt.locate(1,80);
+            printf("CANary will reset when complete.\n");
+            wait(1); //Wait 1 sec for display DMA to finish before writing file
             while ( int size = fread( writeBuffer, sizeof(char), maxBufLen*13, cfile )){
                 fwrite( writeBuffer, sizeof(char), size, file );
+                led4=led3;
+                led3=led2;
+                led2=led1;
+                led1=!led4;
             }
         fclose(cfile);
         fclose(file);
         remove("/fs/CANary.bin"); // delete original
         mbed_reset(); //restart
         }
-    } else {
-        sprintf(sTemp,"No binary found.\n");
-        logMsg(sTemp);
-    }
+    }*/
 
     // Look for config file
     cfile = fopen("/local/config.txt", "r");
@@ -289,7 +299,7 @@
                 } else {
                     i=0;
                 }
-                if (lastTouch.y>btn11y1 && lastTouch.y<btn11y2) {
+                if (lastTouch.y>btn33y1 && lastTouch.y<btn33y2) {
                     if(sMode==1){
                         if (lastTouch.x>btn31x1 && lastTouch.x<btn31x2) {
                             dMode[i]=dMode[i]>0?dMode[i]-1:maxScreens;
@@ -299,7 +309,7 @@
                             dMode[i]=dMode[i]<maxScreens?dMode[i]+1:0;
                         }
                     } else sMode=1;
-                } else {
+                } else if (lastTouch.y>btn31y1 && lastTouch.y<btn31y2){
                     if (dMode[i]==monitorScreen||dMode[i]==changedScreen) {
                         if (lastTouch.x>btn31x1 && lastTouch.x<btn31x2) {
                             indexOffset=indexOffset>4?indexOffset-4:1;