refactor: Remove timesync feature

This is directly available by new simulators.
This commit is contained in:
Lars Toenning
2024-12-29 14:25:56 +01:00
parent 865e7fc0ef
commit efc7796f1b
23 changed files with 0 additions and 384 deletions

View File

@@ -59,8 +59,6 @@ namespace swift::simplugin::emulated
}
}
bool CSimulatorEmulated::isTimeSynchronized() const { return m_timeSyncronized; }
bool CSimulatorEmulated::connectTo()
{
const QPointer<CSimulatorEmulated> myself(this);
@@ -168,23 +166,6 @@ namespace swift::simplugin::emulated
m_monitorWidget->displayTextMessage(message);
}
bool CSimulatorEmulated::setTimeSynchronization(bool enable, const CTime &offset)
{
if (canLog())
{
m_monitorWidget->appendReceivingCall(Q_FUNC_INFO, boolToTrueFalse(enable), offset.toQString());
}
m_timeSyncronized = enable;
m_offsetTime = offset;
return enable;
}
CTime CSimulatorEmulated::getTimeSynchronizationOffset() const
{
if (canLog()) { m_monitorWidget->appendReceivingCall(Q_FUNC_INFO); }
return m_offsetTime;
}
bool CSimulatorEmulated::isPhysicallyRenderedAircraft(const CCallsign &callsign) const
{
if (canLog()) m_monitorWidget->appendReceivingCall(Q_FUNC_INFO, callsign.toQString());

View File

@@ -46,7 +46,6 @@ namespace swift::simplugin::emulated
virtual ~CSimulatorEmulated() override;
// functions implemented
virtual bool isTimeSynchronized() const override;
virtual bool connectTo() override;
virtual bool disconnectFrom() override;
virtual void unload() override;
@@ -61,9 +60,6 @@ namespace swift::simplugin::emulated
const swift::misc::CIdentifier &originator) override;
virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const override;
virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const override;
virtual bool setTimeSynchronization(bool enable,
const swift::misc::physical_quantities::CTime &offset) override;
virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override;
virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const override;
virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const override;
virtual swift::misc::CStatusMessageList
@@ -173,11 +169,9 @@ namespace swift::simplugin::emulated
bool m_paused = false;
bool m_connected = true;
bool m_simulating = true;
bool m_timeSyncronized = false;
int m_countInterpolatedSituations = 0;
int m_countInterpolatedParts = 0;
QTimer m_interpolatorFetchTimer; //!< fetch data from interpolator
swift::misc::physical_quantities::CTime m_offsetTime;
swift::misc::simulation::CSimulatedAircraft m_myAircraft; //!< represents own aircraft of simulator
swift::misc::simulation::CSimulatedAircraftList m_renderedAircraft; //!< represents remote aircraft in simulator
QPointer<CSimulatorEmulatedMonitorDialog>

View File

