6 #ifndef SWIFT_SIMPLUGIN_EMULATED_SIMULATOREMULATED_H
7 #define SWIFT_SIMPLUGIN_EMULATED_SIMULATOREMULATED_H
13 #include "../plugincommon/simulatorplugincommon.h"
25 namespace swift::simplugin::emulated
41 swift::misc::simulation::IOwnAircraftProvider *ownAircraftProvider,
42 swift::misc::simulation::IRemoteAircraftProvider *remoteAircraftProvider,
43 swift::misc::network::IClientProvider *clientProvider, QObject *parent =
nullptr);
51 virtual
void unload() override;
53 virtual
bool isPaused() const override;
58 const swift::misc::CIdentifier &originator) override;
60 const swift::misc::CIdentifier &originator) override;
62 virtual
void displayTextMessage(const swift::misc::network::CTextMessage &message) const override;
65 virtual swift::misc::CStatusMessageList
68 const swift::misc::aviation::CAircraftSituation &situation,
69 const swift::misc::aviation::CAircraftParts &parts) override;
70 virtual
bool requestElevation(const swift::misc::geo::ICoordinateGeodetic &reference,
71 const swift::misc::aviation::CCallsign &callsign) override;
87 virtual
bool parseCommandLine(const QString &commandLine, const swift::misc::CIdentifier &originator) override;
150 bool canDisplay()
const;
156 void onSettingsChanged();
159 void onSimulatorStatusChanged();
162 void connectOwnSignals();
166 void updateRemoteAircraft();
169 bool m_paused =
false;
170 bool m_connected =
true;
171 bool m_simulating =
true;
172 int m_countInterpolatedSituations = 0;
173 int m_countInterpolatedParts = 0;
174 QTimer m_interpolatorFetchTimer;
177 QPointer<CSimulatorEmulatedMonitorDialog>
181 this, &CSimulatorEmulated::onSettingsChanged
Interface to a simulator.
Interface to a simulator listener.
List of QMetaObject::Connection.
Utility methods for simple line parsing used with the command line.
Value object encapsulating information of aircraft's parts.
Value object encapsulating information of an aircraft's situation.
Value object encapsulating information of a callsign.
Comprehensive information of an aircraft.
Value object encapsulating a list of aircraft.
Simple hardcoded info about the corresponding simulator.
Describing a simulator plugin.
Direct in memory access to interpolation setup, normally implemented by simulator.
Direct in memory access to elevation data.
Common base class for simulator plugins.
swift simulator implementation
virtual bool updateOwnSimulatorSelcal(const swift::misc::aviation::CSelcal &selcal, const swift::misc::CIdentifier &originator)
Update own aircraft cockpit (usually from context)
bool isInterpolatorFetching() const
Is fetching from interpolator.
virtual bool testSendSituationAndParts(const swift::misc::aviation::CCallsign &callsign, const swift::misc::aviation::CAircraftSituation &situation, const swift::misc::aviation::CAircraftParts &parts)
Send situation/parts for testing.
virtual bool changeRemoteAircraftModel(const swift::misc::simulation::CSimulatedAircraft &aircraft)
Change remote aircraft per property.
swift::misc::simulation::CSimulatorInfo getEmulatedSimulator() const
The emulated simulated simulator.
virtual bool disconnectFrom()
Disconnect from simulator.
virtual bool physicallyAddRemoteAircraft(const swift::misc::simulation::CSimulatedAircraft &remoteAircraft)
Add new remote aircraft physically to the simulator.
void internalAircraftChanged()
Internal aircraft changed.
virtual swift::misc::aviation::CCallsignSet physicallyRenderedAircraft() const
Physically rendered (displayed in simulator) This shall only return aircraft handled in the simulator...
const swift::misc::simulation::CSimulatedAircraft & getInternalOwnAircraft() const
Internal own aircraft.
virtual bool connectTo()
Connect to simulator.
virtual bool updateOwnSimulatorCockpit(const swift::misc::simulation::CSimulatedAircraft &aircraft, const swift::misc::CIdentifier &originator)
Update own aircraft cockpit (usually from context)
virtual swift::misc::CStatusMessageList getInterpolationMessages(const swift::misc::aviation::CCallsign &callsign) const
Interpolation messages for callsign.
virtual bool logicallyRemoveRemoteAircraft(const swift::misc::aviation::CCallsign &callsign)
Logically remove remote aircraft from simulator. Depending on max. aircraft, enabled status etc....
virtual bool requestElevation(const swift::misc::geo::ICoordinateGeodetic &reference, const swift::misc::aviation::CCallsign &callsign)
Request elevation, there is no guarantee the requested elevation will be available in the provider.
bool changeInternalSituation(const swift::misc::aviation::CAircraftSituation &situation)
Simulator internal change of situation.
virtual void displayTextMessage(const swift::misc::network::CTextMessage &message) const
Display a text message.
bool changeInternalCom(const swift::misc::simulation::CSimulatedAircraft &aircraft)
Simulator internal change of COM values.
virtual bool isSimulating() const
Simulator running?
bool setInterpolatorFetchTime(int timeMs)
Interpolator fetch time, <=0 stops.
virtual void unload()
Driver will be unloaded.
virtual bool parseDetails(const swift::misc::CSimpleCommandParser &parser)
Parsed in derived classes.
static void registerHelp()
Register help.
bool changeInternalParts(const swift::misc::aviation::CAircraftParts &parts)
Simulator internal change of parts.
virtual int physicallyRemoveMultipleRemoteAircraft(const swift::misc::aviation::CCallsignSet &callsigns)
Remove remote aircraft from simulator.
bool changeInternalSelcal(const swift::misc::aviation::CSelcal &selcal)
Simulator internal change of SELCAL.
virtual bool changeRemoteAircraftEnabled(const swift::misc::simulation::CSimulatedAircraft &aircraft)
Aircraft got enabled / disabled.
virtual bool logicallyAddRemoteAircraft(const swift::misc::simulation::CSimulatedAircraft &remoteAircraft)
Logically add a new aircraft. Depending on max. aircraft, enabled status etc. it will physically adde...
virtual bool physicallyRemoveRemoteAircraft(const swift::misc::aviation::CCallsign &callsign)
Remove remote aircraft from simulator.
virtual bool isConnected() const
Are we connected to the simulator?
virtual bool isPaused() const
Simulator paused?
virtual bool isPhysicallyRenderedAircraft(const swift::misc::aviation::CCallsign &callsign) const
Is the aircraft rendered (displayed in simulator)? This shall only return true if the aircraft is rea...
virtual void displayStatusMessage(const swift::misc::CStatusMessage &message) const
Display a status message in the simulator.
void setCombinedStatus(bool connected, bool simulating, bool paused)
UI setter.
virtual int physicallyRemoveAllRemoteAircraft()
Remove all remote aircraft and their data via ISimulator::clearAllRemoteAircraftData.
virtual void startImpl()
Plugin specific implementation to start listener.
CSimulatorEmulatedListener(const swift::misc::simulation::CSimulatorPluginInfo &info)
Constructor.
virtual void checkImpl()
Plugin specific implementation to stop listener.
virtual void stopImpl()
Plugin specific implementation to stop listener.
Monitor widget for the pseudo driver.
virtual bool parseCommandLine(const QString &commandLine, const swift::misc::CIdentifier &originator)