Commit Graph

77 Commits

Author SHA1 Message Date
Roland Rossgotterer
db7ed76bc5 Refactor listening for and connecting to XSwiftBus
- Use common function for Session and P2P connections
- Don't use the DBus service watcher as it did not allow to test in regular intervals
- Add a XSwiftBus version check to X-Plane listener
- Try to initialize and acquire multiplayer planes in checkConnection() already and warn the user if any of those failed. The plugin will be loaded only if everything succeeded.
2018-11-29 20:54:26 +01:00
Roland Rossgotterer
ec8245ea53 [XSwiftBus] Give PQ variables a unit
ref T313
2018-11-29 20:54:26 +01:00
Klaus Basan
93bcbc0755 Ref T421, function to get interpolation messages from the simulator drivers 2018-11-04 17:42:47 +01:00
Klaus Basan
a871579479 Ref T370, added public removeAllRemoteAircraft
* protected clearAllRemoteAircraftData
* ISimulator::clearAllRemoteAircraftData no longer calls clearAllRemoteAircraftData (circular)
2018-09-25 02:14:00 +02:00
Klaus Basan
7e9f3a6c7f Ref T342, distance of airport can be recalculated 2018-09-12 17:40:38 +02:00
Klaus Basan
68beaa6d9d Ref T312, added checkImpl/check in simulator listeners 2018-08-27 18:58:15 +02:00
Roland Winklmeier
488ff96ce6 Add DBus P2P support to XSwiftBus
ref T291
2018-08-07 20:40:43 +02:00
Klaus Basan
52513db63f Ref T290, XPlane refactoring
* typo getRemoteAircraftsData -> getRemoteAircraftData (no "s")
* typo getEelevationAtPosition (double "Ee")
* get functions "const"
* added unit for some variables such as latitudeDeg
2018-07-17 19:04:50 +02:00
Klaus Basan
d0adcc98cb Ref T289, merge CSimulatorCommonn/ISimulator 2018-07-12 18:29:36 +02:00
Klaus Basan
df869373e8 Ref T268, XPlane driver improvements
* 2 queues, one for pending "to be added" aircraft and one for "adding in progress" (easier timeout detection)
* disconnect DBus when unloading
* check if aircraft "are still in range" before adding
* adding to XPlane only in one place
* data for aircraft can be explicitly request and are requested directly when an aircraft has been added
2018-07-09 22:30:48 +02:00
Klaus Basan
79c1691fdc Ref T268, Xplane driver style/renaming 2018-07-09 22:30:47 +02:00
Klaus Basan
1ba99b5392 Ref T268, XPlane to do not request updates of values "not near ground" 2018-07-09 22:30:44 +02:00
Klaus Basan
bc0b4502cf Ref T275, move some simple implementations into ISimulator
Goal: merge CSimulatorCommon/ISimulator
2018-06-27 12:49:08 +02:00
Klaus Basan
0f931eeeb3 Ref T268, moved changeRemoteAircraftModel/Enabled to CSimulatorCommon and removed duplicated code 2018-06-13 14:00:09 +02:00
Roland Winklmeier
33963041cc Implement followAircraft for X-Plane
ref T266
2018-06-13 13:59:13 +02:00
Roland Winklmeier
794137fc94 Align the CSimulatorXPlane API with its base class
Some functions were protected in the base class and in a different order.
This is all corrected now.
2018-06-02 02:08:48 +02:00
Klaus Basan
2ae8f5b03f Ref T270, added CSimulatorPluginCommon as base class in driver project
* unlike BlackCore::CSimulatorCommon we can add also UI aspects here
* used by emulated driver, XP and the FS series
2018-05-18 00:25:11 +02:00
Roland Winklmeier
d743ec98fa Remove unused code 2018-05-12 21:40:04 +02:00
Roland Winklmeier
2fd4d286d6 Refactor retrieving remote aircraft data
Instead of requesting it individually for each callsign and waiting for a
signal from xswiftbus, pass in a list of callsigns and use async callback
to read the data.
2018-05-08 16:06:57 +02:00
Roland Winklmeier
bf8ed5c006 Load X-Plane remote aircrafts one by one sequentially 2018-05-08 16:06:57 +02:00
Roland Winklmeier
848da69fe1 Group sending of all plane positions and surfaces into a single DBus call 2018-05-08 16:06:56 +02:00
Klaus Basan
0808cdb223 Ref T261, further unify interpolator handling
* return interpolation results parts/situation in one step
* base class init for each interpolation step, less redundant code
* removed old interpolation/parts function
* adjusted unit tests and simulator objects (such as SimObject)
2018-05-08 16:06:52 +02:00
Klaus Basan
3d2a74a652 Ref T261, interpolator mode is now part of setup
* added attribute in setup
* adjusted UI
* adjusted interpolator / simulator functions
2018-05-08 16:06:49 +02:00
Klaus Basan
3031e5b648 Ref T261, set client provider in simulator
Needed to obtain client capabilities
2018-05-08 16:06:48 +02:00
Klaus Basan
6061a61d50 Ref T260, changed elevation handling in provider, simulator and FSX common driver
* split functions, added findClosestElevationWithinRangeOrRequest
* obtain elevation ids (separate ids are easier to track)
* also added experimental "physicallyAddAITerrainProbe" (FSX) for the FSX elevation probing
* callback / signal when requested elevation is received (async)
2018-05-08 16:06:35 +02:00
Klaus Basan
f1faeef84a Ref T259, Ref T243 added functions to use guessed parts in
* sim object
* XPlane aircraft
* forward aircraft model to interpolator for guessing
2018-05-08 16:06:32 +02:00
Roland Winklmeier
6a8ae67e06 [xswiftbus] Make xswiftbus completely Qt free 2018-05-08 16:06:30 +02:00
Roland Winklmeier
b278d9ee2f Group own aircraft DBus calls together
Previously all own aircraft values were request via single DBus calls.
Since DBus allows up to 8 values in its reply, use this mechanism
to group the requests and reduce the amount of single calls.
2018-05-08 16:06:29 +02:00
Klaus Basan
225d05d22f Ref T259, Ref T243 prepared sim.env.provider to request elevations 2018-05-04 23:03:28 +02:00
Klaus Basan
52dd7a754c Ref T259, Ref T243 access to last interpolated situation to check if near ground 2018-05-04 23:03:08 +02:00
Roland Winklmeier
e1538573fe Remove old xswiftbus interpolator code
ref T259
2018-04-13 23:37:45 +02:00
Klaus Basan
9abc57bb3d Ref T259, Ref T243 remove aircraft parts and situations from interpolator
* no longer using the add parts/situations signals
* will use the remote aircraft provider parts directly

