mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 12:55:33 +08:00
Ref T566, use "configurable" reverse lookup in network/airspace monitor parts
This commit is contained in:
committed by
Mat Sutcliffe
parent
002f9e6a9b
commit
991c7d59ef
@@ -512,11 +512,12 @@ namespace BlackCore
|
||||
(remoteAircraft.hasModelString()) // we cannot expect more info
|
||||
);
|
||||
|
||||
const ReverseLookupLogging revLogEnabled = this->whatToReverseLog();
|
||||
if (trial < 5 && !complete)
|
||||
{
|
||||
static const QString ws("Wait for further data, trial %1 ts %2");
|
||||
static const QString format("hh:mm:ss.zzz");
|
||||
this->addReverseLookupMessage(callsign, ws.arg(trial).arg(QDateTime::currentDateTimeUtc().toString(format)));
|
||||
if (!revLogEnabled.testFlag(RevLogSimplifiedInfo)) { this->addReverseLookupMessage(callsign, ws.arg(trial).arg(QDateTime::currentDateTimeUtc().toString(format))); }
|
||||
const QPointer<CAirspaceMonitor> myself(this);
|
||||
QTimer::singleShot(1500, this, [ = ]()
|
||||
{
|
||||
@@ -701,8 +702,9 @@ namespace BlackCore
|
||||
|
||||
if (isAircraft)
|
||||
{
|
||||
const ReverseLookupLogging reverseLookupEnabled = this->isReverseLookupMessagesEnabled();
|
||||
CStatusMessageList reverseLookupMessages;
|
||||
CStatusMessageList *pReverseLookupMessages = this->isReverseLookupMessagesEnabled() ? &reverseLookupMessages : nullptr;
|
||||
CStatusMessageList *pReverseLookupMessages = reverseLookupEnabled.testFlag(RevLogEnabled) ? &reverseLookupMessages : nullptr;
|
||||
CMatchingUtils::addLogDetailsToList(pReverseLookupMessages, callsign,
|
||||
QStringLiteral("FsInn data from network: aircraft '%1', airline '%2', model '%3', combined '%4'").
|
||||
arg(aircraftIcaoDesignator, airlineIcaoDesignator, modelString, combinedAircraftType));
|
||||
@@ -720,8 +722,9 @@ namespace BlackCore
|
||||
|
||||
BLACK_VERIFY_X(callsign.isValid(), Q_FUNC_INFO, "invalid callsign");
|
||||
if (!callsign.isValid()) { return; }
|
||||
const ReverseLookupLogging reverseLookupEnabled = this->isReverseLookupMessagesEnabled();
|
||||
CStatusMessageList reverseLookupMessages;
|
||||
CStatusMessageList *pReverseLookupMessages = this->isReverseLookupMessagesEnabled() ? &reverseLookupMessages : nullptr;
|
||||
CStatusMessageList *pReverseLookupMessages = reverseLookupEnabled.testFlag(RevLogEnabled) ? &reverseLookupMessages : nullptr;
|
||||
CMatchingUtils::addLogDetailsToList(pReverseLookupMessages, callsign, QString("Data from network: aircraft '%1', airline '%2', livery '%3'").
|
||||
arg(aircraftIcaoDesignator, airlineIcaoDesignator, livery),
|
||||
CAirspaceMonitor::getLogCategories());
|
||||
|
||||
@@ -11,10 +11,11 @@
|
||||
#ifndef BLACKCORE_AIRSPACE_MONITOR_H
|
||||
#define BLACKCORE_AIRSPACE_MONITOR_H
|
||||
|
||||
#include "blackcore/blackcoreexport.h"
|
||||
#include "blackcore/network.h"
|
||||
#include "blackcore/blackcoreexport.h"
|
||||
#include "blackmisc/simulation/aircraftmodel.h"
|
||||
#include "blackmisc/simulation/airspaceaircraftsnapshot.h"
|
||||
#include "blackmisc/simulation/matchinglog.h"
|
||||
#include "blackmisc/simulation/ownaircraftprovider.h"
|
||||
#include "blackmisc/simulation/remoteaircraftprovider.h"
|
||||
#include "blackmisc/simulation/simulationenvironmentprovider.h"
|
||||
|
||||
@@ -11,15 +11,12 @@
|
||||
#ifndef BLACKCORE_CONTEXT_CONTEXTNETWORK_H
|
||||
#define BLACKCORE_CONTEXT_CONTEXTNETWORK_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
#include "blackcore/blackcoreexport.h"
|
||||
#include "blackcore/context/context.h"
|
||||
#include "blackcore/corefacade.h"
|
||||
#include "blackcore/corefacadeconfig.h"
|
||||
#include "blackcore/network.h"
|
||||
#include "blackmisc/simulation/simulatedaircraft.h"
|
||||
#include "blackcore/blackcoreexport.h"
|
||||
#include "blackmisc/simulation/remoteaircraftprovider.h"
|
||||
#include "blackmisc/simulation/simulatedaircraftlist.h"
|
||||
#include "blackmisc/aviation/aircraftpartslist.h"
|
||||
#include "blackmisc/aviation/airporticaocode.h"
|
||||
@@ -40,6 +37,8 @@
|
||||
#include "blackmisc/statusmessage.h"
|
||||
#include "blackmisc/weather/metar.h"
|
||||
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include <functional>
|
||||
|
||||
// clazy:excludeall=const-signal-or-slot
|
||||
@@ -304,10 +303,10 @@ namespace BlackCore
|
||||
virtual BlackMisc::CStatusMessageList getReverseLookupMessages(const BlackMisc::Aviation::CCallsign &callsign) const = 0;
|
||||
|
||||
//! Enabled reverse lookup logging?
|
||||
virtual bool isReverseLookupMessagesEnabled() const = 0;
|
||||
virtual BlackMisc::Simulation::ReverseLookupLogging isReverseLookupMessagesEnabled() const = 0;
|
||||
|
||||
//! Enable reverse lookup logging
|
||||
virtual void enableReverseLookupMessages(bool enabled) = 0;
|
||||
virtual void enableReverseLookupMessages(BlackMisc::Simulation::ReverseLookupLogging enable) = 0;
|
||||
|
||||
//! Get aircraft parts history
|
||||
virtual BlackMisc::CStatusMessageList getAircraftPartsHistory(const BlackMisc::Aviation::CCallsign &callsign) const = 0;
|
||||
|
||||
@@ -427,17 +427,17 @@ namespace BlackCore
|
||||
}
|
||||
|
||||
//! \copydoc IContextNetwork::isReverseLookupMessagesEnabled
|
||||
virtual bool isReverseLookupMessagesEnabled() const override
|
||||
virtual BlackMisc::Simulation::ReverseLookupLogging isReverseLookupMessagesEnabled() const override
|
||||
{
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return false;
|
||||
return BlackMisc::Simulation::RevLogDisabled;
|
||||
}
|
||||
|
||||
//! \copydoc IContextNetwork::enableReverseLookupMessages
|
||||
virtual void enableReverseLookupMessages(bool enabled) override
|
||||
virtual void enableReverseLookupMessages(BlackMisc::Simulation::ReverseLookupLogging enable) override
|
||||
{
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
Q_UNUSED(enabled);
|
||||
Q_UNUSED(enable);
|
||||
}
|
||||
|
||||
//! \copydoc IContextNetwork::getAircraftPartsHistory
|
||||
|
||||
@@ -697,17 +697,18 @@ namespace BlackCore
|
||||
return m_airspace->getReverseLookupMessages(callsign);
|
||||
}
|
||||
|
||||
bool CContextNetwork::isReverseLookupMessagesEnabled() const
|
||||
ReverseLookupLogging CContextNetwork::isReverseLookupMessagesEnabled() const
|
||||
{
|
||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||
return m_airspace->isReverseLookupMessagesEnabled();
|
||||
}
|
||||
|
||||
void CContextNetwork::enableReverseLookupMessages(bool enabled)
|
||||
void CContextNetwork::enableReverseLookupMessages(ReverseLookupLogging enable)
|
||||
{
|
||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << enabled; }
|
||||
if (m_airspace->isReverseLookupMessagesEnabled() == enabled) { return; }
|
||||
m_airspace->enableReverseLookupMessages(enabled);
|
||||
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << enable; }
|
||||
const ReverseLookupLogging revEnabled = m_airspace->isReverseLookupMessagesEnabled();
|
||||
if (revEnabled == enable) { return; }
|
||||
m_airspace->enableReverseLookupMessages(enable);
|
||||
emit CContext::changedLogOrDebugSettings();
|
||||
}
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@ namespace BlackCore
|
||||
virtual bool updateAircraftNetworkModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) override;
|
||||
virtual bool updateFastPositionEnabled(const BlackMisc::Aviation::CCallsign &callsign, bool enableFastPositonUpdates) override;
|
||||
virtual bool updateAircraftSupportingGndFLag(const BlackMisc::Aviation::CCallsign &callsign, bool supportGndFlag) override;
|
||||
virtual void enableReverseLookupMessages(bool enabled) override;
|
||||
virtual void enableReverseLookupMessages(BlackMisc::Simulation::ReverseLookupLogging enable) override;
|
||||
|
||||
// plain vanilla passing to airspace monitor
|
||||
virtual bool setAircraftEnabledFlag(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRendering) override;
|
||||
@@ -178,7 +178,7 @@ namespace BlackCore
|
||||
virtual BlackMisc::Simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual BlackMisc::Simulation::CAircraftModel getAircraftInRangeModelForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual BlackMisc::CStatusMessageList getReverseLookupMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual bool isReverseLookupMessagesEnabled() const override;
|
||||
virtual BlackMisc::Simulation::ReverseLookupLogging isReverseLookupMessagesEnabled() const override;
|
||||
virtual BlackMisc::CStatusMessageList getAircraftPartsHistory(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual BlackMisc::Aviation::CAircraftPartsList getRemoteAircraftParts(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual int getRemoteAircraftSupportingPartsCount() const override;
|
||||
|
||||
@@ -273,14 +273,16 @@ namespace BlackCore
|
||||
return m_dBusInterface->callDBusRet<CStatusMessageList>(QLatin1String("getReverseLookupMessages"), callsign);
|
||||
}
|
||||
|
||||
bool CContextNetworkProxy::isReverseLookupMessagesEnabled() const
|
||||
ReverseLookupLogging CContextNetworkProxy::isReverseLookupMessagesEnabled() const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("isReverseLookupMessagesEnabled"));
|
||||
//! \fixme KB 2019-04 directly return MatchingLog causes issues with QDbusArgument
|
||||
const int r = m_dBusInterface->callDBusRet<int>(QLatin1String("isReverseLookupMessagesEnabled"));
|
||||
return static_cast<ReverseLookupLogging>(r);
|
||||
}
|
||||
|
||||
void CContextNetworkProxy::enableReverseLookupMessages(bool enabled)
|
||||
void CContextNetworkProxy::enableReverseLookupMessages(ReverseLookupLogging enable)
|
||||
{
|
||||
m_dBusInterface->callDBus(QLatin1String("enableReverseLookupMessages"), enabled);
|
||||
m_dBusInterface->callDBus(QLatin1String("enableReverseLookupMessages"), enable);
|
||||
}
|
||||
|
||||
CStatusMessageList CContextNetworkProxy::getAircraftPartsHistory(const CCallsign &callsign) const
|
||||
|
||||
@@ -120,8 +120,8 @@ namespace BlackCore
|
||||
virtual void setFastPositionEnabledCallsigns(BlackMisc::Aviation::CCallsignSet &callsigns) override;
|
||||
virtual BlackMisc::Aviation::CCallsignSet getFastPositionEnabledCallsigns() const override;
|
||||
virtual BlackMisc::CStatusMessageList getReverseLookupMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual bool isReverseLookupMessagesEnabled() const override;
|
||||
virtual void enableReverseLookupMessages(bool enabled) override;
|
||||
virtual BlackMisc::Simulation::ReverseLookupLogging isReverseLookupMessagesEnabled() const override;
|
||||
virtual void enableReverseLookupMessages(BlackMisc::Simulation::ReverseLookupLogging enable) override;
|
||||
virtual BlackMisc::CStatusMessageList getAircraftPartsHistory(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual BlackMisc::Aviation::CAircraftPartsList getRemoteAircraftParts(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual QString getLibraryInfo(bool detailed) const override;
|
||||
|
||||
@@ -608,13 +608,13 @@ namespace BlackMisc
|
||||
}
|
||||
}
|
||||
|
||||
void CRemoteAircraftProvider::enableReverseLookupMessages(bool enabled)
|
||||
void CRemoteAircraftProvider::enableReverseLookupMessages(ReverseLookupLogging enable)
|
||||
{
|
||||
QWriteLocker l(&m_lockMessages);
|
||||
m_enableReverseLookupMsgs = enabled;
|
||||
m_enableReverseLookupMsgs = enable;
|
||||
}
|
||||
|
||||
bool CRemoteAircraftProvider::isReverseLookupMessagesEnabled() const
|
||||
ReverseLookupLogging CRemoteAircraftProvider::isReverseLookupMessagesEnabled() const
|
||||
{
|
||||
QReadLocker l(&m_lockMessages);
|
||||
return m_enableReverseLookupMsgs;
|
||||
@@ -646,14 +646,14 @@ namespace BlackMisc
|
||||
void CRemoteAircraftProvider::addReverseLookupMessage(const CCallsign &callsign, const CStatusMessage &message)
|
||||
{
|
||||
if (callsign.isEmpty()) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
this->addReverseLookupMessages(callsign, CStatusMessageList({ message }));
|
||||
}
|
||||
|
||||
void CRemoteAircraftProvider::addReverseLookupMessage(const CCallsign &callsign, const QString &message, CStatusMessage::StatusSeverity severity)
|
||||
{
|
||||
if (callsign.isEmpty()) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
if (message.isEmpty()) { return; }
|
||||
const CStatusMessage m = CMatchingUtils::logMessage(callsign, message, getLogCategories(), severity);
|
||||
this->addReverseLookupMessage(callsign, m);
|
||||
}
|
||||
@@ -688,6 +688,12 @@ namespace BlackMisc
|
||||
return situation.withAltitudeOffset(os);
|
||||
}
|
||||
|
||||
ReverseLookupLogging CRemoteAircraftProvider::whatToReverseLog() const
|
||||
{
|
||||
QReadLocker l(&m_lockMessages);
|
||||
return m_enableReverseLookupMsgs;
|
||||
}
|
||||
|
||||
CStatusMessageList CRemoteAircraftProvider::getAircraftPartsHistory(const CCallsign &callsign) const
|
||||
{
|
||||
QReadLocker l(&m_lockPartsHistory);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
#include "blackmisc/simulation/aircraftmodel.h"
|
||||
#include "blackmisc/simulation/airspaceaircraftsnapshot.h"
|
||||
#include "blackmisc/simulation/simulatedaircraft.h"
|
||||
#include "blackmisc/simulation/reverselookup.h"
|
||||
#include "blackmisc/simulation/simulatedaircraftlist.h"
|
||||
#include "blackmisc/aviation/aircraftpartslist.h"
|
||||
#include "blackmisc/aviation/aircraftsituationlist.h"
|
||||
@@ -206,11 +206,11 @@ namespace BlackMisc
|
||||
|
||||
//! Enabled reverse lookup logging?
|
||||
//! \threadsafe
|
||||
virtual bool isReverseLookupMessagesEnabled() const = 0;
|
||||
virtual ReverseLookupLogging isReverseLookupMessagesEnabled() const = 0;
|
||||
|
||||
//! Enable reverse lookup logging
|
||||
//! \threadsafe
|
||||
virtual void enableReverseLookupMessages(bool enabled) = 0;
|
||||
virtual void enableReverseLookupMessages(ReverseLookupLogging enable) = 0;
|
||||
|
||||
//! Get aircraft parts history
|
||||
//! \threadsafe
|
||||
@@ -344,8 +344,8 @@ namespace BlackMisc
|
||||
//! \ingroup remoteaircraftprovider
|
||||
//! \ingroup reverselookup
|
||||
//! @{
|
||||
virtual void enableReverseLookupMessages(bool enabled) override;
|
||||
virtual bool isReverseLookupMessagesEnabled() const override;
|
||||
virtual void enableReverseLookupMessages(ReverseLookupLogging enable) override;
|
||||
virtual ReverseLookupLogging isReverseLookupMessagesEnabled() const override;
|
||||
virtual BlackMisc::CStatusMessageList getReverseLookupMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
//! @}
|
||||
|
||||
@@ -450,6 +450,10 @@ namespace BlackMisc
|
||||
//! Add an offset for testing
|
||||
Aviation::CAircraftSituation addTestAltitudeOffsetToSituation(const Aviation::CAircraftSituation &situation) const;
|
||||
|
||||
//! What to log?
|
||||
//! \threadsafe
|
||||
ReverseLookupLogging whatToReverseLog() const;
|
||||
|
||||
private:
|
||||
//! Store the latest changes
|
||||
//! \remark latest first
|
||||
@@ -465,6 +469,7 @@ namespace BlackMisc
|
||||
int m_situationsAdded = 0; //!< total number of situations added, thread safe access required
|
||||
int m_partsAdded = 0; //!< total number of parts added, thread safe access required
|
||||
|
||||
ReverseLookupLogging m_enableReverseLookupMsgs = RevLogSimplifiedInfo; //!< shall we log. information about the matching process
|
||||
Simulation::CSimulatedAircraftPerCallsign m_aircraftInRange; //!< aircraft, thread safe access required
|
||||
Aviation::CStatusMessageListPerCallsign m_reverseLookupMessages; //!< reverse lookup messages
|
||||
Aviation::CStatusMessageListPerCallsign m_aircraftPartsMessages; //!< status messages for parts history
|
||||
@@ -472,8 +477,7 @@ namespace BlackMisc
|
||||
Aviation::CTimestampPerCallsign m_partsLastModified; //!< when parts last modified
|
||||
Aviation::CLengthPerCallsign m_testOffset; //!< offsets
|
||||
|
||||
bool m_enableReverseLookupMsgs = false; //!< shall we log. information about the matching process
|
||||
bool m_enableAircraftPartsHistory = true; //!< shall we keep a history of aircraft parts
|
||||
bool m_enableAircraftPartsHistory = true; //!< shall we keep a history of aircraft parts
|
||||
|
||||
// locks
|
||||
mutable QReadWriteLock m_lockSituations; //!< lock for situations: m_situationsByCallsign
|
||||
|
||||
Reference in New Issue
Block a user