Ref T690, aded SVFR and DVFR to FP

This commit is contained in:
Klaus Basan
2019-06-25 14:40:02 +02:00
committed by Mat Sutcliffe
parent 4ecd8a78ad
commit fba288edc3
5 changed files with 95 additions and 13 deletions

View File

@@ -186,6 +186,12 @@ namespace BlackMisc
m_equipmentSuffix = parts[2];
}
void CFlightPlan::setFlightRule(const QString &flightRule)
{
const CFlightPlan::FlightRules r = CFlightPlan::stringToFlightRules(flightRule);
this->setFlightRule(r);
}
void CFlightPlan::setRoute(const QString &route)
{
QString r = route;
@@ -508,7 +514,7 @@ namespace BlackMisc
return CFlightPlan();
}
const QString &CFlightPlan::flightRuleToString(CFlightPlan::FlightRules rule)
const QString &CFlightPlan::flightRulesToString(CFlightPlan::FlightRules rules)
{
static const QString v("VFR");
static const QString i("IFR");
@@ -516,7 +522,7 @@ namespace BlackMisc
static const QString d("DVFR");
static const QString unknown("???");
switch (rule)
switch (rules)
{
case VFR: return v;
case IFR: return i;
@@ -604,6 +610,34 @@ namespace BlackMisc
return UNKNOWN;
}
const QStringList &CFlightPlan::flightRules()
{
static const QStringList r({"VFR", "IFR", "SVFR", "DVFR" });
return r;
}
bool CFlightPlan::isVFRRules(CFlightPlan::FlightRules rule)
{
return rule == CFlightPlan::VFR || rule == CFlightPlan::DVFR || rule == CFlightPlan::SVFR;
}
bool CFlightPlan::isVFRRules(const QString &rule)
{
const CFlightPlan::FlightRules r = CFlightPlan::stringToFlightRules(rule);
return CFlightPlan::isVFRRules(r);
}
bool CFlightPlan::isIFRRules(CFlightPlan::FlightRules rule)
{
return rule == CFlightPlan::IFR;
}
bool CFlightPlan::isIFRRules(const QString &rule)
{
const CFlightPlan::FlightRules r = CFlightPlan::stringToFlightRules(rule);
return CFlightPlan::isIFRRules(r);
}
const QStringList &CFlightPlan::faaEquipmentCodes()
{
// List of FAA Aircraft Equipment Codes For US Domestic Flights

View File

@@ -241,7 +241,10 @@ namespace BlackMisc
void setCruiseTrueAirspeed(const PhysicalQuantities::CSpeed &cruiseTrueAirspeed) { m_cruiseTrueAirspeed = cruiseTrueAirspeed; }
//! Set flight rules (VFR or IFR)
void setFlightRule(FlightRules flightRules) { m_flightRules = flightRules; }
void setFlightRule(FlightRules flightRule) { m_flightRules = flightRule; }
//! Set flight rules (VFR or IFR)
void setFlightRule(const QString &flightRule);
//! Set route string
void setRoute(const QString &route);
@@ -310,7 +313,7 @@ namespace BlackMisc
FlightRules getFlightRulesAsVFRorIFR() const;
//! Get flight rules as in FlightRules as string
QString getFlightRulesAsString() const { return CFlightPlan::flightRuleToString(this->getFlightRules()); }
QString getFlightRulesAsString() const { return CFlightPlan::flightRulesToString(this->getFlightRules()); }
//! Get route string
const QString &getRoute() const { return m_route; }
@@ -385,11 +388,26 @@ namespace BlackMisc
static CFlightPlan loadFromMultipleFormats(const QString &fileName, CStatusMessageList *msgs = nullptr);
//! Rules to string
static const QString &flightRuleToString(FlightRules rule);
static const QString &flightRulesToString(FlightRules rules);
//! String to flight rules
static FlightRules stringToFlightRules(const QString &flightRules);
//! All rules as string
static const QStringList &flightRules();
//! Is rule a VFR rule?
//! @{
static bool isVFRRules(FlightRules rule);
static bool isVFRRules(const QString &rule);
//! @}
//! Is rule a IFR rule?
//! @{
static bool isIFRRules(FlightRules rule);
static bool isIFRRules(const QString &rule);
//! @}
//! Get aircraft ICAO code from equipment code like
//! \remark we expect something like "H/B772/F" "B773" "B773/F"
static QString aircraftIcaoCodeFromEquipmentCode(const QString &equipmentCodeAndAircraft);