Result: all parts/situations are stored only once in memory and in one single place
2018-04-13 23:37:37 +02:00
Klaus Basan
03af49348b Ref T259, Ref T243 formatting 2018-04-05 02:53:55 +02:00
Klaus Basan
9517ce7d7c Ref T259, formatting 2018-04-05 02:52:50 +02:00
Klaus Basan
34502b6b76 Ref T259, renamed CXPlaneMPAircrafts to CXPlaneMPAircraftObjects
* there is no plural for aircraft
* so the same style as for simObjects was used
2018-04-05 02:52:48 +02:00
Klaus Basan
13ede9fac1 Ref T259, only remove aircraft after data have been used, otherwise a dangling reference causes a crash 2018-04-05 02:52:45 +02:00
Klaus Basan
41109dd761 Ref T259, some adjustments to our latest style
* no private slots
* timers as members
2018-04-05 02:52:43 +02:00
Roland Winklmeier
72497fdefc Regularly request remote aircraft data from X-Plane
This includes
* ground elevation
* model offset (to be implemented)

ref T259
2018-04-05 02:52:26 +02:00
Roland Winklmeier
4db0b83310 Move X-Plane interpolation into driver
ref T259
2018-04-05 02:52:20 +02:00
Roland Winklmeier
de4fe44156 Fix sending the correct pressure altitude for a pilot position
* Before this commit, only the true altitude was known for an aircraft situation. The pressure altitude was not available anywhere yet.
* This caused a wrong altitude in radar clients.
* We fix this reading the pressure altitude from the simulators and set it in the own aircraft situation.
* MS Flight Simulators have the pressure altitude in the APIs available.
* For X-Plane and emulated simulator, we need to calculate it from the pressure at sea level.
* Finally, we use the new available pressure altitude to send it to the FSD server.

