test fork
Dependencies: SPI_TFTx2 SPI_TFTx2_ILI9341 TFT_fonts TOUCH_TFTx2 mbed
Fork of CANary_9341 by
Diff: main.cpp
- Revision:
- 43:e7f6f80590e3
- Parent:
- 42:4533b13b297d
- Child:
- 44:6262a9fd1e56
diff -r 4533b13b297d -r e7f6f80590e3 main.cpp --- a/main.cpp Sun Mar 31 20:38:15 2013 +0000 +++ b/main.cpp Tue Apr 02 06:32:25 2013 +0000 @@ -102,7 +102,7 @@ int readPointer=0; char sTemp[40]; unsigned long secs; - unsigned char i,j,display=0; + unsigned char i,j,display=0,lwt=0;; point lastTouch; can1.monitor(true); // set to snoop mode @@ -143,6 +143,8 @@ t = *localtime(&seconds) ; strftime(sTemp, 32, "%a %m/%d/%Y %X\n", &t); logMsg(sTemp); + sprintf(sTemp,"CANary firmware rev43\n"); + logMsg(sTemp); // Look for new binary on thumbdrive // Can't make this work right now since USB doesn't attach the right timestamp (so new binary isn't loaded) @@ -179,9 +181,15 @@ }*/ secsNoMsg = 0; - secsNoTouch = 0; + + dMode[1]=logScreen; + lastDMode[1]=99; + updateDisplay(1); + // Read config file readConfig(); + wait_ms(4000); // Pause for a few seconds + touched=false; secsNoTouch=2; while (true) { @@ -261,9 +269,9 @@ //__wfi(); // freeze CPU and wait for interrupt (from canbus or touch) Sleep(); } - secsNoTouch=0; + secsNoTouch=2; canIdle=secsNoMsg>canTimeout; - userIdle=secsNoTouch>userTimeout; + //userIdle=!touched; dled=0.8; // turn on display LED seconds = time(NULL); t = *localtime(&seconds) ; @@ -272,7 +280,7 @@ if (time(NULL)>(secs+1800)) { logOpen = false; // Start new file if asleep for more than 30 minutes if (secsNoTouch>100) secsNoTouch = 100; // also mostly reset user Idle counter - } else if (false){ // insert timestamp on each wake if logging enabled (disabled for now) + } else if (logOpen){ // insert timestamp on each wake if logging enabled (disabled for now) file = fopen(fileName, "ab"); logTS(); } @@ -282,11 +290,22 @@ lastTouch = tt.get_touch(); lastTouch = tt.to_pixel(lastTouch); // convert to pixel pos if((lastTouch.x!=639)&&(lastTouch.x!=319)&&(lastTouch.y!=239)){ // filter phantom touches - if (!userIdle) { - secsNoTouch=0; + if (userIdle) { + secsNoTouch=2; // Ignore first touch if user idle + userIdle=false; } else { - secsNoTouch=2; // Ignore first touch if user idle + secsNoTouch=0; } + if (lastTouch.x>320){ + whichTouched=1; + } else { + whichTouched=0; + } + if (whichTouched!=lwt){ + lastDMode[lwt]=99; // Repaint lastTouched + lwt=whichTouched; + } + sMode = 1; } //sprintf(sTemp,"%d,%d ",lastTouch.x,lastTouch.y); //logMsg(sTemp); @@ -295,12 +314,7 @@ if (!userIdle) { if (secsNoTouch<2) {// Recently touched secsNoTouch +=2; // increment to prevent double touch - if (lastTouch.x>320){ - whichTouched=1; - } else { - whichTouched=0; - } - if (sMode==0) sMode = 1; + sMode = 1; //sprintf(sTemp,"button %d %d,%d %d\n",i,buttonX(lastTouch.x,3),buttonY(lastTouch.y,3),lastTouch.x); //logMsg(sTemp); switch (sMode) { @@ -428,7 +442,9 @@ break; case 12: case 42: - secsNoTouch = userTimeout; // immediately exit config mode + //secsNoTouch = userTimeout; // immediately exit config mode + sMode=0; + lastDMode[whichTouched]=99; // Repaint break; case 22: case 52: @@ -449,8 +465,7 @@ } else { // userIdle if(sMode==1){ sMode=0; - lastDMode[0]=99; - lastDMode[1]=99; + lastDMode[whichTouched]=99; } }