ArduPlane: Log isFlying status

Log is_flying() status and its float probability in new STAT msg
and piggyback on MODE bitmask flag.
This commit is contained in:
Tom Pittenger 2015-04-10 10:42:48 +09:00 committed by Andrew Tridgell
parent 1f80e8859c
commit f5dfe7c650
3 changed files with 28 additions and 1 deletions

View File

@ -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()

View File

@ -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() {}

View File

@ -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