mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-18 11:25:33 +08:00
Issue #77 Move all methods of CLogUtilities to other classes
This commit is contained in:
@@ -14,7 +14,6 @@
|
||||
#include "blackmisc/simulation/matchingutils.h"
|
||||
#include "blackmisc/aviation/aircrafticaocode.h"
|
||||
#include "blackmisc/aviation/airlineicaocode.h"
|
||||
#include "blackmisc/aviation/logutils.h"
|
||||
#include "blackmisc/aviation/callsign.h"
|
||||
#include "blackmisc/aviation/livery.h"
|
||||
#include "blackmisc/fileutils.h"
|
||||
@@ -77,7 +76,7 @@ namespace BlackCore
|
||||
const QString &airlineName, const QString &airlineTelephony,
|
||||
bool useWebServices, CStatusMessageList *log)
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign,
|
||||
CCallsign::addLogDetailsToList(log, callsign,
|
||||
QStringLiteral("Find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, name: '%5' telephony: '%6' use web service: %7").
|
||||
arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, boolToYesNo(useWebServices)), getLogCategories());
|
||||
CAirlineIcaoCode code;
|
||||
@@ -85,30 +84,30 @@ namespace BlackCore
|
||||
{
|
||||
if (CAircraftMatcher::isValidAirlineIcaoDesignator(primaryIcao, useWebServices))
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using primary airline ICAO '%1'").arg(primaryIcao), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Using primary airline ICAO '%1'").arg(primaryIcao), getLogCategories());
|
||||
code = stringToAirlineIcaoObject(callsign, primaryIcao, airlineName, airlineTelephony, useWebServices, log);
|
||||
break;
|
||||
}
|
||||
if (CAircraftMatcher::isValidAirlineIcaoDesignator(secondaryIcao, useWebServices))
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using secondary airline ICAO '%1', primary '%2' not valid").arg(secondaryIcao, primaryIcao), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Using secondary airline ICAO '%1', primary '%2' not valid").arg(secondaryIcao, primaryIcao), getLogCategories());
|
||||
code = stringToAirlineIcaoObject(callsign, secondaryIcao, airlineName, airlineTelephony, useWebServices, log);
|
||||
break;
|
||||
}
|
||||
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Two invalid airline ICAO codes (primary/secondary) '%1', '%2'").arg(primaryIcao, secondaryIcao), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Two invalid airline ICAO codes (primary/secondary) '%1', '%2'").arg(primaryIcao, secondaryIcao), getLogCategories());
|
||||
if (airlineFromCallsign)
|
||||
{
|
||||
QString flightNumber;
|
||||
const QString airlinePrefix = callsign.getAirlinePrefix(flightNumber);
|
||||
if (airlinePrefix.isEmpty() || flightNumber.isEmpty())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Callsign '%1' cannot be split in airline '%1'/ flight number '%2'").arg(callsign.toQString(), flightNumber), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Callsign '%1' cannot be split in airline '%1'/ flight number '%2'").arg(callsign.toQString(), flightNumber), getLogCategories());
|
||||
break;
|
||||
}
|
||||
if (CAircraftMatcher::isValidAirlineIcaoDesignator(airlinePrefix, useWebServices))
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using airline from callsign '%1', suffix: '%2'").arg(callsign.toQString(), airlinePrefix), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Using airline from callsign '%1', suffix: '%2'").arg(callsign.toQString(), airlinePrefix), getLogCategories());
|
||||
code = stringToAirlineIcaoObject(callsign, airlinePrefix, airlineName, airlineTelephony, useWebServices, log);
|
||||
break;
|
||||
}
|
||||
@@ -118,12 +117,12 @@ namespace BlackCore
|
||||
|
||||
if (code.hasValidDesignator())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Resolved to airline designator: %1").arg(code.toQString(true)));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Resolved to airline designator: %1").arg(code.toQString(true)));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
CLogUtilities::addLogDetailsToList(log, callsign,
|
||||
CCallsign::addLogDetailsToList(log, callsign,
|
||||
QStringLiteral("Cannot find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, name: '%5' telephony: '%6' use web service: %7").
|
||||
arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, boolToYesNo(useWebServices)), getLogCategories());
|
||||
}
|
||||
@@ -132,13 +131,13 @@ namespace BlackCore
|
||||
|
||||
CAirlineIcaoCode CAircraftMatcher::failoverValidAirlineIcaoDesignator(const CCallsign &callsign, const QString &primaryIcao, const QString &secondaryIcao, bool airlineFromCallsign, const QString &airlineName, const QString &airlineTelephony, const CAircraftModelList &models, CStatusMessageList *log)
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign,
|
||||
CCallsign::addLogDetailsToList(log, callsign,
|
||||
QStringLiteral("Find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, airline name: '%5' telephony: '%6', models: %7").
|
||||
arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, models.sizeString()), getLogCategories());
|
||||
|
||||
if (models.isEmpty())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No models to find airline from"));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("No models to find airline from"));
|
||||
return CAirlineIcaoCode();
|
||||
}
|
||||
|
||||
@@ -155,7 +154,7 @@ namespace BlackCore
|
||||
if (countPerAirline.size() == 1)
|
||||
{
|
||||
code = countPerAirline.firstKey();
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found only 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Found only 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories());
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -166,7 +165,7 @@ namespace BlackCore
|
||||
modelsWithAirline = CAircraftMatcher::ifPossibleReduceModelsByAirlineNameTelephonyDesignator(callsign, airlineName, airlineTelephony, modelsWithAirline, info.arg(modelsWithAirline.size()).arg(primaryIcao), reduced, log);
|
||||
}
|
||||
code = modelsWithAirline.getAirlineWithMaxCount();
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using primary airline ICAO '%1' found '%2'").arg(primaryIcao, code.getDesignatorDbKey()), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Using primary airline ICAO '%1' found '%2'").arg(primaryIcao, code.getDesignatorDbKey()), getLogCategories());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -178,7 +177,7 @@ namespace BlackCore
|
||||
if (countPerAirline.size() == 1)
|
||||
{
|
||||
code = countPerAirline.firstKey();
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found only 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Found only 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories());
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -189,7 +188,7 @@ namespace BlackCore
|
||||
modelsWithAirline = CAircraftMatcher::ifPossibleReduceModelsByAirlineNameTelephonyDesignator(callsign, airlineName, airlineTelephony, modelsWithAirline, info.arg(modelsWithAirline.size()).arg(secondaryIcao), reduced, log);
|
||||
}
|
||||
code = modelsWithAirline.getAirlineWithMaxCount();
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using secondary airline ICAO '%1' found '%2'").arg(primaryIcao, code.getDesignatorDbKey()), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Using secondary airline ICAO '%1' found '%2'").arg(primaryIcao, code.getDesignatorDbKey()), getLogCategories());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -200,7 +199,7 @@ namespace BlackCore
|
||||
const QString airlinePrefix = callsign.getAirlinePrefix(flightNumber);
|
||||
if (airlinePrefix.isEmpty() || flightNumber.isEmpty())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Callsign '%1' cannot be split in airline '%1'/ flight number '%2'").arg(callsign.toQString(), flightNumber), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Callsign '%1' cannot be split in airline '%1'/ flight number '%2'").arg(callsign.toQString(), flightNumber), getLogCategories());
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -209,7 +208,7 @@ namespace BlackCore
|
||||
if (countPerAirline.size() == 1)
|
||||
{
|
||||
code = countPerAirline.firstKey();
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found only 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Found only 1 airline ICAO '%1' in %2 models").arg(countPerAirline.firstKey().getDesignatorDbKey()).arg(models.size()), getLogCategories());
|
||||
break;
|
||||
}
|
||||
if (modelsWithAirline.size() > 0)
|
||||
@@ -219,7 +218,7 @@ namespace BlackCore
|
||||
modelsWithAirline = CAircraftMatcher::ifPossibleReduceModelsByAirlineNameTelephonyDesignator(callsign, airlineName, airlineTelephony, modelsWithAirline, info.arg(modelsWithAirline.size()).arg(airlinePrefix), reduced, log);
|
||||
}
|
||||
code = modelsWithAirline.getAirlineWithMaxCount();
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using callsign airline ICAO '%1' found '%2'").arg(airlinePrefix, code.getDesignatorDbKey()), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Using callsign airline ICAO '%1' found '%2'").arg(airlinePrefix, code.getDesignatorDbKey()), getLogCategories());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -229,11 +228,11 @@ namespace BlackCore
|
||||
// return message
|
||||
if (code.hasValidDesignator())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Resolved to airline designator: %1").arg(code.toQString(true)));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Resolved to airline designator: %1").arg(code.toQString(true)));
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign,
|
||||
CCallsign::addLogDetailsToList(log, callsign,
|
||||
QStringLiteral("Cannot find airline designator from 1st: '%1' 2nd: '%2' callsign: '%3', use airline callsign: %4, airline name: '%5' telephony: '%6', models: %7").
|
||||
arg(primaryIcao, secondaryIcao, callsign.toQString(), boolToYesNo(airlineFromCallsign), airlineName, airlineTelephony, models.sizeString()), getLogCategories());
|
||||
}
|
||||
@@ -244,11 +243,11 @@ namespace BlackCore
|
||||
{
|
||||
if (!models.isEmpty())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using %1 models to resolve airline designator").arg(models.size()));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Using %1 models to resolve airline designator").arg(models.size()));
|
||||
const CAirlineIcaoCode airline = CAircraftMatcher::failoverValidAirlineIcaoDesignator(callsign, primaryIcao, secondaryIcao, airlineFromCallsign, airlineName, airlineTelephony, models, log);
|
||||
if (airline.hasValidDbKey()) { return airline; }
|
||||
}
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Now using resolution of airline ICAO without specific models"));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Now using resolution of airline ICAO without specific models"));
|
||||
return CAircraftMatcher::failoverValidAirlineIcaoDesignator(callsign, primaryIcao, secondaryIcao, airlineFromCallsign, airlineName, airlineTelephony, true, log);
|
||||
}
|
||||
|
||||
@@ -529,7 +528,7 @@ namespace BlackCore
|
||||
QString logMessage;
|
||||
const CCallsign callsign = inModel.getCallsign();
|
||||
|
||||
if (js.isEmpty() && log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script is empty")); }
|
||||
if (js.isEmpty() && log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Matching script is empty")); }
|
||||
|
||||
while (!js.isEmpty() && sApp && sApp->hasWebDataServices())
|
||||
{
|
||||
@@ -543,9 +542,9 @@ namespace BlackCore
|
||||
|
||||
if (log)
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script (%1): '%2'").arg(msToString(script), lf));
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script input model (%1): '%2'").arg(inModel.toQString(true)));
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script models: %1").arg(modelSet.coverageSummary()));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Matching script (%1): '%2'").arg(msToString(script), lf));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Matching script input model (%1): '%2'").arg(inModel.toQString(true)));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Matching script models: %1").arg(modelSet.coverageSummary()));
|
||||
}
|
||||
|
||||
QJSEngine engine;
|
||||
@@ -594,7 +593,7 @@ namespace BlackCore
|
||||
{
|
||||
const QString msg = QStringLiteral("Matching script error: %1 '%2'").arg(ms.property("lineNumber").toInt()).arg(ms.toString());
|
||||
CLogMessage(static_cast<CAircraftMatcher *>(nullptr)).warning(msg);
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, msg); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, msg); }
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -637,7 +636,7 @@ namespace BlackCore
|
||||
const CAircraftModel modeSetModel = CAircraftMatcher::reverseLookupModelStringInSet(modelString, callsign, modelSet, true, log);
|
||||
if (modeSetModel.hasModelString())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script using model from set: '%1'").arg(modelString));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Matching script using model from set: '%1'").arg(modelString));
|
||||
|
||||
// NON DB model from model set
|
||||
rv.model = modeSetModel;
|
||||
@@ -678,7 +677,7 @@ namespace BlackCore
|
||||
|
||||
const CLivery livery(sApp->getWebDataServices()->getStdLiveryForAirlineCode(icao));
|
||||
rv.model.setLivery(livery);
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script, changed airline ICAO: '%1' -> '%2'").arg(matchedModel.getAirlineIcaoCode().toQString(true), icao.toQString(true))); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Matching script, changed airline ICAO: '%1' -> '%2'").arg(matchedModel.getAirlineIcaoCode().toQString(true), icao.toQString(true))); }
|
||||
rv.modified = true;
|
||||
}
|
||||
}
|
||||
@@ -693,7 +692,7 @@ namespace BlackCore
|
||||
}
|
||||
|
||||
// log message
|
||||
if (log && !logMessage.isEmpty()) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script log: '%1'").arg(logMessage)); }
|
||||
if (log && !logMessage.isEmpty()) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Matching script log: '%1'").arg(logMessage)); }
|
||||
|
||||
// end
|
||||
return rv;
|
||||
@@ -723,7 +722,7 @@ namespace BlackCore
|
||||
{
|
||||
if (!setup.isReverseLookupModelString())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Model string looup disabled")); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Model string looup disabled")); }
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -750,15 +749,15 @@ namespace BlackCore
|
||||
|
||||
// lookup if model is not yet from DB
|
||||
const DBTripleIds ids = CAircraftModel::parseNetworkLiveryString(networkLiveryInfo);
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Livery string with ids: '%1'").arg(ids.toQString())); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Livery string with ids: '%1'").arg(ids.toQString())); }
|
||||
|
||||
if (!setup.isReverseLookupSwiftLiveryIds())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Ignoring livery ids '%1', because of setup").arg(ids.toQString())); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Ignoring livery ids '%1', because of setup").arg(ids.toQString())); }
|
||||
}
|
||||
else if (ids.model >= 0 && !modelToLookup.hasModelString())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Model lookup with id %1 from triple ids '%2'").arg(ids.model).arg(ids.toQString())); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Model lookup with id %1 from triple ids '%2'").arg(ids.model).arg(ids.toQString())); }
|
||||
const CAircraftModel modelFromDb = CAircraftMatcher::reverseLookupModelId(ids.model, callsign, log);
|
||||
if (modelFromDb.hasValidDbKey())
|
||||
{
|
||||
@@ -770,7 +769,7 @@ namespace BlackCore
|
||||
// no direct resolution of model, try livery and aircraft ICAO
|
||||
if (!modelToLookup.getAircraftIcaoCode().hasValidDbKey() && ids.aircraft >= 0)
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft ICAO lookup with id %1 from triple ids '%2'").arg(ids.aircraft).arg(ids.toQString())); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft ICAO lookup with id %1 from triple ids '%2'").arg(ids.aircraft).arg(ids.toQString())); }
|
||||
const CAircraftIcaoCode icaoFromDb = CAircraftMatcher::reverseLookupAircraftIcaoId(ids.aircraft, callsign, log);
|
||||
if (icaoFromDb.hasValidDbKey())
|
||||
{
|
||||
@@ -780,7 +779,7 @@ namespace BlackCore
|
||||
|
||||
if (!modelToLookup.getLivery().hasValidDbKey() && ids.livery >= 0)
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Livery lookup with id %1 from triple ids '%2'").arg(ids.livery).arg(ids.toQString())); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Livery lookup with id %1 from triple ids '%2'").arg(ids.livery).arg(ids.toQString())); }
|
||||
const CLivery liveryFromDb = CAircraftMatcher::reverseLookupLiveryId(ids.livery, callsign, log);
|
||||
if (liveryFromDb.hasValidDbKey())
|
||||
{
|
||||
@@ -797,13 +796,13 @@ namespace BlackCore
|
||||
reverseIcaoCode = CAircraftMatcher::reverseLookupAircraftIcao(reverseIcaoCode, callsign, log);
|
||||
if (reverseIcaoCode.isLoadedFromDb())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Set aircraft ICAO to '%1' from DB").arg(reverseIcaoCode.getCombinedIcaoStringWithKey())); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Set aircraft ICAO to '%1' from DB").arg(reverseIcaoCode.getCombinedIcaoStringWithKey())); }
|
||||
model.setAircraftIcaoCode(reverseIcaoCode);
|
||||
}
|
||||
else
|
||||
{
|
||||
// no DB data
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup, ICAO '%1' not resolved from DB").arg(reverseIcaoCode.getDesignator())); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup, ICAO '%1' not resolved from DB").arg(reverseIcaoCode.getDesignator())); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -833,12 +832,12 @@ namespace BlackCore
|
||||
{
|
||||
// we have found a livery in the DB
|
||||
model.setLivery(reverseLivery);
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery found '%1'").arg(reverseLivery.getCombinedCodePlusInfoAndId()), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery found '%1'").arg(reverseLivery.getCombinedCodePlusInfoAndId()), getLogCategories()); }
|
||||
}
|
||||
else
|
||||
{
|
||||
// no livery data found
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery '%1' yielded no result").arg(reverseLivery.getCombinedCodePlusInfo()), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery '%1' yielded no result").arg(reverseLivery.getCombinedCodePlusInfo()), getLogCategories()); }
|
||||
}
|
||||
} // livery lookup
|
||||
|
||||
@@ -853,7 +852,7 @@ namespace BlackCore
|
||||
if (stdLivery.hasValidDbKey())
|
||||
{
|
||||
model.setLivery(stdLivery);
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Set standardlivery `%1`").arg(stdLivery.getCombinedCodePlusInfo())); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Set standardlivery `%1`").arg(stdLivery.getCombinedCodePlusInfo())); }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -862,7 +861,7 @@ namespace BlackCore
|
||||
// create a pseudo livery, try to find airline first
|
||||
const CLivery liveryDummy(CLivery::getStandardCode(airlineIcaoCode), airlineIcaoCode, "Generated");
|
||||
model.setLivery(liveryDummy);
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Generated livery, set livery `%1`").arg(liveryDummy.getCombinedCodePlusInfo())); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Generated livery, set livery `%1`").arg(liveryDummy.getCombinedCodePlusInfo())); }
|
||||
}
|
||||
}
|
||||
} // pseudo livery
|
||||
@@ -875,7 +874,7 @@ namespace BlackCore
|
||||
|
||||
if (log)
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using model: ICAO '%1', livery '%2', model '%3', type '%4'").arg(
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Using model: ICAO '%1', livery '%2', model '%3', type '%4'").arg(
|
||||
model.getAircraftIcaoCode().getCombinedIcaoStringWithKey(),
|
||||
model.getLivery().getCombinedCodePlusInfo(),
|
||||
model.getModelString(), model.getModelTypeAsString()));
|
||||
@@ -891,7 +890,7 @@ namespace BlackCore
|
||||
const MatchingScriptReturnValues rv = CAircraftMatcher::reverseLookupScript(reverseModel, setup, modelSet, log);
|
||||
if (rv.runScriptModifiedAndRerun())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, cs, QStringLiteral("Matching script: Modified value and requested rerun"));
|
||||
CCallsign::addLogDetailsToList(log, cs, QStringLiteral("Matching script: Modified value and requested rerun"));
|
||||
|
||||
// no script the 2nd time
|
||||
CAircraftMatcherSetup setupRerun(setup);
|
||||
@@ -907,7 +906,7 @@ namespace BlackCore
|
||||
if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return CAircraftModel(); }
|
||||
if (!doLookupString)
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Ignore model string in reverse lookup (disabled), ignoring '%1'").arg(modelString)); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Ignore model string in reverse lookup (disabled), ignoring '%1'").arg(modelString)); }
|
||||
return CAircraftModel();
|
||||
}
|
||||
CAircraftModel model = sApp->getWebDataServices()->getModelForModelString(modelString);
|
||||
@@ -916,11 +915,11 @@ namespace BlackCore
|
||||
{
|
||||
if (isDBModel)
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found model in DB for model string '%1' dist: '%2' descr.: '%3'").arg(model.getModelStringAndDbKey(), model.getDistributor().getDbKey(), model.getDescription()));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Found model in DB for model string '%1' dist: '%2' descr.: '%3'").arg(model.getModelStringAndDbKey(), model.getDistributor().getDbKey(), model.getDescription()));
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Did not find model in DB for model string '%1'").arg(modelString));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Did not find model in DB for model string '%1'").arg(modelString));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -937,19 +936,19 @@ namespace BlackCore
|
||||
if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return CAircraftModel(); }
|
||||
if (modelString.isEmpty())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Empty model string for lookup in %1 models").arg(modelSet.size())); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Empty model string for lookup in %1 models").arg(modelSet.size())); }
|
||||
return CAircraftModel();
|
||||
}
|
||||
if (modelSet.isEmpty())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Empty models, ignoring '%1'").arg(modelString)); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Empty models, ignoring '%1'").arg(modelString)); }
|
||||
return CAircraftModel();
|
||||
}
|
||||
|
||||
CAircraftModel model = modelSet.findFirstByModelStringOrDefault(modelString, Qt::CaseInsensitive);
|
||||
if (!model.hasModelString())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Model '%1' not found in %2 models").arg(modelString).arg(modelSet.size())); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Model '%1' not found in %2 models").arg(modelString).arg(modelSet.size())); }
|
||||
return CAircraftModel();
|
||||
}
|
||||
|
||||
@@ -958,11 +957,11 @@ namespace BlackCore
|
||||
{
|
||||
if (isDBModel)
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found DB model in %1 models for model string '%2'").arg(modelSet.size()).arg(model.getModelStringAndDbKey()));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Found DB model in %1 models for model string '%2'").arg(modelSet.size()).arg(model.getModelStringAndDbKey()));
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found NON DB model in %1 models for model string '%2'").arg(modelSet.size()).arg(model.getModelString()));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Found NON DB model in %1 models for model string '%2'").arg(modelSet.size()).arg(model.getModelString()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -982,11 +981,11 @@ namespace BlackCore
|
||||
{
|
||||
if (model.hasValidDbKey())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Found model in DB for id '%1'").arg(id));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Found model in DB for id '%1'").arg(id));
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Did not find model in DB for id '%1'").arg(id));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Did not find model in DB for id '%1'").arg(id));
|
||||
}
|
||||
}
|
||||
model.setCallsign(callsign);
|
||||
@@ -1008,16 +1007,16 @@ namespace BlackCore
|
||||
// sometimes from network we receive something like "CESSNA C172"
|
||||
if (CAircraftIcaoCode::isValidDesignator(designator))
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1' did not find anything, using smart search").arg(designator), CAircraftMatcher::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1' did not find anything, using smart search").arg(designator), CAircraftMatcher::getLogCategories());
|
||||
icao = sApp->getWebDataServices()->smartAircraftIcaoSelector(icaoCandidate);
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of invalid ICAO code '%1' did not find anything so far").arg(designator), CAircraftMatcher::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of invalid ICAO code '%1' did not find anything so far").arg(designator), CAircraftMatcher::getLogCategories());
|
||||
const QStringList parts(designator.split(' '));
|
||||
for (const QString &p : parts)
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Trying parts, now reverse lookup of aircraft ICAO '%1' using smart search").arg(p), CAircraftMatcher::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Trying parts, now reverse lookup of aircraft ICAO '%1' using smart search").arg(p), CAircraftMatcher::getLogCategories());
|
||||
icao = sApp->getWebDataServices()->smartAircraftIcaoSelector(p);
|
||||
if (icao.isLoadedFromDb()) break;
|
||||
}
|
||||
@@ -1029,20 +1028,20 @@ namespace BlackCore
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("No DB data for ICAO '%1', valid ICAO?").arg(designator), CAircraftMatcher::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("No DB data for ICAO '%1', valid ICAO?").arg(designator), CAircraftMatcher::getLogCategories());
|
||||
return CAircraftIcaoCode(icaoCandidate);
|
||||
}
|
||||
}
|
||||
|
||||
if (foundIcaos.size() < 1)
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', nothing found").arg(designator), CAircraftMatcher::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', nothing found").arg(designator), CAircraftMatcher::getLogCategories());
|
||||
return CAircraftIcaoCode(icaoCandidate);
|
||||
}
|
||||
else if (foundIcaos.size() == 1)
|
||||
{
|
||||
const CAircraftIcaoCode icao(foundIcaos.front());
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', found one manufacturer '%2' in DB").arg(designator, icao.getDesignatorManufacturer()), CAircraftMatcher::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', found one manufacturer '%2' in DB").arg(designator, icao.getDesignatorManufacturer()), CAircraftMatcher::getLogCategories());
|
||||
return icao;
|
||||
}
|
||||
else
|
||||
@@ -1050,15 +1049,15 @@ namespace BlackCore
|
||||
// multiple ICAOs
|
||||
Q_ASSERT_X(foundIcaos.size() > 1, Q_FUNC_INFO, "Wrong size");
|
||||
const QPair<QString, int> maxManufacturer = foundIcaos.maxCountManufacturer();
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', found %2 values (ambiguous): %3").arg(designator).arg(foundIcaos.size()).arg(foundIcaos.dbKeysAsString(", ")), CAircraftMatcher::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', found %2 values (ambiguous): %3").arg(designator).arg(foundIcaos.size()).arg(foundIcaos.dbKeysAsString(", ")), CAircraftMatcher::getLogCategories());
|
||||
if (maxManufacturer.second < foundIcaos.size())
|
||||
{
|
||||
foundIcaos = foundIcaos.findByManufacturer(maxManufacturer.first);
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reducing by manufacturer '%1', now %2 values").arg(maxManufacturer.first).arg(foundIcaos.size()), CAircraftMatcher::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Reducing by manufacturer '%1', now %2 values").arg(maxManufacturer.first).arg(foundIcaos.size()), CAircraftMatcher::getLogCategories());
|
||||
}
|
||||
foundIcaos.sortByRank();
|
||||
const CAircraftIcaoCode icao = foundIcaos.front(); // best rank
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', using ICAO '%2' with rank %3").arg(designator, icao.toQString(), icao.getRankString()), CAircraftMatcher::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Reverse lookup of aircraft ICAO '%1', using ICAO '%2' with rank %3").arg(designator, icao.toQString(), icao.getRankString()), CAircraftMatcher::getLogCategories());
|
||||
return icao;
|
||||
}
|
||||
}
|
||||
@@ -1071,11 +1070,11 @@ namespace BlackCore
|
||||
{
|
||||
if (icao.hasValidDbKey())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Found aircraft ICAO in DB for id '%1'").arg(id));
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Found aircraft ICAO in DB for id '%1'").arg(id));
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Did not find aircraft ICAO in DB for id '%1'").arg(id));
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Did not find aircraft ICAO in DB for id '%1'").arg(id));
|
||||
}
|
||||
}
|
||||
return icao;
|
||||
@@ -1087,8 +1086,8 @@ namespace BlackCore
|
||||
const CAirlineIcaoCode icao = sApp->getWebDataServices()->smartAirlineIcaoSelector(icaoPattern, callsign);
|
||||
if (log)
|
||||
{
|
||||
if (icao.hasValidDbKey()) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of airline ICAO '%1' and callsign '%2' found '%3' '%4' in DB").arg(icaoPattern.getDesignator(), callsign.asString(), icao.getVDesignatorDbKey(), icao.getName()), CAircraftMatcher::getLogCategories()); }
|
||||
else { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of airline ICAO '%1' and callsign '%2', nothing found in DB").arg(icaoPattern.getDesignator(), callsign.asString()), CAircraftMatcher::getLogCategories()); }
|
||||
if (icao.hasValidDbKey()) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of airline ICAO '%1' and callsign '%2' found '%3' '%4' in DB").arg(icaoPattern.getDesignator(), callsign.asString(), icao.getVDesignatorDbKey(), icao.getName()), CAircraftMatcher::getLogCategories()); }
|
||||
else { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of airline ICAO '%1' and callsign '%2', nothing found in DB").arg(icaoPattern.getDesignator(), callsign.asString()), CAircraftMatcher::getLogCategories()); }
|
||||
}
|
||||
return icao;
|
||||
}
|
||||
@@ -1098,15 +1097,15 @@ namespace BlackCore
|
||||
if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return CLivery(); }
|
||||
if (!airline.hasValidDesignator())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of standard livery skipped, no airline designator"), CAircraftMatcher::getLogCategories(), CStatusMessage::SeverityWarning); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of standard livery skipped, no airline designator"), CAircraftMatcher::getLogCategories(), CStatusMessage::SeverityWarning); }
|
||||
return CLivery();
|
||||
}
|
||||
|
||||
const CLivery livery = sApp->getWebDataServices()->getStdLiveryForAirlineCode(airline);
|
||||
if (log)
|
||||
{
|
||||
if (livery.hasValidDbKey()) { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of standard livery for '%1' found '%2'").arg(airline.getDesignator(), livery.getCombinedCode()), CAircraftMatcher::getLogCategories()); }
|
||||
else { CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Not standard livery for airline '%1' in DB").arg(airline.getDesignator()), CAircraftMatcher::getLogCategories()); }
|
||||
if (livery.hasValidDbKey()) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of standard livery for '%1' found '%2'").arg(airline.getDesignator(), livery.getCombinedCode()), CAircraftMatcher::getLogCategories()); }
|
||||
else { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Not standard livery for airline '%1' in DB").arg(airline.getDesignator()), CAircraftMatcher::getLogCategories()); }
|
||||
}
|
||||
return livery;
|
||||
}
|
||||
@@ -1119,11 +1118,11 @@ namespace BlackCore
|
||||
{
|
||||
if (livery.hasValidDbKey())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Found livery in DB for id '%1'").arg(id));
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Found livery in DB for id '%1'").arg(id));
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, logCallsign, QStringLiteral("Did not find livery in DB for id '%1'").arg(id));
|
||||
CCallsign::addLogDetailsToList(log, logCallsign, QStringLiteral("Did not find livery in DB for id '%1'").arg(id));
|
||||
}
|
||||
}
|
||||
return livery;
|
||||
@@ -1153,11 +1152,11 @@ namespace BlackCore
|
||||
const QStringList names = sApp->getWebDataServices()->getAirlineNames();
|
||||
if (names.contains(candidate, Qt::CaseInsensitive))
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' found in DB").arg(candidate));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' found in DB").arg(candidate));
|
||||
return candidate;
|
||||
}
|
||||
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' not found in DB").arg(candidate));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' not found in DB").arg(candidate));
|
||||
return {};
|
||||
}
|
||||
|
||||
@@ -1168,11 +1167,11 @@ namespace BlackCore
|
||||
const QStringList designators = sApp->getWebDataServices()->getTelephonyDesignators();
|
||||
if (designators.contains(candidate, Qt::CaseInsensitive))
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' found").arg(candidate));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' found").arg(candidate));
|
||||
return candidate;
|
||||
}
|
||||
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' not found").arg(candidate));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Airline name '%1' not found").arg(candidate));
|
||||
return {};
|
||||
}
|
||||
|
||||
@@ -1181,14 +1180,14 @@ namespace BlackCore
|
||||
if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return false; }
|
||||
if (!CAircraftIcaoCode::isValidDesignator(candidate))
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No valid ICAO designator '%1'").arg(candidate));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("No valid ICAO designator '%1'").arg(candidate));
|
||||
return false;
|
||||
}
|
||||
|
||||
const bool known = sApp->getWebDataServices()->containsAircraftIcaoDesignator(candidate);
|
||||
static const QString sKnown("Known ICAO designator '%1'");
|
||||
static const QString sUnknown("Unknown ICAO designator '%1'");
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, known ? sKnown.arg(candidate) : sUnknown.arg(candidate));
|
||||
CCallsign::addLogDetailsToList(log, callsign, known ? sKnown.arg(candidate) : sUnknown.arg(candidate));
|
||||
return known;
|
||||
}
|
||||
|
||||
@@ -1198,7 +1197,7 @@ namespace BlackCore
|
||||
const bool known = sApp->getWebDataServices()->containsModelString(candidate);
|
||||
static const QString sKnown("Known modelstring '%1'");
|
||||
static const QString sUnknown("Unknown modelstring '%1'");
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, known ? sKnown.arg(candidate) : sUnknown.arg(candidate));
|
||||
CCallsign::addLogDetailsToList(log, callsign, known ? sKnown.arg(candidate) : sUnknown.arg(candidate));
|
||||
return known;
|
||||
}
|
||||
|
||||
@@ -1207,7 +1206,7 @@ namespace BlackCore
|
||||
if (!sApp || sApp->isShuttingDown() || !sApp->hasWebDataServices()) { return CAircraftIcaoCode(); }
|
||||
if (!airline.isLoadedFromDb())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No valid airline from DB '%1'").arg(airline.getDesignator()));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("No valid airline from DB '%1'").arg(airline.getDesignator()));
|
||||
return CAircraftIcaoCode();
|
||||
}
|
||||
|
||||
@@ -1216,18 +1215,18 @@ namespace BlackCore
|
||||
const CAircraftIcaoCodeList aircraft = sApp->getWebDataServices()->getAircraftIcaoCodesForAirline(airline);
|
||||
if (aircraft.isEmpty())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No aircraft known for airline '%1'").arg(airline.getDesignator()));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("No aircraft known for airline '%1'").arg(airline.getDesignator()));
|
||||
return CAircraftIcaoCode();
|
||||
}
|
||||
|
||||
const QSet<QString> allIcaos = aircraft.allDesignators();
|
||||
const QString allIcaosStr = allIcaos.values().join(", ");
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft '%1' known for airline '%2'").arg(allIcaosStr, airline.getDesignator()));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft '%1' known for airline '%2'").arg(allIcaosStr, airline.getDesignator()));
|
||||
|
||||
const CAircraftIcaoCode code = aircraft.findBestFuzzyMatchOrDefault(candidateString);
|
||||
if (code.hasValidDesignator())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft '%1' is best fuzzy search of '%2' for airline '%3'").arg(code.toQString(), candidateString, airline.getDesignator()));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Aircraft '%1' is best fuzzy search of '%2' for airline '%3'").arg(code.toQString(), candidateString, airline.getDesignator()));
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -1241,11 +1240,11 @@ namespace BlackCore
|
||||
|
||||
if (icao.hasValidDesignator())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Turned callsign %1 into airline %2").arg(callsign.asString(), icao.getDesignator()), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Turned callsign %1 into airline %2").arg(callsign.asString(), icao.getDesignator()), getLogCategories());
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Cannot turn callsign %1 into airline").arg(callsign.asString()), getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Cannot turn callsign %1 into airline").arg(callsign.asString()), getLogCategories());
|
||||
}
|
||||
return icao;
|
||||
}
|
||||
@@ -1761,25 +1760,25 @@ namespace BlackCore
|
||||
reduced = false;
|
||||
if (inList.isEmpty())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, logCallsign, info % u" Empty input list, cannot reduce", getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, logCallsign, info % u" Empty input list, cannot reduce", getLogCategories()); }
|
||||
return inList;
|
||||
}
|
||||
|
||||
const QString m = icaoCode.getManufacturer();
|
||||
if (m.isEmpty())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, logCallsign, info % u" No manufacturer, cannot reduce " % QString::number(inList.size()) % u" entries", getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, logCallsign, info % u" No manufacturer, cannot reduce " % QString::number(inList.size()) % u" entries", getLogCategories()); }
|
||||
return inList;
|
||||
}
|
||||
|
||||
const CAircraftIcaoCodeList outList(inList.findByManufacturer(m));
|
||||
if (outList.isEmpty())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, logCallsign, info % " Not found " % m % ", cannot reduce", getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, logCallsign, info % " Not found " % m % ", cannot reduce", getLogCategories()); }
|
||||
return inList;
|
||||
}
|
||||
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, logCallsign, info % u" Reduced by " % m % u" results: " % QString::number(outList.size()), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, logCallsign, info % u" Reduced by " % m % u" results: " % QString::number(outList.size()), getLogCategories()); }
|
||||
reduced = true;
|
||||
return outList;
|
||||
}
|
||||
@@ -1872,39 +1871,39 @@ namespace BlackCore
|
||||
reduced = false;
|
||||
if (inList.isEmpty())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % u" Empty input list, cannot reduce", getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, info % u" Empty input list, cannot reduce", getLogCategories()); }
|
||||
return inList;
|
||||
}
|
||||
|
||||
if (telephony.isEmpty() && airlineName.isEmpty())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % u" No name/telephony, cannot reduce " % QString::number(inList.size()) % u" entries", getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, info % u" No name/telephony, cannot reduce " % QString::number(inList.size()) % u" entries", getLogCategories()); }
|
||||
return inList;
|
||||
}
|
||||
|
||||
CAircraftModelList step1Data = inList.findByAirlineNamesOrTelephonyDesignator(airlineName);
|
||||
if (step1Data.size() < 1 || step1Data.size() == inList.size())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'").arg(airlineName), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'").arg(airlineName), getLogCategories()); }
|
||||
step1Data = inList;
|
||||
}
|
||||
else
|
||||
{
|
||||
reduced = true;
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % QStringLiteral(" reduced by '%1'").arg(airlineName), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, info % QStringLiteral(" reduced by '%1'").arg(airlineName), getLogCategories()); }
|
||||
}
|
||||
if (step1Data.size() == 1) { return step1Data; }
|
||||
|
||||
CAircraftModelList step2Data = inList.findByAirlineNamesOrTelephonyDesignator(telephony);
|
||||
if (step2Data.size() < 1 || step2Data.size() == inList.size())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'").arg(telephony), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'").arg(telephony), getLogCategories()); }
|
||||
step2Data = step1Data;
|
||||
}
|
||||
else
|
||||
{
|
||||
reduced = true;
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % QStringLiteral(" reduced by '%1'").arg(telephony), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, info % QStringLiteral(" reduced by '%1'").arg(telephony), getLogCategories()); }
|
||||
}
|
||||
return step2Data;
|
||||
|
||||
@@ -1912,7 +1911,7 @@ namespace BlackCore
|
||||
const CAircraftModelList reducedModels = inList.findByAirlineNameAndTelephonyDesignator(airlineName, telephony);
|
||||
if (reducedModels.size() < 1 || reducedModels.size() == inList.size())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'/'%2'").arg(airlineName, telephony), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, info % QStringLiteral(" cannot reduce by '%1'/'%2'").arg(airlineName, telephony), getLogCategories()); }
|
||||
return inList;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#include "blackmisc/aviation/comsystem.h"
|
||||
#include "blackmisc/aviation/modulator.h"
|
||||
#include "blackmisc/aviation/transponder.h"
|
||||
#include "blackmisc/aviation/logutils.h"
|
||||
#include "blackmisc/geo/elevationplane.h"
|
||||
#include "blackmisc/network/user.h"
|
||||
#include "blackmisc/network/voicecapabilities.h"
|
||||
@@ -651,7 +650,7 @@ namespace BlackCore
|
||||
if (!myself || !sApp || sApp->isShuttingDown()) { return; }
|
||||
if (!this->isAircraftInRange(callsign))
|
||||
{
|
||||
const CStatusMessage m = CLogUtilities::logMessage(callsign, "No longer in range", CAirspaceMonitor::getLogCategories());
|
||||
const CStatusMessage m = CCallsign::logMessage(callsign, "No longer in range", CAirspaceMonitor::getLogCategories());
|
||||
this->addReverseLookupMessage(callsign, m);
|
||||
return;
|
||||
}
|
||||
@@ -677,14 +676,14 @@ namespace BlackCore
|
||||
|
||||
readiness.setFlag(ReadyForMatchingSent); // stored in readiness as reference
|
||||
const QString readyMsg = readyForMatching.arg(readiness.toQString(), callsign.toQString(), remoteAircraft.getModel().getModelTypeAsString(), remoteAircraft.getAircraftIcaoCode().getDesignatorDbKey(), remoteAircraft.getAirlineIcaoCode().getDesignatorDbKey());
|
||||
const CStatusMessage m = CLogUtilities::logMessage(callsign, readyMsg, getLogCategories());
|
||||
const CStatusMessage m = CCallsign::logMessage(callsign, readyMsg, getLogCategories());
|
||||
this->addReverseLookupMessage(callsign, m);
|
||||
|
||||
emit this->readyForModelMatching(remoteAircraft);
|
||||
}
|
||||
else
|
||||
{
|
||||
const CStatusMessage m = CLogUtilities::logMessage(callsign, "Ignoring this aircraft, not found in range list, disconnected, or no callsign", CAirspaceMonitor::getLogCategories(), CStatusMessage::SeverityWarning);
|
||||
const CStatusMessage m = CCallsign::logMessage(callsign, "Ignoring this aircraft, not found in range list, disconnected, or no callsign", CAirspaceMonitor::getLogCategories(), CStatusMessage::SeverityWarning);
|
||||
this->addReverseLookupMessage(callsign, m);
|
||||
m_readiness.remove(callsign);
|
||||
}
|
||||
@@ -864,7 +863,7 @@ namespace BlackCore
|
||||
CStatusMessageList reverseLookupMessages;
|
||||
CStatusMessageList *pReverseLookupMessages = reverseLookupEnabled.testFlag(RevLogEnabled) ? &reverseLookupMessages : nullptr;
|
||||
|
||||
CLogUtilities::addLogDetailsToList(pReverseLookupMessages, callsign,
|
||||
CCallsign::addLogDetailsToList(pReverseLookupMessages, callsign,
|
||||
QStringLiteral("FsInn data from network: aircraft '%1', airline '%2', model '%3', combined '%4'").
|
||||
arg(aircraftIcaoDesignator, airlineIcaoDesignator, modelString, combinedAircraftType));
|
||||
|
||||
@@ -874,7 +873,7 @@ namespace BlackCore
|
||||
if (!modelString.isEmpty() && !setup.isReverseLookupModelString())
|
||||
{
|
||||
usedModelString.clear();
|
||||
CLogUtilities::addLogDetailsToList(pReverseLookupMessages, callsign,
|
||||
CCallsign::addLogDetailsToList(pReverseLookupMessages, callsign,
|
||||
QStringLiteral("FsInn modelstring '%1' ignored because of setuo").arg(modelString));
|
||||
}
|
||||
else if (!CAircraftMatcher::isKnownModelString(modelString, callsign, pReverseLookupMessages))
|
||||
@@ -882,7 +881,7 @@ namespace BlackCore
|
||||
// from the T701 test, do NOT use if model string is unknown
|
||||
// this can overrride "swift livery strings", FsInn here only is useful with a known model string
|
||||
usedModelString.clear();
|
||||
CLogUtilities::addLogDetailsToList(pReverseLookupMessages, callsign,
|
||||
CCallsign::addLogDetailsToList(pReverseLookupMessages, callsign,
|
||||
QStringLiteral("FsInn modelstring ignored, as modelstring '%1' is not known").arg(modelString));
|
||||
}
|
||||
|
||||
@@ -908,7 +907,7 @@ namespace BlackCore
|
||||
const ReverseLookupLogging reverseLookupEnabled = this->isReverseLookupMessagesEnabled();
|
||||
CStatusMessageList reverseLookupMessages;
|
||||
CStatusMessageList *pReverseLookupMessages = reverseLookupEnabled.testFlag(RevLogEnabled) ? &reverseLookupMessages : nullptr;
|
||||
CLogUtilities::addLogDetailsToList(pReverseLookupMessages, callsign,
|
||||
CCallsign::addLogDetailsToList(pReverseLookupMessages, callsign,
|
||||
QStringLiteral("Data from network: aircraft '%1', airline '%2', livery '%3'").
|
||||
arg(aircraftIcaoDesignator, airlineIcaoDesignator, livery),
|
||||
CAirspaceMonitor::getLogCategories());
|
||||
@@ -927,7 +926,7 @@ namespace BlackCore
|
||||
CAircraftModel::ModelType type, CStatusMessageList *log, bool runMatchinScript)
|
||||
{
|
||||
const int modelSetCount = this->getModelSetCount();
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup (with FP data), model set count: %1").arg(modelSetCount), CAirspaceMonitor::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup (with FP data), model set count: %1").arg(modelSetCount), CAirspaceMonitor::getLogCategories());
|
||||
|
||||
const DBTripleIds ids = CAircraftModel::parseNetworkLiveryString(liveryString);
|
||||
const bool hasAnyId = ids.hasAnyId();
|
||||
@@ -951,7 +950,7 @@ namespace BlackCore
|
||||
|
||||
if (!setup.isReverseLookupSwiftLiveryIds())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery string '%1' disabled").arg(liveryString));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Reverse lookup of livery string '%1' disabled").arg(liveryString));
|
||||
}
|
||||
else if (hasAnyId)
|
||||
{
|
||||
@@ -966,7 +965,7 @@ namespace BlackCore
|
||||
|
||||
if (aircraftIcao.hasValidDbKey() && livery.hasValidDbKey())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Using DB livery %1 and aircraft ICAO %2 to create model").arg(livery.getDbKeyAsString(), aircraftIcao.getDbKeyAsString()), CAirspaceMonitor::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Using DB livery %1 and aircraft ICAO %2 to create model").arg(livery.getDbKeyAsString(), aircraftIcao.getDbKeyAsString()), CAirspaceMonitor::getLogCategories());
|
||||
|
||||
// we have a valid livery from DB + valid aircraft ICAO from DB
|
||||
lookupModel = CAircraftModel(modelString, type, "By DB livery and aircraft ICAO", aircraftIcao, livery);
|
||||
@@ -982,7 +981,7 @@ namespace BlackCore
|
||||
if (airlineIcao.isLoadedFromDb() && !knownAircraftIcao)
|
||||
{
|
||||
// we have no valid aircraft ICAO, so we do a fuzzy search among those
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Fuzzy search among airline aircraft because '%1' is not known ICAO designator").arg(aircraftIcaoString));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Fuzzy search among airline aircraft because '%1' is not known ICAO designator").arg(aircraftIcaoString));
|
||||
const CAircraftIcaoCode foundIcao = CAircraftMatcher::searchAmongAirlineAircraft(aircraftIcaoString, airlineIcao, callsign, log);
|
||||
if (foundIcao.isLoadedFromDb()) { aircraftIcao = foundIcao; }
|
||||
}
|
||||
@@ -1002,12 +1001,12 @@ namespace BlackCore
|
||||
|
||||
if (fpRemarks.isEmpty())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No flight plan remarks, skipping FP resolution"));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("No flight plan remarks, skipping FP resolution"));
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("FP remarks: '%1'").arg(fpRemarks.getRemarks()));
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("FP rem.parsed: '%1'").arg(fpRemarks.toQString(true)));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("FP remarks: '%1'").arg(fpRemarks.getRemarks()));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("FP rem.parsed: '%1'").arg(fpRemarks.toQString(true)));
|
||||
|
||||
// FP data if any
|
||||
telephonyFromFp = CAircraftMatcher::reverseLookupTelephonyDesignator(fpRemarks.getRadioTelephony(), callsign, log);
|
||||
@@ -1017,8 +1016,8 @@ namespace BlackCore
|
||||
// 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()); }
|
||||
if (!airlineNameLookup.isEmpty()) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Using resolved airline name '%1' found by FP name '%2'").arg(airlineNameLookup, airlineNameFromFp), CAirspaceMonitor::getLogCategories()); }
|
||||
if (!telephonyLookup.isEmpty()) { CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Using resolved telephony designator '%1' found by FP telephoy '%2'").arg(telephonyLookup, telephonyFromFp), CAirspaceMonitor::getLogCategories()); }
|
||||
}
|
||||
|
||||
// This code is needed WITH and WITHOUT FP data
|
||||
@@ -1040,8 +1039,8 @@ namespace BlackCore
|
||||
}
|
||||
}
|
||||
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Used aircraft ICAO: '%1'").arg(aircraftIcao.toQString(true)), CAirspaceMonitor::getLogCategories());
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Used airline ICAO: '%1'").arg(airlineIcao.toQString(true)), CAirspaceMonitor::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Used aircraft ICAO: '%1'").arg(aircraftIcao.toQString(true)), CAirspaceMonitor::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Used airline ICAO: '%1'").arg(airlineIcao.toQString(true)), CAirspaceMonitor::getLogCategories());
|
||||
|
||||
// matching script is used below
|
||||
lookupModel = CAircraftMatcher::reverseLookupModel(callsign, aircraftIcao, airlineIcao, liveryString, modelString, setup, modelSet, type, log);
|
||||
@@ -1059,7 +1058,7 @@ namespace BlackCore
|
||||
{
|
||||
if (rv.runScriptAndRerun())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script: Re-run reverseLookupModelWithFlightplanData"), CAirspaceMonitor::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Matching script: Re-run reverseLookupModelWithFlightplanData"), CAirspaceMonitor::getLogCategories());
|
||||
return CAirspaceMonitor::reverseLookupModelWithFlightplanData(callsign,
|
||||
rv.model.getAircraftIcaoCodeDesignator(), rv.model.getAirlineIcaoCodeVDesignator(), rv.model.getLivery().getCombinedCode(),
|
||||
modelString, type, log, false);
|
||||
@@ -1067,13 +1066,13 @@ namespace BlackCore
|
||||
else
|
||||
{
|
||||
lookupModel = rv.model;
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("Matching script: Using model from matching script"), CAirspaceMonitor::getLogCategories());
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("Matching script: Using model from matching script"), CAirspaceMonitor::getLogCategories());
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, callsign, QStringLiteral("No reverse lookup script used"));
|
||||
CCallsign::addLogDetailsToList(log, callsign, QStringLiteral("No reverse lookup script used"));
|
||||
}
|
||||
|
||||
// done
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
#include "blackmisc/simulation/xplane/xplaneutil.h"
|
||||
#include "blackmisc/simulation/fscommon/fscommonutil.h"
|
||||
#include "blackmisc/simulation/matchingutils.h"
|
||||
#include "blackmisc/aviation/logutils.h"
|
||||
#include "blackmisc/aviation/callsign.h"
|
||||
#include "blackmisc/pq/units.h"
|
||||
#include "blackmisc/mixin/mixincompare.h"
|
||||
@@ -729,14 +728,14 @@ namespace BlackCore
|
||||
CSimulatedAircraft brokenAircraft(aircraftAfterModelApplied);
|
||||
brokenAircraft.setEnabled(false);
|
||||
brokenAircraft.setRendered(false);
|
||||
CLogUtilities::addLogDetailsToList(pMatchingMessages, callsign, QStringLiteral("Cannot add remote aircraft, no model string: '%1'").arg(brokenAircraft.toQString()));
|
||||
CCallsign::addLogDetailsToList(pMatchingMessages, callsign, QStringLiteral("Cannot add remote aircraft, no model string: '%1'").arg(brokenAircraft.toQString()));
|
||||
emit this->aircraftRenderingChanged(brokenAircraft);
|
||||
return;
|
||||
}
|
||||
|
||||
// here the model is added to the simulator
|
||||
m_simulatorPlugin.second->logicallyAddRemoteAircraft(aircraftAfterModelApplied);
|
||||
CLogUtilities::addLogDetailsToList(pMatchingMessages, callsign, QStringLiteral("Logically added remote aircraft: %1").arg(aircraftAfterModelApplied.toQString()));
|
||||
CCallsign::addLogDetailsToList(pMatchingMessages, callsign, QStringLiteral("Logically added remote aircraft: %1").arg(aircraftAfterModelApplied.toQString()));
|
||||
|
||||
this->clearMatchingMessages(callsign);
|
||||
this->addMatchingMessages(callsign, matchingMessages);
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
#include "blackcore/webdataservices.h"
|
||||
#include "blackmisc/simulation/data/modelcaches.h"
|
||||
#include "blackmisc/simulation/matchingutils.h"
|
||||
#include "blackmisc/aviation/logutils.h"
|
||||
#include "blackmisc/aviation/aircrafticaocode.h"
|
||||
#include "blackmisc/aviation/airlineicaocode.h"
|
||||
#include "blackmisc/aviation/callsign.h"
|
||||
@@ -295,12 +294,12 @@ namespace BlackGui
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(&msgs, inModel.getCallsign(), QStringLiteral("Matching script, no modification"));
|
||||
CCallsign::addLogDetailsToList(&msgs, inModel.getCallsign(), QStringLiteral("Matching script, no modification"));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(&msgs, inModel.getCallsign(), QStringLiteral("No reverse lookup script used"));
|
||||
CCallsign::addLogDetailsToList(&msgs, inModel.getCallsign(), QStringLiteral("No reverse lookup script used"));
|
||||
}
|
||||
|
||||
return inModel;
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
* or distributed except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include "blackmisc/aviation/logutils.h"
|
||||
#include "blackmisc/aviation/aircraftsituationchange.h"
|
||||
#include "blackmisc/aviation/aircrafticaocode.h"
|
||||
#include "blackmisc/db/datastoreutility.h"
|
||||
@@ -130,7 +129,7 @@ namespace BlackMisc
|
||||
{
|
||||
if (this->isDbEqual(otherCode))
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QString("Equal DB code: 100"));
|
||||
addLogDetailsToList(log, *this, QString("Equal DB code: 100"));
|
||||
return 100;
|
||||
}
|
||||
|
||||
@@ -141,7 +140,7 @@ namespace BlackMisc
|
||||
score += 50; // same designator
|
||||
if (log)
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score));
|
||||
}
|
||||
|
||||
int scoreOld = score;
|
||||
@@ -150,7 +149,7 @@ namespace BlackMisc
|
||||
else if (this->getRank() < 10) { score += (10 - this->getRank()); }
|
||||
if (score > scoreOld)
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added rank: %1").arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Added rank: %1").arg(score));
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -158,12 +157,12 @@ namespace BlackMisc
|
||||
if (this->hasFamily() && this->getFamily() == otherCode.getFamily())
|
||||
{
|
||||
score += 40;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added family: %1").arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Added family: %1").arg(score));
|
||||
}
|
||||
else if (this->hasValidCombinedType() && otherCode.getCombinedType() == this->getCombinedType())
|
||||
{
|
||||
score += 30;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added combined code: %1").arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Added combined code: %1").arg(score));
|
||||
}
|
||||
else if (this->hasValidCombinedType())
|
||||
{
|
||||
@@ -206,7 +205,7 @@ namespace BlackMisc
|
||||
{
|
||||
score += 4;
|
||||
}
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Added combined code parts: %1").arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Added combined code parts: %1").arg(score));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,11 +215,11 @@ namespace BlackMisc
|
||||
if (this->matchesManufacturer(otherCode.getManufacturer()))
|
||||
{
|
||||
score += 10;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Matches manufacturer '%1': %2").arg(this->getManufacturer()).arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Matches manufacturer '%1': %2").arg(this->getManufacturer()).arg(score));
|
||||
}
|
||||
else if (this->getManufacturer().contains(otherCode.getManufacturer(), Qt::CaseInsensitive))
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Contains manufacturer '%1': %2").arg(this->getManufacturer()).arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Contains manufacturer '%1': %2").arg(this->getManufacturer()).arg(score));
|
||||
score += 5;
|
||||
}
|
||||
}
|
||||
@@ -229,12 +228,12 @@ namespace BlackMisc
|
||||
if (this->hasCategory() && otherCode.hasCategory() && this->getCategory() == otherCode.getCategory())
|
||||
{
|
||||
score += 8;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score));
|
||||
}
|
||||
else if (this->isMilitary() == otherCode.isMilitary())
|
||||
{
|
||||
score += 8;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Matches military flag '%1': %2").arg(boolToYesNo(this->isMilitary())).arg(score));
|
||||
}
|
||||
// 0..85
|
||||
return score;
|
||||
@@ -852,6 +851,20 @@ namespace BlackMisc
|
||||
return e == 'P' || e == 'E' || e == 'T';
|
||||
}
|
||||
|
||||
CStatusMessage CAircraftIcaoCode::logMessage(const CAircraftIcaoCode &icaoCode, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
static const CLogCategoryList cats({ CLogCategories::aviation() });
|
||||
const CStatusMessage m(cats.with(CLogCategoryList::fromQStringList(extraCategories)), s, icaoCode.hasDesignator() ? icaoCode.getDesignatorDbKey() + ": " + message.trimmed() : message.trimmed());
|
||||
return m;
|
||||
}
|
||||
|
||||
void CAircraftIcaoCode::addLogDetailsToList(CStatusMessageList *log, const CAircraftIcaoCode &icao, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
if (!log) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
log->push_back(logMessage(icao, message, extraCategories, s));
|
||||
}
|
||||
|
||||
CAircraftIcaoCode CAircraftIcaoCode::fromDatabaseJson(const QJsonObject &json, const QString &prefix)
|
||||
{
|
||||
if (!existsKey(json, prefix))
|
||||
|
||||
@@ -356,6 +356,19 @@ namespace BlackMisc
|
||||
//! Engine tye is Electric, Piston, TurboProp
|
||||
static bool isEPTEngineType(const QChar engineType);
|
||||
|
||||
//! Specialized log message for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static CStatusMessage logMessage(
|
||||
const CAircraftIcaoCode &icaoCode,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Specialized log for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static void addLogDetailsToList(CStatusMessageList *log, const CAircraftIcaoCode &icao,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! From our database JSON format
|
||||
static CAircraftIcaoCode fromDatabaseJson(const QJsonObject &json, const QString &prefix = QString());
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
#include "airlineicaocode.h"
|
||||
#include "callsign.h"
|
||||
#include "logutils.h"
|
||||
#include "blackmisc/db/datastoreutility.h"
|
||||
#include "blackmisc/comparefunctions.h"
|
||||
#include "blackmisc/icons.h"
|
||||
@@ -325,6 +324,20 @@ namespace BlackMisc
|
||||
return removeChars(n, [](QChar c) { return !c.isLetterOrNumber(); });
|
||||
}
|
||||
|
||||
CStatusMessage CAirlineIcaoCode::logMessage(const CAirlineIcaoCode &icaoCode, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
static const CLogCategoryList cats({ CLogCategories::aviation() });
|
||||
const CStatusMessage m(cats.with(CLogCategoryList::fromQStringList(extraCategories)), s, icaoCode.hasValidDesignator() ? icaoCode.getVDesignatorDbKey() + ": " + message.trimmed() : message.trimmed());
|
||||
return m;
|
||||
}
|
||||
|
||||
void CAirlineIcaoCode::addLogDetailsToList(CStatusMessageList *log, const CAirlineIcaoCode &icao, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
if (!log) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
log->push_back(logMessage(icao, message, extraCategories, s));
|
||||
}
|
||||
|
||||
QString CAirlineIcaoCode::getCombinedStringWithKey() const
|
||||
{
|
||||
return (this->hasValidDesignator() ? this->getVDesignator() : QString()) %
|
||||
@@ -396,7 +409,7 @@ namespace BlackMisc
|
||||
{
|
||||
if (this->isDbEqual(otherCode))
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("DB equal score: 100"));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("DB equal score: 100"));
|
||||
return 100;
|
||||
}
|
||||
const bool bothFromDb = this->isLoadedFromDb() && otherCode.isLoadedFromDb();
|
||||
@@ -404,31 +417,31 @@ namespace BlackMisc
|
||||
if (otherCode.hasValidDesignator() && this->getDesignator() == otherCode.getDesignator())
|
||||
{
|
||||
score += 60;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Same designator: %1").arg(score));
|
||||
}
|
||||
|
||||
// only for DB values we check VA
|
||||
if (bothFromDb && this->isVirtualAirline() == otherCode.isVirtualAirline())
|
||||
{
|
||||
score += 20;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("VA equality: %1").arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("VA equality: %1").arg(score));
|
||||
}
|
||||
|
||||
// consider the various names
|
||||
if (this->hasName() && this->getName() == otherCode.getName())
|
||||
{
|
||||
score += 20;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same name '%1': %2").arg(this->getName()).arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Same name '%1': %2").arg(this->getName()).arg(score));
|
||||
}
|
||||
else if (this->hasTelephonyDesignator() && this->getTelephonyDesignator() == otherCode.getTelephonyDesignator())
|
||||
{
|
||||
score += 15;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same telephony '%1': %2").arg(this->getTelephonyDesignator()).arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Same telephony '%1': %2").arg(this->getTelephonyDesignator()).arg(score));
|
||||
}
|
||||
else if (this->hasSimplifiedName() && this->getSimplifiedName() == otherCode.getSimplifiedName())
|
||||
{
|
||||
score += 10;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Same simplified name '%1': %2").arg(this->getSimplifiedName()).arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Same simplified name '%1': %2").arg(this->getSimplifiedName()).arg(score));
|
||||
}
|
||||
return score;
|
||||
}
|
||||
|
||||
@@ -257,6 +257,19 @@ namespace BlackMisc
|
||||
//! Normalize string as airline designator
|
||||
static QString normalizeDesignator(const QString &candidate);
|
||||
|
||||
//! Specialized log message for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static CStatusMessage logMessage(
|
||||
const CAirlineIcaoCode &icaoCode,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Specialized log for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static void addLogDetailsToList(CStatusMessageList *log, const CAirlineIcaoCode &icao,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! From our DB JSON
|
||||
static CAirlineIcaoCode fromDatabaseJson(const QJsonObject &json, const QString &prefix = QString());
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
*/
|
||||
|
||||
#include "blackmisc/aviation/airlineicaocodelist.h"
|
||||
#include "blackmisc/aviation/logutils.h"
|
||||
#include "blackmisc/logcategories.h"
|
||||
#include "blackmisc/country.h"
|
||||
#include "blackmisc/range.h"
|
||||
@@ -207,52 +206,52 @@ namespace BlackMisc
|
||||
reduced = false;
|
||||
if (this->isEmpty())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % u" Empty input list, cannot reduce", getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % u" Empty input list, cannot reduce", getLogCategories()); }
|
||||
return *this;
|
||||
}
|
||||
|
||||
if (telephony.isEmpty() && airlineName.isEmpty() && countryIso.isEmpty())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % u" No name/telephony/country, cannot reduce " % QString::number(this->size()) % u" entries", getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % u" No name/telephony/country, cannot reduce " % QString::number(this->size()) % u" entries", getLogCategories()); }
|
||||
return *this;
|
||||
}
|
||||
|
||||
CAirlineIcaoCodeList step1Data = airlineName.isEmpty() ? *this : this->findByNamesOrTelephonyDesignator(airlineName);
|
||||
if (step1Data.size() < 1 || step1Data.size() == this->size())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by '%1'").arg(airlineName), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by '%1'").arg(airlineName), getLogCategories()); }
|
||||
step1Data = *this;
|
||||
}
|
||||
else
|
||||
{
|
||||
reduced = true;
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by '%1'").arg(airlineName), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by '%1'").arg(airlineName), getLogCategories()); }
|
||||
}
|
||||
if (step1Data.size() == 1) { return step1Data; }
|
||||
|
||||
CAirlineIcaoCodeList step2Data = telephony.isEmpty() ? step1Data : step1Data.findByNamesOrTelephonyDesignator(telephony);
|
||||
if (step2Data.size() < 1 || step2Data.size() == this->size())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by name '%1'").arg(telephony), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by name '%1'").arg(telephony), getLogCategories()); }
|
||||
step2Data = step1Data;
|
||||
}
|
||||
else
|
||||
{
|
||||
reduced = true;
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by telephony '%1'").arg(telephony), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by telephony '%1'").arg(telephony), getLogCategories()); }
|
||||
}
|
||||
if (step2Data.size() == 1) { return step2Data; }
|
||||
|
||||
CAirlineIcaoCodeList step3Data = countryIso.isEmpty() ? step2Data : step2Data.findByCountryIsoCode(countryIso);
|
||||
if (step3Data.size() < 1 || step3Data.size() == this->size())
|
||||
{
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by country '%1'").arg(countryIso), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" cannot reduce by country '%1'").arg(countryIso), getLogCategories()); }
|
||||
step3Data = step2Data;
|
||||
}
|
||||
else
|
||||
{
|
||||
reduced = true;
|
||||
if (log) { CLogUtilities::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by '%1'").arg(countryIso), getLogCategories()); }
|
||||
if (log) { CCallsign::addLogDetailsToList(log, cs, loginfo % QStringLiteral(" reduced by '%1'").arg(countryIso), getLogCategories()); }
|
||||
}
|
||||
return step3Data;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "blackmisc/aviation/callsign.h"
|
||||
#include "blackmisc/mixin/mixincompare.h"
|
||||
#include "blackmisc/stringutils.h"
|
||||
#include "blackmisc/statusmessagelist.h"
|
||||
|
||||
#include <QRegularExpression>
|
||||
#include <QRegularExpressionMatch>
|
||||
@@ -101,6 +102,20 @@ namespace BlackMisc
|
||||
CCallsign::atcSuffixToIcon(callsign.getSuffix());
|
||||
}
|
||||
|
||||
CStatusMessage CCallsign::logMessage(const CCallsign &callsign, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
static const CLogCategoryList cats({ CLogCategories::aviation() });
|
||||
const CStatusMessage m(cats.with(CLogCategoryList::fromQStringList(extraCategories)), s, callsign.isEmpty() ? message.trimmed() : callsign.toQString() + ": " + message.trimmed());
|
||||
return m;
|
||||
}
|
||||
|
||||
void CCallsign::addLogDetailsToList(CStatusMessageList *log, const CCallsign &callsign, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
if (!log) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
log->push_back(logMessage(callsign, message, extraCategories, s));
|
||||
}
|
||||
|
||||
const CIcon &CCallsign::atcSuffixToIcon(const QString &suffix)
|
||||
{
|
||||
if (suffix.length() < 3) { return CIcon::iconByIndex(CIcons::NetworkRoleUnknown); }
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "blackmisc/metaclass.h"
|
||||
#include "blackmisc/propertyindexref.h"
|
||||
#include "blackmisc/valueobject.h"
|
||||
#include "blackmisc/statusmessage.h"
|
||||
#include <QMetaType>
|
||||
#include <QString>
|
||||
#include <tuple>
|
||||
@@ -23,6 +24,8 @@ class QStringList;
|
||||
|
||||
namespace BlackMisc
|
||||
{
|
||||
class CStatusMessageList;
|
||||
|
||||
namespace Aviation
|
||||
{
|
||||
//! Value object encapsulating information of a callsign.
|
||||
@@ -204,6 +207,19 @@ namespace BlackMisc
|
||||
//! Representing icon
|
||||
static const CIcon &convertToIcon(const CCallsign &callsign);
|
||||
|
||||
//! Specialized log message for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static CStatusMessage logMessage(
|
||||
const CCallsign &callsign,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Specialized log for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static void addLogDetailsToList(CStatusMessageList *log, const CCallsign &callsign,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Register metadata
|
||||
static void registerMetadata();
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
#include "blackmisc/db/datastoreutility.h"
|
||||
#include "blackmisc/aviation/livery.h"
|
||||
#include "blackmisc/aviation/logutils.h"
|
||||
#include "blackmisc/mixin/mixincompare.h"
|
||||
#include "blackmisc/comparefunctions.h"
|
||||
#include "blackmisc/logcategories.h"
|
||||
@@ -26,7 +25,6 @@
|
||||
|
||||
using namespace BlackMisc;
|
||||
using namespace BlackMisc::Db;
|
||||
using namespace BlackMisc::PhysicalQuantities;
|
||||
|
||||
namespace BlackMisc
|
||||
{
|
||||
@@ -350,6 +348,20 @@ namespace BlackMisc
|
||||
return temp;
|
||||
}
|
||||
|
||||
CStatusMessage CLivery::logMessage(const CLivery &livery, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
static const CLogCategoryList cats({ CLogCategories::aviation() });
|
||||
const CStatusMessage m(cats.with(CLogCategoryList::fromQStringList(extraCategories)), s, livery.hasCombinedCode() ? livery.getCombinedCodePlusInfoAndId() + ": " + message.trimmed() : message.trimmed());
|
||||
return m;
|
||||
}
|
||||
|
||||
void CLivery::addLogDetailsToList(CStatusMessageList *log, const CLivery &livery, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
if (!log) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
log->push_back(logMessage(livery, message, extraCategories, s));
|
||||
}
|
||||
|
||||
QVariant CLivery::propertyByIndex(BlackMisc::CPropertyIndexRef index) const
|
||||
{
|
||||
if (index.isMyself()) { return QVariant::fromValue(*this); }
|
||||
@@ -440,7 +452,7 @@ namespace BlackMisc
|
||||
{
|
||||
if (this->isDbEqual(otherLivery))
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Equal DB code: 100"));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Equal DB code: 100"));
|
||||
return 100;
|
||||
}
|
||||
|
||||
@@ -456,7 +468,7 @@ namespace BlackMisc
|
||||
// 2 color liveries 25..85
|
||||
score = 25;
|
||||
score += 60 * colorMultiplier;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("2 color liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("2 color liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score));
|
||||
}
|
||||
else if (this->isAirlineLivery() && otherLivery.isAirlineLivery())
|
||||
{
|
||||
@@ -467,10 +479,10 @@ namespace BlackMisc
|
||||
// same ICAO at least means 30, max 50
|
||||
score = qRound(0.5 * this->getAirlineIcaoCode().calculateScore(otherLivery.getAirlineIcaoCode(), log));
|
||||
score += 25 * colorMultiplier;
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("2 airline liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("2 airline liveries, color multiplier %1: %2").arg(colorMultiplier).arg(score));
|
||||
if (this->isMilitary() == otherLivery.isMilitary())
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Mil.flag '%1' matches: %2").arg(boolToYesNo(this->isMilitary())).arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Mil.flag '%1' matches: %2").arg(boolToYesNo(this->isMilitary())).arg(score));
|
||||
score += 10;
|
||||
}
|
||||
}
|
||||
@@ -481,7 +493,7 @@ namespace BlackMisc
|
||||
// 25 is weaker as same ICAO code / 2 from above
|
||||
score = preferColorLiveries ? 25 : 0;
|
||||
score += 25 * colorMultiplier; // needs to be the same as in 2 airlines
|
||||
CLogUtilities::addLogDetailsToList(log, *this, QStringLiteral("Color/airline mixed, color multiplier %1: %2").arg(colorMultiplier).arg(score));
|
||||
addLogDetailsToList(log, *this, QStringLiteral("Color/airline mixed, color multiplier %1: %2").arg(colorMultiplier).arg(score));
|
||||
}
|
||||
return score;
|
||||
}
|
||||
|
||||
@@ -218,6 +218,19 @@ namespace BlackMisc
|
||||
//! The code for a temporary livery
|
||||
static const QString &tempLiveryCode();
|
||||
|
||||
//! Specialized log message for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static CStatusMessage logMessage(
|
||||
const CLivery &livery,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Specialized log for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static void addLogDetailsToList(CStatusMessageList *log, const CLivery &livery,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
private:
|
||||
CAirlineIcaoCode m_airline; //!< corresponding airline, if any
|
||||
QString m_combinedCode; //!< livery code and pseudo airline ICAO code
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
/* Copyright (C) 2019
|
||||
* swift project Community / Contributors
|
||||
*
|
||||
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
|
||||
* directory of this distribution. No part of swift project, including this file, may be copied, modified, propagated,
|
||||
* or distributed except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include "logutils.h"
|
||||
|
||||
namespace BlackMisc
|
||||
{
|
||||
namespace Aviation
|
||||
{
|
||||
void CLogUtilities::addLogDetailsToList(CStatusMessageList *log, const CCallsign &callsign, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
if (!log) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
log->push_back(CLogUtilities::logMessage(callsign, message, extraCategories, s));
|
||||
}
|
||||
|
||||
void CLogUtilities::addLogDetailsToList(CStatusMessageList *log, const CAircraftIcaoCode &icao, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
if (!log) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
log->push_back(CLogUtilities::logMessage(icao, message, extraCategories, s));
|
||||
}
|
||||
|
||||
void CLogUtilities::addLogDetailsToList(CStatusMessageList *log, const CAirlineIcaoCode &icao, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
if (!log) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
log->push_back(CLogUtilities::logMessage(icao, message, extraCategories, s));
|
||||
}
|
||||
|
||||
void CLogUtilities::addLogDetailsToList(CStatusMessageList *log, const CLivery &livery, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
if (!log) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
log->push_back(CLogUtilities::logMessage(livery, message, extraCategories, s));
|
||||
}
|
||||
|
||||
CStatusMessage CLogUtilities::logMessage(const CCallsign &callsign, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
const CStatusMessage m(categories(extraCategories), s, callsign.isEmpty() ? message.trimmed() : callsign.toQString() + ": " + message.trimmed());
|
||||
return m;
|
||||
}
|
||||
|
||||
CStatusMessage CLogUtilities::logMessage(const CAircraftIcaoCode &icaoCode, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
const CStatusMessage m(categories(extraCategories), s, icaoCode.hasDesignator() ? icaoCode.getDesignatorDbKey() + ": " + message.trimmed() : message.trimmed());
|
||||
return m;
|
||||
}
|
||||
|
||||
CStatusMessage CLogUtilities::logMessage(const CAirlineIcaoCode &icaoCode, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
const CStatusMessage m(categories(extraCategories), s, icaoCode.hasValidDesignator() ? icaoCode.getVDesignatorDbKey() + ": " + message.trimmed() : message.trimmed());
|
||||
return m;
|
||||
}
|
||||
|
||||
CStatusMessage CLogUtilities::logMessage(const CLivery &livery, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
const CStatusMessage m(categories(extraCategories), s, livery.hasCombinedCode() ? livery.getCombinedCodePlusInfoAndId() + ": " + message.trimmed() : message.trimmed());
|
||||
return m;
|
||||
}
|
||||
|
||||
const CLogCategoryList &CLogUtilities::defaultCategories()
|
||||
{
|
||||
static const CLogCategoryList cats({ CLogCategories::aviation() });
|
||||
return cats;
|
||||
}
|
||||
|
||||
CLogCategoryList CLogUtilities::categories(const QStringList &extraCategories)
|
||||
{
|
||||
if (extraCategories.isEmpty()) { return defaultCategories(); }
|
||||
CLogCategoryList cats(defaultCategories());
|
||||
cats.push_back(CLogCategoryList::fromQStringList(extraCategories));
|
||||
return cats;
|
||||
}
|
||||
} // ns
|
||||
} // ns
|
||||
@@ -1,95 +0,0 @@
|
||||
/* Copyright (C) 2019
|
||||
* swift project Community / Contributors
|
||||
*
|
||||
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
|
||||
* directory of this distribution. No part of swift project, including this file, may be copied, modified, propagated,
|
||||
* or distributed except according to the terms contained in the LICENSE file.
|
||||
*/
|
||||
|
||||
//! \file
|
||||
|
||||
#ifndef BLACKMISC_AVIATION_MATCHINGUTILS_H
|
||||
#define BLACKMISC_AVIATION_MATCHINGUTILS_H
|
||||
|
||||
#include "blackmisc/aviation/livery.h"
|
||||
#include "blackmisc/aviation/aircrafticaocode.h"
|
||||
#include "blackmisc/aviation/airlineicaocode.h"
|
||||
#include "blackmisc/aviation/callsign.h"
|
||||
#include "blackmisc/statusmessagelist.h"
|
||||
#include "blackmisc/blackmiscexport.h"
|
||||
|
||||
#include <QString>
|
||||
|
||||
namespace BlackMisc
|
||||
{
|
||||
namespace Aviation
|
||||
{
|
||||
/*!
|
||||
* Log.utilities
|
||||
*/
|
||||
class BLACKMISC_EXPORT CLogUtilities
|
||||
{
|
||||
public:
|
||||
//! Specialized log for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static void addLogDetailsToList(CStatusMessageList *log, const CCallsign &callsign,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Specialized log for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static void addLogDetailsToList(CStatusMessageList *log, const CAircraftIcaoCode &icao,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Specialized log for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static void addLogDetailsToList(CStatusMessageList *log, const CAirlineIcaoCode &icao,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Specialized log for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static void addLogDetailsToList(CStatusMessageList *log, const CLivery &livery,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Specialized log message for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static CStatusMessage logMessage(
|
||||
const CCallsign &callsign,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Specialized log message for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static CStatusMessage logMessage(
|
||||
const CAircraftIcaoCode &icaoCode,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Specialized log message for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static CStatusMessage logMessage(
|
||||
const CAirlineIcaoCode &icaoCode,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
//! Specialized log message for matching / reverse lookup
|
||||
//! \threadsafe
|
||||
static CStatusMessage logMessage(
|
||||
const CLivery &livery,
|
||||
const QString &message, const QStringList &extraCategories = {},
|
||||
CStatusMessage::StatusSeverity s = CStatusMessage::SeverityInfo);
|
||||
|
||||
private:
|
||||
//! Default categories
|
||||
static const CLogCategoryList &defaultCategories();
|
||||
|
||||
//! Categories
|
||||
static CLogCategoryList categories(const QStringList &extraCategories);
|
||||
};
|
||||
} // ns
|
||||
} // ns
|
||||
|
||||
#endif // guard
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
#include "matchingutils.h"
|
||||
#include "aircraftmodel.h"
|
||||
#include "blackmisc/aviation/logutils.h"
|
||||
#include "blackmisc/db/datastoreutility.h"
|
||||
#include "blackmisc/comparefunctions.h"
|
||||
#include "blackmisc/fileutils.h"
|
||||
@@ -817,7 +816,7 @@ namespace BlackMisc
|
||||
{
|
||||
const int icaoScore = this->getAircraftIcaoCode().calculateScore(compareModel.getAircraftIcaoCode(), log);
|
||||
const int liveryScore = this->getLivery().calculateScore(compareModel.getLivery(), preferColorLiveries, log);
|
||||
CLogUtilities::addLogDetailsToList(log, this->getCallsign(), QStringLiteral("ICAO score: %1 | livery score: %2").arg(icaoScore).arg(liveryScore));
|
||||
CCallsign::addLogDetailsToList(log, this->getCallsign(), QStringLiteral("ICAO score: %1 | livery score: %2").arg(icaoScore).arg(liveryScore));
|
||||
return qRound(0.5 * (icaoScore + liveryScore));
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "blackmisc/simulation/matchingutils.h"
|
||||
#include "blackmisc/network/networkutils.h"
|
||||
#include "blackmisc/aviation/callsign.h"
|
||||
#include "blackmisc/aviation/logutils.h"
|
||||
#include "blackmisc/math/mathutils.h"
|
||||
#include "blackmisc/mixin/mixincompare.h"
|
||||
#include "blackmisc/iterator.h"
|
||||
@@ -1441,9 +1440,9 @@ namespace BlackMisc
|
||||
ScoredModels scoreMap;
|
||||
|
||||
// normally prefer colors if there is no airline
|
||||
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("Prefer color liveries: '%1', airline: '%2', ignore zero scores: '%3'").arg(boolToYesNo(preferColorLiveries), remoteModel.getAirlineIcaoCodeDesignator(), boolToYesNo(ignoreZeroScores)));
|
||||
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- Start scoring in list with %1 models").arg(this->size()));
|
||||
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), this->coverageSummaryForModel(remoteModel));
|
||||
CCallsign::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("Prefer color liveries: '%1', airline: '%2', ignore zero scores: '%3'").arg(boolToYesNo(preferColorLiveries), remoteModel.getAirlineIcaoCodeDesignator(), boolToYesNo(ignoreZeroScores)));
|
||||
CCallsign::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- Start scoring in list with %1 models").arg(this->size()));
|
||||
CCallsign::addLogDetailsToList(log, remoteModel.getCallsign(), this->coverageSummaryForModel(remoteModel));
|
||||
|
||||
int c = 1;
|
||||
for (const CAircraftModel &model : *this)
|
||||
@@ -1452,13 +1451,13 @@ namespace BlackMisc
|
||||
const int score = model.calculateScore(remoteModel, preferColorLiveries, log ? &subMsgs : nullptr);
|
||||
if (ignoreZeroScores && score < 1) { continue; }
|
||||
|
||||
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- Calculating #%1 '%2'---").arg(c).arg(model.getModelStringAndDbKey()));
|
||||
CCallsign::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- Calculating #%1 '%2'---").arg(c).arg(model.getModelStringAndDbKey()));
|
||||
if (log) { log->push_back(subMsgs); }
|
||||
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- End calculating #%1 ---").arg(c));
|
||||
CCallsign::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- End calculating #%1 ---").arg(c));
|
||||
c++;
|
||||
scoreMap.insertMulti(score, model);
|
||||
}
|
||||
CLogUtilities::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- End scoring ---"));
|
||||
CCallsign::addLogDetailsToList(log, remoteModel.getCallsign(), QStringLiteral("--- End scoring ---"));
|
||||
return scoreMap;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
*/
|
||||
|
||||
#include "matchingutils.h"
|
||||
#include "blackmisc/aviation/logutils.h"
|
||||
|
||||
using namespace BlackMisc::Aviation;
|
||||
|
||||
@@ -17,7 +16,7 @@ namespace BlackMisc
|
||||
{
|
||||
void CMatchingUtils::addLogDetailsToList(CStatusMessageList *log, const CSimulatedAircraft &remoteAircraft, const QString &message, const QStringList &extraCategories, CStatusMessage::StatusSeverity s)
|
||||
{
|
||||
CLogUtilities::addLogDetailsToList(log, remoteAircraft.getCallsign(), message, extraCategories, s);
|
||||
CCallsign::addLogDetailsToList(log, remoteAircraft.getCallsign(), message, extraCategories, s);
|
||||
}
|
||||
|
||||
const CLogCategoryList &CMatchingUtils::defaultCategories()
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
#include "blackmisc/simulation/remoteaircraftprovider.h"
|
||||
#include "blackmisc/simulation/matchingutils.h"
|
||||
#include "blackmisc/aviation/logutils.h"
|
||||
#include "blackmisc/logmessage.h"
|
||||
#include "blackmisc/json.h"
|
||||
#include "blackmisc/verify.h"
|
||||
@@ -732,7 +731,7 @@ namespace BlackMisc
|
||||
{
|
||||
if (callsign.isEmpty()) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
const CStatusMessage m = CLogUtilities::logMessage(callsign, message, getLogCategories(), severity);
|
||||
const CStatusMessage m = CCallsign::logMessage(callsign, message, getLogCategories(), severity);
|
||||
this->addReverseLookupMessage(callsign, m);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user