diff --git a/ArduPlane/ArduPlane.pde b/ArduPlane/ArduPlane.pde index 567361dab1..4e8a610936 100644 --- a/ArduPlane/ArduPlane.pde +++ b/ArduPlane/ArduPlane.pde @@ -1041,6 +1041,10 @@ static void one_second_loop() terrain.log_terrain_data(DataFlash); } #endif + // piggyback the status log entry on the MODE log entry flag + if (should_log(MASK_LOG_MODE)) { + Log_Write_Status(); + } } static void log_perf_info() diff --git a/ArduPlane/Log.pde b/ArduPlane/Log.pde index c50c520c3a..a7ddb560d3 100644 --- a/ArduPlane/Log.pde +++ b/ArduPlane/Log.pde @@ -320,6 +320,25 @@ static void Log_Write_Nav_Tuning() DataFlash.WriteBlock(&pkt, sizeof(pkt)); } +struct PACKED log_Status { + LOG_PACKET_HEADER; + uint32_t timestamp; + uint8_t is_flying; + float is_flying_probability; +}; + +static void Log_Write_Status() +{ + struct log_Status pkt = { + LOG_PACKET_HEADER_INIT(LOG_STATUS_MSG) + ,timestamp : hal.scheduler->millis() + ,is_flying : is_flying() + ,is_flying_probability : isFlyingProbability + }; + + DataFlash.WriteBlock(&pkt, sizeof(pkt)); +} + struct PACKED log_Sonar { LOG_PACKET_HEADER; uint32_t timestamp; @@ -450,6 +469,8 @@ static const struct LogStructure log_structure[] PROGMEM = { "ARM", "IHB", "TimeMS,ArmState,ArmChecks" }, { LOG_ATRP_MSG, sizeof(AP_AutoTune::log_ATRP), "ATRP", "IBBcfff", "TimeMS,Type,State,Servo,Demanded,Achieved,P" }, + { LOG_STATUS_MSG, sizeof(log_Status), + "STAT", "IBf", "TimeMS,isFlying,isFlyProb" }, #if OPTFLOW == ENABLED { LOG_OPTFLOW_MSG, sizeof(log_Optflow), "OF", "IBffff", "TimeMS,Qual,flowX,flowY,bodyX,bodyY" }, @@ -505,6 +526,7 @@ static void Log_Write_IMU() {} static void Log_Write_RC() {} static void Log_Write_Airspeed(void) {} static void Log_Write_Baro(void) {} +static void Log_Write_Status() {} static void Log_Write_Sonar() {} #if OPTFLOW == ENABLED static void Log_Write_Optflow() {} diff --git a/ArduPlane/defines.h b/ArduPlane/defines.h index 03f7eb4d31..d5e0ca89d8 100644 --- a/ArduPlane/defines.h +++ b/ArduPlane/defines.h @@ -121,7 +121,8 @@ enum log_messages { LOG_COMPASS2_MSG_DEPRECATED, LOG_ARM_DISARM_MSG, LOG_AIRSPEED_MSG_DEPRECATED, // deprecated - LOG_COMPASS3_MSG_DEPRECATED + LOG_COMPASS3_MSG_DEPRECATED, + LOG_STATUS_MSG #if OPTFLOW == ENABLED ,LOG_OPTFLOW_MSG #endif