From: Keith Packard Date: Mon, 7 Mar 2011 05:00:52 +0000 (-0800) Subject: altos: Start with packet slave running. Turn off in pad mode. X-Git-Tag: 0.9.3~146 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=2d41358c80f2eb8b6e98d699149bb941a6671475 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 --- 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