mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-15 01:05:35 +08:00
Ref T421, function to get interpolation messages from the simulator drivers
This commit is contained in:
@@ -271,6 +271,9 @@ namespace BlackCore
|
||||
//! \copydoc BlackMisc::Simulation::IInterpolationSetupProvider::setInterpolationSetupGlobal
|
||||
virtual bool setInterpolationSetupGlobal(const BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal &setup) override;
|
||||
|
||||
//! Interpolation messages for callsign
|
||||
virtual BlackMisc::CStatusMessageList getInterpolationMessages(const BlackMisc::Aviation::CCallsign &callsign) const = 0;
|
||||
|
||||
//! Counter added aircraft
|
||||
int getStatisticsPhysicallyAddedAircraft() const { return m_statsPhysicallyAddedAircraft; }
|
||||
|
||||
|
||||
@@ -173,6 +173,14 @@ namespace BlackSimPlugin
|
||||
return m_renderedAircraft.getCallsigns();
|
||||
}
|
||||
|
||||
CStatusMessageList CSimulatorEmulated::getInterpolationMessages(const CCallsign &callsign) const
|
||||
{
|
||||
if (canLog()) { m_monitorWidget->appendReceivingCall(Q_FUNC_INFO); }
|
||||
if (!m_interpolators.contains(callsign)) { return CStatusMessageList(); }
|
||||
const CInterpolationAndRenderingSetupPerCallsign setup = this->getInterpolationSetupPerCallsignOrDefault(callsign); // threadsafe copy
|
||||
return m_interpolators[callsign]->getInterpolationMessages(setup.getInterpolatorMode());
|
||||
}
|
||||
|
||||
void CSimulatorEmulated::highlightAircraft(const CSimulatedAircraft &aircraftToHighlight, bool enableHighlight, const CTime &displayTime)
|
||||
{
|
||||
if (canLog()) { m_monitorWidget->appendReceivingCall(Q_FUNC_INFO, aircraftToHighlight.toQString(), boolToTrueFalse(enableHighlight), displayTime.toQString()); }
|
||||
|
||||
@@ -68,6 +68,7 @@ namespace BlackSimPlugin
|
||||
virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const override;
|
||||
virtual bool isPhysicallyRenderedAircraft(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
virtual BlackMisc::Aviation::CCallsignSet physicallyRenderedAircraft() const override;
|
||||
virtual BlackMisc::CStatusMessageList getInterpolationMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
|
||||
// ----- functions just logged -------
|
||||
virtual void highlightAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraftToHighlight, bool enableHighlight, const BlackMisc::PhysicalQuantities::CTime &displayTime) override;
|
||||
|
||||
@@ -168,6 +168,12 @@ namespace BlackSimPlugin
|
||||
}
|
||||
}
|
||||
|
||||
CStatusMessageList CFs9Client::getInterpolationMessages(CInterpolationAndRenderingSetupBase::InterpolatorMode mode) const
|
||||
{
|
||||
if (!this->getInterpolator()) { return CStatusMessageList(); }
|
||||
return this->getInterpolator()->getInterpolationMessages(mode);
|
||||
}
|
||||
|
||||
void CFs9Client::timerEvent(QTimerEvent *event)
|
||||
{
|
||||
Q_UNUSED(event);
|
||||
|
||||
@@ -47,13 +47,18 @@ namespace BlackSimPlugin
|
||||
BlackCore::ISimulator *simulator);
|
||||
|
||||
//! Destructor
|
||||
virtual ~CFs9Client();
|
||||
virtual ~CFs9Client() override;
|
||||
|
||||
//! Set DirectPlay host address
|
||||
void setHostAddress(const QString &hostAddress);
|
||||
|
||||
//! Get interpolator
|
||||
//! Get interpolator @{
|
||||
BlackMisc::Simulation::CInterpolatorMulti *getInterpolator() { return &m_interpolator; }
|
||||
const BlackMisc::Simulation::CInterpolatorMulti *getInterpolator() const { return &m_interpolator; }
|
||||
//! @}
|
||||
|
||||
//! \copydoc BlackMisc::Simulation::CInterpolator::getInterpolationMessages
|
||||
BlackMisc::CStatusMessageList getInterpolationMessages(BlackMisc::Simulation::CInterpolationAndRenderingSetupBase::InterpolatorMode mode) const;
|
||||
|
||||
public slots:
|
||||
//! Send new text message
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
#include "multiplayerpackets.h"
|
||||
#include "multiplayerpacketparser.h"
|
||||
#include "registermetadata.h"
|
||||
#include "blackmisc/simulation/interpolatorlinear.h"
|
||||
#include "blackmisc/network/textmessage.h"
|
||||
#include "blackmisc/simulation/simulatorplugininfo.h"
|
||||
#include "blackmisc/logmessage.h"
|
||||
@@ -281,6 +280,15 @@ namespace BlackSimPlugin
|
||||
this->displayStatusMessage(message.asStatusMessage(true, true));
|
||||
}
|
||||
|
||||
CStatusMessageList CSimulatorFs9::getInterpolationMessages(const CCallsign &callsign) const
|
||||
{
|
||||
if (!m_hashFs9Clients.contains(callsign)) { return CStatusMessageList(); }
|
||||
const CFs9Client *client = m_hashFs9Clients[callsign].data();
|
||||
if (!client) { return CStatusMessageList(); }
|
||||
const CInterpolationAndRenderingSetupPerCallsign setup = this->getInterpolationSetupPerCallsignOrDefault(callsign);
|
||||
return client->getInterpolationMessages(setup.getInterpolatorMode());
|
||||
}
|
||||
|
||||
bool CSimulatorFs9::isPhysicallyRenderedAircraft(const CCallsign &callsign) const
|
||||
{
|
||||
return m_hashFs9Clients.contains(callsign);
|
||||
|
||||
@@ -64,6 +64,7 @@ namespace BlackSimPlugin
|
||||
virtual bool updateOwnSimulatorSelcal(const BlackMisc::Aviation::CSelcal &selcal, const BlackMisc::CIdentifier &originator) override;
|
||||
virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const override;
|
||||
virtual void displayTextMessage(const BlackMisc::Network::CTextMessage &message) const override;
|
||||
virtual BlackMisc::CStatusMessageList getInterpolationMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
//! \@}
|
||||
|
||||
protected:
|
||||
|
||||
@@ -224,6 +224,13 @@ namespace BlackSimPlugin
|
||||
return m_interpolator->getLastInterpolatedSituation(mode);
|
||||
}
|
||||
|
||||
const CStatusMessageList &CSimConnectObject::getInterpolationMessages(CInterpolationAndRenderingSetupBase::InterpolatorMode mode) const
|
||||
{
|
||||
static const CStatusMessageList empty;
|
||||
if (!m_interpolator) { return empty; }
|
||||
return m_interpolator->getInterpolationMessages(mode);
|
||||
}
|
||||
|
||||
QString CSimConnectObject::toQString() const
|
||||
{
|
||||
static const QString s("CS: '%1' obj: %2 req: %3 conf.added: %4 pend.rem.: %5 rwa: %6 awr: %7 aEx: %8 aRem: %9");
|
||||
|
||||
@@ -254,6 +254,9 @@ namespace BlackSimPlugin
|
||||
//! \copydoc BlackMisc::Simulation::CInterpolator::getLastInterpolatedSituation
|
||||
const BlackMisc::Aviation::CAircraftSituation &getLastInterpolatedSituation(BlackMisc::Simulation::CInterpolationAndRenderingSetupBase::InterpolatorMode mode) const;
|
||||
|
||||
//! \copydoc BlackMisc::Simulation::CInterpolator::getInterpolationMessages
|
||||
const BlackMisc::CStatusMessageList &getInterpolationMessages(BlackMisc::Simulation::CInterpolationAndRenderingSetupBase::InterpolatorMode mode) const;
|
||||
|
||||
//! Interpolator
|
||||
BlackMisc::Simulation::CInterpolatorMulti *getInterpolator() const { return m_interpolator.data(); }
|
||||
|
||||
|
||||
@@ -355,6 +355,13 @@ namespace BlackSimPlugin
|
||||
ISimulator::setFlightNetworkConnected(connected);
|
||||
}
|
||||
|
||||
CStatusMessageList CSimulatorFsxCommon::getInterpolationMessages(const CCallsign &callsign) const
|
||||
{
|
||||
if (!m_simConnectObjects.contains(callsign)) { return CStatusMessageList(); }
|
||||
const CInterpolationAndRenderingSetupPerCallsign setup = this->getInterpolationSetupConsolidated(callsign);
|
||||
return (m_simConnectObjects[callsign]).getInterpolationMessages(setup.getInterpolatorMode());
|
||||
}
|
||||
|
||||
CSimConnectDefinitions::SimObjectRequest CSimulatorFsxCommon::requestToSimObjectRequest(DWORD requestId)
|
||||
{
|
||||
DWORD v = static_cast<DWORD>(CSimConnectDefinitions::SimObjectEndMarker);
|
||||
|
||||
@@ -151,6 +151,7 @@ namespace BlackSimPlugin
|
||||
virtual QString getStatisticsSimulatorSpecific() const override;
|
||||
virtual void resetAircraftStatistics() override;
|
||||
virtual void setFlightNetworkConnected(bool connected) override;
|
||||
virtual BlackMisc::CStatusMessageList getInterpolationMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
//! @}
|
||||
|
||||
//! \copydoc BlackMisc::Simulation::ISimulationEnvironmentProvider::requestElevation
|
||||
|
||||
@@ -145,6 +145,13 @@ namespace BlackSimPlugin
|
||||
m_statsAddCurrentTimeMs = -1;
|
||||
}
|
||||
|
||||
CStatusMessageList CSimulatorXPlane::getInterpolationMessages(const CCallsign &callsign) const
|
||||
{
|
||||
if (!m_xplaneAircraftObjects.contains(callsign)) { return CStatusMessageList(); }
|
||||
const CInterpolationAndRenderingSetupPerCallsign setup = this->getInterpolationSetupConsolidated(callsign);
|
||||
return m_xplaneAircraftObjects[callsign].getInterpolationMessages(setup.getInterpolatorMode());
|
||||
}
|
||||
|
||||
void CSimulatorXPlane::clearAllRemoteAircraftData()
|
||||
{
|
||||
m_aircraftAddedFailed.clear();
|
||||
|
||||
@@ -138,6 +138,7 @@ namespace BlackSimPlugin
|
||||
virtual void unload() override;
|
||||
virtual QString getStatisticsSimulatorSpecific() const override;
|
||||
virtual void resetAircraftStatistics() override;
|
||||
virtual BlackMisc::CStatusMessageList getInterpolationMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
|
||||
//! @}
|
||||
|
||||
//! \copydoc BlackMisc::Simulation::ISimulationEnvironmentProvider::requestElevation
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "blackmisc/simulation/interpolatormulti.h"
|
||||
|
||||
using namespace BlackCore;
|
||||
using namespace BlackMisc;
|
||||
using namespace BlackMisc::Aviation;
|
||||
using namespace BlackMisc::Simulation;
|
||||
|
||||
@@ -49,6 +50,11 @@ namespace BlackSimPlugin
|
||||
return m_interpolator->getInterpolation(currentTimeSinceEpoc, setup, aircraftNumber);
|
||||
}
|
||||
|
||||
CStatusMessageList CXPlaneMPAircraft::getInterpolationMessages(CInterpolationAndRenderingSetupBase::InterpolatorMode mode) const
|
||||
{
|
||||
return this->getInterpolator() ? this->getInterpolator()->getInterpolationMessages(mode) : CStatusMessageList();
|
||||
}
|
||||
|
||||
CCallsignSet CXPlaneMPAircraftObjects::getAllCallsigns() const
|
||||
{
|
||||
return CCallsignSet(this->keys());
|
||||
|
||||
@@ -55,6 +55,9 @@ namespace BlackSimPlugin
|
||||
//! \copydoc BlackMisc::Simulation::CInterpolator::getInterpolation
|
||||
BlackMisc::Simulation::CInterpolationResult getInterpolation(qint64 currentTimeSinceEpoc, const BlackMisc::Simulation::CInterpolationAndRenderingSetupPerCallsign &setup, int aircraftNumber) const;
|
||||
|
||||
//! \copydoc BlackMisc::Simulation::CInterpolator::getInterpolationMessages
|
||||
BlackMisc::CStatusMessageList getInterpolationMessages(BlackMisc::Simulation::CInterpolationAndRenderingSetupBase::InterpolatorMode mode) const;
|
||||
|
||||
//! Interpolator
|
||||
BlackMisc::Simulation::CInterpolatorMulti *getInterpolator() const { return m_interpolator.data(); }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user