Commit Graph

127 Commits

Author SHA1 Message Date
Klaus Basan
a8e8e5527a refs #452 updated drivers
* FSX/FS9 directories directly resolved in parser
* all: using BlackMisc::Simulation::CSimulatedAircraft instead of CAircraft
2015-11-19 20:59:10 +00:00
Klaus Basan
13df4302d7 refs #445, adjusted the drivers to reflect changes (liveries) 2015-11-19 20:57:27 +00:00
Mathew Sutcliffe
d4d862927e refs #441 Rename COriginator to CIdentifier and rename COriginatorAware to CIdentifiable. 2015-06-06 18:02:16 +01:00
Klaus Basan
d603b28697 refs #438, plugin loading testing session + meeting results
* simulator common, many members now private (info -> read only)
* renamed printDirectPlayError -> logDirectPlayError
* (re)added ASSERT for FS9
* removed parent from listener (with parent no moveToThread)
* removed QFuture / QConcurrent as we have agreed to do
* unloading a plugin no longer automatically restarts all listeners
  this allows a user to set one particualar simulator in the GUI and ony wait for that
* stop listener from own signal
2015-06-04 23:44:50 +02:00
Klaus Basan
91bcba6a0c refs #438, added plug info to listeners
* listener signal can be directly used without mapping
* (during debugging) it is much easier to identify a listener
2015-06-03 16:26:49 +02:00
Michal Garapich
b9b2b5770a refs #417 Add support for FSX and FS9 2015-05-30 08:22:55 +02:00
Klaus Basan
94eb33d228 refs #431, infinite recursion in driver unload
* Trivial changes to avoid changedStatus signal when nothing changed
* Do not reload plugin when already loaded
2015-05-29 16:53:39 +02:00
Klaus Basan
6c06ff5d46 refs #432, adjusted originators 2015-05-29 03:49:16 +02:00
Roland Winklmeier
6995ad7063 refs #409 Refactor matching implementation in MSFS drivers
CAircraftMapper used to be designed around FSX only. CAircraftMatcher
instead is more generic for different MSFS versions. Therefore it is
replaced with the latter. This change also gets rid of the singleton and
its drawbacks by using the plugin storage.
Last but not least it implements the first model matching for FS9.
2015-05-28 21:34:08 +02:00
Roland Winklmeier
74b6bb9756 refs #409 Move FS specific methods into FSX and FS9 driver
The reason for this change is, that the information these methods provide
are similar for FS9 and FSX, but the content is different.
2015-05-28 21:34:06 +02:00
Roland Winklmeier
5e4fe4d5d7 refs #409 permanent plugin storage 2015-05-28 21:33:49 +02:00
Roland Winklmeier
ee0bfd62fa refs #428 Use COriginator instead of QString in internal API 2015-05-25 16:06:44 +02:00
Klaus Basan
880a954db9 refs #395, improvements for snapshot / restricted aircraft handling
* fixed isCurrentThreadCreatingThread and renamed to isCurrentThreadObjectThread (this check was never working), added 2 more thread checks
* changed remove aircraft function to return number of returned aircraft (like with the containers this allows to avoid unnecessary signals)
* removed unused function ps_recalculateRenderedAircraft() / SimulatorCommon
* using Queued airspaceAircraftSnapshot signal for binding (functor connect does not provide connection type)
* extened ASSERTs to check threads
* simulator: initial situation function with return value (success?)
* simulator: avoid unneccessary copy and provide correct rendered flag in add aircraft function
2015-05-22 03:08:16 +02:00
Klaus Basan
6d5c3d85a1 refs #420, refs #421, finetuning of FSX shutdown and crash detection 2015-05-18 12:56:08 +02:00
Klaus Basan
25c0cea575 refs #417, made the isConnected, isRunning, isPaused functions protected.
They should be only used with the drivers.
2015-05-17 23:56:29 +02:00
Klaus Basan
e53395412a refs #420, refs #417, removes canConnect as it is not consumed, just generated. 2015-05-17 20:29:34 +02:00
Klaus Basan
de43caf451 refs #420, refs #421 Adjusted FSX driver to emit correct status flags and unloading
* added unload function to disconnect signals / slots and simulator
* changed remote provider to return signal/slot connections to manually disconnect functor connects
* flag so pause can freeze or continue AI aircraft
* slightly changed unload behaviour in simulator context

