Pop lock n drop it

Dependencies:   m3pi_ng mbed

Revision:
5:f3805a1f9047
Parent:
4:14b00a82d206
Child:
6:36c597e4d07a
--- a/main.cpp	Wed May 21 15:09:12 2014 +0000
+++ b/main.cpp	Thu May 22 11:54:41 2014 +0000
@@ -1,10 +1,16 @@
 #include "mbed.h"
 #include "m3pi_ng.h"
 #include "DigitalIn.h"
+#include "btbee.h"
 
 DigitalOut myled(LED1);
 m3pi huey;
+btbee btbee;
+
 DigitalIn m3pi_IN[]={(p12),(p21)}; // IR-Sensor
+DigitalOut mbed_led[] = {(LED1), (LED2),(LED3), (LED4)};
+DigitalOut m3pi_led[] = {(p13), (p14), (p15), (p16), (p17), (p18), (p19), (p20)};
+DigitalIn m3pi_pb(p21);
 
 
 void printBattery()
@@ -66,6 +72,7 @@
 
 /////////////////////////////////////////////////////////////////
 int main() {
+
     
     m3pi_IN[0].mode(PullUp);
     m3pi_IN[1].mode(PullUp);
@@ -82,7 +89,6 @@
 
     printBattery();
     
-    
     float speed = 0.25;
     float pos;
     int z=1;
@@ -115,5 +121,70 @@
         myled = 0;
         wait(0.2);
     }
-}
+      //btbee trial
+    // initialization stuff ////////////////////////////////////////////////////////////////////////////////////////////////////
+    huey.locate(0,1);
+    btbee.reset();
+    for (int i = 0; i <4; i++) {
+        mbed_led[i] = 0;
+    }
+    for (int i = 0; i <8; i++) {
+        m3pi_led[i]=0;
+    }
+    m3pi_pb.mode(PullUp); // expected would be 1 when pb is pressed, 0 when not, opposite is the case
+
+    // end initialization stuff ////////////////////////////////////////////////////////////////////////////////////////////////
+
+    huey.locate(0,0);
+    huey.printf("B:%0.3f%V",huey.battery());
+    wait(0.3);
+    
+    huey.locate(0,0);
+    huey.printf("%s","btTest");
+    huey.locate(0,1);
+    huey.printf("%s","PBonLNK");
+
+    // wait for the user to push P21, should be pressed when the bt link is established (green led "link")
+    while(m3pi_pb) {
+        m3pi_led[0]=!m3pi_led[0];
+        wait(0.1);
+    }
 
+    int iline=1;
+    char arr_read[30]; // this should be long enough to store any reply coming in over bt.
+    int  chars_read;   // number of chars read in a bt reply
+    
+    while (true) {
+        // this writes "Line 001\n" to "Line 005\n" and then "end\n" to the btbee
+        if ( btbee.writeable() ) {
+            if (iline==6) {
+                btbee.printf("end\n");
+                iline++;
+            }//if
+            else {
+                if (iline <6){
+                btbee.printf("Line %0.3d \n",iline);
+                m3pi_led[0]=0;
+                huey.locate(0,0);
+                huey.printf("Sent %0.3d",iline);
+                iline++;
+                }
+            }//else
+        }//if_write
+
+        // check for answers after each write /not write
+        while ( btbee.readable() ) {
+            m3pi_led[7]=1;
+            btbee.read_all(arr_read, 30, &chars_read );
+            m3pi_led[6]=1;
+            huey.locate(0,1);
+            huey.print(arr_read,chars_read);
+            m3pi_led[5]=1;
+        }//while_readable
+        wait(0.1);
+    }//while_true
+
+}//main
+//end of btbee trial
+
+