diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/ao_cmd.c | 6 | ||||
| -rw-r--r-- | src/core/ao_flight.c | 11 | 
2 files changed, 16 insertions, 1 deletions
| diff --git a/src/core/ao_cmd.c b/src/core/ao_cmd.c index d0a46633..2b64b8ca 100644 --- a/src/core/ao_cmd.c +++ b/src/core/ao_cmd.c @@ -227,6 +227,12 @@ ao_reboot(void)  	ao_cmd_white();  	if (!ao_match_word("eboot"))  		return; +	/* Delay waiting for the packet master to be turned off +	 * so that we don't end up back in idle mode because we +	 * received a packet after boot. +	 */ +	flush(); +	ao_delay(AO_SEC_TO_TICKS(1));  	ao_arch_reboot();  	ao_panic(AO_PANIC_REBOOT);  } diff --git a/src/core/ao_flight.c b/src/core/ao_flight.c index a5cf7468..433efeae 100644 --- a/src/core/ao_flight.c +++ b/src/core/ao_flight.c @@ -91,6 +91,8 @@ ao_flight(void)  				 */  				ao_flight_state = ao_flight_invalid; +				/* Turn on packet system in invalid mode on TeleMetrum */ +				ao_packet_slave_start();  			} else  #endif  				if (!ao_flight_force_idle @@ -108,8 +110,10 @@ ao_flight(void)  				ao_usb_disable();  #endif -				/* Disable packet mode in pad state */ +#if !HAS_ACCEL +				/* Disable packet mode in pad state on TeleMini */  				ao_packet_slave_stop(); +#endif  				/* Turn on telemetry system */  				ao_rdf_set(1); @@ -121,6 +125,11 @@ ao_flight(void)  				/* Set idle mode */   				ao_flight_state = ao_flight_idle; +#if HAS_ACCEL +				/* Turn on packet system in idle mode on TeleMetrum */ +				ao_packet_slave_start(); +#endif +  				/* signal successful initialization by turning off the LED */  				ao_led_off(AO_LED_RED);  			} | 
