mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-20 12:35:43 +08:00
Renamed to failoverValidAirlineIcaoDesignator and check airline ICAO designator against swift DB
This commit is contained in:
committed by
Mathew Sutcliffe
parent
f98b612797
commit
510666622c
@@ -47,10 +47,13 @@ namespace BlackCore
|
||||
CAircraftMatcher::~CAircraftMatcher()
|
||||
{ }
|
||||
|
||||
CAirlineIcaoCode CAircraftMatcher::failoverValidAirlineIcao(const CCallsign &callsign, const QString &primaryIcao, const QString &secondaryIcao, bool airlineFromCallsign, CStatusMessageList *log)
|
||||
CAirlineIcaoCode CAircraftMatcher::failoverValidAirlineIcaoDesignator(
|
||||
const CCallsign &callsign, const QString &primaryIcao, const QString &secondaryIcao,
|
||||
bool airlineFromCallsign, bool useWebServices, CStatusMessageList *log)
|
||||
{
|
||||
if (CAirlineIcaoCode::isValidAirlineDesignator(primaryIcao)) { return CAirlineIcaoCode(primaryIcao); }
|
||||
if (CAirlineIcaoCode::isValidAirlineDesignator(secondaryIcao))
|
||||
CMatchingUtils::addLogDetailsToList(log, callsign, QString("Find airline designator from 1st: '%1' 2nd: '%2', callsign airline: %3 web service: %4").arg(primaryIcao, secondaryIcao, boolToYesNo(airlineFromCallsign), boolToYesNo(useWebServices)), getLogCategories());
|
||||
if (CAircraftMatcher::isValidAirlineIcaoDesignator(primaryIcao, useWebServices)) { return CAirlineIcaoCode(primaryIcao); }
|
||||
if (CAircraftMatcher::isValidAirlineIcaoDesignator(secondaryIcao, useWebServices))
|
||||
{
|
||||
CMatchingUtils::addLogDetailsToList(log, callsign, QString("Using secondary airline ICAO '%1', primary '%2' not valid").arg(secondaryIcao, primaryIcao), getLogCategories());
|
||||
return CAirlineIcaoCode(secondaryIcao);
|
||||
@@ -58,7 +61,7 @@ namespace BlackCore
|
||||
if (airlineFromCallsign)
|
||||
{
|
||||
const QString airlineSuffix = callsign.getAirlineSuffix();
|
||||
if (CAirlineIcaoCode::isValidAirlineDesignator(airlineSuffix))
|
||||
if (CAircraftMatcher::isValidAirlineIcaoDesignator(airlineSuffix, useWebServices))
|
||||
{
|
||||
CMatchingUtils::addLogDetailsToList(log, callsign, QString("Using airline from callsign '%1', suffix: '%2'").arg(callsign.toQString(), airlineSuffix), getLogCategories());
|
||||
return CAirlineIcaoCode(airlineSuffix);
|
||||
@@ -1006,4 +1009,12 @@ namespace BlackCore
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
bool CAircraftMatcher::isValidAirlineIcaoDesignator(const QString &designator, bool checkAgainstSwiftDb)
|
||||
{
|
||||
if (!CAirlineIcaoCode::isValidAirlineDesignator(designator)) { return false; }
|
||||
if (!checkAgainstSwiftDb) { return true; }
|
||||
if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return true; }
|
||||
return (sApp->getWebDataServices()->containsAirlineIcaoDesignator(designator));
|
||||
}
|
||||
} // namespace
|
||||
|
||||
@@ -75,10 +75,10 @@ namespace BlackCore
|
||||
|
||||
//! Return the airline ICAO being valid
|
||||
//! \threadsafe
|
||||
static BlackMisc::Aviation::CAirlineIcaoCode failoverValidAirlineIcao(
|
||||
static BlackMisc::Aviation::CAirlineIcaoCode failoverValidAirlineIcaoDesignator(
|
||||
const BlackMisc::Aviation::CCallsign &callsign,
|
||||
const QString &primaryIcao, const QString &secondaryIcao,
|
||||
bool airlineFromCallsign, BlackMisc::CStatusMessageList *log = nullptr);
|
||||
bool airlineFromCallsign, bool useWebServices, BlackMisc::CStatusMessageList *log = nullptr);
|
||||
|
||||
//! Try to find the corresponding data in DB and get best information for given data
|
||||
//! \threadsafe
|
||||
@@ -206,8 +206,13 @@ namespace BlackCore
|
||||
static BlackMisc::Simulation::CAircraftModelList ifPossibleReduceByMilitaryFlag(const BlackMisc::Simulation::CSimulatedAircraft &remoteAircraft, const BlackMisc::Simulation::CAircraftModelList &inList, bool &reduced, BlackMisc::CStatusMessageList *log);
|
||||
|
||||
//! Scores to string for debugging
|
||||
//! \threadsafe
|
||||
static QString scoresToString(const BlackMisc::Simulation::ScoredModels &scores, int lastElements = 5);
|
||||
|
||||
//! Valid designator, allows to check against swift DB
|
||||
//! \threadsafe
|
||||
static bool isValidAirlineIcaoDesignator(const QString &designator, bool checkAgainstSwiftDb);
|
||||
|
||||
MatchingMode m_matchingMode = All;
|
||||
BlackMisc::Simulation::CAircraftModel m_defaultModel; //!< model to be used as default model
|
||||
BlackMisc::Simulation::CAircraftModelList m_modelSet; //!< models used for model matching
|
||||
|
||||
@@ -926,7 +926,8 @@ namespace BlackCore
|
||||
CAircraftModel::ModelType type, CStatusMessageList *log)
|
||||
{
|
||||
const CFlightPlanRemarks fpRemarks = this->tryToGetFlightPlanRemarks(callsign);
|
||||
CAirlineIcaoCode airlineIcao = CAircraftMatcher::failoverValidAirlineIcao(callsign, airlineIcaoString, fpRemarks.getAirlineIcao(), true, log);
|
||||
CAirlineIcaoCode airlineIcao = CAircraftMatcher::failoverValidAirlineIcaoDesignator(callsign, airlineIcaoString, fpRemarks.getAirlineIcao(), true, true, log);
|
||||
|
||||
CAircraftIcaoCode aircraftIcao(aircraftIcaoString);
|
||||
if (fpRemarks.hasParsedAirlineRemarks())
|
||||
{
|
||||
@@ -934,16 +935,17 @@ namespace BlackCore
|
||||
if (!airlineName.isEmpty())
|
||||
{
|
||||
airlineIcao.setName(airlineName);
|
||||
this->addReverseLookupMessage(callsign, QString("Setting airline name '%1'").arg(airlineName));
|
||||
CMatchingUtils::addLogDetailsToList(log, callsign, QString("Setting airline name '%1'").arg(airlineName), getLogCategories());
|
||||
}
|
||||
|
||||
const QString telephony = CAircraftMatcher::reverseLookupTelephonyDesignator(fpRemarks.getRadioTelephony(), callsign, log);
|
||||
if (!telephony.isEmpty())
|
||||
{
|
||||
airlineIcao.setTelephonyDesignator(telephony);
|
||||
this->addReverseLookupMessage(callsign, QString("Setting telephoy designator '%1'").arg(telephony));
|
||||
CMatchingUtils::addLogDetailsToList(log, callsign, QString("Setting telephoy designator '%1'").arg(telephony), getLogCategories());
|
||||
}
|
||||
}
|
||||
|
||||
return CAircraftMatcher::reverseLookupModel(callsign, aircraftIcao, airlineIcao, livery, modelString, type, log);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user