Ref T259, Ref T243 details for aircraft parts

This commit is contained in:
Klaus Basan
2018-04-05 02:44:48 +02:00
committed by Roland Winklmeier
parent c1ac229875
commit c3f05ea1cd
3 changed files with 43 additions and 2 deletions

View File

@@ -25,7 +25,8 @@ namespace BlackMisc
QString CAircraftParts::convertToQString(bool i18n) const
{
return QStringLiteral("ts: ") % this->getFormattedTimestampAndOffset(true) %
QStringLiteral(" on ground: ") % BlackMisc::boolToYesNo(m_isOnGround) %
QStringLiteral(" details: ") % this->getPartsDetailsAsString() %
QStringLiteral(" | on ground: ") % BlackMisc::boolToYesNo(m_isOnGround) %
QStringLiteral(" | lights: ") % m_lights.toQString(i18n) %
QStringLiteral(" | gear down: ") % BlackMisc::boolToYesNo(m_gearDown) %
QStringLiteral(" | flaps pct: ") % QString::number(m_flapsPercentage) %
@@ -77,9 +78,26 @@ namespace BlackMisc
}
}
parts.setEngines(engines);
parts.setPartsDetails(GuessedParts);
return parts;
}
const QString &CAircraftParts::partsDetailsToString(CAircraftParts::PartsDetails details)
{
static const QString guessed("guessed");
static const QString notset("not set");
static const QString fsd("FSD parts");
switch (details)
{
case GuessedParts: return guessed;
case FSDAircraftParts: return fsd;
case NotSet: break;
default: break;
}
return notset;
}
CVariant CAircraftParts::propertyByIndex(const BlackMisc::CPropertyIndex &index) const
{
if (index.isMyself()) { return CVariant::from(*this); }

View File

@@ -48,6 +48,14 @@ namespace BlackMisc
IndexOnGround
};
//! Parts Details
enum PartsDetails
{
NotSet,
FSDAircraftParts,
GuessedParts
};
//! Default constructor
CAircraftParts() {}
@@ -130,6 +138,15 @@ namespace BlackMisc
//! Set aircraft on ground
void setOnGround(bool onGround) { m_isOnGround = onGround; }
//! Get parts details
PartsDetails getPartsDetails() const { return static_cast<PartsDetails>(m_partsDetails); }
//! Parts details as string
const QString &getPartsDetailsAsString() const { return partsDetailsToString(this->getPartsDetails()); }
//! Set parts details
void setPartsDetails(PartsDetails details) { m_partsDetails = static_cast<int>(details); }
//! Guess the parts
void guessParts(const CAircraftSituation &situation);
@@ -142,9 +159,13 @@ namespace BlackMisc
//! Guessed parts
static CAircraftParts guessedParts(const CAircraftSituation &situation, bool vtol = false, int engineNumber = 4);
//! Convert to QString
static const QString &partsDetailsToString(PartsDetails details);
private:
CAircraftLights m_lights;
CAircraftEngineList m_engines;
int m_partsDetails = static_cast<int>(NotSet);
int m_flapsPercentage = 0;
bool m_gearDown = false;
bool m_spoilersOut = false;
@@ -158,6 +179,7 @@ namespace BlackMisc
BLACK_METAMEMBER_NAMED(spoilersOut, "spoilers_out"),
BLACK_METAMEMBER_NAMED(engines, "engines"),
BLACK_METAMEMBER_NAMED(isOnGround, "on_ground"),
BLACK_METAMEMBER(partsDetails, 0, DisabledForJson | DisabledForComparison),
BLACK_METAMEMBER(timestampMSecsSinceEpoch, 0, DisabledForJson | DisabledForComparison),
BLACK_METAMEMBER(timeOffsetMs, 0, DisabledForJson | DisabledForComparison)
);

View File

@@ -257,9 +257,10 @@ namespace BlackMisc
CLogMessage::preformatted(message);
}
// make sure in any case right time
// make sure in any case right time and correct details
parts.setCurrentUtcTime();
parts.setTimeOffsetMs(currentOffset);
parts.setPartsDetails(CAircraftParts::FSDAircraftParts);
// store part history (parts always absolute)
this->storeAircraftParts(callsign, parts, false);