6 #include <QDBusArgument>
8 #include <QDBusObjectPath>
25 using namespace swift::misc::aviation;
26 using namespace swift::misc::simulation;
27 using namespace swift::misc::simulation::fscommon;
28 using namespace swift::misc::geo;
29 using namespace swift::misc::physical_quantities;
30 using namespace swift::misc::network;
34 CTestService::CTestService(QObject *parent) : QObject(parent) {}
53 static const QString p(
"/ts");
64 QDBusError error = connection.lastError();
65 err() << error.message();
66 err() <<
"Started dbus-daemon.exe --session (Windows)?" << Qt::endl;
67 err() <<
"Created directory session.d (e.g. ../Qt/5.8.0/qtbase/etc/dbus-1/session.d)?" << Qt::endl;
68 qFatal(
"Could not register service!");
72 QDBusConnection::ExportAllSlots | QDBusConnection::ExportAllSignals |
73 QDBusConnection::ExportAdaptors))
75 qFatal(
"Could not register service object!");
79 if (pTestService) { out() <<
"Service registered" << Qt::endl; }
85 out() <<
"Connected object with DBus 'sendStringMessage'" << Qt::endl;
87 else { qFatal(
"Cannot connect service with DBus"); }
96 QTextStream &CTestService::out()
98 static QTextStream out(stdout);
102 QTextStream &CTestService::err()
104 static QTextStream err(stderr);
110 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received message: " << message << Qt::endl;
115 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received variant: " << variant << Qt::endl;
120 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received speed: " << speed << Qt::endl;
125 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received COM: " << comUnit << Qt::endl;
130 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received altitude: " << altitude << Qt::endl;
135 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received list: " << list.size() << Qt::endl;
140 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received geo data: " << geo << Qt::endl;
146 out() <<
"Pid: " <<
CTestService::getPid() <<
" Received transponder: " << transponder << Qt::endl;
151 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received track: " << track << Qt::endl;
156 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received length: " << length << Qt::endl;
162 for (
const CVariant &lv : variantList)
164 if (m_verbose) out() <<
" Received variant: " << lv.toQString() << Qt::endl;
170 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received callsign: " << callsign << Qt::endl;
176 out() <<
"Pid: " <<
CTestService::getPid() <<
" Received ATC list: " << atcStationList << Qt::endl;
181 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received value map: " << valueMap << Qt::endl;
186 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" Received ATC station: " << station << Qt::endl;
191 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping ATCs: " << atcStationList << Qt::endl;
192 return atcStationList;
197 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping aircraft: " << aircraftList << Qt::endl;
204 out() <<
"Pid: " <<
CTestService::getPid() <<
" ping aircraft parts: " << aircraftParts << Qt::endl;
205 return aircraftParts;
211 out() <<
"Pid: " <<
CTestService::getPid() <<
" ping aircraft engine: " << aircraftEngine << Qt::endl;
212 return aircraftEngine;
218 out() <<
"Pid: " <<
CTestService::getPid() <<
" ping aircraft model: " << aircraftModel << Qt::endl;
219 return aircraftModel;
225 out() <<
"Pid: " <<
CTestService::getPid() <<
" ping aircraft modellist: " << aircraftModels << Qt::endl;
226 return aircraftModels;
232 out() <<
"Pid: " <<
CTestService::getPid() <<
" ping aircraft lights: " << aircraftLights << Qt::endl;
233 return aircraftLights;
239 out() <<
"Pid: " <<
CTestService::getPid() <<
" ping simulated aircraft: " << aircraft << Qt::endl;
245 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping airports: " << airportList << Qt::endl;
251 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping properties: " << properties << Qt::endl;
258 out() <<
"Pid: " <<
CTestService::getPid() <<
" ping properties: " << indexVariantMap << Qt::endl;
259 return indexVariantMap;
264 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping client: " << client << Qt::endl;
270 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping clients: " << clientList << Qt::endl;
276 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping speed: " << speed << Qt::endl;
282 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping alt: " << altitude << Qt::endl;
288 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping user: " << user << Qt::endl;
294 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping situation: " << situation << Qt::endl;
300 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping transponder: " << transponder << Qt::endl;
306 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping ATC: " << station << Qt::endl;
312 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" ping ICAO data: " << icao << Qt::endl;
333 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" info: " << flightPlan << Qt::endl;
345 if (m_verbose) out() <<
"Pid: " <<
CTestService::getPid() <<
" getAircraftCfgEntriesList" << Qt::endl;
352 QList<QDBusObjectPath> paths;
354 for (
int i = 0; i < n; i++) { paths.append(QDBusObjectPath(
ObjectPath())); }
Specialized value object compliant map for variants, based on indexes.
size_type size() const
Returns number of elements in the sequence.
Wrapper around QVariant which provides transparent access to CValueObject methods of the contained ob...
Value object encapsulating a list of variants.
Value object encapsulating information about aircraft's engines.
Value object for ICAO classification.
Value object encapsulating information about aircraft's lights.
Value object encapsulating information of aircraft's parts.
Value object encapsulating information of an aircraft's situation.
Value object for a list of airports.
Altitude as used in aviation, can be AGL or MSL altitude.
Value object encapsulating information about an ATC station.
Value object for a list of ATC stations.
Value object encapsulating information of a callsign.
Value object for a flight plan.
Track as used in aviation, can be true or magnetic Track.
QString toQString(bool i18n=false) const
Cast as QString.
Value object encapsulating a list of voice rooms.
Value object encapsulating information of a user.
Physical unit length (length)
Aircraft model (used by another pilot, my models on disk)
Value object encapsulating a list of aircraft models.
Comprehensive information of an aircraft.
Value object encapsulating a list of aircraft.
Describing a simulator plugin.
Utility, providing FS aircraft.cfg entries.
Testservice for PQ / CValueObject DBus tests. This part is the callee.
swift::misc::aviation::CAircraftLights pingAircraftLights(const swift::misc::aviation::CAircraftLights &aircraftLights) const
Ping aircraft lights.
swift::misc::network::CUser pingUser(const swift::misc::network::CUser &user) const
Ping user.
swift::misc::aviation::CAircraftIcaoCode pingAircraftIcaoData(const swift::misc::aviation::CAircraftIcaoCode &icao) const
Ping ICAO data object.
void receiveAltitude(const swift::misc::aviation::CAltitude &altitude) const
Receive altitude.
void receiveSpeed(const swift::misc::physical_quantities::CSpeed &speed) const
Receive speed.
swift::misc::aviation::CTransponder pingTransponder(const swift::misc::aviation::CTransponder &transponder) const
Ping transponder.
swift::misc::aviation::CAircraftParts pingAircraftParts(const swift::misc::aviation::CAircraftParts &aircraftParts) const
Ping parts.
void receiveTransponder(const swift::misc::aviation::CTransponder &transponder) const
Receive transponder.
void receiveValueMap(const swift::misc::CPropertyIndexVariantMap &valueMap) const
Receive an value map.
swift::misc::simulation::CAircraftModelList pingAircraftModelList(const swift::misc::simulation::CAircraftModelList &aircraftModels) const
Ping model.
swift::misc::aviation::CFlightPlan pingFlightPlan(const swift::misc::aviation::CFlightPlan &flightPlan) const
Ping flight plan.
static bool canRegisterTestService(QDBusConnection &connection)
Can the testservice be registered?
static const QString & InterfaceName()
DBus interface name.
swift::misc::physical_quantities::CSpeed pingSpeed(const swift::misc::physical_quantities::CSpeed &speed) const
Ping speed.
swift::misc::simulation::CSimulatedAircraftList pingAircraftList(const swift::misc::simulation::CSimulatedAircraftList &aircraftList) const
Ping aircraft list.
void receiveVariant(const swift::misc::CVariant &variant) const
Receive a QVariant.
swift::misc::simulation::fscommon::CAircraftCfgEntriesList getAircraftCfgEntriesList(int n) const
Return stations via DBus.
void receiveAtcStationList(const swift::misc::aviation::CAtcStationList &atcStationList) const
Receive ATC list.
swift::misc::simulation::CAircraftModel pingAircraftModel(const swift::misc::simulation::CAircraftModel &aircraftModel) const
Ping model.
swift::misc::CPropertyIndex pingPropertyIndex(const swift::misc::CPropertyIndex &properties) const
Ping property index.
void receiveLength(const swift::misc::physical_quantities::CLength &length) const
Receive a length.
void receiveVariantList(const swift::misc::CVariantList &variantList) const
Receive variant list.
static const QString & ObjectPath()
DBus object path.
swift::misc::aviation::CAtcStationList getAtcStationList(int n) const
Return stations via DBus.
swift::misc::simulation::CSimulatedAircraft pingSimulatedAircraft(const swift::misc::simulation::CSimulatedAircraft &aircraft) const
Ping simulated aircraft.
swift::misc::aviation::CAtcStationList pingAtcStationList(const swift::misc::aviation::CAtcStationList &atcStationList) const
Ping ATC list.
QList< QDBusObjectPath > getObjectPaths(int n) const
Return paths via DBus.
swift::misc::aviation::CAircraftSituation pingSituation(const swift::misc::aviation::CAircraftSituation &situation) const
Ping situation.
swift::misc::network::CClient pingClient(const swift::misc::network::CClient &client) const
Ping client.
swift::misc::simulation::CSimulatorPluginInfo pingPluginInfo(const swift::misc::simulation::CSimulatorPluginInfo &info) const
Ping plugin info.
void receiveTrack(const swift::misc::aviation::CTrack &track) const
Receive track.
swift::misc::aviation::CAtcStation pingAtcStation(const swift::misc::aviation::CAtcStation &station) const
Ping ATC station.
void receiveList(const QList< double > &list) const
Receive list.
swift::misc::network::CClientList pingClientList(const swift::misc::network::CClientList &clientList) const
Ping NW clients list.
swift::misc::aviation::CAirportList pingAirportList(const swift::misc::aviation::CAirportList &airportList) const
Ping airports list.
void receiveComUnit(const swift::misc::aviation::CComSystem &comUnit) const
Receive com unit.
swift::misc::aviation::CAltitude pingAltitude(const swift::misc::aviation::CAltitude &altitude) const
Ping altitude.
static CTestService * registerTestService(QDBusConnection &connection, bool verbose, QObject *parent=nullptr)
Register testservice with connection.
swift::misc::aviation::CAircraftEngine pingAircraftEngine(const swift::misc::aviation::CAircraftEngine &aircraftEngine) const
Ping engine.
void receiveStringMessage(const QString &message) const
Receive string message.
CTestService(QObject *parent=nullptr)
Constructor.
static bool unregisterTestService(QDBusConnection &connection)
Can the testservice be registered?
swift::misc::CPropertyIndexVariantMap pingIndexVariantMap(const swift::misc::CPropertyIndexVariantMap &indexVariantMap) const
Ping index variant map.
swift::misc::CVariant pingCVariant(const swift::misc::CVariant &variant) const
Ping CVariant.
void receiveCallsign(const swift::misc::aviation::CCallsign &callsign) const
Receive callsign.
void receiveGeoPosition(const swift::misc::geo::CCoordinateGeodetic &geo) const
Receive a geo position.
static qint64 getPid()
Process id.
void receiveAtcStation(const swift::misc::aviation::CAtcStation &station) const
Receive ATC station.
static swift::misc::simulation::fscommon::CAircraftCfgEntriesList getAircraftCfgEntries(int number)
Get aircraft cfg entries.
static swift::misc::aviation::CAtcStationList createAtcStations(int number, bool byPropertyIndex=false)
Generate number of ATC stations.
Generate data for testing purposes.
Free functions in swift::misc.
#define SWIFT_MISC_TESTSERVICE_INTERFACENAME
DBus interface for test service.