master

Dependencies:   mbed

Fork of ESE350-Whack-a-Mole by Eric Berdinis

Revision:
1:d905afad53c0
Parent:
0:ddc820578cb0
Child:
2:4c79ab84c285
--- a/WhackAMole.cpp	Wed Mar 20 19:05:36 2013 +0000
+++ b/WhackAMole.cpp	Tue Oct 20 18:08:37 2015 +0000
@@ -1,7 +1,8 @@
 #include "mbed.h"
 #include "MRF24J40.h"
+#include <string>
 
-#include <string>
+
 
 // RF tranceiver to link with handheld.
 MRF24J40 mrf(p11, p12, p13, p14, p21);
@@ -81,33 +82,72 @@
 int main (void)
 {
     uint8_t channel = 2;
-
+    
     //Set the Channel. 0 is default, 15 is max
     mrf.SetChannel(channel);
-
+    int action;
+    int round_counter;
+    int score_counter;
+    char input;
     //Start the timer
     timer.start();
 
     while(true) {
-        //Try to receive some data
-        rxLen = rf_receive(rxBuffer, 128);
-        if(rxLen > 0) {
-            //Toggle the Led
-            led1 = led1^1;
-            pc.printf("Received: %s\r\n", rxBuffer);
+        while (true){
+            input=pc.getc();
+            if (input=='s'){
+                break;
+                }
+            }
+        pc.printf("start!");
+        round_counter=0;
+        score_counter=0;
+        while(round_counter<10){
+            action = rand()%2;
+            if(action==0){
+                wait(1);
+                }
+            else if (action==1){
+                timer.reset();
+                strcpy(txBuffer, "activate_1");
+                rf_send(txBuffer, strlen(txBuffer));
+                while(true){
+                    rxLen = rf_receive(rxBuffer, 128); 
+                    pc.printf("Received: %s\r\n", rxBuffer);    
+                    if(strcmp("finished_1", txBuffer)) {
+                        break;
+                        }
+                    }
+                    score_counter+=timer.read_ms();
+                    round_counter++;
+                }
+            else if (action==2){
+                timer.reset();
+                strcpy(txBuffer, "activate_2");
+                rf_send(txBuffer, strlen(txBuffer));
+                while(true){
+                    rxLen = rf_receive(rxBuffer, 10);     
+                    if(strcmp("finished_2", txBuffer)) {
+                        break;
+                        }
+                    }
+                    score_counter+=timer.read_ms();
+                    round_counter++;
+                }
+            else if (action ==3){
+                timer.reset();
+                strcpy(txBuffer, "activate_3");
+                rf_send(txBuffer, strlen(txBuffer));
+                while(true){
+                    rxLen = rf_receive(rxBuffer, 10);     
+                    if(strcmp("finished_3", txBuffer)) {
+                        break;
+                        }
+                    }
+                    score_counter+=timer.read_ms();
+                    round_counter++;
+                }    
         }
-        
-        //Send some data every second
-        if(timer.read_ms() >= 1000) {
-            //Reset the timer to 0
-            timer.reset();
-            // Toggle LED 2.
-            led2 = led2^1;
-            //Add to the buffer. You may want to check out sprintf
-            strcpy(txBuffer, "Jeff is the best TA!");
-            //Send the buffer
-            rf_send(txBuffer, strlen(txBuffer) + 1);
-            pc.printf("Sent: %s\r\n", txBuffer);
-        }
+        pc.printf("Score: %d", score_counter);
     }
 }