Ref T259, Ref T243 renaming and adding flags in situation to also represent inbound situations

This commit is contained in:
Klaus Basan
2018-03-04 22:34:19 +01:00
parent 7beab371a1
commit 67e8f94481
4 changed files with 48 additions and 36 deletions

View File

@@ -77,23 +77,29 @@ namespace BlackMisc
}
}
const QString &CAircraftSituation::onGroundReliabilityToString(CAircraftSituation::OnGroundReliability reliability)
const QString &CAircraftSituation::onGroundDetailsToString(CAircraftSituation::OnGroundDetails reliability)
{
static const QString elv("elevation");
static const QString elvCg("elevation/CG");
static const QString inter("interpolation");
static const QString guess("guessing");
static const QString intElv("elevation");
static const QString intElvCg("elevation/CG");
static const QString intInter("interpolation");
static const QString intGuess("guessing");
static const QString unknown("unknown");
static const QString ownAircraft("own aircraft");
static const QString outOwnAircraft("own aircraft");
static const QString inNetwork("from network");
static const QString inFromParts("from parts");
static const QString InNoGroundInfo("no gnd.info");
switch (reliability)
{
case CAircraftSituation::OnGroundByElevation: return elv;
case CAircraftSituation::OnGroundByElevationAndCG: return elvCg;
case CAircraftSituation::OnGroundByGuessing: return guess;
case CAircraftSituation::OnGroundByInterpolation: return inter;
case CAircraftSituation::OnGroundOwnAircraft: return ownAircraft;
case CAircraftSituation::OnGroundReliabilityNoSet:
case CAircraftSituation::OnGroundByElevation: return intElv;
case CAircraftSituation::OnGroundByElevationAndCG: return intElvCg;
case CAircraftSituation::OnGroundByGuessing: return intGuess;
case CAircraftSituation::OnGroundByInterpolation: return intInter;
case CAircraftSituation::OutOnGroundOwnAircraft: return outOwnAircraft;
case CAircraftSituation::InFromNetworkSituation: return inNetwork;
case CAircraftSituation::InFromParts: return inFromParts;
case CAircraftSituation::InNoGroundInfo: return InNoGroundInfo;
case CAircraftSituation::NotSet:
default:
return unknown;
}
@@ -120,8 +126,8 @@ namespace BlackMisc
case IndexCallsign: return m_correspondingCallsign.propertyByIndex(index.copyFrontRemoved());
case IndexIsOnGround: return CVariant::fromValue(m_isOnGround);
case IndexIsOnGroundString: return CVariant::fromValue(this->isOnGroundAsString());
case IndexOnGroundReliability: return CVariant::fromValue(m_onGroundReliability);
case IndexOnGroundReliabilityString: return CVariant::fromValue(this->getOnGroundReliabilityAsString());
case IndexOnGroundReliability: return CVariant::fromValue(m_onGroundDetails);
case IndexOnGroundReliabilityString: return CVariant::fromValue(this->getOnDetailsAsString());
default: return CValueObject::propertyByIndex(index);
}
}
@@ -141,7 +147,7 @@ namespace BlackMisc
case IndexGroundElevation: m_groundElevation.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
case IndexCallsign: m_correspondingCallsign.setPropertyByIndex(index.copyFrontRemoved(), variant); break;
case IndexIsOnGround: m_isOnGround = variant.toInt(); break;
case IndexOnGroundReliability: m_onGroundReliability = variant.toInt(); break;
case IndexOnGroundReliability: m_onGroundDetails = variant.toInt(); break;
default: CValueObject::setPropertyByIndex(index, variant); break;
}
}
@@ -165,7 +171,7 @@ namespace BlackMisc
return Compare::compare(m_isOnGround, compareValue.m_isOnGround);
case IndexOnGroundReliability:
case IndexOnGroundReliabilityString:
return Compare::compare(m_onGroundReliability, compareValue.m_onGroundReliability);
return Compare::compare(m_onGroundDetails, compareValue.m_onGroundDetails);
default: break;
}
const QString assertMsg("No comparison for index " + index.toQString());
@@ -187,7 +193,7 @@ namespace BlackMisc
m_bank.setNull();
m_groundElevation.setNull();
m_groundSpeed.setNull();
m_onGroundReliability = CAircraftSituation::OnGroundReliabilityNoSet;
m_onGroundDetails = CAircraftSituation::NotSet;
}
const QString &CAircraftSituation::isOnGroundAsString() const
@@ -198,23 +204,23 @@ namespace BlackMisc
bool CAircraftSituation::isOnGroundInfoAvailable() const
{
return this->isOnGround() != CAircraftSituation::OnGroundSituationUnknown &&
this->getOnGroundReliability() != CAircraftSituation::OnGroundReliabilityNoSet;
this->getOnGroundDetails() != CAircraftSituation::NotSet;
}
void CAircraftSituation::setOnGround(CAircraftSituation::IsOnGround onGround, CAircraftSituation::OnGroundReliability reliability)
void CAircraftSituation::setOnGround(CAircraftSituation::IsOnGround onGround, CAircraftSituation::OnGroundDetails reliability)
{
this->setOnGround(onGround);
this->setOnGroundReliabiliy(reliability);
}
const QString &CAircraftSituation::getOnGroundReliabilityAsString() const
const QString &CAircraftSituation::getOnDetailsAsString() const
{
return CAircraftSituation::onGroundReliabilityToString(this->getOnGroundReliability());
return CAircraftSituation::onGroundDetailsToString(this->getOnGroundDetails());
}
QString CAircraftSituation::getOnGroundInfo() const
{
return this->isOnGroundAsString() % QLatin1Char(' ') % this->getOnGroundReliabilityAsString();
return this->isOnGroundAsString() % QLatin1Char(' ') % this->getOnDetailsAsString();
}
bool CAircraftSituation::hasGroundElevation() const

