diff options
author | Keith Packard <keithp@keithp.com> | 2009-04-24 10:19:31 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2009-04-24 10:19:31 -0700 |
commit | b99315cee4ab796376458a2442cf36806fa4aed3 (patch) | |
tree | 7990b62d159cd17add348c5b9d2a5617bb30d13f /ao_flight_test.c | |
parent | b32f2f0090ff967edac07ae4d7a9895ed0b96d31 (diff) |
Update flight algorithm based on data collected from SN-1 Flight 1
This now correctly sequences through the flight data collected from the
first TeleMetrum test flight.
This also completes up the flight algorithm test harness (ao_flight_test),
which runs the flight algorithm on the Linux host from a captured data log.
Diffstat (limited to 'ao_flight_test.c')
-rw-r--r-- | ao_flight_test.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/ao_flight_test.c b/ao_flight_test.c index a88d2b14..78469c79 100644 --- a/ao_flight_test.c +++ b/ao_flight_test.c @@ -95,7 +95,7 @@ ao_dump_state(void); void ao_sleep(void *wchan); - + #include "ao_flight.c" void @@ -104,8 +104,8 @@ ao_insert(void) ao_adc_ring[ao_adc_head] = ao_adc_static; ao_adc_head = ao_adc_ring_next(ao_adc_head); if (ao_flight_state != ao_flight_startup) { - printf("tick %04x accel %04x pres %04x\n", - ao_adc_static.tick, + printf("time %g accel %d pres %d\n", + (double) ao_adc_static.tick / 100, ao_adc_static.accel, ao_adc_static.pres); } @@ -132,7 +132,8 @@ ao_sleep(void *wchan) ret = fscanf(emulator_in, "%c %hx %hx %hx\n", &type, &tick, &a, &b); if (ret == EOF) { - ao_insert(); + printf ("no more data, exiting simulation\n"); + exit(0); return; } if (ret != 4) @@ -162,7 +163,7 @@ ao_sleep(void *wchan) break; } } - + } } @@ -175,7 +176,6 @@ static int16_t altitude[2048] = { #include "altitude.h" }; -#define GRAVITY 9.80665 #define COUNTS_PER_G 264.8 void @@ -186,7 +186,7 @@ ao_dump_state(void) printf ("\t%s accel %g vel %g alt %d\n", ao_state_names[ao_flight_state], (ao_flight_accel - ao_ground_accel) / COUNTS_PER_G * GRAVITY, - (double) ao_flight_vel, + (double) ao_flight_vel / 100 / COUNTS_PER_G * GRAVITY, altitude[ao_flight_pres >> 4]); if (ao_flight_state == ao_flight_landed) exit(0); |