From 1887ca3d7d4a0259686f8c1e68d1e47c47b4ab84 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 16 Jul 2012 15:25:47 -0700 Subject: [PATCH] altos: Pass flight dynamics to companion boards Necessary for TelePyro Signed-off-by: Keith Packard --- src/core/ao_companion.h | 4 ++++ src/core/ao_flight.c | 4 ---- src/core/ao_flight.h | 2 -- src/drivers/ao_companion.c | 4 ++++ 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/core/ao_companion.h b/src/core/ao_companion.h index 47e0acf5..035325a3 100644 --- a/src/core/ao_companion.h +++ b/src/core/ao_companion.h @@ -30,6 +30,10 @@ struct ao_companion_command { uint16_t tick; uint16_t serial; uint16_t flight; + int16_t accel; + int16_t speed; + int16_t height; + int16_t motor_number; }; struct ao_companion_setup { diff --git a/src/core/ao_flight.c b/src/core/ao_flight.c index fc018f00..aa4f6961 100644 --- a/src/core/ao_flight.c +++ b/src/core/ao_flight.c @@ -40,9 +40,7 @@ __pdata enum ao_flight_state ao_flight_state; /* current flight state */ __pdata uint16_t ao_boost_tick; /* time of launch detect */ -#if AO_PYRO_NUM __pdata uint16_t ao_motor_number; /* number of motors burned so far */ -#endif /* * track min/max data over a long interval to detect @@ -218,9 +216,7 @@ ao_flight(void) #else ao_flight_state = ao_flight_coast; #endif -#if AO_PYRO_NUM ++ao_motor_number; -#endif ao_wakeup(DATA_TO_XDATA(&ao_flight_state)); } break; diff --git a/src/core/ao_flight.h b/src/core/ao_flight.h index c5c8af46..b80202f0 100644 --- a/src/core/ao_flight.h +++ b/src/core/ao_flight.h @@ -38,9 +38,7 @@ enum ao_flight_state { extern __pdata enum ao_flight_state ao_flight_state; extern __pdata uint16_t ao_boost_tick; -#if AO_PYRO_NUM extern __pdata uint16_t ao_motor_number; -#endif extern __pdata uint16_t ao_launch_time; extern __pdata uint8_t ao_flight_force_idle; diff --git a/src/drivers/ao_companion.c b/src/drivers/ao_companion.c index a3167956..6e0bd2ec 100644 --- a/src/drivers/ao_companion.c +++ b/src/drivers/ao_companion.c @@ -53,6 +53,10 @@ ao_companion_send_command(uint8_t command) ao_companion_command.tick = ao_time(); ao_companion_command.serial = ao_serial_number; ao_companion_command.flight = ao_flight_number; + ao_companion_command.accel = ao_accel; + ao_companion_command.speed = ao_speed; + ao_companion_command.height = ao_height; + ao_companion_command.motor_number = ao_motor_number; ao_spi_send(&ao_companion_command, sizeof (ao_companion_command), AO_COMPANION_SPI_BUS); } -- 2.30.2