swift
Loading...
Searching...
No Matches
contextownaircraftproxy.cpp
1// SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3
5
6#include <QDBusConnection>
7#include <QLatin1String>
8#include <QObject>
9#include <QtGlobal>
10
11#include "misc/dbus.h"
12#include "misc/dbusserver.h"
15
16using namespace swift::misc;
17using namespace swift::misc::aviation;
18using namespace swift::misc::simulation;
19
20namespace swift::core::context
21{
24 : IContextOwnAircraft(mode, runtime), m_dBusInterface(nullptr)
25 {
26 m_dBusInterface = new swift::misc::CGenericDBusInterface(
28 this->relaySignals(serviceName, connection);
29 }
30
31 void CContextOwnAircraftProxy::relaySignals(const QString &serviceName, QDBusConnection &connection)
32 {
33 bool s = connection.connect(
35 "changedAircraftCockpit", this,
37 Q_ASSERT(s);
39 "changedSelcal", this,
41 Q_ASSERT(s);
43 "changedCallsign", this, SIGNAL(changedCallsign(swift::misc::aviation::CCallsign)));
44 Q_ASSERT(s);
46 "changedAircraftIcaoCodes", this,
49 Q_ASSERT(s);
51 "changedPilot", this, SIGNAL(changedPilot(swift::misc::network::CUser)));
52 Q_ASSERT(s);
54 "movedAircraft", this, SIGNAL(movedAircraft(swift::misc::physical_quantities::CLength)));
55 Q_ASSERT(s);
56
57 this->relayBaseClassSignals(serviceName, connection, IContextOwnAircraft::ObjectPath(),
59 Q_UNUSED(s)
60 }
61
62 void CContextOwnAircraftProxy::unitTestRelaySignals()
63 {
64 // connect signals, asserts when failures
67 Q_UNUSED(c)
68 }
69
75
77 {
78 return m_dBusInterface->callDBusRet<swift::misc::aviation::CComSystem>(QLatin1String("getOwnComSystem"), unit);
79 }
80
82 {
83 return m_dBusInterface->callDBusRet<swift::misc::aviation::CTransponder>(QLatin1String("getOwnTransponder"));
84 }
85
87 {
88 return m_dBusInterface->callDBusRet<swift::misc::aviation::CAircraftSituation>(
89 QLatin1String("getOwnAircraftSituation"));
90 }
91
94 const swift::misc::aviation::CTransponder &transponder,
95 const CIdentifier &originator)
96 {
97 return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateCockpit"), com1, com2, transponder, originator);
98 }
99
101 const CIdentifier &originator)
102 {
103 return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateTransponderMode"), transponderMode, originator);
104 }
105
108 const CIdentifier &originator)
109 {
110 return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateActiveComFrequency"), frequency, comUnit,
111 originator);
112 }
113
116 const CIdentifier &originator)
117 {
118 return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateStandbyComFrequency"), frequency, comUnit,
119 originator);
120 }
121
123 {
124 return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnAircraftPilot"), pilot);
125 }
126
127 bool CContextOwnAircraftProxy::updateSelcal(const CSelcal &selcal, const CIdentifier &originator)
128 {
129 return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateSelcal"), selcal, originator);
130 }
131
133 const swift::misc::aviation::CAltitude &altitude,
134 const CAltitude &pressureAltitude)
135 {
136 return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnPosition"), position, altitude,
137 pressureAltitude);
138 }
139
141 {
142 return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnCallsign"), callsign);
143 }
144
146 const CAirlineIcaoCode &airlineIcaoCode)
147 {
148 return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnIcaoCodes"), aircraftIcaoCode,
149 airlineIcaoCode);
150 }
151
153 {
154 m_dBusInterface->callDBus(QLatin1String("toggleTransponderMode"));
155 }
156
158 {
159 return m_dBusInterface->callDBusRet<bool>(QLatin1String("setTransponderMode"), mode);
160 }
161
162 bool CContextOwnAircraftProxy::parseCommandLine(const QString &commandLine, const CIdentifier &originator)
163 {
164 return m_dBusInterface->callDBusRet<bool>(QLatin1String("parseCommandLine"), commandLine, originator);
165 }
166} // namespace swift::core::context
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.
Definition corefacade.h:57
CContextOwnAircraftProxy(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime)
Constructor.
bool parseCommandLine(const QString &commandLine, const swift::misc::CIdentifier &originator)
Parse a given command line.
swift::misc::aviation::CComSystem getOwnComSystem(swift::misc::aviation::CComSystem::ComUnit unit) const
Get own COM system.
bool updateOwnIcaoCodes(const swift::misc::aviation::CAircraftIcaoCode &aircraftIcaoCode, const swift::misc::aviation::CAirlineIcaoCode &airlineIcaoCode)
Set ICAO data.
bool updateSelcal(const swift::misc::aviation::CSelcal &selcal, const swift::misc::CIdentifier &originator)
Own SELCAL code.
bool updateTransponderMode(const swift::misc::aviation::CTransponder::TransponderMode &transponderMode, const swift::misc::CIdentifier &originator)
Update own transponder mode.
bool updateCockpit(const swift::misc::aviation::CComSystem &com1, const swift::misc::aviation::CComSystem &com2, const swift::misc::aviation::CTransponder &transponder, const swift::misc::CIdentifier &originator)
Update own cockpit.
bool updateActiveComFrequency(const swift::misc::physical_quantities::CFrequency &frequency, swift::misc::aviation::CComSystem::ComUnit comUnit, const swift::misc::CIdentifier &originator)
Tune in a COM frequency (active).
swift::misc::simulation::CSimulatedAircraft getOwnAircraft() const
Get own aircraft.
bool setTransponderMode(swift::misc::aviation::CTransponder::TransponderMode mode)
Set XPDR mode.
swift::misc::aviation::CAircraftSituation getOwnAircraftSituation() const
Get own aircraft.
swift::misc::aviation::CTransponder getOwnTransponder() const
Get own transponder.
bool updateOwnPosition(const swift::misc::geo::CCoordinateGeodetic &position, const swift::misc::aviation::CAltitude &altitude, const swift::misc::aviation::CAltitude &pressureAltitude)
Update position.
bool updateStandbyComFrequency(const swift::misc::physical_quantities::CFrequency &frequency, swift::misc::aviation::CComSystem::ComUnit comUnit, const swift::misc::CIdentifier &originator)
Tune in a COM frequency (standby).
bool updateOwnAircraftPilot(const swift::misc::network::CUser &pilot)
Set current pilot.
bool updateOwnCallsign(const swift::misc::aviation::CCallsign &callsign)
Set callsign.
void relayBaseClassSignals(const QString &serviceName, QDBusConnection &connection, const QString &objectPath, const QString &interfaceName)
Relay signals from this class.
Definition context.cpp:64
void changedAircraftCockpit(const swift::misc::simulation::CSimulatedAircraft &aircraft, const swift::misc::CIdentifier &originator)
Aircraft cockpit update.
void changedPilot(const swift::misc::network::CUser &pilot)
Own pilot (aka the swift user) changed.
void changedCallsign(const swift::misc::aviation::CCallsign &callsign)
Own callsign was changed.
void changedAircraftIcaoCodes(const swift::misc::aviation::CAircraftIcaoCode &aircraftIcaoCode, const swift::misc::aviation::CAirlineIcaoCode &airlineIcaoCode)
Own ICAO was changed.
static const QString & ObjectPath()
DBus object path.
void movedAircraft(const swift::misc::physical_quantities::CLength &distance)
Aircraft has been moved from one location to another (changed scenery).
void changedSelcal(const swift::misc::aviation::CSelcal &selcal, const swift::misc::CIdentifier &originator)
Changed SELCAL code.
static const QString & InterfaceName()
DBus interface name.
static const QString & coreServiceName()
Default service name.
Used for hand written interface based on virtual methods.
Value object encapsulating information identifying a component of a modular distributed swift process...
Definition identifier.h:29
Value object for ICAO classification.
Value object encapsulating information of an aircraft's situation.
Value object for ICAO classification.
Altitude as used in aviation, can be AGL or MSL altitude.
Definition altitude.h:52
Value object encapsulating information of a callsign.
Definition callsign.h:30
COM system (aka "radio").
Definition comsystem.h:37
Value object for SELCAL.
Definition selcal.h:31
Value object encapsulating information of a user.
Definition user.h:28
Physical unit length (length).
Definition length.h:18
Comprehensive information of an aircraft.
Free functions in swift::misc.
bool connect(const QString &service, const QString &path, const QString &interface, const QString &name, QObject *receiver, const char *slot)
QDBusConnection sessionBus()