diff options
| author | Keith Packard <keithp@keithp.com> | 2011-09-27 21:06:54 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2011-10-07 08:37:02 -0600 | 
| commit | 0d10e25766b96f5660e213115cf27b71ff164405 (patch) | |
| tree | 187adf89dd3fa33dcb2fd21af92ecd3f22728d80 /src | |
| parent | fba1d605a627d03f9587ec060c45fb5d3e96aaeb (diff) | |
altos: TM: Don't turn on packet slave mode until idle/invalid state
Leave the packet link disabled until we've checked the
accelerometer. That way, we cannot accidentally get to idle mode when
the rocket is on the rail.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/ao_flight.c | 11 | ||||
| -rw-r--r-- | src/ao_packet_slave.c | 6 | ||||
| -rw-r--r-- | src/ao_telemetrum.c | 2 | 
3 files changed, 15 insertions, 4 deletions
diff --git a/src/ao_flight.c b/src/ao_flight.c index 85c1825b..0a9cc046 100644 --- a/src/ao_flight.c +++ b/src/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);  			} diff --git a/src/ao_packet_slave.c b/src/ao_packet_slave.c index 9f14052a..d7cafa68 100644 --- a/src/ao_packet_slave.c +++ b/src/ao_packet_slave.c @@ -37,8 +37,10 @@ ao_packet_slave(void)  void  ao_packet_slave_start(void)  { -	ao_packet_enable = 1; -	ao_add_task(&ao_packet_task, ao_packet_slave, "slave"); +	if (!ao_packet_enable) { +		ao_packet_enable = 1; +		ao_add_task(&ao_packet_task, ao_packet_slave, "slave"); +	}  }  void diff --git a/src/ao_telemetrum.c b/src/ao_telemetrum.c index f560740a..ea77f5af 100644 --- a/src/ao_telemetrum.c +++ b/src/ao_telemetrum.c @@ -57,7 +57,7 @@ main(void)  	ao_gps_report_init();  	ao_telemetry_init();  	ao_radio_init(); -	ao_packet_slave_init(TRUE); +	ao_packet_slave_init(FALSE);  	ao_igniter_init();  #if HAS_DBG  	ao_dbg_init();  | 
