Browse Source

DataFlash: Add logging of EKF GPS check status

master
Paul Riseborough 9 years ago committed by Randy Mackay
parent
commit
ba6387f206
  1. 5
      libraries/DataFlash/DataFlash.h
  2. 10
      libraries/DataFlash/LogFile.cpp

5
libraries/DataFlash/DataFlash.h

@ -445,6 +445,7 @@ struct PACKED log_EKF4 { @@ -445,6 +445,7 @@ struct PACKED log_EKF4 {
uint8_t faults;
uint8_t timeouts;
uint16_t solution;
uint16_t gps;
};
struct PACKED log_EKF5 {
@ -805,7 +806,7 @@ Format characters in the format string for binary log messages @@ -805,7 +806,7 @@ Format characters in the format string for binary log messages
{ LOG_EKF3_MSG, sizeof(log_EKF3), \
"EKF3","Qcccccchhhc","TimeUS,IVN,IVE,IVD,IPN,IPE,IPD,IMX,IMY,IMZ,IVT" }, \
{ LOG_EKF4_MSG, sizeof(log_EKF4), \
"EKF4","QcccccccbbBBH","TimeUS,SV,SP,SH,SMX,SMY,SMZ,SVT,OFN,EFE,FS,TS,SS" }, \
"EKF4","QcccccccbbBBHH","TimeUS,SV,SP,SH,SMX,SMY,SMZ,SVT,OFN,EFE,FS,TS,SS,GPS" }, \
{ LOG_EKF5_MSG, sizeof(log_EKF5), \
"EKF5","QBhhhcccCC","TimeUS,normInnov,FIX,FIY,AFI,HAGL,offset,RI,meaRng,errHAGL" }, \
{ LOG_NKF1_MSG, sizeof(log_EKF1), \
@ -815,7 +816,7 @@ Format characters in the format string for binary log messages @@ -815,7 +816,7 @@ Format characters in the format string for binary log messages
{ LOG_NKF3_MSG, sizeof(log_NKF3), \
"NKF3","Qcccccchhhcc","TimeUS,IVN,IVE,IVD,IPN,IPE,IPD,IMX,IMY,IMZ,IYAW,IVT" }, \
{ LOG_NKF4_MSG, sizeof(log_EKF4), \
"NKF4","QcccccccbbBBH","TimeUS,SV,SP,SH,SMX,SMY,SMZ,SVT,OFN,EFE,FS,TS,SS" }, \
"NKF4","QcccccccbbBBHH","TimeUS,SV,SP,SH,SMX,SMY,SMZ,SVT,OFN,EFE,FS,TS,SS,GPS" }, \
{ LOG_NKF5_MSG, sizeof(log_EKF5), \
"NKF5","QBhhhcccCC","TimeUS,normInnov,FIX,FIY,AFI,HAGL,offset,RI,meaRng,errHAGL" }, \
{ LOG_TERRAIN_MSG, sizeof(log_TERRAIN), \

10
libraries/DataFlash/LogFile.cpp

@ -1225,10 +1225,12 @@ void DataFlash_Class::Log_Write_EKF(AP_AHRS_NavEKF &ahrs, bool optFlowEnabled) @@ -1225,10 +1225,12 @@ void DataFlash_Class::Log_Write_EKF(AP_AHRS_NavEKF &ahrs, bool optFlowEnabled)
Vector2f offset;
uint8_t faultStatus, timeoutStatus;
nav_filter_status solutionStatus;
nav_gps_status gpsStatus {};
ahrs.get_NavEKF().getVariances(velVar, posVar, hgtVar, magVar, tasVar, offset);
ahrs.get_NavEKF().getFilterFaults(faultStatus);
ahrs.get_NavEKF().getFilterTimeouts(timeoutStatus);
ahrs.get_NavEKF().getFilterStatus(solutionStatus);
ahrs.get_NavEKF().getFilterGpsStatus(gpsStatus);
struct log_EKF4 pkt4 = {
LOG_PACKET_HEADER_INIT(LOG_EKF4_MSG),
time_us : hal.scheduler->micros64(),
@ -1243,7 +1245,8 @@ void DataFlash_Class::Log_Write_EKF(AP_AHRS_NavEKF &ahrs, bool optFlowEnabled) @@ -1243,7 +1245,8 @@ void DataFlash_Class::Log_Write_EKF(AP_AHRS_NavEKF &ahrs, bool optFlowEnabled)
offsetEast : (int8_t)(offset.y),
faults : (uint8_t)(faultStatus),
timeouts : (uint8_t)(timeoutStatus),
solution : (uint16_t)(solutionStatus.value)
solution : (uint16_t)(solutionStatus.value),
gps : (uint16_t)(gpsStatus.value)
};
WriteBlock(&pkt4, sizeof(pkt4));
@ -1375,10 +1378,12 @@ void DataFlash_Class::Log_Write_EKF2(AP_AHRS_NavEKF &ahrs, bool optFlowEnabled) @@ -1375,10 +1378,12 @@ void DataFlash_Class::Log_Write_EKF2(AP_AHRS_NavEKF &ahrs, bool optFlowEnabled)
Vector2f offset;
uint8_t faultStatus=0, timeoutStatus=0;
nav_filter_status solutionStatus {};
nav_gps_status gpsStatus {};
ahrs.get_NavEKF2().getVariances(velVar, posVar, hgtVar, magVar, tasVar, offset);
ahrs.get_NavEKF2().getFilterFaults(faultStatus);
ahrs.get_NavEKF2().getFilterTimeouts(timeoutStatus);
ahrs.get_NavEKF2().getFilterStatus(solutionStatus);
ahrs.get_NavEKF2().getFilterGpsStatus(gpsStatus);
struct log_EKF4 pkt4 = {
LOG_PACKET_HEADER_INIT(LOG_NKF4_MSG),
time_us : hal.scheduler->micros64(),
@ -1393,7 +1398,8 @@ void DataFlash_Class::Log_Write_EKF2(AP_AHRS_NavEKF &ahrs, bool optFlowEnabled) @@ -1393,7 +1398,8 @@ void DataFlash_Class::Log_Write_EKF2(AP_AHRS_NavEKF &ahrs, bool optFlowEnabled)
offsetEast : (int8_t)(offset.y),
faults : (uint8_t)(faultStatus),
timeouts : (uint8_t)(timeoutStatus),
solution : (uint16_t)(solutionStatus.value)
solution : (uint16_t)(solutionStatus.value),
gps : (uint16_t)(gpsStatus.value)
};
WriteBlock(&pkt4, sizeof(pkt4));

Loading…
Cancel
Save