mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-12 23:35:33 +08:00
[Matching] Only try to resolve against FP data if there are remarks
This commit is contained in:
committed by
Mat Sutcliffe
parent
275173c383
commit
f602fa50cf
@@ -1168,8 +1168,8 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
const bool known = sApp->getWebDataServices()->containsAircraftIcaoDesignator(candidate);
|
const bool known = sApp->getWebDataServices()->containsAircraftIcaoDesignator(candidate);
|
||||||
static const QString sKnown("Known ICAO '%1'");
|
static const QString sKnown("Known ICAO designator '%1'");
|
||||||
static const QString sUnknown("Unknown ICAO '%1'");
|
static const QString sUnknown("Unknown ICAO designator '%1'");
|
||||||
CLogUtilities::addLogDetailsToList(log, callsign, known ? sKnown.arg(candidate) : sUnknown.arg(candidate));
|
CLogUtilities::addLogDetailsToList(log, callsign, known ? sKnown.arg(candidate) : sUnknown.arg(candidate));
|
||||||
return known;
|
return known;
|
||||||
}
|
}
|
||||||
@@ -1379,7 +1379,7 @@ namespace BlackCore
|
|||||||
{
|
{
|
||||||
CAircraftModelList matchedModels(modelSet);
|
CAircraftModelList matchedModels(modelSet);
|
||||||
CAircraftModel matchedModel(remoteAircraft.getModel());
|
CAircraftModel matchedModel(remoteAircraft.getModel());
|
||||||
Q_UNUSED(whatToLog);
|
Q_UNUSED(whatToLog)
|
||||||
|
|
||||||
const CAircraftMatcherSetup::MatchingMode mode = setup.getMatchingMode();
|
const CAircraftMatcherSetup::MatchingMode mode = setup.getMatchingMode();
|
||||||
CStatusMessageList *reduceLog = log && whatToLog.testFlag(MatchingLogStepwiseReduce) ? log : nullptr;
|
CStatusMessageList *reduceLog = log && whatToLog.testFlag(MatchingLogStepwiseReduce) ? log : nullptr;
|
||||||
|
|||||||
@@ -883,7 +883,7 @@ namespace BlackCore
|
|||||||
{
|
{
|
||||||
lookupModel = CAircraftMatcher::reverseLookupModelId(ids.model, callsign, log);
|
lookupModel = CAircraftMatcher::reverseLookupModelId(ids.model, callsign, log);
|
||||||
if (lookupModel.hasValidDbKey()) { break; } // found by model id from livery string
|
if (lookupModel.hasValidDbKey()) { break; } // found by model id from livery string
|
||||||
};
|
}
|
||||||
|
|
||||||
CAircraftMatcher::reverseLookupByIds(ids, aircraftIcao, livery, callsign, log);
|
CAircraftMatcher::reverseLookupByIds(ids, aircraftIcao, livery, callsign, log);
|
||||||
if (livery.hasValidDbKey()) { airlineIcao = livery.getAirlineIcaoCode(); }
|
if (livery.hasValidDbKey()) { airlineIcao = livery.getAirlineIcaoCode(); }
|
||||||
@@ -918,33 +918,41 @@ namespace BlackCore
|
|||||||
const CFlightPlanRemarks fpRemarks = this->tryToGetFlightPlanRemarks(callsign);
|
const CFlightPlanRemarks fpRemarks = this->tryToGetFlightPlanRemarks(callsign);
|
||||||
// const bool hasParsedAirlineRemarks = fpRemarks.hasParsedAirlineRemarks();
|
// const bool hasParsedAirlineRemarks = fpRemarks.hasParsedAirlineRemarks();
|
||||||
|
|
||||||
|
QString airlineNameLookup;
|
||||||
|
QString telephonyLookup;
|
||||||
|
QString telephonyFromFp;
|
||||||
|
QString airlineNameFromFp;
|
||||||
|
QString airlineIcaoFromFp;
|
||||||
|
|
||||||
if (fpRemarks.isEmpty())
|
if (fpRemarks.isEmpty())
|
||||||
{
|
{
|
||||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No flight plan remarks"));
|
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No flight plan remarks, skipping FP resolution"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("FP remarks: '%1'").arg(fpRemarks.getRemarks()));
|
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("FP remarks: '%1'").arg(fpRemarks.getRemarks()));
|
||||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("FP rem.parsed: '%1'").arg(fpRemarks.toQString(true)));
|
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("FP rem.parsed: '%1'").arg(fpRemarks.toQString(true)));
|
||||||
|
|
||||||
|
// FP data if any
|
||||||
|
telephonyFromFp = CAircraftMatcher::reverseLookupTelephonyDesignator(fpRemarks.getRadioTelephony(), callsign, log);
|
||||||
|
airlineNameFromFp = CAircraftMatcher::reverseLookupAirlineName(fpRemarks.getFlightOperator(), callsign, log);
|
||||||
|
airlineIcaoFromFp = fpRemarks.getAirlineIcao().getDesignator();
|
||||||
|
|
||||||
|
// turn into names as in DB
|
||||||
|
airlineNameLookup = CAircraftMatcher::reverseLookupAirlineName(airlineNameFromFp);
|
||||||
|
telephonyLookup = CAircraftMatcher::reverseLookupTelephonyDesignator(telephonyFromFp);
|
||||||
|
if (!airlineNameLookup.isEmpty()) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using resolved airline name '%1' found by FP name '%2'").arg(airlineNameLookup, airlineNameFromFp), CAirspaceMonitor::getLogCategories()); }
|
||||||
|
if (!telephonyLookup.isEmpty()) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using resolved telephony designator '%1' found by FP telephoy '%2'").arg(telephonyLookup, telephonyFromFp), CAirspaceMonitor::getLogCategories()); }
|
||||||
}
|
}
|
||||||
|
|
||||||
// FP data if any
|
// This code is needed WITH and WITHOUT FP data
|
||||||
const QString telephonyFromFp = CAircraftMatcher::reverseLookupTelephonyDesignator(fpRemarks.getRadioTelephony(), callsign, log);
|
|
||||||
const QString airlineNameFromFp = CAircraftMatcher::reverseLookupAirlineName(fpRemarks.getFlightOperator(), callsign, log);
|
|
||||||
const QString airlineIcaoFromFp = fpRemarks.getAirlineIcao().getDesignator();
|
|
||||||
|
|
||||||
// turn into names as in DB
|
|
||||||
const QString airlineNameLookup = CAircraftMatcher::reverseLookupAirlineName(airlineNameFromFp);
|
|
||||||
const QString telephonyLookup = CAircraftMatcher::reverseLookupTelephonyDesignator(telephonyFromFp);
|
|
||||||
if (!airlineNameLookup.isEmpty()) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using resolved airline name '%1' found by FP name '%2'").arg(airlineNameLookup, airlineNameFromFp), CAirspaceMonitor::getLogCategories()); }
|
|
||||||
if (!telephonyLookup.isEmpty()) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using resolved telephony designator '%1' found by FP telephoy '%2'").arg(telephonyLookup, telephonyFromFp), CAirspaceMonitor::getLogCategories()); }
|
|
||||||
|
|
||||||
// INFO: CModelMatcherComponent::reverseLookup() contains the simulated lookup
|
// INFO: CModelMatcherComponent::reverseLookup() contains the simulated lookup
|
||||||
// changed with T701: resolve first against model set, then all DB data
|
// changed with T701: resolve first against model set, then all DB data
|
||||||
// if an airline is ambiguous most likely the one in the set is the best choice
|
// if an airline is ambiguous most likely the one in the set is the best choice
|
||||||
airlineIcao = CAircraftMatcher::failoverValidAirlineIcaoDesignatorModelsFirst(callsign, airlineIcaoString, airlineIcaoFromFp, true, airlineNameFromFp, telephonyFromFp, modelSet, log);
|
airlineIcao = CAircraftMatcher::failoverValidAirlineIcaoDesignatorModelsFirst(callsign, airlineIcaoString, airlineIcaoFromFp, true, airlineNameFromFp, telephonyFromFp, modelSet, log);
|
||||||
|
|
||||||
// not found, create a seatch patterm
|
// not found, create a search patterm
|
||||||
if (!airlineIcao.isLoadedFromDb())
|
if (!airlineIcao.isLoadedFromDb())
|
||||||
{
|
{
|
||||||
if (!airlineIcao.hasValidDesignator()) { airlineIcao.setDesignator(airlineIcaoString.isEmpty() ? callsign.getAirlinePrefix() : airlineIcaoString); }
|
if (!airlineIcao.hasValidDesignator()) { airlineIcao.setDesignator(airlineIcaoString.isEmpty() ? callsign.getAirlinePrefix() : airlineIcaoString); }
|
||||||
|
|||||||
Reference in New Issue
Block a user