View File

@@ -73,14 +73,20 @@ namespace BlackMisc
};
//! Reliability of on ground information
enum OnGroundReliability
enum OnGroundDetails
{
NotSet,
// interpolated situation
OnGroundByInterpolation, //!< strongest for remote aircraft
OnGroundByElevationAndCG,
OnGroundByElevation,
OnGroundByGuessing, //!< weakest
OnGroundReliabilityNoSet,
OnGroundOwnAircraft, //!< sending on ground
// received situation
InFromNetworkSituation, //!< received from network
InFromParts,
InNoGroundInfo,
// send information
OutOnGroundOwnAircraft //!< sending on ground
};
//! Default constructor.
@@ -149,16 +155,16 @@ namespace BlackMisc
void setOnGround(CAircraftSituation::IsOnGround onGround) { m_isOnGround = static_cast<int>(onGround); }
//! Set on ground
void setOnGround(CAircraftSituation::IsOnGround onGround, CAircraftSituation::OnGroundReliability reliability);
void setOnGround(CAircraftSituation::IsOnGround onGround, CAircraftSituation::OnGroundDetails reliability);
//! On ground reliability
OnGroundReliability getOnGroundReliability() const { return static_cast<CAircraftSituation::OnGroundReliability>(m_onGroundReliability); }
OnGroundDetails getOnGroundDetails() const { return static_cast<CAircraftSituation::OnGroundDetails>(m_onGroundDetails); }
//! On ground reliability as string
const QString &getOnGroundReliabilityAsString() const;
const QString &getOnDetailsAsString() const;
//! Reliability
void setOnGroundReliabiliy(CAircraftSituation::OnGroundReliability onGroundReliability) { m_onGroundReliability = static_cast<int>(onGroundReliability); }
void setOnGroundReliabiliy(CAircraftSituation::OnGroundDetails onGroundReliability) { m_onGroundDetails = static_cast<int>(onGroundReliability); }
//! On ground info as string
QString getOnGroundInfo() const;
@@ -254,7 +260,7 @@ namespace BlackMisc
static const QString &isOnGroundToString(IsOnGround onGround);
//! Enum to string
static const QString &onGroundReliabilityToString(OnGroundReliability reliability);
static const QString &onGroundDetailsToString(OnGroundDetails reliability);
private:
CCallsign m_correspondingCallsign;
@@ -264,9 +270,9 @@ namespace BlackMisc
PhysicalQuantities::CAngle m_pitch;
PhysicalQuantities::CAngle m_bank;
PhysicalQuantities::CSpeed m_groundSpeed;
CAltitude m_groundElevation{0, CAltitude::MeanSeaLevel, PhysicalQuantities::CLengthUnit::nullUnit()};
CAltitude m_groundElevation{ 0, CAltitude::MeanSeaLevel, PhysicalQuantities::CLengthUnit::nullUnit() };
int m_isOnGround = static_cast<int>(CAircraftSituation::OnGroundSituationUnknown);
int m_onGroundReliability = static_cast<int>(CAircraftSituation::OnGroundReliabilityNoSet);
int m_onGroundDetails = static_cast<int>(CAircraftSituation::NotSet);
bool m_isInterim = false;
BLACK_METACLASS(
@@ -280,7 +286,7 @@ namespace BlackMisc
BLACK_METAMEMBER(groundSpeed),
BLACK_METAMEMBER(groundElevation),
BLACK_METAMEMBER(isOnGround),
BLACK_METAMEMBER(onGroundReliability),
BLACK_METAMEMBER(onGroundDetails),
BLACK_METAMEMBER(timestampMSecsSinceEpoch),
BLACK_METAMEMBER(timeOffsetMs),
BLACK_METAMEMBER(isInterim)
@@ -291,6 +297,6 @@ namespace BlackMisc
Q_DECLARE_METATYPE(BlackMisc::Aviation::CAircraftSituation)
Q_DECLARE_METATYPE(BlackMisc::Aviation::CAircraftSituation::IsOnGround)
Q_DECLARE_METATYPE(BlackMisc::Aviation::CAircraftSituation::OnGroundReliability)
Q_DECLARE_METATYPE(BlackMisc::Aviation::CAircraftSituation::OnGroundDetails)
#endif // guard

View File

@@ -26,7 +26,7 @@ namespace BlackMisc
CAircraftPartsList::registerMetadata();
CAircraftSituation::registerMetadata();
qRegisterMetaType<CAircraftSituation::IsOnGround>();
qRegisterMetaType<CAircraftSituation::OnGroundReliability>();
qRegisterMetaType<CAircraftSituation::OnGroundDetails>();
CAircraftSituationList::registerMetadata();
CAirlineIcaoCode::registerMetadata();
CAirlineIcaoCodeList::registerMetadata();

View File

@@ -387,7 +387,7 @@ namespace BlackSimPlugin
aircraftSituation.setPressureAltitude(CAltitude(simulatorOwnAircraft.pressureAltitude, CAltitude::MeanSeaLevel, CAltitude::PressureAltitude, CLengthUnit::m()));
// set on ground also in situation for consistency and future usage
// it is duplicated in parts
aircraftSituation.setOnGround(simulatorOwnAircraft.simOnGround ? CAircraftSituation::OnGround : CAircraftSituation::NotOnGround, CAircraftSituation::OnGroundOwnAircraft);
aircraftSituation.setOnGround(simulatorOwnAircraft.simOnGround ? CAircraftSituation::OnGround : CAircraftSituation::NotOnGround, CAircraftSituation::OutOnGroundOwnAircraft);
const CAircraftLights lights(simulatorOwnAircraft.lightStrobe,
simulatorOwnAircraft.lightLanding,