diff options
| author | Keith Packard <keithp@keithp.com> | 2014-09-01 18:12:29 -0500 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2014-09-01 18:12:29 -0500 | 
| commit | a4202b4180e77e2a39ca071d3b8b8256ff0fc7b5 (patch) | |
| tree | 598f94e9075a181a5f211017d3106e69a8baf38d /src | |
| parent | aa7dd289ee72f7a49a08ce0229c4e0e0404499d0 (diff) | |
altos: Don't add AO_LOG_FLIGHT to existing GPS logs
When appending to a TeleGPS log, don't stick another flight value into
the log. That just confuses the ground station software.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/kernel/ao_log.c | 13 | ||||
| -rw-r--r-- | src/kernel/ao_log.h | 2 | ||||
| -rw-r--r-- | src/kernel/ao_tracker.c | 5 | 
3 files changed, 13 insertions, 7 deletions
| diff --git a/src/kernel/ao_log.c b/src/kernel/ao_log.c index dc3b6486..40a96ef7 100644 --- a/src/kernel/ao_log.c +++ b/src/kernel/ao_log.c @@ -192,12 +192,14 @@ ao_log_find_max_erase_flight(void) __reentrant  		ao_flight_number = 1;  } -void +uint8_t  ao_log_scan(void) __reentrant  {  	uint8_t		log_slot;  	uint8_t		log_slots; -#if !FLIGHT_LOG_APPEND +#if FLIGHT_LOG_APPEND +	uint8_t		ret; +#else  	uint8_t		log_want;  #endif @@ -248,9 +250,13 @@ ao_log_scan(void) __reentrant  				empty = ao_log_current_pos;  			}  		} +		ret = 1;  	} else {  		ao_log_find_max_erase_flight(); +		ret = 0;  	} +	ao_wakeup(&ao_flight_number); +	return ret;  #else  	if (ao_flight_number) @@ -278,8 +284,9 @@ ao_log_scan(void) __reentrant  		if (++log_slot >= log_slots)  			log_slot = 0;  	} while (log_slot != log_want); -#endif  	ao_wakeup(&ao_flight_number); +	return 0; +#endif  }  void diff --git a/src/kernel/ao_log.h b/src/kernel/ao_log.h index c5fa7fab..c13a2580 100644 --- a/src/kernel/ao_log.h +++ b/src/kernel/ao_log.h @@ -72,7 +72,7 @@ ao_log(void);  /* functions provided in ao_log.c */  /* Figure out the current flight number */ -void +uint8_t  ao_log_scan(void) __reentrant;  /* Return the position of the start of the given log slot */ diff --git a/src/kernel/ao_tracker.c b/src/kernel/ao_tracker.c index d9434048..9b007af8 100644 --- a/src/kernel/ao_tracker.c +++ b/src/kernel/ao_tracker.c @@ -72,7 +72,7 @@ ao_tracker(void)  #if !HAS_USB_CONNECT  	ao_tracker_force_telem = 1;  #endif -	ao_log_scan(); +	log_started = ao_log_scan();  	ao_rdf_set(1); @@ -181,8 +181,7 @@ void  ao_tracker_erase_end(void)  {  	if (erasing_current) { -		ao_log_scan(); -		log_started = 0; +		log_started = ao_log_scan();  		ao_mutex_put(&tracker_mutex);  	}  } | 
