Level 2 Project Range Device

Dependencies:   N5110 SDFileSystem SRF02 TMP102 mbed

Fork of Ranger by Philip Thompson

Revision:
6:b464a8a94d91
Parent:
5:083d484e95a1
Child:
7:14cfb0df30e6
--- a/main.cpp	Fri Apr 15 13:25:32 2016 +0000
+++ b/main.cpp	Fri Apr 15 17:23:17 2016 +0000
@@ -49,9 +49,9 @@
 int r2 = 20;
 int r3 = 40;
 int r4 = 60;
-int r5 = 90;
-int r6 = 120;
-int r7 = 150;
+int r5 = 80;
+int r6 = 100;
+int r7 = 120;
 
 int subpage;
 int page;
@@ -115,6 +115,7 @@
             g_sw1_flag = 0;
             page = 0;
             subpage = 0;
+            lcd.clear();
             menu();
         }
 
@@ -154,33 +155,43 @@
     int length1;
     char buffer[14];  // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
     char buffer1[14];  // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+    int length2;
+    char buffer2[14];  // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+    int length3;
+    char buffer3[14];  // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
+    if (alert == 0) {
+        lcd.clear();
 
-    if (alert == 0) {
         length1 = sprintf(buffer1,"**PATH CLEAR**",bright);
         lcd.printString(buffer1,0,0);
+        lcd.refresh();
+
     }
 
     else {
+        lcd.clear();
         if (units == METRIC) {
-            length = sprintf(buffer,"D = %i Cm",distance);
+            length = sprintf(buffer,"%i Cm",distance);
             length1 = sprintf(buffer1,"****RANGE!****");
+            length2 = sprintf(buffer2,"***DISTANCE***");
+            length3 = sprintf(buffer3,"Alert = %i",alert);
         } else {
             length = sprintf(buffer,"%i Inches",distance);
             length1 = sprintf(buffer1,"****RANGE!****");
+            length2 = sprintf(buffer2,"***DISTANCE***");
         }
+        lcd.printString(buffer,20,3);
+        lcd.printString(buffer1,0,0);
+        lcd.printString(buffer2,0,1);
+        lcd.printString(buffer3,0,2);
+        float i = r7/84;
+        float distbar = distance*i;
+        //drawRect(int x0,int y0,int width,int height,int fill);
+        lcd.drawRect(0,38,distbar,7,1);
+        lcd.refresh();
+
     }
 
-    if (length <= 14) {
-        lcd.printString(buffer,0,1);
-        lcd.printString(buffer1,0,0);
-    }
-
-    // draw a line across the display at y = 40 pixels (origin top-left)
-    for (int i = 0; i < WIDTH; i++) {
-        lcd.setPixel(i,45);
-    }
-
-    lcd.refresh(); // need to refresh display after setting pixels
 }
 
 void setalert()
@@ -301,29 +312,33 @@
     char buffer3[14];  // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
     char buffer1[14];  // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14)
     char buffer4[14];  // each character is 6 pixels wide, screen is 84 pixels (84/6 = 14
