mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-14 00:25:35 +08:00
Ref T259, some adjustments to our latest style
* no private slots * timers as members
This commit is contained in:
@@ -79,7 +79,7 @@ namespace BlackSimPlugin
|
|||||||
{
|
{
|
||||||
namespace XPlane
|
namespace XPlane
|
||||||
{
|
{
|
||||||
CSimulatorXPlane::CSimulatorXPlane(const BlackMisc::Simulation::CSimulatorPluginInfo &info,
|
CSimulatorXPlane::CSimulatorXPlane(const CSimulatorPluginInfo &info,
|
||||||
IOwnAircraftProvider *ownAircraftProvider,
|
IOwnAircraftProvider *ownAircraftProvider,
|
||||||
IRemoteAircraftProvider *remoteAircraftProvider,
|
IRemoteAircraftProvider *remoteAircraftProvider,
|
||||||
IWeatherGridProvider *weatherGridProvider,
|
IWeatherGridProvider *weatherGridProvider,
|
||||||
@@ -90,16 +90,14 @@ namespace BlackSimPlugin
|
|||||||
m_watcher->setWatchMode(QDBusServiceWatcher::WatchForUnregistration);
|
m_watcher->setWatchMode(QDBusServiceWatcher::WatchForUnregistration);
|
||||||
m_watcher->addWatchedService(xswiftbusServiceName());
|
m_watcher->addWatchedService(xswiftbusServiceName());
|
||||||
m_watcher->setObjectName("QDBusServiceWatcher");
|
m_watcher->setObjectName("QDBusServiceWatcher");
|
||||||
connect(m_watcher, &QDBusServiceWatcher::serviceUnregistered, this, &CSimulatorXPlane::ps_serviceUnregistered);
|
connect(m_watcher, &QDBusServiceWatcher::serviceUnregistered, this, &CSimulatorXPlane::serviceUnregistered);
|
||||||
|
|
||||||
m_fastTimer = new QTimer(this);
|
m_fastTimer.setObjectName(this->objectName().append(":m_fastTimer"));
|
||||||
m_slowTimer = new QTimer(this);
|
m_slowTimer.setObjectName(this->objectName().append(":m_slowTimer"));
|
||||||
m_fastTimer->setObjectName(this->objectName().append(":m_fastTimer"));
|
connect(&m_fastTimer, &QTimer::timeout, this, &CSimulatorXPlane::fastTimerTimeout);
|
||||||
m_slowTimer->setObjectName(this->objectName().append(":m_slowTimer"));
|
connect(&m_slowTimer, &QTimer::timeout, this, &CSimulatorXPlane::slowTimerTimeout);
|
||||||
connect(m_fastTimer, &QTimer::timeout, this, &CSimulatorXPlane::ps_fastTimerTimeout);
|
m_fastTimer.start(100);
|
||||||
connect(m_slowTimer, &QTimer::timeout, this, &CSimulatorXPlane::ps_slowTimerTimeout);
|
m_slowTimer.start(1000);
|
||||||
m_fastTimer->start(100);
|
|
||||||
m_slowTimer->start(1000);
|
|
||||||
|
|
||||||
m_defaultModel =
|
m_defaultModel =
|
||||||
{
|
{
|
||||||
@@ -109,7 +107,7 @@ namespace BlackSimPlugin
|
|||||||
CAircraftIcaoCode("A320", "L2J")
|
CAircraftIcaoCode("A320", "L2J")
|
||||||
};
|
};
|
||||||
|
|
||||||
resetData();
|
this->resetXPlaneData();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSimulatorXPlane::unload()
|
void CSimulatorXPlane::unload()
|
||||||
@@ -133,7 +131,7 @@ namespace BlackSimPlugin
|
|||||||
return mode == BlackMisc::Aviation::CTransponder::StateStandby ? 1 : 2;
|
return mode == BlackMisc::Aviation::CTransponder::StateStandby ? 1 : 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSimulatorXPlane::ps_fastTimerTimeout()
|
void CSimulatorXPlane::fastTimerTimeout()
|
||||||
{
|
{
|
||||||
if (isConnected())
|
if (isConnected())
|
||||||
{
|
{
|
||||||
@@ -190,7 +188,7 @@ namespace BlackSimPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSimulatorXPlane::ps_slowTimerTimeout()
|
void CSimulatorXPlane::slowTimerTimeout()
|
||||||
{
|
{
|
||||||
if (isConnected())
|
if (isConnected())
|
||||||
{
|
{
|
||||||
@@ -243,10 +241,10 @@ namespace BlackSimPlugin
|
|||||||
|
|
||||||
if (m_service->isValid() && m_traffic->isValid() && m_weather->isValid() && m_traffic->initialize())
|
if (m_service->isValid() && m_traffic->isValid() && m_weather->isValid() && m_traffic->initialize())
|
||||||
{
|
{
|
||||||
ps_emitOwnAircraftModelChanged(m_service->getAircraftModelPath(), m_service->getAircraftModelFilename(), m_service->getAircraftLivery(),
|
emitOwnAircraftModelChanged(m_service->getAircraftModelPath(), m_service->getAircraftModelFilename(), m_service->getAircraftLivery(),
|
||||||
m_service->getAircraftIcaoCode(), m_service->getAircraftModelString(), m_service->getAircraftName(), m_service->getAircraftDescription());
|
m_service->getAircraftIcaoCode(), m_service->getAircraftModelString(), m_service->getAircraftName(), m_service->getAircraftDescription());
|
||||||
connect(m_service, &CXSwiftBusServiceProxy::aircraftModelChanged, this, &CSimulatorXPlane::ps_emitOwnAircraftModelChanged);
|
connect(m_service, &CXSwiftBusServiceProxy::aircraftModelChanged, this, &CSimulatorXPlane::emitOwnAircraftModelChanged);
|
||||||
connect(m_service, &CXSwiftBusServiceProxy::airportsInRangeUpdated, this, &CSimulatorXPlane::ps_setAirportsInRange);
|
connect(m_service, &CXSwiftBusServiceProxy::airportsInRangeUpdated, this, &CSimulatorXPlane::setAirportsInRange);
|
||||||
m_service->updateAirportsInRange();
|
m_service->updateAirportsInRange();
|
||||||
connect(m_traffic, &CXSwiftBusTrafficProxy::simFrame, this, &CSimulatorXPlane::updateRemoteAircraft);
|
connect(m_traffic, &CXSwiftBusTrafficProxy::simFrame, this, &CSimulatorXPlane::updateRemoteAircraft);
|
||||||
connect(m_traffic, &CXSwiftBusTrafficProxy::remoteAircraftData, this, &CSimulatorXPlane::updateRemoteAircraftFromSimulator);
|
connect(m_traffic, &CXSwiftBusTrafficProxy::remoteAircraftData, this, &CSimulatorXPlane::updateRemoteAircraftFromSimulator);
|
||||||
@@ -282,7 +280,7 @@ namespace BlackSimPlugin
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSimulatorXPlane::ps_serviceUnregistered()
|
void CSimulatorXPlane::serviceUnregistered()
|
||||||
{
|
{
|
||||||
m_conn = QDBusConnection { "default" };
|
m_conn = QDBusConnection { "default" };
|
||||||
if (m_watcher) { m_watcher->setConnection(m_conn); }
|
if (m_watcher) { m_watcher->setConnection(m_conn); }
|
||||||
@@ -295,8 +293,8 @@ namespace BlackSimPlugin
|
|||||||
emitSimulatorCombinedStatus();
|
emitSimulatorCombinedStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSimulatorXPlane::ps_emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery,
|
void CSimulatorXPlane::emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery,
|
||||||
const QString &icao, const QString &modelString, const QString &name, const QString &description)
|
const QString &icao, const QString &modelString, const QString &name, const QString &description)
|
||||||
{
|
{
|
||||||
CAircraftModel model(modelString, CAircraftModel::TypeOwnSimulatorModel, CSimulatorInfo::XPLANE, name, description, icao);
|
CAircraftModel model(modelString, CAircraftModel::TypeOwnSimulatorModel, CSimulatorInfo::XPLANE, name, description, icao);
|
||||||
if (!livery.isEmpty()) { model.setModelString(model.getModelString() + " " + livery); }
|
if (!livery.isEmpty()) { model.setModelString(model.getModelString() + " " + livery); }
|
||||||
@@ -341,7 +339,7 @@ namespace BlackSimPlugin
|
|||||||
m_service->addTextMessage(message.getSenderCallsign().toQString() + ": " + message.getMessage(), color.redF(), color.greenF(), color.blueF());
|
m_service->addTextMessage(message.getSenderCallsign().toQString() + ": " + message.getMessage(), color.redF(), color.greenF(), color.blueF());
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSimulatorXPlane::ps_setAirportsInRange(const QStringList &icaos, const QStringList &names, const BlackMisc::CSequence<double> &lats, const BlackMisc::CSequence<double> &lons, const BlackMisc::CSequence<double> &alts)
|
void CSimulatorXPlane::setAirportsInRange(const QStringList &icaos, const QStringList &names, const BlackMisc::CSequence<double> &lats, const BlackMisc::CSequence<double> &lons, const BlackMisc::CSequence<double> &alts)
|
||||||
{
|
{
|
||||||
//! \todo restrict to maxAirportsInRange()
|
//! \todo restrict to maxAirportsInRange()
|
||||||
m_airportsInRange.clear();
|
m_airportsInRange.clear();
|
||||||
@@ -378,18 +376,18 @@ namespace BlackSimPlugin
|
|||||||
{
|
{
|
||||||
if (!isConnected()) { return false; }
|
if (!isConnected()) { return false; }
|
||||||
|
|
||||||
if(c_driverInterpolation)
|
if (c_driverInterpolation)
|
||||||
{
|
{
|
||||||
if (mode == CInterpolatorMulti::ModeUnknown) { return false; }
|
if (mode == CInterpolatorMulti::ModeUnknown) { return false; }
|
||||||
if (callsign.isEmpty())
|
if (callsign.isEmpty())
|
||||||
{
|
{
|
||||||
const int c = m_xplaneAircrafts.setInterpolatorModes(mode);
|
const int c = m_xplaneAircraft.setInterpolatorModes(mode);
|
||||||
return c > 0;
|
return c > 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!m_xplaneAircrafts.contains(callsign)) { return false; }
|
if (!m_xplaneAircraft.contains(callsign)) { return false; }
|
||||||
return m_xplaneAircrafts[callsign].setInterpolatorMode(mode);
|
return m_xplaneAircraft[callsign].setInterpolatorMode(mode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -420,7 +418,7 @@ namespace BlackSimPlugin
|
|||||||
{
|
{
|
||||||
if (c_driverInterpolation)
|
if (c_driverInterpolation)
|
||||||
{
|
{
|
||||||
return m_xplaneAircrafts.contains(callsign);
|
return m_xplaneAircraft.contains(callsign);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -506,7 +504,8 @@ namespace BlackSimPlugin
|
|||||||
{
|
{
|
||||||
if (dir.cdUp()) { return dir.path(); }
|
if (dir.cdUp()) { return dir.path(); }
|
||||||
}
|
}
|
||||||
} while(dir.cdUp());
|
}
|
||||||
|
while (dir.cdUp());
|
||||||
CLogMessage(this).warning("Failed to find CSL package for %1") << modelFile;
|
CLogMessage(this).warning("Failed to find CSL package for %1") << modelFile;
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
@@ -521,7 +520,7 @@ namespace BlackSimPlugin
|
|||||||
Q_ASSERT_X(!newRemoteAircraft.getCallsign().isEmpty(), Q_FUNC_INFO, "empty callsign");
|
Q_ASSERT_X(!newRemoteAircraft.getCallsign().isEmpty(), Q_FUNC_INFO, "empty callsign");
|
||||||
Q_ASSERT_X(newRemoteAircraft.hasModelString(), Q_FUNC_INFO, "missing model string");
|
Q_ASSERT_X(newRemoteAircraft.hasModelString(), Q_FUNC_INFO, "missing model string");
|
||||||
|
|
||||||
m_xplaneAircrafts.insert(newRemoteAircraft.getCallsign(), CXPlaneMPAircraft(newRemoteAircraft, &m_interpolationLogger));
|
m_xplaneAircraft.insert(newRemoteAircraft.getCallsign(), CXPlaneMPAircraft(newRemoteAircraft, &m_interpolationLogger));
|
||||||
CAircraftModel aircraftModel = newRemoteAircraft.getModel();
|
CAircraftModel aircraftModel = newRemoteAircraft.getModel();
|
||||||
QString livery = aircraftModel.getLivery().getCombinedCode(); //! \todo livery resolution for XP
|
QString livery = aircraftModel.getLivery().getCombinedCode(); //! \todo livery resolution for XP
|
||||||
m_traffic->addPlane(newRemoteAircraft.getCallsign().asString(), aircraftModel.getModelString(),
|
m_traffic->addPlane(newRemoteAircraft.getCallsign().asString(), aircraftModel.getModelString(),
|
||||||
@@ -536,7 +535,7 @@ namespace BlackSimPlugin
|
|||||||
|
|
||||||
CSimulatedAircraft remoteAircraftCopy(newRemoteAircraft);
|
CSimulatedAircraft remoteAircraftCopy(newRemoteAircraft);
|
||||||
remoteAircraftCopy.setRendered(rendered);
|
remoteAircraftCopy.setRendered(rendered);
|
||||||
emit aircraftRenderingChanged(remoteAircraftCopy);
|
emit this->aircraftRenderingChanged(remoteAircraftCopy);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -555,7 +554,7 @@ namespace BlackSimPlugin
|
|||||||
|
|
||||||
CSimulatedAircraft remoteAircraftCopy(newRemoteAircraft);
|
CSimulatedAircraft remoteAircraftCopy(newRemoteAircraft);
|
||||||
remoteAircraftCopy.setRendered(rendered);
|
remoteAircraftCopy.setRendered(rendered);
|
||||||
emit aircraftRenderingChanged(remoteAircraftCopy);
|
emit this->aircraftRenderingChanged(remoteAircraftCopy);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -565,9 +564,9 @@ namespace BlackSimPlugin
|
|||||||
Q_ASSERT(isConnected());
|
Q_ASSERT(isConnected());
|
||||||
if (c_driverInterpolation)
|
if (c_driverInterpolation)
|
||||||
{
|
{
|
||||||
if (m_xplaneAircrafts.contains(situation.getCallsign()))
|
if (m_xplaneAircraft.contains(situation.getCallsign()))
|
||||||
{
|
{
|
||||||
m_xplaneAircrafts[situation.getCallsign()].addAircraftSituation(situation);
|
m_xplaneAircraft[situation.getCallsign()].addAircraftSituation(situation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -592,7 +591,7 @@ namespace BlackSimPlugin
|
|||||||
parts.setTimeOffsetMs(situation.getTimeOffsetMs());
|
parts.setTimeOffsetMs(situation.getTimeOffsetMs());
|
||||||
if (situation.getGroundSpeed() < CSpeed(50, CSpeedUnit::kts()))
|
if (situation.getGroundSpeed() < CSpeed(50, CSpeedUnit::kts()))
|
||||||
{
|
{
|
||||||
const auto nearestAirport = std::min_element(m_airportsInRange.cbegin(), m_airportsInRange.cend(), [&situation](auto &&a, auto &&b)
|
const auto nearestAirport = std::min_element(m_airportsInRange.cbegin(), m_airportsInRange.cend(), [&situation](auto && a, auto && b)
|
||||||
{
|
{
|
||||||
return calculateEuclideanDistanceSquared(situation, a) < calculateEuclideanDistanceSquared(situation, b);
|
return calculateEuclideanDistanceSquared(situation, a) < calculateEuclideanDistanceSquared(situation, b);
|
||||||
});
|
});
|
||||||
@@ -613,8 +612,6 @@ namespace BlackSimPlugin
|
|||||||
onRemoteProviderAddedAircraftParts(situation.getCallsign(), parts);
|
onRemoteProviderAddedAircraftParts(situation.getCallsign(), parts);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSimulatorXPlane::onRemoteProviderAddedAircraftParts(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftParts &parts)
|
void CSimulatorXPlane::onRemoteProviderAddedAircraftParts(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftParts &parts)
|
||||||
@@ -623,9 +620,9 @@ namespace BlackSimPlugin
|
|||||||
|
|
||||||
if (c_driverInterpolation)
|
if (c_driverInterpolation)
|
||||||
{
|
{
|
||||||
if (m_xplaneAircrafts.contains(callsign))
|
if (m_xplaneAircraft.contains(callsign))
|
||||||
{
|
{
|
||||||
m_xplaneAircrafts[callsign].addAircraftParts(parts);
|
m_xplaneAircraft[callsign].addAircraftParts(parts);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -653,15 +650,15 @@ namespace BlackSimPlugin
|
|||||||
m_hints.remove(callsign);
|
m_hints.remove(callsign);
|
||||||
|
|
||||||
// really remove from simulator
|
// really remove from simulator
|
||||||
if (!m_xplaneAircrafts.contains(callsign)) { return false; } // already fully removed or not yet added
|
if (!m_xplaneAircraft.contains(callsign)) { return false; } // already fully removed or not yet added
|
||||||
CXPlaneMPAircraft &xplaneAircraft = m_xplaneAircrafts[callsign];
|
CXPlaneMPAircraft &xplaneAircraft = m_xplaneAircraft[callsign];
|
||||||
|
|
||||||
// avoid further data from simulator
|
// avoid further data from simulator
|
||||||
// this->stopRequestingDataForSimObject(simObject);
|
// this->stopRequestingDataForSimObject(simObject);
|
||||||
|
|
||||||
m_traffic->removePlane(callsign.asString());
|
m_traffic->removePlane(callsign.asString());
|
||||||
|
|
||||||
m_xplaneAircrafts.remove(callsign);
|
m_xplaneAircraft.remove(callsign);
|
||||||
|
|
||||||
// mark in provider
|
// mark in provider
|
||||||
const bool updated = this->updateAircraftRendered(callsign, false);
|
const bool updated = this->updateAircraftRendered(callsign, false);
|
||||||
@@ -694,7 +691,7 @@ namespace BlackSimPlugin
|
|||||||
{
|
{
|
||||||
// remove one by one
|
// remove one by one
|
||||||
int r = 0;
|
int r = 0;
|
||||||
const CCallsignSet callsigns = m_xplaneAircrafts.getAllCallsigns();
|
const CCallsignSet callsigns = m_xplaneAircraft.getAllCallsigns();
|
||||||
for (const CCallsign &cs : callsigns)
|
for (const CCallsign &cs : callsigns)
|
||||||
{
|
{
|
||||||
if (this->physicallyRemoveRemoteAircraft(cs)) { r++; }
|
if (this->physicallyRemoveRemoteAircraft(cs)) { r++; }
|
||||||
@@ -703,9 +700,9 @@ namespace BlackSimPlugin
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int r = getAircraftInRangeCount();
|
const int r = getAircraftInRangeCount();
|
||||||
m_traffic->removeAllPlanes();
|
m_traffic->removeAllPlanes();
|
||||||
updateMarkAllAsNotRendered();
|
this->updateMarkAllAsNotRendered();
|
||||||
CLogMessage(this).info("XP: Removed all aircraft");
|
CLogMessage(this).info("XP: Removed all aircraft");
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
@@ -844,7 +841,7 @@ namespace BlackSimPlugin
|
|||||||
const CCallsignSet callsignsToLog(m_interpolationRenderingSetup.getLogCallsigns());
|
const CCallsignSet callsignsToLog(m_interpolationRenderingSetup.getLogCallsigns());
|
||||||
|
|
||||||
// interpolation for all remote aircraft
|
// interpolation for all remote aircraft
|
||||||
const QList<CXPlaneMPAircraft> xplaneAircrafts(m_xplaneAircrafts.values());
|
const QList<CXPlaneMPAircraft> xplaneAircrafts(m_xplaneAircraft.values());
|
||||||
for (const CXPlaneMPAircraft &xplaneAircraft : xplaneAircrafts)
|
for (const CXPlaneMPAircraft &xplaneAircraft : xplaneAircrafts)
|
||||||
{
|
{
|
||||||
const CCallsign callsign(xplaneAircraft.getCallsign());
|
const CCallsign callsign(xplaneAircraft.getCallsign());
|
||||||
@@ -869,7 +866,7 @@ namespace BlackSimPlugin
|
|||||||
// update situation
|
// update situation
|
||||||
if (!xplaneAircraft.isSameAsSent(interpolatedSituation))
|
if (!xplaneAircraft.isSameAsSent(interpolatedSituation))
|
||||||
{
|
{
|
||||||
m_xplaneAircrafts[xplaneAircraft.getCallsign()].setPositionAsSent(interpolatedSituation);
|
m_xplaneAircraft[xplaneAircraft.getCallsign()].setPositionAsSent(interpolatedSituation);
|
||||||
m_traffic->setPlanePosition(interpolatedSituation.getCallsign().asString(),
|
m_traffic->setPlanePosition(interpolatedSituation.getCallsign().asString(),
|
||||||
interpolatedSituation.latitude().value(CAngleUnit::deg()),
|
interpolatedSituation.latitude().value(CAngleUnit::deg()),
|
||||||
interpolatedSituation.longitude().value(CAngleUnit::deg()),
|
interpolatedSituation.longitude().value(CAngleUnit::deg()),
|
||||||
@@ -1017,7 +1014,7 @@ namespace BlackSimPlugin
|
|||||||
void CSimulatorXPlane::updateRemoteAircraftFromSimulator(const QString &callsign_, double latitude, double longitude, double groundElevation, double modelVerticalOffset)
|
void CSimulatorXPlane::updateRemoteAircraftFromSimulator(const QString &callsign_, double latitude, double longitude, double groundElevation, double modelVerticalOffset)
|
||||||
{
|
{
|
||||||
CCallsign callsign(callsign_);
|
CCallsign callsign(callsign_);
|
||||||
if (!m_xplaneAircrafts.contains(callsign)) { return; }
|
if (!m_xplaneAircraft.contains(callsign)) { return; }
|
||||||
|
|
||||||
CElevationPlane elevation(CLatitude(latitude, CAngleUnit::deg()), CLongitude(longitude, CAngleUnit::deg()), CAltitude(groundElevation, CLengthUnit::m()));
|
CElevationPlane elevation(CLatitude(latitude, CAngleUnit::deg()), CLongitude(longitude, CAngleUnit::deg()), CAltitude(groundElevation, CLengthUnit::m()));
|
||||||
elevation.setSinglePointRadius();
|
elevation.setSinglePointRadius();
|
||||||
@@ -1056,7 +1053,7 @@ namespace BlackSimPlugin
|
|||||||
CLogMessage(this).debug() << "Watching XSwiftBus on" << m_xswiftbusServerSetting.getThreadLocal();
|
CLogMessage(this).debug() << "Watching XSwiftBus on" << m_xswiftbusServerSetting.getThreadLocal();
|
||||||
m_conn = CSimulatorXPlane::connectionFromString(m_xswiftbusServerSetting.getThreadLocal());
|
m_conn = CSimulatorXPlane::connectionFromString(m_xswiftbusServerSetting.getThreadLocal());
|
||||||
m_watcher = new QDBusServiceWatcher(xswiftbusServiceName(), m_conn, QDBusServiceWatcher::WatchForRegistration, this);
|
m_watcher = new QDBusServiceWatcher(xswiftbusServiceName(), m_conn, QDBusServiceWatcher::WatchForRegistration, this);
|
||||||
connect(m_watcher, &QDBusServiceWatcher::serviceRegistered, this, &CSimulatorXPlaneListener::ps_serviceRegistered);
|
connect(m_watcher, &QDBusServiceWatcher::serviceRegistered, this, &CSimulatorXPlaneListener::serviceRegistered);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1083,7 +1080,7 @@ namespace BlackSimPlugin
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSimulatorXPlaneListener::ps_serviceRegistered(const QString &serviceName)
|
void CSimulatorXPlaneListener::serviceRegistered(const QString &serviceName)
|
||||||
{
|
{
|
||||||
if (serviceName == xswiftbusServiceName())
|
if (serviceName == xswiftbusServiceName())
|
||||||
{
|
{
|
||||||
@@ -1091,7 +1088,7 @@ namespace BlackSimPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSimulatorXPlaneListener::ps_xswiftbusServerSettingChanged()
|
void CSimulatorXPlaneListener::xSwiftBusServerSettingChanged()
|
||||||
{
|
{
|
||||||
// user changed settings, restart the listener
|
// user changed settings, restart the listener
|
||||||
if (m_watcher)
|
if (m_watcher)
|
||||||
|
|||||||
@@ -132,15 +132,14 @@ namespace BlackSimPlugin
|
|||||||
virtual void injectWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid) override;
|
virtual void injectWeatherGrid(const BlackMisc::Weather::CWeatherGrid &weatherGrid) override;
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
private slots:
|
|
||||||
void ps_serviceUnregistered();
|
|
||||||
void ps_setAirportsInRange(const QStringList &icaoCodes, const QStringList &names, const BlackMisc::CSequence<double> &lats, const BlackMisc::CSequence<double> &lons, const BlackMisc::CSequence<double> &alts);
|
|
||||||
void ps_emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao,
|
|
||||||
const QString &modelString, const QString &name, const QString &description);
|
|
||||||
void ps_fastTimerTimeout();
|
|
||||||
void ps_slowTimerTimeout();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void serviceUnregistered();
|
||||||
|
void setAirportsInRange(const QStringList &icaoCodes, const QStringList &names, const BlackMisc::CSequence<double> &lats, const BlackMisc::CSequence<double> &lons, const BlackMisc::CSequence<double> &alts);
|
||||||
|
void emitOwnAircraftModelChanged(const QString &path, const QString &filename, const QString &livery, const QString &icao,
|
||||||
|
const QString &modelString, const QString &name, const QString &description);
|
||||||
|
void fastTimerTimeout();
|
||||||
|
void slowTimerTimeout();
|
||||||
|
|
||||||
void loadCslPackages();
|
void loadCslPackages();
|
||||||
QString findCslPackage(const QString &modelFileName);
|
QString findCslPackage(const QString &modelFileName);
|
||||||
|
|
||||||
@@ -171,14 +170,14 @@ namespace BlackSimPlugin
|
|||||||
CXSwiftBusServiceProxy *m_service { nullptr };
|
CXSwiftBusServiceProxy *m_service { nullptr };
|
||||||
CXSwiftBusTrafficProxy *m_traffic { nullptr };
|
CXSwiftBusTrafficProxy *m_traffic { nullptr };
|
||||||
CXSwiftBusWeatherProxy *m_weather { nullptr };
|
CXSwiftBusWeatherProxy *m_weather { nullptr };
|
||||||
QTimer *m_fastTimer { nullptr };
|
QTimer m_fastTimer;
|
||||||
QTimer *m_slowTimer { nullptr };
|
QTimer m_slowTimer;
|
||||||
BlackMisc::Aviation::CAirportList m_airportsInRange; //!< aiports in range of own aircraft
|
BlackMisc::Aviation::CAirportList m_airportsInRange; //!< aiports in range of own aircraft
|
||||||
BlackMisc::CData<BlackMisc::Simulation::Data::TModelSetCacheXP> m_modelSet { this };
|
BlackMisc::CData<BlackMisc::Simulation::Data::TModelSetCacheXP> m_modelSet { this };
|
||||||
|
|
||||||
// Driver Interpolation
|
// Driver Interpolation
|
||||||
CXPlaneMPAircrafts m_xplaneAircrafts; //!< XPlane multiplayer aircrafts
|
CXPlaneMPAircrafts m_xplaneAircraft; //!< XPlane multiplayer aircraft
|
||||||
int m_interpolationRequest = 0; //!< current interpolation request
|
int m_interpolationRequest = 0; //!< current interpolation request
|
||||||
|
|
||||||
//! \todo Add units to members? pitchDeg?, altitudeFt?
|
//! \todo Add units to members? pitchDeg?, altitudeFt?
|
||||||
struct // data is written by DBus async method callbacks
|
struct // data is written by DBus async method callbacks
|
||||||
@@ -212,7 +211,7 @@ namespace BlackSimPlugin
|
|||||||
double seaLeveLPressure;
|
double seaLeveLPressure;
|
||||||
} m_xplaneData;
|
} m_xplaneData;
|
||||||
|
|
||||||
void resetData()
|
void resetXPlaneData()
|
||||||
{
|
{
|
||||||
m_xplaneData = { "", "", 0, 0, 0, 0, 0, 0, 0, false, 122800, 122800, 122800, 122800, 2000, 0, false, false, false, false,
|
m_xplaneData = { "", "", 0, 0, 0, 0, 0, 0, 0, false, 122800, 122800, 122800, 122800, 2000, 0, false, false, false, false,
|
||||||
false, false, 0, 0, {}, 0.0, 0.0
|
false, false, 0, 0, {}, 0.0, 0.0
|
||||||
@@ -241,14 +240,12 @@ namespace BlackSimPlugin
|
|||||||
//! \brief Check if XSwiftBus service is already registered
|
//! \brief Check if XSwiftBus service is already registered
|
||||||
bool isXSwiftBusRunning() const;
|
bool isXSwiftBusRunning() const;
|
||||||
|
|
||||||
private slots:
|
void serviceRegistered(const QString &serviceName);
|
||||||
void ps_serviceRegistered(const QString &serviceName);
|
void xSwiftBusServerSettingChanged();
|
||||||
void ps_xswiftbusServerSettingChanged();
|
|
||||||
|
|
||||||
private:
|
|
||||||
QDBusConnection m_conn { "default" };
|
QDBusConnection m_conn { "default" };
|
||||||
QDBusServiceWatcher *m_watcher { nullptr };
|
QDBusServiceWatcher *m_watcher { nullptr };
|
||||||
BlackMisc::CSettingReadOnly<BlackMisc::Simulation::Settings::TXSwiftBusServer> m_xswiftbusServerSetting { this, &CSimulatorXPlaneListener::ps_xswiftbusServerSettingChanged };
|
BlackMisc::CSettingReadOnly<BlackMisc::Simulation::Settings::TXSwiftBusServer> m_xswiftbusServerSetting { this, &CSimulatorXPlaneListener::xSwiftBusServerSettingChanged };
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Factory for creating CSimulatorXPlane instance
|
//! Factory for creating CSimulatorXPlane instance
|
||||||
@@ -268,7 +265,6 @@ namespace BlackSimPlugin
|
|||||||
//! \copydoc BlackCore::ISimulatorFactory::createListener
|
//! \copydoc BlackCore::ISimulatorFactory::createListener
|
||||||
virtual BlackCore::ISimulatorListener *createListener(const BlackMisc::Simulation::CSimulatorPluginInfo &info) override { return new CSimulatorXPlaneListener(info); }
|
virtual BlackCore::ISimulatorListener *createListener(const BlackMisc::Simulation::CSimulatorPluginInfo &info) override { return new CSimulatorXPlaneListener(info); }
|
||||||
};
|
};
|
||||||
|
|
||||||
} // ns
|
} // ns
|
||||||
} // ns
|
} // ns
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user