Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of football_project by
Diff: proto_code.cpp
- 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;
}
