Test

Dependencies:   SRF02 SRF05 mbed

Fork of Prosjekt_2 by HIOF Programmering

Revision:
8:63f1033aaea2
Parent:
7:112b745b2b9e
Child:
9:4b38e90b8f10
--- a/main.cpp	Fri Apr 01 09:14:21 2016 +0000
+++ b/main.cpp	Fri Apr 01 12:47:28 2016 +0000
@@ -8,7 +8,7 @@
 DigitalOut led (LED1);
 DigitalIn imp (p12);
 SRF05 srf05(p7, p8);
-SRF02 srf02(p9, p10,0xe0, 1);
+SRF02 srf02(p9, p10);
 DigitalOut bar[] = {NC, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30};
 
 void meny();
@@ -56,11 +56,11 @@
                 break;
             }
             case('4'): {
-                pc.printf("\nThis feature triangulation an object and forwards the positon within a 2D-table\n");
-                bt.printf("\nThis feature triangulation an object and forwards the positon within a 2D-table\n");
-                triangulering();   
+                pc.printf("\nThis feature triangulation an object and forwards the positon within a 2D-table\nEach 'O' represents 10square centimeters.\nMeassurements start from 50cm away for SRF02 and 140 CM away from SRF05\n");
+                bt.printf("\nThis feature triangulation an object and forwards the positon within a 2D-table\nEach 'O' represents 10square centimeters.\nMeassurements start from 50cm away for SRF02 and 140 CM away from SRF05\n");
+                triangulering();
                 break;
-            
+
             }
             default:
                 pc.printf("\nERROR: Invalid value\n");
@@ -159,15 +159,33 @@
     }
 }
 
+/*Funksjonen triangulering måler avstanden til et objekt i målesonen, fra to forskjellige vinkler. Avstanden til objektet plasseres i et 2D-plan. Størrelsen på planet er 100cm langs x akse og 50cm langs y akse.*/
+
 void triangulering ()
 {
-    float a, b;
-    char c;
-    pc.printf("\nTriangulering meny funker");
-    do {
-    a = srf05.read();
-    b = srf02.read();
-    pc.printf("\nSRF05 meassures:\t%f\nSRF02 meassures:\t%f\n", a, b);
-    c = getchar();
-    } while (c != 'n');
+    char _2DplanX[12] = {'|','O','O','O','O','O','O','O','O','O','O','|'};
+    char _2Dplan[12] = {'|','O','O','O','O','O','O','O','O','O','O','|'};
+    int a, b, c;
+    float d = srf05.read();
+    b = srf02.getDistanceCm();
+    pc.printf("\nx = %d\ny = %f\n", b, d);
+    bt.printf("\nx = %d\ny = %f\n", b, d);
+    for (c = 1; c < 11; c++) {
+        if ((c*10+40) <= b && b < ((c+1)*10+40))
+            _2DplanX[c] = 'x';
+        else
+            _2DplanX[c] = 'O';
+    }
+    for (c = 190; c >= 150; c=c-10) {
+        if (c-10 <= d && d < c) {
+            for(a = 0; a < 12; a++)
+                pc.printf("%c",_2DplanX[a]);
+                bt.printf("%c",_2DplanX[a]);
+        } else {
+            for(a = 0; a < 12; a++)
+                pc.printf("%c",_2Dplan[a]);
+                bt.printf("%c",_2Dplan[a]);
+        }
+        printf("\n");
+    }
 }
\ No newline at end of file