Maniphest Tasks: Ref T223
2018-01-15 22:49:08 +01:00
Mathew Sutcliffe
c5a3db49b0 Request own aircraft info upon connecting to XSwiftBus
Summary:
Ref T83
Also removed an unused parameter of the "own aircraft changed" signal of XSwiftBus.

Reviewers: #swift_developers, rwinklmeier

Reviewed By: #swift_developers, rwinklmeier

Subscribers: jenkins

Tags: #swift_pilot_client

Maniphest Tasks: T83

Differential Revision: https://dev.swift-project.org/D63
2017-11-23 22:15:41 +00:00
Mathew Sutcliffe
a7124ec589 Removed unused code. 2017-11-12 13:48:09 +00:00
Klaus Basan
418d0aa628 Ref T171, Ref T136, removed the remote provider's "remove aircraft part", as it is not used:
* remove is handled by context call logicallyRemoveRemoteAircraft
* so far no need to use the remote provider function
* can be used again whenever needed
2017-10-18 22:58:36 +02:00
Klaus Basan
b6333e69d8 Ref T171, made remote aircraft provider and web service "protected slots" -> "protected"
* Unlike in other cases, the remote aircraft provider slots are also very frequently called. So besides "style", it might be also useful here to avoid the extra MOC layers.
* Also renamed 2 web service signals and made web service connections Qt::QueuedConnection
2017-10-18 22:58:24 +02:00
Mathew Sutcliffe
f1211d328e Delete QDBusServiceWatcher when unloading X-Plane driver.
Summary:
When unloading a sim driver, first its threads are killed, then the driver object is destroyed.

This means that when the `QDBusServiceWatcher` child object is destroyed, it deadlocks waiting for a thread that was already killed (T147).

This change causes the `QDBusServiceWatcher` to be deleted before the driver is unloaded.

Reviewers: #swift_pilot_client, kbasan, rwinklmeier

Reviewed By: #swift_pilot_client, kbasan, rwinklmeier

Subscribers: kbasan, jenkins

Tags: #swift_pilot_client

Differential Revision: https://dev.swift-project.org/D50
2017-09-24 19:53:38 +01:00
Klaus Basan
65bd2d20ad Ref T125, X-Plan utility functions and moved XSwiftBus settings in own file 2017-09-24 19:53:03 +01:00
Klaus Basan
66773d7593 Ref T111, allow to set SELCAL in simulator 2017-09-24 19:51:55 +01:00
Klaus Basan
1387573e5b Ref T112, moved simulator settings in subdir/settings namespace 2017-09-24 19:51:46 +01:00
Mathew Sutcliffe
bc80fd3bd5 [feature][XPlane] Set own aircraft model string when own aircraft changes.
Summary:
Refactored parts of CAircraftModelLoaderXPlane::parseFlyableAirplanes into static method extractAcfProperties that can be called by xswiftbus.

Used extractAcfProperties in xswiftbus to provide the model string to the driver. Implemented CSimulatorXPlane::ps_emitOwnAircraftModelChanged.

Implements T74.

Reviewers: rwinklmeier

Reviewed By: rwinklmeier

Subscribers: jenkins

Tags: #swift_pilot_client

Differential Revision: https://dev.swift-project.org/D23
2017-05-14 17:21:39 +01:00
Mathew Sutcliffe
4a4dea8d4d Rename xbus to xswiftbus
Summary:
I wanted to rename xbus because its relation to //swift// is not immediately clear from the name.

xswiftbus seems reasonable.

Reviewers: #swift_pilot_client, kbasan

Reviewed By: kbasan

Subscribers: kbasan, jenkins

Tags: #swift_pilot_client

Differential Revision: https://dev.swift-project.org/D14
2017-05-05 23:07:11 +01:00