diff options
author | Keith Packard <keithp@keithp.com> | 2009-04-26 00:11:32 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2009-04-26 00:11:32 -0700 |
commit | 38a0b61b0a0b3c00f064c8d562950a17a6ddff4a (patch) | |
tree | ee099db3cfa30d5fe7a94523fe1e7a46f64d238d /ao_flight_test.c | |
parent | c65f1a1acd2ca00758833cec5d3f8056d303d3e2 (diff) |
Add configuration support
Current config variables:
Main deploy altitude above launch (in meters)
Acceleration zero g calibration (manual or automatic)
Radio channel (freq = 435.550MHz + channel * 100kHz)
Callsign (max 8 characters)
Supporting this involved shuffling code around so that the
non-telemetrum builds could include only the stuff they needed.
Diffstat (limited to 'ao_flight_test.c')
-rw-r--r-- | ao_flight_test.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/ao_flight_test.c b/ao_flight_test.c index 0b18969e..aefe3da7 100644 --- a/ao_flight_test.c +++ b/ao_flight_test.c @@ -127,6 +127,26 @@ ao_pres_to_altitude(int16_t pres) __reentrant return altitude_table[pres]; } +int16_t +ao_altitude_to_pres(int16_t alt) __reentrant +{ + int16_t pres; + + for (pres = 0; pres < 2047; pres++) + if (altitude_table[pres] <= alt) + break; + return pres << 4; +} + +struct ao_config { + uint16_t main_deploy; + int16_t accel_zero_g; +}; + +#define ao_config_get() + +struct ao_config ao_config = { 250, 16000 }; + #include "ao_flight.c" void @@ -204,11 +224,12 @@ ao_dump_state(void) { if (ao_flight_state == ao_flight_startup) return; - printf ("\t\t\t\t\t%s accel %g vel %g alt %d\n", + printf ("\t\t\t\t\t%s accel %g vel %g alt %d main %d\n", ao_state_names[ao_flight_state], (ao_flight_accel - ao_ground_accel) / COUNTS_PER_G * GRAVITY, (double) ao_flight_vel / 100 / COUNTS_PER_G * GRAVITY, - altitude_table[ao_flight_pres >> 4]); + ao_pres_to_altitude(ao_flight_pres), + ao_pres_to_altitude(ao_main_pres)); if (ao_flight_state == ao_flight_landed) exit(0); } |