summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-02-18 10:02:46 -0800
committerKeith Packard <keithp@keithp.com>2011-02-18 10:04:40 -0800
commit8b09cc1825645a57c256f38a2f9586ddecf6bda5 (patch)
treed317065652fd26e8fb895d566cd67a178e6ee8e0
parentd3bc27fabb6159ce58b14d0f7929b0f46f67c378 (diff)
altos/test: auto-configure acceleration parameters from the log file
The flight test code had static accelerometer configuration values, making it impossible to use data from different boards without recompiling. As the eeprom and telem log files both contain the necessary data, parse that instead. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--src/ao_flight_test.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/ao_flight_test.c b/src/ao_flight_test.c
index 5c619518..8ce94895 100644
--- a/src/ao_flight_test.c
+++ b/src/ao_flight_test.c
@@ -152,7 +152,7 @@ struct ao_config {
#define ao_config_get()
-struct ao_config ao_config = { 250, 15937, 16467 };
+struct ao_config ao_config;
#define DATA_TO_XDATA(x) (x)
@@ -220,6 +220,11 @@ ao_sleep(void *wchan)
tick = strtoul(words[1], NULL, 16);
a = strtoul(words[2], NULL, 16);
b = strtoul(words[3], NULL, 16);
+ } else if (nword >= 6 && strcmp(words[0], "Accel")) {
+ ao_config.accel_plus_g = atoi(words[3]);
+ ao_config.accel_minus_g = atoi(words[5]);
+ } else if (nword >= 4 && strcmp(words[0], "Main")) {
+ ao_config.main_deploy = atoi(words[2]);
} else if (nword >= 36 && strcmp(words[0], "CALL") == 0) {
tick = atoi(words[10]);
if (!ao_flight_started) {
@@ -238,8 +243,12 @@ ao_sleep(void *wchan)
switch (type) {
case 'F':
ao_flight_ground_accel = a;
- ao_config.accel_plus_g = a;
- ao_config.accel_minus_g = a + 530;
+ if (ao_config.accel_plus_g == 0) {
+ ao_config.accel_plus_g = a;
+ ao_config.accel_minus_g = a + 530;
+ }
+ if (ao_config.main_deploy == 0)
+ ao_config.main_deploy = 250;
ao_flight_started = 1;
break;
case 'S':