Report ErrRecovery only when there is actual event

SystemStatus needs to report ErrRecovery events
only when they actually happen (value != 0).

Change-Id: I282d9c703542ef4bfd61ded78b903017816bd2cb
CRs-Fixed: 2491022
This commit is contained in:
Kevin Tang 2019-07-17 12:06:57 -07:00
parent 3bbb89aee1
commit 1a16ef3803
2 changed files with 20 additions and 15 deletions

View file

@ -1338,6 +1338,9 @@ SystemStatus::SystemStatus(const MsgTask* msgTask) :
template <typename TYPE_REPORT, typename TYPE_ITEM>
bool SystemStatus::setIteminReport(TYPE_REPORT& report, TYPE_ITEM&& s)
{
if (s.ignore()) {
return false;
}
if (!report.empty() && report.back().equals(static_cast<TYPE_ITEM&>(s.collate(report.back())))) {
// there is no change - just update reported timestamp
report.back().mUtcReported = s.mUtcReported;

View file

@ -86,6 +86,7 @@ public:
return *this;
}
virtual void dump(void) {};
inline virtual bool ignore() { return false; };
};
class SystemStatusLocation : public SystemStatusItemBase
@ -102,7 +103,7 @@ public:
mLocation(location),
mLocationEx(locationEx) {}
bool equals(const SystemStatusLocation& peer);
void dump(void);
void dump(void) override;
};
class SystemStatusPQWM1;
@ -132,7 +133,7 @@ public:
mTimeUncNs(0ULL) {}
inline SystemStatusTimeAndClock(const SystemStatusPQWM1& nmea);
bool equals(const SystemStatusTimeAndClock& peer);
void dump(void);
void dump(void) override;
};
class SystemStatusXoState : public SystemStatusItemBase
@ -143,7 +144,7 @@ public:
mXoState(0) {}
inline SystemStatusXoState(const SystemStatusPQWM1& nmea);
bool equals(const SystemStatusXoState& peer);
void dump(void);
void dump(void) override;
};
class SystemStatusRfAndParams : public SystemStatusItemBase
@ -190,7 +191,7 @@ public:
mGalBpAmpQ(0) {}
inline SystemStatusRfAndParams(const SystemStatusPQWM1& nmea);
bool equals(const SystemStatusRfAndParams& peer);
void dump(void);
void dump(void) override;
};
class SystemStatusErrRecovery : public SystemStatusItemBase
@ -201,7 +202,8 @@ public:
mRecErrorRecovery(0) {};
inline SystemStatusErrRecovery(const SystemStatusPQWM1& nmea);
bool equals(const SystemStatusErrRecovery& peer);
void dump(void);
inline bool ignore() override { return 0 == mRecErrorRecovery; };
void dump(void) override;
};
class SystemStatusPQWP1;
@ -225,7 +227,7 @@ public:
mEpiSrc(0) {}
inline SystemStatusInjectedPosition(const SystemStatusPQWP1& nmea);
bool equals(const SystemStatusInjectedPosition& peer);
void dump(void);
void dump(void) override;
};
class SystemStatusPQWP2;
@ -247,7 +249,7 @@ public:
mBestAltUnc(0) {}
inline SystemStatusBestPosition(const SystemStatusPQWP2& nmea);
bool equals(const SystemStatusBestPosition& peer);
void dump(void);
void dump(void) override;
};
class SystemStatusPQWP3;
@ -283,7 +285,7 @@ public:
mNavicXtraValid(0) {}
inline SystemStatusXtra(const SystemStatusPQWP3& nmea);
bool equals(const SystemStatusXtra& peer);
void dump(void);
void dump(void) override;
};
class SystemStatusPQWP4;
@ -303,7 +305,7 @@ public:
mQzssEpheValid(0) {}
inline SystemStatusEphemeris(const SystemStatusPQWP4& nmea);
bool equals(const SystemStatusEphemeris& peer);
void dump(void);
void dump(void) override;
};
class SystemStatusPQWP5;
@ -349,7 +351,7 @@ public:
mNavicBadMask(0) {}
inline SystemStatusSvHealth(const SystemStatusPQWP5& nmea);
bool equals(const SystemStatusSvHealth& peer);
void dump(void);
void dump(void) override;
};
class SystemStatusPQWP6;
@ -361,7 +363,7 @@ public:
mFixInfoMask(0) {}
inline SystemStatusPdr(const SystemStatusPQWP6& nmea);
bool equals(const SystemStatusPdr& peer);
void dump(void);
void dump(void) override;
};
class SystemStatusPQWP7;
@ -385,7 +387,7 @@ public:
}
inline SystemStatusNavData(const SystemStatusPQWP7& nmea);
bool equals(const SystemStatusNavData& peer);
void dump(void);
void dump(void) override;
};
class SystemStatusPQWS1;
@ -399,7 +401,7 @@ public:
mHepeLimit(0) {}
inline SystemStatusPositionFailure(const SystemStatusPQWS1& nmea);
bool equals(const SystemStatusPositionFailure& peer);
void dump(void);
void dump(void) override;
};
/******************************************************************************
@ -710,7 +712,7 @@ public:
inline bool equals(const SystemStatusTac& peer) {
return (mValue == peer.mValue);
}
inline void dump(void) {
inline void dump(void) override {
LOC_LOGD("Tac: value=%s", mValue.c_str());
}
};
@ -726,7 +728,7 @@ public:
inline bool equals(const SystemStatusMccMnc& peer) {
return (mValue == peer.mValue);
}
inline void dump(void) {
inline void dump(void) override {
LOC_LOGD("TacMccMnc value=%s", mValue.c_str());
}
};