+
     while(1) {
+
+
         if (g_sw1_flag) {
             g_sw1_flag = 0;
             page++;
+            lcd.clear();
         }
-
         switch (page) {
             case 0:
                 if (g_sw2_flag) {
                     g_sw2_flag = 0;  // if it has, clear the flag
                     backlight();
-                }
-                lcd.clear();
-
-                length2 = sprintf(buffer2,"*****MENU*****");
-                length1 = sprintf(buffer1,"BACKLIGHT");
-                length3 = sprintf(buffer3,"%f.0",bright);
-                if (length2 <= 14) {
+                    lcd.clear();
+                } else {
+                    int lightbar = bright*84;
+                    length2 = sprintf(buffer2,"*****MENU*****");
+                    length1 = sprintf(buffer1,"BACKLIGHT");
+                    length3 = sprintf(buffer3,"%.0f%%",bright*100);
                     lcd.printString(buffer2,0,0);
                     lcd.printString(buffer1,0,1);
                     lcd.printString(buffer3,0,2);
+                    lcd.drawRect(0,38,lightbar,7,1);
+                    lcd.refresh();
+
                 }
-                lcd.refresh(); // need to refresh display after setting pixels
                 break;
 
             case 1:
@@ -334,17 +349,16 @@
                     } else {
                         offset += 1;
                     }
-                }
-                lcd.clear();
-                length2 = sprintf(buffer2,"*****MENU*****");
-                length1 = sprintf(buffer1,"OFFSET");
-                length3 = sprintf(buffer3,"%i",offset);
-                if (length2 <= 14) {
+                } else {
+                    length2 = sprintf(buffer2,"*****MENU*****");
+                    length1 = sprintf(buffer1,"OFFSET");
+                    length3 = sprintf(buffer3,"%i",offset);
                     lcd.printString(buffer2,0,0);
                     lcd.printString(buffer1,0,1);
                     lcd.printString(buffer3,0,2);
+                    lcd.refresh();
                 }
-                lcd.refresh(); // need to refresh display after setting pixel
+
                 break;
 
             case 2:
@@ -356,7 +370,6 @@
                         units = METRIC;
                     }
                 }
-                lcd.clear();
                 if (units == METRIC) {
                     length3 = sprintf(buffer3,"METRIC");
                 } else {
@@ -365,13 +378,11 @@
 
                 length2 = sprintf(buffer2,"*****MENU*****");
                 length1 = sprintf(buffer1,"UNITS");
-                //length3 = sprintf(buffer3,"%i",units);
-                if (length2 <= 14) {
-                    lcd.printString(buffer2,0,0);
-                    lcd.printString(buffer1,0,1);
-                    lcd.printString(buffer3,0,2);
-                }
-                lcd.refresh(); // need to refresh display after setting pixel
+                lcd.printString(buffer2,0,0);
+                lcd.printString(buffer1,0,1);
+                lcd.printString(buffer3,0,2);
+
+
                 break;
 
             case 3:
@@ -386,6 +397,8 @@
                 lcd.printString(buffer3,0,0);
                 lcd.printString(buffer1,0,1);
                 lcd.printString(buffer2,0,2);
+
+
                 break;
 
             default:
@@ -393,7 +406,7 @@
                 return;
         }
     }
-
+    lcd.refresh();
 }
 void submenu()
 {
@@ -486,7 +499,7 @@
                 length2 = sprintf(buffer1,"*****MENU*****");
                 length3 = sprintf(buffer2,"RANGE");
                 length3 = sprintf(buffer3,"PARAMETERS");
-                length3 = sprintf(buffer4,"%iCm  to  %iCm",r4,r5);
+                length3 = sprintf(buffer4,"%iCm to %iCm",r4,r5);
                 lcd.printString(buffer1,0,0);
                 lcd.printString(buffer2,0,1);
                 lcd.printString(buffer3,0,2);
@@ -506,7 +519,7 @@
                 length2 = sprintf(buffer1,"*****MENU*****");
                 length3 = sprintf(buffer2,"RANGE");
                 length3 = sprintf(buffer3,"PARAMETERS");
-                length3 = sprintf(buffer4,"%iCm  to  %iCm",r5,r6);
+                length3 = sprintf(buffer4,"%iCm to %iCm",r5,r6);
                 lcd.printString(buffer1,0,0);
                 lcd.printString(buffer2,0,1);
                 lcd.printString(buffer3,0,2);
@@ -526,7 +539,7 @@
                 length2 = sprintf(buffer1,"*****MENU*****");
                 length3 = sprintf(buffer2,"RANGE");
                 length3 = sprintf(buffer3,"PARAMETERS");
-                length3 = sprintf(buffer4,"%iCm  to  %iCm",r6,r7);
+                length3 = sprintf(buffer4,"%iCm to %iCm",r6,r7);
                 lcd.printString(buffer1,0,0);
                 lcd.printString(buffer2,0,1);
                 lcd.printString(buffer3,0,2);