Remark: Tested for FSX only
Solves #424 for FSX
2015-05-16 03:26:30 +02:00
Mathew Sutcliffe
2cff441ff7 refs #395 Fixed MinGW errors from commit:e9f7810e. 2015-05-13 01:31:54 +01:00
Mathew Sutcliffe
b65232b202 MS & KB workshop: ICAO class renamings. 2015-05-12 22:47:54 +01:00
Klaus Basan
1c3bb8d463 refs #395, prepared for snapshot handling
* logical / physical add/remote member functions in drivers, renamed functions
* added access to snapshot
* snapshot generation in analyzer
* snapshot handling in driver
* moved simulator base class in own files (.h/.cpp)
* added functions as required to context
2015-05-12 21:03:35 +01:00
Klaus Basan
e9f7810efc refs #395, prepared for logical / physical add/remote member functions
* renamed functions
* added access to snapshot
* moved simulator base class in own files (.h/.cpp)
2015-05-12 21:03:34 +01:00
Klaus Basan
018c5ae1bf refs #395, integrated aircraft airspace snapshot / analyzer into remote provider
* added snapshot class
* added snapshot in analyzer, signal for new snapshot
* made all provider signals available in CSimulator
* added finders in CSimulatedAircraftList
* moved COwnAircraftProviderDummy into own file
2015-05-12 21:03:32 +01:00
Klaus Basan
3c15f2ad89 refs #395, refs #411 fixes found in course of DBus testing
* set infobar status correctly when GUI connects after the core has been started
* more detailed information in information statusbar
* allow to obtain currently connected server in network context
* made many network vatlib slots normal member functions
* fixed rendered aircraft flag setting in FSX driver
2015-05-12 21:03:30 +01:00
Klaus Basan
1b9878fdd3 refs #395, some functions renamed in network provider/context
Goal: consistent function names in own and remote aircraft provider
2015-05-12 20:46:50 +01:00
Klaus Basan
3ecf37dda4 refs #395, changed own aircraft provider to thread safe member functions
(similar to remote aircraft provider)
* removed references
* made own aircraft context thread safe (reg. own aircrat data)
* removed the read only versions of the provider
* adjusted consuming methods
* renamed some functions ("ownAircraft...") to avoid ambiguity (with remote aircraft)
2015-05-12 20:46:48 +01:00
Klaus Basan
6debd33b4f refs #395, turned remote aircraft provider interface into thread safe interfaces
* references gone, situations, parts, aircraft now as threadsafe copy
* read only interface gone (no longer references, so no longer needed)
2015-05-12 20:46:45 +01:00
Klaus Basan
48188dd28d refs #395, moved thread safe aircraft parts / situations (from interpolator) to airspace
* access via provider, access now possible also beyond the scope of interpolator
* will be used in (to be written airpace analyzer)
* renamed some member functions as required
* fixed some asserts / Doxygen comments
* adjusted unit tests
* added vtolAircraft flag for interpolator, not fully used everywhere

remarks: update signals for parts / situation still only needed in XP driver
2015-05-12 20:46:38 +01:00
Roland Winklmeier
793fcbfd15 refs #403 refactor project files
* Use source path and build path instead of relative ones
* Unify pre target dependencies in libraries.pri
2015-05-05 21:29:46 +02:00
Klaus Basan
dba47d6c8c refs #407, FSX driver warnings as described
* also fixed some signed / unsigned issues
2015-04-19 03:04:29 +02:00
Klaus Basan
f870fb3cf9 refs #312, some minor adjustments:
* cpp check (Jenkins)
* init style sheet in navigator
* shorter names in JSON plugin names
2015-04-19 03:04:26 +02:00
Roland Winklmeier
57b5e1421c Harmonize swift domain names to org.swift-project.* 2015-04-16 00:59:56 +02:00
Michał Garapich
f9de3ad409 refs #404 Use domain-based identifiers for plugins
* Changed all plugin identifier to org.swift-project.plugins.simulator.*
* Fixed a small bug that caused settings be parsed wrong
2015-04-16 00:59:56 +02:00
Michał Garapich
1d5cbb7a9d refs #404 Added human-readable plugin names
* Added new "identifier" attribute in JSON metadata files
* "identifier" is now the one that makes plugins unique
* "name" attribute is a human-readable name
2015-04-16 00:59:56 +02:00
Klaus Basan
5d819b30f5 Split of CSimulatorPluginInfo and CSimulatorSetup
refs #404, and discussion https://dev.vatsim-germany.org/issues/404#note-8

* Changed CSimulatorSetup to use CNameVariantPairList as data. The old version was an hack and had to go, CNameVariantPairList would allow complex types in the future and can be already shown in the GUI.
* CNameVariantPairList was improved slightly in the same step
* Functions to get CSimulatorSetup from driver / context
* Removed CSimulatorSetup data from CSimulatorPluginInfo
2015-04-11 02:09:31 +02:00
Klaus Basan
f7b50b3f5a refs #366, passing Simulator plugin info to drivers
Add. some finetuning
2015-04-11 02:09:23 +02:00
Michał Garapich
985a1caecf refs #396 BlackMisc: nw* goes to network/, hw* goes to hardware/ 2015-04-07 19:22:37 +02:00
Klaus Basan
32f60722c8 refs #396, move subproject BlackSim into BlackMisc::Simulation
* removed unused samples / tests
* fixed found Doxygen issues
* removed blacksimfreefunctions, now in BlackMisc::Simulation::registerMetadata()
* samples_vetcor_geo to samples_geo
2015-04-07 19:22:16 +02:00
Roland Winklmeier
78d3350bf3 refs #396 move Blackmisc Aviation classes into subfolder 2015-04-07 18:20:20 +02:00
Michał Garapich
4d4acb20bc refs #366 cleanup
* Removed obsolete signal from IContextSimulator
* Removed connectToSimulator() method from IContextSimulator as it is no
longer relevant
* CSimulatorComponent updates automatically when simulator disconnects
* FS9 & FSX drivers update (including FSCommon)
2015-04-01 01:21:28 +02:00
Michał Garapich
63e48ae332 Remove ISimulator::getSimulatorInfo()
To provide maximum flexibility, the simulator info is specified by each
plugin in the JSON metadata file.

