diff options
author | Keith Packard <keithp@keithp.com> | 2011-03-06 21:00:52 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-03-16 15:57:37 -0700 |
commit | 2d41358c80f2eb8b6e98d699149bb941a6671475 (patch) | |
tree | fc01bc1e79f7750719404801f2505aaeb0c569e3 | |
parent | 1e56ed44e562f808addfd76bfb352f981db94094 (diff) |
altos: Start with packet slave running. Turn off in pad mode.
Instead of turning slave mode on in idle mode, start with it running
and disable it in pad mode instead. This means packet mode is
available in startup mode too.
Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r-- | src/ao_flight.c | 11 | ||||
-rw-r--r-- | src/ao_packet_slave.c | 4 | ||||
-rw-r--r-- | src/ao_pins.h | 6 |
3 files changed, 14 insertions, 7 deletions
diff --git a/src/ao_flight.c b/src/ao_flight.c index 843865e8..8e370c4f 100644 --- a/src/ao_flight.c +++ b/src/ao_flight.c @@ -358,10 +358,6 @@ ao_flight(void) * (or uncalibrated values), so we go into invalid mode */ ao_flight_state = ao_flight_invalid; - /* Allow packet mode in invalid flight state, - * Still need to be able to fix the problem! - */ - ao_packet_slave_start(); } else #endif @@ -380,6 +376,10 @@ ao_flight(void) */ ao_usb_disable(); #endif + + /* Disable packet mode in pad state */ + ao_packet_slave_stop(); + /* Turn on telemetry system */ ao_rdf_set(1); ao_telemetry_set_interval(AO_TELEMETRY_INTERVAL_PAD); @@ -390,9 +390,6 @@ ao_flight(void) /* Set idle mode */ ao_flight_state = ao_flight_idle; - /* Turn on packet system in idle mode */ - ao_packet_slave_start(); - /* signal successful initialization by turning off the LED */ ao_led_off(AO_LED_RED); } diff --git a/src/ao_packet_slave.c b/src/ao_packet_slave.c index 39d04bbb..eb456dab 100644 --- a/src/ao_packet_slave.c +++ b/src/ao_packet_slave.c @@ -26,6 +26,9 @@ ao_packet_slave(void) while (ao_packet_enable) { if (ao_packet_recv()) { memcpy(&ao_tx_packet.callsign, &ao_rx_packet.packet.callsign, AO_MAX_CALLSIGN); +#if HAS_FLIGHT + ao_flight_force_idle = TRUE; +#endif ao_packet_send(); } } @@ -60,4 +63,5 @@ ao_packet_slave_init(void) ao_add_stdio(ao_packet_pollchar, ao_packet_putchar, NULL); + ao_packet_slave_start(); } diff --git a/src/ao_pins.h b/src/ao_pins.h index 59604588..a486b9ba 100644 --- a/src/ao_pins.h +++ b/src/ao_pins.h @@ -19,6 +19,7 @@ #define _AO_PINS_H_ #if defined(TELEMETRUM_V_1_0) + #define HAS_FLIGHT 1 #define HAS_USB 1 #define HAS_BEEP 1 #define HAS_GPS 1 @@ -39,6 +40,7 @@ #endif #if defined(TELEMETRUM_V_1_1) + #define HAS_FLIGHT 1 #define HAS_USB 1 #define HAS_BEEP 1 #define HAS_GPS 1 @@ -63,6 +65,7 @@ #endif #if defined(TELEDONGLE_V_0_2) + #define HAS_FLIGHT 0 #define HAS_USB 1 #define HAS_BEEP 0 #define HAS_SERIAL_1 0 @@ -81,6 +84,7 @@ #endif #if defined(TELEMETRUM_V_0_1) + #define HAS_FLIGHT 1 #define HAS_USB 1 #define HAS_BEEP 1 #define HAS_GPS 1 @@ -103,6 +107,7 @@ #endif #if defined(TELEDONGLE_V_0_1) + #define HAS_FLIGHT 0 #define HAS_USB 1 #define HAS_BEEP 0 #define HAS_SERIAL_1 0 @@ -121,6 +126,7 @@ #endif #if defined(TIDONGLE) + #define HAS_FLIGHT 0 #define HAS_USB 1 #define HAS_BEEP 0 #define HAS_SERIAL_1 0 |