summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ao_flight.c11
-rw-r--r--src/ao_packet_slave.c4
-rw-r--r--src/ao_pins.h6
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