mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-02 15:15:50 +08:00
Ref T422, context/provider functions for COM, XPDR values
This commit is contained in:
@@ -118,6 +118,12 @@ namespace BlackCore
|
||||
//! Get own aircraft
|
||||
virtual BlackMisc::Simulation::CSimulatedAircraft getOwnAircraft() const = 0;
|
||||
|
||||
//! Get own COM system
|
||||
virtual BlackMisc::Aviation::CComSystem getOwnComSystem(BlackMisc::Aviation::CComSystem::ComUnit unit) const = 0;
|
||||
|
||||
//! Get own transponder
|
||||
virtual BlackMisc::Aviation::CTransponder getOwnTransponder() const = 0;
|
||||
|
||||
//! Get own aircraft
|
||||
virtual BlackMisc::Aviation::CAircraftSituation getOwnAircraftSituation() const = 0;
|
||||
|
||||
@@ -128,6 +134,9 @@ namespace BlackCore
|
||||
//! Update own cockpit
|
||||
virtual bool updateCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const BlackMisc::CIdentifier &originator) = 0;
|
||||
|
||||
//! Update own transponder mode
|
||||
virtual bool updateTransponderMode(const BlackMisc::Aviation::CTransponder::TransponderMode &transponderMode, const BlackMisc::CIdentifier &originator) = 0;
|
||||
|
||||
//! Toggle XPDR mode
|
||||
virtual void toggleTransponderMode() = 0;
|
||||
|
||||
|
||||
@@ -37,6 +37,21 @@ namespace BlackCore
|
||||
return BlackMisc::Simulation::CSimulatedAircraft();
|
||||
}
|
||||
|
||||
//! \copydoc IContextOwnAircraft::getOwnComSystem
|
||||
virtual BlackMisc::Aviation::CComSystem getOwnComSystem(BlackMisc::Aviation::CComSystem::ComUnit unit) const override
|
||||
{
|
||||
Q_UNUSED((unit);)
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return BlackMisc::Aviation::CComSystem();
|
||||
}
|
||||
|
||||
//! \copydoc IContextOwnAircraft::getOwnTransponder()
|
||||
virtual BlackMisc::Aviation::CTransponder getOwnTransponder() const override
|
||||
{
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return BlackMisc::Aviation::CTransponder();
|
||||
}
|
||||
|
||||
//! \copydoc IContextOwnAircraft::getOwnAircraftSituation()
|
||||
virtual BlackMisc::Aviation::CAircraftSituation getOwnAircraftSituation() const override
|
||||
{
|
||||
@@ -65,6 +80,15 @@ namespace BlackCore
|
||||
return false;
|
||||
}
|
||||
|
||||
//! \copydoc IContextOwnAircraft::updateTransponderMode
|
||||
virtual bool updateTransponderMode(const BlackMisc::Aviation::CTransponder::TransponderMode &transponderMode, const BlackMisc::CIdentifier &originator) override
|
||||
{
|
||||
Q_UNUSED(transponderMode);
|
||||
Q_UNUSED(originator);
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return false;
|
||||
}
|
||||
|
||||
//! \copydoc IContextOwnAircraft::updateActiveComFrequency
|
||||
virtual bool updateActiveComFrequency(const BlackMisc::PhysicalQuantities::CFrequency &frequency, BlackMisc::Aviation::CComSystem::ComUnit comUnit, const BlackMisc::CIdentifier &originator) override
|
||||
{
|
||||
|
||||
@@ -96,6 +96,20 @@ namespace BlackCore
|
||||
return m_ownAircraft;
|
||||
}
|
||||
|
||||
CComSystem CContextOwnAircraft::getOwnComSystem(CComSystem::ComUnit unit) const
|
||||
{
|
||||
if (m_debugEnabled) {CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||
QReadLocker l(&m_lockAircraft);
|
||||
return m_ownAircraft.getComSystem(unit);
|
||||
}
|
||||
|
||||
CTransponder CContextOwnAircraft::getOwnTransponder() const
|
||||
{
|
||||
if (m_debugEnabled) {CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
|
||||
QReadLocker l(&m_lockAircraft);
|
||||
return m_ownAircraft.getTransponder();
|
||||
}
|
||||
|
||||
CCoordinateGeodetic CContextOwnAircraft::getOwnAircraftPosition() const
|
||||
{
|
||||
QReadLocker l(&m_lockAircraft);
|
||||
@@ -300,6 +314,21 @@ namespace BlackCore
|
||||
return changed;
|
||||
}
|
||||
|
||||
bool CContextOwnAircraft::updateTransponderMode(const CTransponder::TransponderMode &transponderMode, const CIdentifier &originator)
|
||||
{
|
||||
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << transponderMode; }
|
||||
bool changed;
|
||||
{
|
||||
QWriteLocker l(&m_lockAircraft);
|
||||
changed = m_ownAircraft.setTransponderMode(transponderMode);
|
||||
}
|
||||
if (changed)
|
||||
{
|
||||
emit this->changedAircraftCockpit(m_ownAircraft, originator);
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
|
||||
bool CContextOwnAircraft::updateActiveComFrequency(const CFrequency &frequency, CComSystem::ComUnit unit, const CIdentifier &originator)
|
||||
{
|
||||
if (unit != CComSystem::Com1 && unit != CComSystem::Com2) { return false; }
|
||||
@@ -351,17 +380,7 @@ namespace BlackCore
|
||||
|
||||
bool CContextOwnAircraft::setTransponderMode(CTransponder::TransponderMode mode)
|
||||
{
|
||||
CTransponder xpdr;
|
||||
CComSystem com1;
|
||||
CComSystem com2;
|
||||
{
|
||||
QReadLocker l(&m_lockAircraft);
|
||||
com1 = m_ownAircraft.getCom1System();
|
||||
com2 = m_ownAircraft.getCom2System();
|
||||
xpdr = m_ownAircraft.getTransponder();
|
||||
}
|
||||
xpdr.setTransponderMode(mode);
|
||||
return this->updateCockpit(com1, com2, xpdr, this->identifier());
|
||||
return this->updateTransponderMode(mode, this->identifier());
|
||||
}
|
||||
|
||||
bool CContextOwnAircraft::updateOwnCallsign(const CCallsign &callsign)
|
||||
@@ -435,6 +454,19 @@ namespace BlackCore
|
||||
}
|
||||
}
|
||||
|
||||
void CContextOwnAircraft::actionToggleTransponder(bool keydown)
|
||||
{
|
||||
if (!keydown) { return; }
|
||||
this->toggleTransponderMode();
|
||||
}
|
||||
|
||||
void CContextOwnAircraft::actionIdent(bool keydown)
|
||||
{
|
||||
if (this->getOwnTransponder().isInStandby()) { return; }
|
||||
const CTransponder::TransponderMode m = keydown ? CTransponder::StateIdent : CTransponder::ModeC;
|
||||
this->updateTransponderMode(m, this->identifier());
|
||||
}
|
||||
|
||||
void CContextOwnAircraft::allSwiftWebDataRead()
|
||||
{
|
||||
// we should already have received a reverse lookup model
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "blackcore/context/contextownaircraft.h"
|
||||
#include "blackcore/corefacadeconfig.h"
|
||||
#include "blackcore/vatsim/vatsimsettings.h"
|
||||
#include "blackcore/actionbind.h"
|
||||
#include "blackmisc/network/settings/serversettings.h"
|
||||
#include "blackmisc/network/user.h"
|
||||
#include "blackmisc/simulation/aircraftmodel.h"
|
||||
@@ -30,6 +31,7 @@
|
||||
#include "blackmisc/geo/coordinategeodetic.h"
|
||||
#include "blackmisc/pq/frequency.h"
|
||||
#include "blackmisc/pq/length.h"
|
||||
#include "blackmisc/icons.h"
|
||||
#include "blackmisc/settingscache.h"
|
||||
#include "blackmisc/identifiable.h"
|
||||
#include "blackmisc/identifier.h"
|
||||
@@ -114,6 +116,14 @@ namespace BlackCore
|
||||
//! \ingroup ownaircraftprovider
|
||||
virtual BlackMisc::Simulation::CSimulatedAircraft getOwnAircraft() const override;
|
||||
|
||||
//! \copydoc IContextOwnAircraft::getOwnComSystem
|
||||
//! \ingroup ownaircraftprovider
|
||||
virtual BlackMisc::Aviation::CComSystem getOwnComSystem(BlackMisc::Aviation::CComSystem::ComUnit unit) const override;
|
||||
|
||||
//! \copydoc IContextOwnAircraft::getOwnTransponder()
|
||||
//! \ingroup ownaircraftprovider
|
||||
virtual BlackMisc::Aviation::CTransponder getOwnTransponder() const override;
|
||||
|
||||
//! \copydoc IContextOwnAircraft::getOwnAircraftSituation()
|
||||
//! \ingroup ownaircraftprovider
|
||||
virtual BlackMisc::Aviation::CAircraftSituation getOwnAircraftSituation() const override;
|
||||
@@ -132,6 +142,9 @@ namespace BlackCore
|
||||
//! \copydoc IContextOwnAircraft::updateCockpit
|
||||
virtual bool updateCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const BlackMisc::CIdentifier &originator) override;
|
||||
|
||||
//! \copydoc IContextOwnAircraft::updateTransponderMode
|
||||
virtual bool updateTransponderMode(const BlackMisc::Aviation::CTransponder::TransponderMode &transponderMode, const BlackMisc::CIdentifier &originator) override;
|
||||
|
||||
//! \copydoc IContextOwnAircraft::updateSelcal
|
||||
virtual bool updateSelcal(const BlackMisc::Aviation::CSelcal &selcal, const BlackMisc::CIdentifier &originator) override;
|
||||
|
||||
@@ -194,6 +207,9 @@ namespace BlackCore
|
||||
QString m_voiceRoom2UrlOverride; //!< overridden voice room url
|
||||
mutable QReadWriteLock m_lockAircraft; //!< lock aircraft
|
||||
|
||||
CActionBind m_actionToggleXpdr { "/Own aircraft/Toggle XPDR state", BlackMisc::CIcons::radio16(), this, &CContextOwnAircraft::actionToggleTransponder };
|
||||
CActionBind m_actionIdent { "/Own aircraft/XPDR ident", BlackMisc::CIcons::radio16(), this, &CContextOwnAircraft::actionIdent };
|
||||
|
||||
static constexpr qint64 MinHistoryDeltaMs = 1000;
|
||||
static constexpr int MaxHistoryElements = 20;
|
||||
QTimer m_historyTimer; //!< history timer
|
||||
@@ -214,6 +230,11 @@ namespace BlackCore
|
||||
//! \ingroup crosscontextfunction
|
||||
void xCtxChangedSimulatorStatus(int status);
|
||||
|
||||
//! Actions @{
|
||||
void actionToggleTransponder(bool keydown);
|
||||
void actionIdent(bool keydown);
|
||||
//! @}
|
||||
|
||||
//! Web data loaded
|
||||
void allSwiftWebDataRead();
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace BlackCore
|
||||
{
|
||||
CContextOwnAircraftProxy::CContextOwnAircraftProxy(const QString &serviceName, QDBusConnection &connection, CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime) : IContextOwnAircraft(mode, runtime), m_dBusInterface(nullptr)
|
||||
{
|
||||
this->m_dBusInterface = new BlackMisc::CGenericDBusInterface(
|
||||
m_dBusInterface = new BlackMisc::CGenericDBusInterface(
|
||||
serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(),
|
||||
connection, this);
|
||||
this->relaySignals(serviceName, connection);
|
||||
@@ -78,77 +78,92 @@ namespace BlackCore
|
||||
|
||||
BlackMisc::Simulation::CSimulatedAircraft CContextOwnAircraftProxy::getOwnAircraft() const
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<BlackMisc::Simulation::CSimulatedAircraft>(QLatin1String("getOwnAircraft"));
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Simulation::CSimulatedAircraft>(QLatin1String("getOwnAircraft"));
|
||||
}
|
||||
|
||||
CComSystem CContextOwnAircraftProxy::getOwnComSystem(CComSystem::ComUnit unit) const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CComSystem>(QLatin1String("getOwnComSystem"), unit);
|
||||
}
|
||||
|
||||
CTransponder CContextOwnAircraftProxy::getOwnTransponder() const
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CTransponder>(QLatin1String("getOwnTransponder"));
|
||||
}
|
||||
|
||||
CAircraftSituation CContextOwnAircraftProxy::getOwnAircraftSituation() const
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAircraftSituation>(QLatin1String("getOwnAircraftSituation"));
|
||||
return m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAircraftSituation>(QLatin1String("getOwnAircraftSituation"));
|
||||
}
|
||||
|
||||
bool CContextOwnAircraftProxy::updateCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const CIdentifier &originator)
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1String("updateCockpit"), com1, com2, transponder, originator);
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateCockpit"), com1, com2, transponder, originator);
|
||||
}
|
||||
|
||||
bool CContextOwnAircraftProxy::updateTransponderMode(const CTransponder::TransponderMode &transponderMode, const CIdentifier &originator)
|
||||
{
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateCockpit"), transponderMode, originator);
|
||||
}
|
||||
|
||||
bool CContextOwnAircraftProxy::updateActiveComFrequency(const PhysicalQuantities::CFrequency &frequency, BlackMisc::Aviation::CComSystem::ComUnit comUnit, const CIdentifier &originator)
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1String("updateActiveComFrequency"), frequency, comUnit, originator);
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateActiveComFrequency"), frequency, comUnit, originator);
|
||||
}
|
||||
|
||||
bool CContextOwnAircraftProxy::updateOwnAircraftPilot(const BlackMisc::Network::CUser &pilot)
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnAircraftPilot"), pilot);
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnAircraftPilot"), pilot);
|
||||
}
|
||||
|
||||
bool CContextOwnAircraftProxy::updateSelcal(const CSelcal &selcal, const CIdentifier &originator)
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1String("updateSelcal"), selcal, originator);
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateSelcal"), selcal, originator);
|
||||
}
|
||||
|
||||
bool CContextOwnAircraftProxy::updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const CAltitude &pressureAltitude)
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnPosition"), position, altitude, pressureAltitude);
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnPosition"), position, altitude, pressureAltitude);
|
||||
}
|
||||
|
||||
bool CContextOwnAircraftProxy::updateOwnCallsign(const CCallsign &callsign)
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnCallsign"), callsign);
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnCallsign"), callsign);
|
||||
}
|
||||
|
||||
bool CContextOwnAircraftProxy::updateOwnIcaoCodes(const CAircraftIcaoCode &aircraftIcaoCode, const CAirlineIcaoCode &airlineIcaoCode)
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnIcaoCodes"), aircraftIcaoCode, airlineIcaoCode);
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("updateOwnIcaoCodes"), aircraftIcaoCode, airlineIcaoCode);
|
||||
}
|
||||
|
||||
void CContextOwnAircraftProxy::setAudioOutputVolume(int outputVolume)
|
||||
{
|
||||
this->m_dBusInterface->callDBus(QLatin1String("setAudioOutputVolume"), outputVolume);
|
||||
m_dBusInterface->callDBus(QLatin1String("setAudioOutputVolume"), outputVolume);
|
||||
}
|
||||
|
||||
void CContextOwnAircraftProxy::setAudioVoiceRoomOverrideUrls(const QString &voiceRoom1Url, const QString &voiceRoom2Url)
|
||||
{
|
||||
this->m_dBusInterface->callDBus(QLatin1String("setAudioVoiceRoomOverrideUrls"), voiceRoom1Url, voiceRoom2Url);
|
||||
m_dBusInterface->callDBus(QLatin1String("setAudioVoiceRoomOverrideUrls"), voiceRoom1Url, voiceRoom2Url);
|
||||
}
|
||||
|
||||
void CContextOwnAircraftProxy::enableAutomaticVoiceRoomResolution(bool enable)
|
||||
{
|
||||
this->m_dBusInterface->callDBus(QLatin1String("enableAutomaticVoiceRoomResolution"), enable);
|
||||
m_dBusInterface->callDBus(QLatin1String("enableAutomaticVoiceRoomResolution"), enable);
|
||||
}
|
||||
|
||||
void CContextOwnAircraftProxy::toggleTransponderMode()
|
||||
{
|
||||
this->m_dBusInterface->callDBus(QLatin1String("toggleTransponderMode"));
|
||||
m_dBusInterface->callDBus(QLatin1String("toggleTransponderMode"));
|
||||
}
|
||||
|
||||
bool CContextOwnAircraftProxy::setTransponderMode(CTransponder::TransponderMode mode)
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1String("setTransponderMode"), mode);
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("setTransponderMode"), mode);
|
||||
}
|
||||
|
||||
bool CContextOwnAircraftProxy::parseCommandLine(const QString &commandLine, const CIdentifier &originator)
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1String("parseCommandLine"), commandLine, originator);
|
||||
return m_dBusInterface->callDBusRet<bool>(QLatin1String("parseCommandLine"), commandLine, originator);
|
||||
}
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
@@ -64,9 +64,12 @@ namespace BlackCore
|
||||
//! \publicsection
|
||||
//! @{
|
||||
virtual BlackMisc::Simulation::CSimulatedAircraft getOwnAircraft() const override;
|
||||
virtual BlackMisc::Aviation::CComSystem getOwnComSystem(BlackMisc::Aviation::CComSystem::ComUnit unit) const override;
|
||||
virtual BlackMisc::Aviation::CTransponder getOwnTransponder() const override;
|
||||
virtual BlackMisc::Aviation::CAircraftSituation getOwnAircraftSituation() const override;
|
||||
virtual bool updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const BlackMisc::Aviation::CAltitude &pressureAltitude) override;
|
||||
virtual bool updateCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const BlackMisc::CIdentifier &originator) override;
|
||||
virtual bool updateTransponderMode(const BlackMisc::Aviation::CTransponder::TransponderMode &transponderMode, const BlackMisc::CIdentifier &originator) override;
|
||||
virtual bool updateActiveComFrequency(const BlackMisc::PhysicalQuantities::CFrequency &frequency, BlackMisc::Aviation::CComSystem::ComUnit comUnit, const BlackMisc::CIdentifier &originator) override;
|
||||
virtual bool updateOwnAircraftPilot(const BlackMisc::Network::CUser &pilot) override;
|
||||
virtual bool updateSelcal(const BlackMisc::Aviation::CSelcal &selcal, const BlackMisc::CIdentifier &originator) override;
|
||||
|
||||
Reference in New Issue
Block a user