* Renamed SCimulatorInfo to CSimulatorPluginInfo
* Removed pre-defined simulator infos (UnspecifiedSim, FSX, etc)
* CContextSimulator keeps track of which plugin is loaded and its info
* QSignalMapper keeps track of which listener emitted the simulatorStared() signal
* CSimulatorPluginInfo contains name, simulator name and description
* TODO: GUI part
* TODO: CTestFsCommon
2015-04-01 01:20:25 +02:00
Michał Garapich
924e094a38 Listen for simulators on another thread 2015-04-01 00:05:15 +02:00
Michał Garapich
edc0646ab2 Make FSX works with ISimulatorListener.
SimConnect tries to connect to FSX every 5 seconds.
TODO: Use WinAPI to wait for FSX process to show up
2015-04-01 00:01:35 +02:00
Michał Garapich
afc22397bb JSON plugin metadata initial
* Added json files along with FILE macro for all drivers
* Get CSimulatorInfo from JSON rather than from ISimulatorFactory
2015-03-31 23:56:35 +02:00
Klaus Basan
48655bf551 refs #395, signatures for max.aircraft and max.range
(!) This in an intermediate step, the feature is not yet fully operational

* max distance for rendering as simulator property
* set max distance / aircraft from GUI

As result of the latest meeting
* changed CCallsignList to CCollection
* fixed some warning with elevated compiler settings (e.g. removed qint values -> int)
2015-03-29 20:15:13 +02:00
Klaus Basan
53afe798d4 Fixed warnings as mentioned in
https://dev.vatsim-germany.org/boards/22/topics/2587?r=2598#message-2598
and found by
+win32-msvc*:QMAKE_CXXFLAGS_WARN_ON *= /Wall /W3 /wd4640 /wd4619 /wd4350 /wd4351
2015-03-29 20:15:09 +02:00
Klaus Basan
70670b74c6 refs #393, allow to highlight a certain aircraft by blinking
* signatures in contexts
* some specialized functions in aircraft list
* context menus in aircraft view
* default "blinking" implementation in driver common base class
2015-03-29 20:15:05 +02:00
Klaus Basan
79b3cf3cd3 Misc. imorvements as discussed in RW/KB worksho
* preparation for a context menu to send text messages from ATC/aircraft view
* preparation for context menu for fast pos. updates
* reverse ICAO lookup at login screen
* display fast updates / parts in GUI
* moved max- aircraft into settings
* made serverselection own component
2015-03-20 17:11:10 +01:00
Klaus Basan
5ed95aee3d refs #391, allow to send aircraft parts from GUI
* GUI component for aircraft parts
* remote aircraft selector component
* Adjusted GUI for internals component
* Enable / disable debug messages from GUI
* Allow to init engines directly
* Removed unused async sort in sequence

In same step fixed found issues in interpolator
* allow to set max rendered aircraft
2015-03-20 17:08:23 +01:00
Klaus Basan
f31445e873 refs #386, further improvements on interpolation
* extended unit tests for interpolator / parts testing
* allow to skip sorting when splitting by time
* update ot aircraft to FSX in own member function
* Skip time sync parts (FSX) when disabled
2015-03-20 17:08:14 +01:00
Klaus Basan
eca8c5b637 Reflecting discussed changes for interpolation performance refs #386
(based on FSX testing)
* Only send changed situation to SIM
* Split sending of parts / situations
* Only send parts with a reduced frequency (means slower as positions)
* Mark geodetic height as null for default values (the value is usually unavailable)
* Fixed altitude to MSL for network data
* Trace which aircrafts support aircraft parts via network
* Renamed insert_fron push_front (as proposed by Roland)

Status quo / lessons learnt
* On slower PCs jitter is still noticed for interpolated aircraft.
* Running interpolation in an independent process (aka core, not in GUI) reduced load dependencies
  => it seems to make sense to run driver in own thread
* The onGround flag in parts seems clumsy as it required to retrieve parts for position updates
* In interpolation performance really matters
2015-03-20 17:00:41 +01:00