summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-09-01 18:12:29 -0500
committerKeith Packard <keithp@keithp.com>2014-09-01 18:12:29 -0500
commita4202b4180e77e2a39ca071d3b8b8256ff0fc7b5 (patch)
tree598f94e9075a181a5f211017d3106e69a8baf38d /src
parentaa7dd289ee72f7a49a08ce0229c4e0e0404499d0 (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.c13
-rw-r--r--src/kernel/ao_log.h2
-rw-r--r--src/kernel/ao_tracker.c5
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);
}
}