@@ -462,13 +462,6 @@ namespace swift::simplugin::flightgear
return airports;
}
bool CSimulatorFlightgear::setTimeSynchronization(bool enable, const physical_quantities::CTime &offset)
{
Q_UNUSED(offset)
if (enable) { CLogMessage(this).info(u"Flightgear provides real time synchronization, use this one"); }
return false;
}
bool CSimulatorFlightgear::isPhysicallyRenderedAircraft(const CCallsign &callsign) const
{
return m_flightgearAircraftObjects.contains(callsign);

View File

@@ -123,7 +123,6 @@ namespace swift::simplugin::flightgear
//! \name ISimulator implementations
//! @{
virtual bool isTimeSynchronized() const override { return false; }
virtual bool connectTo() override;
virtual bool disconnectFrom() override;
virtual bool updateOwnSimulatorCockpit(const swift::misc::simulation::CSimulatedAircraft &aircraft,
@@ -133,12 +132,6 @@ namespace swift::simplugin::flightgear
virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const override;
virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const override;
virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override;
virtual bool setTimeSynchronization(bool enable,
const swift::misc::physical_quantities::CTime &offset) override;
virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override
{
return swift::misc::physical_quantities::CTime(0, swift::misc::physical_quantities::CTimeUnit::hrmin());
}
virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const override;
virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const override;
virtual void unload() override;

View File

@@ -59,15 +59,6 @@ namespace swift::simplugin::fscommon
return r;
}
CTime CSimulatorFsCommon::getTimeSynchronizationOffset() const { return m_syncTimeOffset; }
bool CSimulatorFsCommon::setTimeSynchronization(bool enable, const physical_quantities::CTime &offset)
{
m_simTimeSynced = enable;
m_syncTimeOffset = offset;
return true;
}
CAirportList CSimulatorFsCommon::getAirportsInRange(bool recalculateDistance) const
{
if (!m_airportsInRangeFromSimulator.isEmpty())

View File

@@ -32,10 +32,6 @@ namespace swift::simplugin::fscommon
// ---------------------- ISimulator ------------------
virtual bool disconnectFrom() override;
virtual bool isPaused() const override { return m_simPaused; }
virtual bool isTimeSynchronized() const override { return m_simTimeSynced; }
virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override;
virtual bool setTimeSynchronization(bool enable,
const swift::misc::physical_quantities::CTime &offset) override;
virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override;
// ---------------------- ISimulator ------------------
@@ -62,8 +58,6 @@ namespace swift::simplugin::fscommon
0; //!< own aircraft updates, even with 50 updates/sec long enough even for 32bit
int m_skipCockpitUpdateCycles = 0; //!< skip some update cycles to allow changes in simulator cockpit to be set
bool m_simPaused = false; //!< simulator paused?
bool m_simTimeSynced = false; //!< time synchronized?
swift::misc::physical_quantities::CTime m_syncTimeOffset; //!< time offset
swift::misc::aviation::CAirportList m_airportsInRangeFromSimulator; //!< airports in range of own aircraft
// cockpit as set in SIM

View File

@@ -25,7 +25,6 @@ namespace swift::simplugin::fsxcommon
{
static const QString ownAircraft("RequestOwnAircraft");
static const QString title("RequestOwnAircraftTitle");
static const QString simEnv("RequestSimEnvironment");
static const QString sbData("RequestSbData");
static const QString facility("RequestFacility");
static const QString end("<end>");
@@ -35,7 +34,6 @@ namespace swift::simplugin::fsxcommon
{
case RequestOwnAircraft: return ownAircraft;
case RequestOwnAircraftTitle: return title;
case RequestSimEnvironment: return simEnv;
case RequestSbData: return sbData;
case RequestFacility: return facility;
case RequestEndMarker: return end;

View File

@@ -209,15 +209,6 @@ namespace swift::simplugin::fsxcommon
bool isOnGround() const { return this->aboveGroundFt() < 1.0; }
};
//! Data struct simulator environment
struct DataDefinitionSimEnvironment
{
qint32 zuluTimeSeconds; //!< Simulator zulu (GMT) time in secs.
qint32 zuluYear; //!< Simulator zulu (GMT) year.
qint32 zuluMonth; //!< Simulator zulu (GMT) month.
qint32 zuluDayOfMonth; //!< Simulator zulu (GMT) day of the month.
};
//! The whole SB data area
//! \remark vPilot SB area https://forums.vatsim.net/viewtopic.php?p=519580
//! \remark SB offsets http://www.squawkbox.ca/doc/sdk/fsuipc.php
@@ -301,7 +292,6 @@ namespace swift::simplugin::fsxcommon
{
RequestOwnAircraft,
RequestOwnAircraftTitle,
RequestSimEnvironment,
RequestSbData, //!< SB client area / XPDR mode
RequestMSFSTransponder, //!< MSFS XPDR mode/ident
RequestFacility,

View File

@@ -528,12 +528,6 @@ namespace swift::simplugin::fsxcommon
SIMCONNECT_PERIOD_SECOND, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED),
"Cannot request title", Q_FUNC_INFO, "SimConnect_RequestDataOnSimObject");
hr += this->logAndTraceSendId(
SimConnect_RequestDataOnSimObject(m_hSimConnect, CSimConnectDefinitions::RequestSimEnvironment,
CSimConnectDefinitions::DataSimEnvironment, SIMCONNECT_OBJECT_ID_USER,
SIMCONNECT_PERIOD_SECOND, SIMCONNECT_DATA_REQUEST_FLAG_CHANGED),
"Cannot request sim.env.", Q_FUNC_INFO, "SimConnect_RequestDataOnSimObject");
// TODO TZ use MSFS2024 FSUIPC?
if (!this->getSimulatorPluginInfo().getSimulatorInfo().isMSFS() &&
!this->getSimulatorPluginInfo().getSimulatorInfo().isMSFS2024())
@@ -2553,61 +2547,6 @@ namespace swift::simplugin::fsxcommon
return true;
}
void CSimulatorFsxCommon::synchronizeTime(const DataDefinitionSimEnvironment *simEnv)
{
if (!m_simTimeSynced) { return; }
if (!this->isConnected()) { return; }
if (m_syncTimeDeferredCounter > 0)
{
--m_syncTimeDeferredCounter;
return; // wait some time before we snyc again
}
const int zh = simEnv->zuluTimeSeconds / 3600;
const int zm = (simEnv->zuluTimeSeconds - (zh * 3600)) / 60;
const QDateTime simDateTime({ simEnv->zuluYear, simEnv->zuluMonth, simEnv->zuluDayOfMonth }, { zh, zm },
Qt::UTC);
QDateTime currentDateTime = QDateTime::currentDateTimeUtc();
if (!m_syncTimeOffset.isZeroEpsilonConsidered())
{
int offsetSeconds = m_syncTimeOffset.valueInteger(CTimeUnit::s());
currentDateTime = currentDateTime.addSecs(offsetSeconds);
}
if (qAbs(simDateTime.secsTo(currentDateTime)) < 120)
{
// checked and no relevant difference
m_syncTimeDeferredCounter = 10; // wait some time to check again
return;
}
const DWORD h = static_cast<DWORD>(currentDateTime.time().hour());
const DWORD m = static_cast<DWORD>(currentDateTime.time().minute());
const DWORD y = static_cast<DWORD>(currentDateTime.date().year());
const DWORD d = static_cast<DWORD>(currentDateTime.date().dayOfYear());
const HRESULT hr1 = SimConnect_TransmitClientEvent(m_hSimConnect, 0, EventSetTimeZuluHours, h,
SIMCONNECT_GROUP_PRIORITY_STANDARD,
SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
const HRESULT hr2 = SimConnect_TransmitClientEvent(m_hSimConnect, 0, EventSetTimeZuluMinutes, m,
SIMCONNECT_GROUP_PRIORITY_STANDARD,
SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
const HRESULT hr3 = SimConnect_TransmitClientEvent(m_hSimConnect, 0, EventSetTimeZuluYear, y,
SIMCONNECT_GROUP_PRIORITY_STANDARD,
SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
const HRESULT hr4 =
SimConnect_TransmitClientEvent(m_hSimConnect, 0, EventSetTimeZuluDay, d, SIMCONNECT_GROUP_PRIORITY_STANDARD,
SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY);
if (isFailure(hr1, hr2, hr3, hr4)) { CLogMessage(this).warning(u"Sending time sync failed!"); }
else
{
m_syncTimeDeferredCounter = 5; // allow some time to sync
CLogMessage(this).info(u"Synchronized time to '%1' UTC") << currentDateTime.toString();
}
}
bool CSimulatorFsxCommon::requestPositionDataForSimObject(const CSimConnectObject &simObject,
SIMCONNECT_PERIOD period)
{
@@ -2727,7 +2666,6 @@ namespace swift::simplugin::fsxcommon
m_simConnected = false;
m_simSimulating = false;
m_sbDataReceived = 0;
m_syncTimeDeferredCounter = 0;
m_requestIdSimObjAircraft = static_cast<SIMCONNECT_DATA_REQUEST_ID>(RequestSimObjAircraftStart);
m_dispatchErrors = 0;
m_receiveExceptionCount = 0;

View File

@@ -549,9 +549,6 @@ namespace swift::simplugin::fsxcommon
//! The SimConnect object for idxs
CSimConnectObject getSimObjectForObjectId(DWORD objectId) const;
//! Sync time with user's computer
void synchronizeTime(const DataDefinitionSimEnvironment *simEnv);
//! Request data for a CSimConnectObject (aka remote aircraft)
bool requestPositionDataForSimObject(const CSimConnectObject &simObject,
SIMCONNECT_PERIOD period = SIMCONNECT_PERIOD_SECOND);
@@ -651,7 +648,6 @@ namespace swift::simplugin::fsxcommon
qint64 m_traceAutoUntilTs = -1; //!< allows to automatically trace for some time
qint64 m_simulatingChangedTs = -1; //!< timestamp, when simulating changed (used to avoid jitter)
int m_sbDataReceived = 0; //!< SB3 area data received
int m_syncTimeDeferredCounter = 0; //!< Set when synchronized, used to wait some time
// tracing dispatch performance
int m_dispatchErrors = 0; //!< number of dispatched failed, \sa dispatch

View File

@@ -260,13 +260,6 @@ namespace swift::simplugin::fsxcommon
simulatorFsxP3D->reverseLookupAndUpdateOwnAircraftModel(model);
break;
}
case CSimConnectDefinitions::RequestSimEnvironment:
{
const DataDefinitionSimEnvironment *simEnv =
reinterpret_cast<const DataDefinitionSimEnvironment *>(&pObjData->dwData);
simulatorFsxP3D->synchronizeTime(simEnv);
break;
}
case CSimConnectDefinitions::RequestMSFSTransponder:
{
const DataDefinitionMSFSTransponderMode *transponderMode =

View File

@@ -636,13 +636,6 @@ namespace swift::simplugin::xplane
return airports;
}
bool CSimulatorXPlane::setTimeSynchronization(bool enable, const physical_quantities::CTime &offset)
{
Q_UNUSED(offset)
if (enable) { CLogMessage(this).info(u"X-Plane provides real time synchronization, use this one"); }
return false;
}
bool CSimulatorXPlane::isPhysicallyRenderedAircraft(const CCallsign &callsign) const
{
return m_xplaneAircraftObjects.contains(callsign);

View File

@@ -127,10 +127,6 @@ namespace swift::simplugin::xplane
//! \name ISimulator implementations
//! @{
virtual bool isTimeSynchronized() const override
{
return false;
} // TODO: Can we query the XP intrinisc feature?
virtual bool connectTo() override;
virtual bool disconnectFrom() override;
virtual bool updateOwnSimulatorCockpit(const swift::misc::simulation::CSimulatedAircraft &aircraft,
@@ -140,12 +136,6 @@ namespace swift::simplugin::xplane
virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const override;
virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const override;
virtual swift::misc::aviation::CAirportList getAirportsInRange(bool recalculateDistance) const override;
virtual bool setTimeSynchronization(bool enable,
const swift::misc::physical_quantities::CTime &offset) override;
virtual swift::misc::physical_quantities::CTime getTimeSynchronizationOffset() const override
{
return swift::misc::physical_quantities::CTime(0, swift::misc::physical_quantities::CTimeUnit::hrmin());
}
virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const override;
virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const override;
virtual bool followAircraft(const swift::misc::aviation::CCallsign &callsign) override;