6 #include <QDBusConnection>
7 #include <QLatin1String>
17 using namespace swift::misc::physical_quantities;
18 using namespace swift::misc::aviation;
19 using namespace swift::misc::network;
20 using namespace swift::misc::geo;
21 using namespace swift::misc::simulation;
22 using namespace swift::misc::simulation::settings;
24 namespace swift::core::context
26 CContextSimulatorProxy::CContextSimulatorProxy(
const QString &serviceName, QDBusConnection &connection,
32 this->relaySignals(serviceName, connection);
35 void CContextSimulatorProxy::unitTestRelaySignals()
38 QDBusConnection con = QDBusConnection::sessionBus();
43 void CContextSimulatorProxy::relaySignals(
const QString &serviceName, QDBusConnection &connection)
51 "simulatorPluginChanged",
this,
55 "simulatorChanged",
this,
64 s = connection.connect(
66 "renderRestrictionsChanged",
this,
70 "interpolationAndRenderingSetupChanged",
this,
77 "modelSetChanged",
this,
81 "modelMatchingCompleted",
this,
85 "addingRemoteModelFailed",
this,
90 "aircraftRenderingChanged",
this,
94 "ownAircraftModelChanged",
this,
104 s = connection.connect(
131 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"setSimulatorSettings"), settings, simulatorInfo);
136 return m_dBusInterface->
callDBusRet<ISimulator::SimulatorStatus>(QLatin1String(
"getSimulatorStatus"));
161 m_dBusInterface->
callDBus(QLatin1String(
"setModelSetLoaderSimulator"), simulator);
166 return m_dBusInterface->
callDBusRet<QStringList>(QLatin1String(
"getModelSetStrings"));
171 return m_dBusInterface->
callDBusRet<QStringList>(QLatin1String(
"getModelSetCompleterStrings"), sorted);
176 return m_dBusInterface->
callDBusRet<
int>(QLatin1String(
"removeModelsFromSet"), removeModels);
181 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"isKnownModelInSet"), modelString);
192 return m_dBusInterface->
callDBusRet<
int>(QLatin1String(
"getModelSetCount"));
207 m_dBusInterface->
callDBus(QLatin1String(
"disableModelsForMatching"), removedModels, incremental);
217 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"triggerModelSetValidation"), simulator);
222 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"isValidationInProgress"));
227 m_dBusInterface->
callDBus(QLatin1String(
"restoreDisabledModels"));
233 QLatin1String(
"getInterpolationAndRenderingSetupGlobal"));
238 return m_dBusInterface->
callDBusRet<CInterpolationSetupList>(
239 QLatin1String(
"getInterpolationAndRenderingSetupsPerCallsign"));
246 QLatin1String(
"getInterpolationAndRenderingSetupPerCallsignOrDefault"), callsign);
250 bool ignoreSameAsGlobal)
252 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"setInterpolationAndRenderingSetupsPerCallsign"),
253 setups, ignoreSameAsGlobal);
264 m_dBusInterface->
callDBus(QLatin1String(
"setInterpolationAndRenderingSetupGlobal"), setup);
269 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"startSimulatorPlugin"), simulatorInfo);
274 m_dBusInterface->
callDBus(QLatin1String(
"stopSimulatorPlugin"), simulatorInfo);
279 return m_dBusInterface->
callDBusRet<
int>(QLatin1String(
"checkListeners"));
284 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"followAircraft"), callsign);
289 m_dBusInterface->
callDBus(QLatin1String(
"recalculateAllAircraft"));
294 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"resetToModelMatchingAircraft"), callsign);
299 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"requestElevationBySituation"), situation);
306 QLatin1String(
"findClosestElevationWithinRange"), reference, range);
318 return m_dBusInterface->
callDBusRet<MatchingLog>(QLatin1String(
"isMatchingMessagesEnabled"));
323 m_dBusInterface->
callDBus(QLatin1String(
"enableMatchingMessages"), enabled);
328 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"parseCommandLine"), commandLine, originator);
333 return m_dBusInterface->
callDBusRet<
int>(QLatin1String(
"doMatchingsAgain"));
338 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"doMatchingAgain"), callsign);
349 m_dBusInterface->
callDBus(QLatin1String(
"setMatchingSetup"), setup);
359 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"testRemoteAircraft"), aircraft, add);
365 return m_dBusInterface->
callDBusRet<
bool>(QLatin1String(
"testUpdateRemoteAircraft"), cs, situation, parts);
ContextMode
How to handle a given context.
@ Remote
context runs in a different process.
The class providing facades (the contexts) for all DBus relevant operations.
DBus proxy for Simulator Context.
virtual bool setSimulatorSettings(const swift::misc::simulation::settings::CSimulatorSettings &settings, const swift::misc::simulation::CSimulatorInfo &simulatorInfo)
Set settings for give simulator.
virtual void setMatchingSetup(const swift::misc::simulation::CAircraftMatcherSetup &setup)
Set matching setup.
virtual bool followAircraft(const swift::misc::aviation::CCallsign &callsign)
Follow aircraft im simulator view.
virtual swift::misc::simulation::CSimulatorInternals getSimulatorInternals() const
Simulator setup.
virtual bool isValidationInProgress() const
Validation in progress.
virtual bool testRemoteAircraft(const swift::misc::simulation::CSimulatedAircraft &aircraft, bool add)
Test a remote aircraft.
virtual int removeModelsFromSet(const swift::misc::simulation::CAircraftModelList &removeModels)
Remove models from set.
virtual swift::misc::simulation::CMatchingStatistics getCurrentMatchingStatistics(bool missingOnly) const
Current matching statistics.
virtual bool doMatchingAgain(const swift::misc::aviation::CCallsign &callsign)
Repeat the matching callsign.
virtual bool parseCommandLine(const QString &commandLine, const swift::misc::CIdentifier &originator)
Parse a given command line.
virtual swift::misc::simulation::CSimulatorInfo simulatorsWithInitializedModelSet() const
Simulators which have an initialized model set.
virtual swift::misc::geo::CElevationPlane findClosestElevationWithinRange(const swift::misc::geo::CCoordinateGeodetic &reference, const swift::misc::physical_quantities::CLength &range) const
Find closest elevation (or return NULL)
virtual void setModelSetLoaderSimulator(const swift::misc::simulation::CSimulatorInfo &simulator)
Set the model set loader simulator directly.
virtual swift::misc::CStatusMessageList verifyPrerequisites() const
Verify prerequisites for simulation like an existing model set.
virtual swift::misc::simulation::MatchingLog isMatchingMessagesEnabled() const
Enabled mapping logging?
virtual bool triggerModelSetValidation(const swift::misc::simulation::CSimulatorInfo &simulator)
Trigger model set validation.
virtual bool requestElevationBySituation(const swift::misc::aviation::CAircraftSituation &situation)
Request elevation, there is no guarantee the requested elevation will be available in the provider.
virtual bool isKnownModelInSet(const QString &modelString) const
Known model?
virtual void disableModelsForMatching(const swift::misc::simulation::CAircraftModelList &removedModels, bool incremental)
Remove a model for matching.
virtual swift::misc::simulation::CSimulatorInfo getModelSetLoaderSimulator() const
Get the model set loader simulator directly.
virtual void restoreDisabledModels()
Restore the models removed with CAircraftMatcher::disableModelForMatching.
virtual swift::misc::CStatusMessageList getInterpolationMessages(const swift::misc::aviation::CCallsign &callsign) const
Interpolation messages.
virtual bool resetToModelMatchingAircraft(const swift::misc::aviation::CCallsign &callsign)
Reset model by matching it again.
virtual swift::misc::simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const
The global setup.
virtual ISimulator::SimulatorStatus getSimulatorStatus() const
Simulator combined status.
virtual int checkListeners()
Check all listeners enabled if simulator is connected.
virtual int getModelSetCount() const
Number of installed models in simulator eco system.
virtual bool setInterpolationAndRenderingSetupsPerCallsign(const swift::misc::simulation::CInterpolationSetupList &setups, bool ignoreSameAsGlobal)
Set all setups per callsign.
virtual swift::misc::simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const
Return list of available simulator plugins.
virtual swift::misc::simulation::settings::CSimulatorSettings getSimulatorSettings() const
Get the current simulator settings.
virtual swift::misc::simulation::CAircraftModelList getModelSetModelsStartingWith(const QString &modelString) const
Models for model string.
virtual bool testUpdateRemoteAircraft(const swift::misc::aviation::CCallsign &cs, const swift::misc::aviation::CAircraftSituation &situation, const swift::misc::aviation::CAircraftParts &parts)
Test update remote aircraft.
virtual swift::misc::CStatusMessageList getMatchingMessages(const swift::misc::aviation::CCallsign &callsign) const
Get mapping messages.
virtual void stopSimulatorPlugin(const swift::misc::simulation::CSimulatorPluginInfo &simulatorInfo)
Stop listener or unload the given plugin (if currently loaded)
virtual swift::misc::simulation::CInterpolationSetupList getInterpolationAndRenderingSetupsPerCallsign() const
Get all setups per callsign.
virtual QStringList getModelSetCompleterStrings(bool sorted) const
Model set completer string.
virtual swift::misc::simulation::CInterpolationAndRenderingSetupPerCallsign getInterpolationAndRenderingSetupPerCallsignOrDefault(const swift::misc::aviation::CCallsign &callsign) const
Get the setup for callsign, if not existing the global setup.
virtual swift::misc::simulation::CSimulatorPluginInfo getSimulatorPluginInfo() const
Simulator info, currently loaded plugin.
virtual bool startSimulatorPlugin(const swift::misc::simulation::CSimulatorPluginInfo &simulatorInfo)
Load and start specific simulator plugin.
virtual swift::misc::simulation::CAircraftMatcherSetup getMatchingSetup() const
Get matching setup.
virtual swift::misc::simulation::CAircraftModelList getDisabledModelsForMatching() const
The disabled models for matching.
virtual void recalculateAllAircraft()
Recalculate all aircraft.
virtual QStringList getModelSetStrings() const
Model strings.
virtual void setInterpolationAndRenderingSetupGlobal(const swift::misc::simulation::CInterpolationAndRenderingSetupGlobal &setup)
Set the global setup.
virtual int doMatchingsAgain()
Repeat all matchings.
virtual void enableMatchingMessages(swift::misc::simulation::MatchingLog enabled)
Enable mapping logging.
virtual swift::misc::simulation::CAircraftModelList getModelSet() const
Installed models in simulator eco system.
void relayBaseClassSignals(const QString &serviceName, QDBusConnection &connection, const QString &objectPath, const QString &interfaceName)
Relay signals from this class.
void renderRestrictionsChanged(bool restricted, bool enabled, int maxAircraft, const swift::misc::physical_quantities::CLength &maxRenderedDistance)
Render restrictions have been changed.
void validatedModelSet(const swift::misc::simulation::CSimulatorInfo &simulator, const swift::misc::simulation::CAircraftModelList &valid, const swift::misc::simulation::CAircraftModelList &invalid, bool stopped, const swift::misc::CStatusMessageList &msgs)
Validated model set.
void addingRemoteModelFailed(const swift::misc::simulation::CSimulatedAircraft &aircraft, bool disabled, bool failover, const swift::misc::CStatusMessage &message)
Adding a remote aircraft failed.
static const QString & InterfaceName()
Service name.
void vitalityLost()
A formerly vital driver is no longer vital/responding.
static const QString & ObjectPath()
Service path.
void interpolationAndRenderingSetupChanged()
Setup changed.
void ownAircraftModelChanged(const swift::misc::simulation::CAircraftModel &model)
Emitted when own aircraft model changes.
void simulatorChanged(const swift::misc::simulation::CSimulatorInfo &simulator)
Same as simulatorPluginChanged, only with simulator signature.
void modelSetChanged(const swift::misc::simulation::CSimulatorInfo &simulator)
Model set ready or changed.
void simulatorPluginChanged(const swift::misc::simulation::CSimulatorPluginInfo &info)
Simulator plugin loaded / unloaded (default info)
void modelMatchingCompleted(const swift::misc::simulation::CSimulatedAircraft &aircraft)
A single model has been matched for given aircraft.
void matchingSetupChanged()
Matching setup changed.
void driverMessages(const swift::misc::CStatusMessageList &messages)
Relevant simulator messages to be explicitly displayed.
void simulatorStatusChanged(int status)
Simulator combined status.
void insufficientFrameRateDetected(bool fatal)
Frame rate has fallen too far below the threshold to maintain consistent sim rate.
void simulatorSettingsChanged()
Simulator settings have been changed.
void airspaceSnapshotHandled()
An airspace snapshot was handled.
void aircraftRenderingChanged(const swift::misc::simulation::CSimulatedAircraft &aircraft)
Aircraft rendering changed.
static const QString & coreServiceName()
Default service name.
Used for hand written interface based on virtual methods.
void callDBus(QLatin1String method, Args &&...args)
Call DBus, no return value.
Ret callDBusRet(QLatin1String method, Args &&...args)
Call DBus with synchronous return value.
Value object encapsulating information identifying a component of a modular distributed swift process...
Streamable status message, e.g.
Status messages, e.g. from Core -> GUI.
Value object encapsulating information of aircraft's parts.
Value object encapsulating information of an aircraft's situation.
Value object encapsulating information of a callsign.
Plane of same elevation, can be a single point or larger area (e.g. airport)
Physical unit length (length)
Aircraft model (used by another pilot, my models on disk)
Value object encapsulating a list of aircraft models.
Value object for interpolator and rendering.
Value object for interpolator and rendering per callsign.
Value object for matching statistics.
Comprehensive information of an aircraft.
Simple hardcoded info about the corresponding simulator.
Simulator internals for flight simulators. Those are obtained from a running simulator and represent ...
Describing a simulator plugin.
Value object encapsulating a list of SimulatorInfo objects.
Settings for simulator Driver independent parts (such as directories), also used in model loaders.
Free functions in swift::misc.