Andriy Makukha / Mbed 2 deprecated football_project_wo_output

Dependencies:   mbed

Fork of football_project by MZJ

Revision:
62:9b34dc1b265d
Parent:
61:dd7002ceea96
Child:
66:18c214707b0c
--- a/proto_code.cpp	Sun Jan 17 07:03:51 2016 +0000
+++ b/proto_code.cpp	Mon Jan 18 08:51:31 2016 +0000
@@ -1,5 +1,6 @@
 #include <TA.h>
 #include <types.h>
+#include "DataStore.hh"
 
 #define RED p3
 #define GREEN p5
@@ -116,8 +117,8 @@
 uint8_t checkButtons(void);
 Event getInputEvent(void); 
 void getRadioInput(char *ibuffer, int size);
-void interpret(char parameter, int value);
-
+void interpret_master(char parameter, int value);
+void interpret_slave(char parameter, int value);
 
 extern "C" void writeToPhone(char *format, ...);
 
@@ -132,10 +133,6 @@
 
 char local_input[50] = {0};
 
-void datastore_write_patterns();
-void datastore_read_patterns();
-void write_test_pattern();
-
 static void master_setup()
 {
     ta.initialize(NODE_ID);
@@ -702,7 +699,15 @@
             value = atoi(buffer);
       }
 
-      interpret(parameter, value);
+      if (is_master)
+      {
+        interpret_master(parameter, value);
+      }
+      else
+      {
+          interpret_slave(parameter, value);
+      }
+      
       DEBUG("After interp: '%c'\r\n", parameter);
       parameter = '_';
       buffer[0] = 0;
@@ -726,7 +731,22 @@
   }
 }
 
-static void interpret(char parameter, int value)
+static void interpret_slave(char parameter, int value)
+{
+    switch(parameter)
+    {
+        case 'M':
+            datastore_set_master();
+            writeToPhone("Power Cycle\r\n");
+            break;
+        case 's':
+            writeToPhone("MS: %d\r\n", datastore_is_master());
+            writeToPhone("RP: %d\r\n", read_params());
+            break;
+    }   
+}
+
+static void interpret_master(char parameter, int value)
 {
   int remainder;
   uint16_t split;
@@ -937,6 +957,7 @@
     {
       length = STATIONS;
       offset = (value - 1) * STATIONS;
+      datastore_write_pattern(value-1);
       writeToPhone("Saved sequence %d\r\n", value);
     }
     else
@@ -949,15 +970,13 @@
      resetSensors();
      ta.resetTouch();
      break;
+    case '5': // DEBUG CODE!
+       write_test_pattern();
+       datastore_write_patterns();
+       break;
      
    case 'z':
     find_cones();
-    /*m->value = value;
-    m->command = 'z';
-    m->cone = 2;
-    Serial.println("sending...");
-    ta.send(m);
-    Serial.println("sent");*/
     break;
   }
 }
@@ -1261,9 +1280,9 @@
       state_i = RUNNING_I;
       //send 'p' or 'f' command as appropriate
       if(mode == FREEFORM_M)
-        interpret('f', 0);
+        interpret_master('f', 0);
       else 
-        interpret('p', 0);
+        interpret_master('p', 0);
     }
     
     break;
@@ -1273,7 +1292,7 @@
     break;
   case MENU_I:
     if(first_i)
-        interpret('q', 0);
+        interpret_master('q', 0);
     // every 3 seconds we cycle through the menu
     // one option per second
     // light changes color and stays on for 500ms
@@ -1342,7 +1361,7 @@
       
       if(event.value == 3)
       {
-        interpret('p', sequence + 1);
+        interpret_master('p', sequence + 1);
         state_i = IDLE_I;
       }