From 33acce71c80417468af4ed2990f828a024a8bcdb Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 14 Jan 2014 14:40:10 +1100 Subject: [PATCH] Rover: prevent log corruption during log creation --- APMrover2/GCS_Mavlink.pde | 2 +- APMrover2/Log.pde | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/APMrover2/GCS_Mavlink.pde b/APMrover2/GCS_Mavlink.pde index 6bdebf4637..93a7fd0e97 100644 --- a/APMrover2/GCS_Mavlink.pde +++ b/APMrover2/GCS_Mavlink.pde @@ -1885,7 +1885,7 @@ void GCS_MAVLINK::handleMessage(mavlink_message_t* msg) static void mavlink_delay_cb() { static uint32_t last_1hz, last_50hz, last_5s; - if (!gcs[0].initialised) return; + if (!gcs[0].initialised || in_mavlink_delay) return; in_mavlink_delay = true; diff --git a/APMrover2/Log.pde b/APMrover2/Log.pde index a1df4e51ea..4e09d85746 100644 --- a/APMrover2/Log.pde +++ b/APMrover2/Log.pde @@ -568,7 +568,9 @@ static void Log_Read(uint16_t log_num, uint16_t start_page, uint16_t end_page) // start a new log static void start_logging() { + in_mavlink_delay = true; DataFlash.StartNewLog(); + in_mavlink_delay = false; DataFlash.Log_Write_Message_P(PSTR(FIRMWARE_STRING)); // write system identifier as well if available