mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-09 13:35:34 +08:00
refs #242, added signals for own aircraft context
* fixed tool in core * fixed tuntime for signal / slot logging
This commit is contained in:
@@ -1,9 +1,5 @@
|
|||||||
#include "tool.h"
|
#include "tool.h"
|
||||||
#include "blackcore/context_runtime.h"
|
#include "blackcore/context_all_interfaces.h"
|
||||||
#include "blackcore/context_network.h"
|
|
||||||
#include "blackcore/context_audio.h"
|
|
||||||
#include "blackcore/context_settings.h"
|
|
||||||
#include "blackcore/context_application.h"
|
|
||||||
#include "blackmisc/indexvariantmap.h"
|
#include "blackmisc/indexvariantmap.h"
|
||||||
#include "blackmisc/avallclasses.h"
|
#include "blackmisc/avallclasses.h"
|
||||||
#include "blackmisc/pqallquantities.h"
|
#include "blackmisc/pqallquantities.h"
|
||||||
@@ -48,6 +44,8 @@ namespace BlackMiscTest
|
|||||||
const BlackCore::IContextNetwork *networkContext = runtime->getIContextNetwork();
|
const BlackCore::IContextNetwork *networkContext = runtime->getIContextNetwork();
|
||||||
const BlackCore::IContextAudio *audioContext = runtime->getIContextAudio();
|
const BlackCore::IContextAudio *audioContext = runtime->getIContextAudio();
|
||||||
const BlackCore::IContextSettings *settingsContext = runtime->getIContextSettings();
|
const BlackCore::IContextSettings *settingsContext = runtime->getIContextSettings();
|
||||||
|
const BlackCore::IContextOwnAircraft *ownAircraftContext = runtime->getIContextOwnAircraft();
|
||||||
|
|
||||||
BlackCore::IContextApplication *applicationContext = runtime->getIContextApplication();
|
BlackCore::IContextApplication *applicationContext = runtime->getIContextApplication();
|
||||||
|
|
||||||
qDebug() << "-------------";
|
qDebug() << "-------------";
|
||||||
@@ -62,7 +60,7 @@ namespace BlackMiscTest
|
|||||||
qDebug() << "signal / slot logging:";
|
qDebug() << "signal / slot logging:";
|
||||||
qDebug() << "sig + context + [e]nabled/[d]isabled";
|
qDebug() << "sig + context + [e]nabled/[d]isabled";
|
||||||
qDebug() << "slo + context + [e]nabled/[d]isabled";
|
qDebug() << "slo + context + [e]nabled/[d]isabled";
|
||||||
qDebug() << "contexts: app / aud / net / set / sim / all";
|
qDebug() << "contexts: app / aud / net / own (aircraft) / set / sim / all";
|
||||||
qDebug() << "examples: sigappd, slonete, slosimd, sloalle";
|
qDebug() << "examples: sigappd, slonete, slosimd, sloalle";
|
||||||
qDebug() << "-------------";
|
qDebug() << "-------------";
|
||||||
|
|
||||||
@@ -95,7 +93,7 @@ namespace BlackMiscTest
|
|||||||
{
|
{
|
||||||
qDebug() << "-------------";
|
qDebug() << "-------------";
|
||||||
qDebug() << "my aircraft";
|
qDebug() << "my aircraft";
|
||||||
qDebug() << networkContext->getOwnAircraft();
|
qDebug() << ownAircraftContext->getOwnAircraft();
|
||||||
}
|
}
|
||||||
else if (line.startsWith("5"))
|
else if (line.startsWith("5"))
|
||||||
{
|
{
|
||||||
@@ -121,6 +119,7 @@ namespace BlackMiscTest
|
|||||||
if (line.startsWith("app")) runtime->signalLogForApplication(enable);
|
if (line.startsWith("app")) runtime->signalLogForApplication(enable);
|
||||||
else if (line.startsWith("aud")) runtime->signalLogForAudio(enable);
|
else if (line.startsWith("aud")) runtime->signalLogForAudio(enable);
|
||||||
else if (line.startsWith("net")) runtime->signalLogForNetwork(enable);
|
else if (line.startsWith("net")) runtime->signalLogForNetwork(enable);
|
||||||
|
else if (line.startsWith("own")) runtime->signalLogForOwnAircraft(enable);
|
||||||
else if (line.startsWith("set")) runtime->signalLogForSettings(enable);
|
else if (line.startsWith("set")) runtime->signalLogForSettings(enable);
|
||||||
else if (line.startsWith("sim")) runtime->signalLogForSimulator(enable);
|
else if (line.startsWith("sim")) runtime->signalLogForSimulator(enable);
|
||||||
else if (line.startsWith("all")) runtime->signalLog(enable);
|
else if (line.startsWith("all")) runtime->signalLog(enable);
|
||||||
@@ -133,6 +132,7 @@ namespace BlackMiscTest
|
|||||||
if (line.startsWith("app")) runtime->slotLogForApplication(enable);
|
if (line.startsWith("app")) runtime->slotLogForApplication(enable);
|
||||||
else if (line.startsWith("aud")) runtime->slotLogForAudio(enable);
|
else if (line.startsWith("aud")) runtime->slotLogForAudio(enable);
|
||||||
else if (line.startsWith("net")) runtime->slotLogForNetwork(enable);
|
else if (line.startsWith("net")) runtime->slotLogForNetwork(enable);
|
||||||
|
else if (line.startsWith("own")) runtime->signalLogForOwnAircraft(enable);
|
||||||
else if (line.startsWith("set")) runtime->slotLogForSettings(enable);
|
else if (line.startsWith("set")) runtime->slotLogForSettings(enable);
|
||||||
else if (line.startsWith("sim")) runtime->slotLogForSimulator(enable);
|
else if (line.startsWith("sim")) runtime->slotLogForSimulator(enable);
|
||||||
else if (line.startsWith("all")) runtime->slotLog(enable);
|
else if (line.startsWith("all")) runtime->slotLog(enable);
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
#include "blackcore/context.h"
|
#include "blackcore/context.h"
|
||||||
#include "blackmisc/avallclasses.h"
|
#include "blackmisc/avallclasses.h"
|
||||||
#include "blackmisc/statusmessagelist.h"
|
|
||||||
|
|
||||||
#define BLACKCORE_CONTEXTOWNAIRCRAFT_INTERFACENAME "net.vatsim.PilotClient.BlackCore.ContextOwnAircraft"
|
#define BLACKCORE_CONTEXTOWNAIRCRAFT_INTERFACENAME "net.vatsim.PilotClient.BlackCore.ContextOwnAircraft"
|
||||||
#define BLACKCORE_CONTEXTOWNAIRCRAFT_OBJECTPATH "/OwnAircraft"
|
#define BLACKCORE_CONTEXTOWNAIRCRAFT_OBJECTPATH "/OwnAircraft"
|
||||||
@@ -42,28 +41,30 @@ namespace BlackCore
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
//! Aircraft situation update
|
//! Aircraft situation update
|
||||||
void changedAircraftSituation(const BlackMisc::Aviation::CAircraftSituation &situation);
|
void changedAircraftSituation(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator);
|
||||||
|
|
||||||
|
//! Aircraft cockpit update
|
||||||
|
void changedAircraftCockpit(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator);
|
||||||
|
|
||||||
|
//! Aircraft position update
|
||||||
|
void changedAircraftPosition(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
//! Get own aircraft
|
//! Get own aircraft
|
||||||
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const = 0;
|
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const = 0;
|
||||||
|
|
||||||
/*!
|
//! Own aircraft
|
||||||
* Set own aircraft
|
virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) = 0;
|
||||||
* \param aircraft
|
|
||||||
* \return message list, as aircraft can only be set prior connecting
|
|
||||||
*/
|
|
||||||
virtual BlackMisc::CStatusMessageList setOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft) = 0;
|
|
||||||
|
|
||||||
//! Own position, be aware height is terrain height
|
//! Own position, be aware height is terrain height
|
||||||
virtual void updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude) = 0;
|
virtual void updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) = 0;
|
||||||
|
|
||||||
//! Complete situation update
|
//! Complete situation update
|
||||||
virtual void updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation) = 0;
|
virtual void updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) = 0;
|
||||||
|
|
||||||
//! Update own cockpit
|
//! Update own cockpit
|
||||||
virtual void updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder) = 0;
|
virtual void updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! Constructor
|
//! Constructor
|
||||||
|
|||||||
@@ -35,9 +35,7 @@ namespace BlackCore
|
|||||||
/*
|
/*
|
||||||
* Cleanup
|
* Cleanup
|
||||||
*/
|
*/
|
||||||
CContextOwnAircraft::~CContextOwnAircraft()
|
CContextOwnAircraft::~CContextOwnAircraft() { }
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Init own aircraft
|
* Init own aircraft
|
||||||
@@ -67,35 +65,52 @@ namespace BlackCore
|
|||||||
/*
|
/*
|
||||||
* Own Aircraft
|
* Own Aircraft
|
||||||
*/
|
*/
|
||||||
CStatusMessageList CContextOwnAircraft::setOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft)
|
void CContextOwnAircraft::updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator)
|
||||||
{
|
{
|
||||||
|
// trigger the correct signals
|
||||||
|
this->updateOwnCockpit(aircraft.getCom1System(), aircraft.getCom2System(), aircraft.getTransponder(), originator);
|
||||||
|
this->updateOwnPosition(aircraft.getPosition(), aircraft.getAltitude() ,originator);
|
||||||
|
this->updateOwnSituation(aircraft.getSituation(), originator);
|
||||||
|
|
||||||
|
// all the rest
|
||||||
this->m_ownAircraft = aircraft;
|
this->m_ownAircraft = aircraft;
|
||||||
return CStatusMessageList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Own position
|
* Own position
|
||||||
*/
|
*/
|
||||||
void CContextOwnAircraft::updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude)
|
void CContextOwnAircraft::updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator)
|
||||||
{
|
{
|
||||||
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, position.toQString(), altitude.toQString());
|
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, position.toQString(), altitude.toQString());
|
||||||
this->m_ownAircraft.setPosition(position);
|
bool changed = (this->m_ownAircraft.getPosition() == position);
|
||||||
this->m_ownAircraft.setAltitude(altitude);
|
if (changed) this->m_ownAircraft.setPosition(position);
|
||||||
|
|
||||||
|
if (this->m_ownAircraft.getAltitude() != altitude)
|
||||||
|
{
|
||||||
|
changed = true;
|
||||||
|
this->m_ownAircraft.setAltitude(altitude);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (changed) emit this->changedAircraftPosition(this->m_ownAircraft, originator);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update own situation
|
* Update own situation
|
||||||
*/
|
*/
|
||||||
void CContextOwnAircraft::updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation)
|
void CContextOwnAircraft::updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator)
|
||||||
{
|
{
|
||||||
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, situation.toQString());
|
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, situation.toQString());
|
||||||
|
bool changed = this->m_ownAircraft.getSituation() == situation;
|
||||||
|
if (!changed) return;
|
||||||
|
|
||||||
this->m_ownAircraft.setSituation(situation);
|
this->m_ownAircraft.setSituation(situation);
|
||||||
|
emit this->changedAircraftSituation(this->m_ownAircraft, originator);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Own cockpit data
|
* Own cockpit data
|
||||||
*/
|
*/
|
||||||
void CContextOwnAircraft::updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder)
|
void CContextOwnAircraft::updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator)
|
||||||
{
|
{
|
||||||
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, com1.toQString(), com2.toQString(), transponder.toQString());
|
if (this->getRuntime()->isSlotLogForOwnAircraftEnabled()) this->getRuntime()->logSlot(Q_FUNC_INFO, com1.toQString(), com2.toQString(), transponder.toQString());
|
||||||
bool changed = false;
|
bool changed = false;
|
||||||
@@ -114,8 +129,7 @@ namespace BlackCore
|
|||||||
this->m_ownAircraft.setTransponder(transponder);
|
this->m_ownAircraft.setTransponder(transponder);
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
if (changed) emit this->changedAircraftCockpit(this->m_ownAircraft, originator);
|
||||||
if (!changed) return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -34,16 +34,16 @@ namespace BlackCore
|
|||||||
public slots: // IContextOwnAircraft overrides
|
public slots: // IContextOwnAircraft overrides
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::setOwnAircraft()
|
//! \copydoc IContextOwnAircraft::setOwnAircraft()
|
||||||
virtual BlackMisc::CStatusMessageList setOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft) override;
|
virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnPosition()
|
//! \copydoc IContextOwnAircraft::updateOwnPosition()
|
||||||
virtual void updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude) override;
|
virtual void updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnSituation()
|
//! \copydoc IContextOwnAircraft::updateOwnSituation()
|
||||||
virtual void updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation) override;
|
virtual void updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnCockpit()
|
//! \copydoc IContextOwnAircraft::updateOwnCockpit()
|
||||||
virtual void updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder) override;
|
virtual void updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::getOwnAircraft()
|
//! \copydoc IContextOwnAircraft::getOwnAircraft()
|
||||||
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const override;
|
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const override;
|
||||||
@@ -61,7 +61,7 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BlackMisc::Aviation::CAircraft m_ownAircraft;
|
BlackMisc::Aviation::CAircraft m_ownAircraft; //!< my aircraft
|
||||||
|
|
||||||
//! Init my very own aircraft
|
//! Init my very own aircraft
|
||||||
void initOwnAircraft();
|
void initOwnAircraft();
|
||||||
|
|||||||
@@ -27,13 +27,18 @@ namespace BlackCore
|
|||||||
*/
|
*/
|
||||||
void CContextOwnAircraftProxy::relaySignals(const QString &serviceName, QDBusConnection &connection)
|
void CContextOwnAircraftProxy::relaySignals(const QString &serviceName, QDBusConnection &connection)
|
||||||
{
|
{
|
||||||
// bool s; = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(),
|
bool s = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(),
|
||||||
// "connectionStatusChanged", this, SIGNAL(connectionStatusChanged(uint, uint, const QString &)));
|
"changedAircraftCockpit", this, SIGNAL(changedAircraftCockpit(BlackMisc::Aviation::CAircraft, QString)));
|
||||||
// Q_ASSERT(s);
|
Q_ASSERT(s);
|
||||||
// s = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(),
|
|
||||||
// "changedAtcStationsBooked", this, SIGNAL(changedAtcStationsBooked()));
|
s = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(),
|
||||||
// Q_ASSERT(s);
|
"changedAircraftPosition", this, SIGNAL(changedAircraftPosition(BlackMisc::Aviation::CAircraft, QString)));
|
||||||
// Q_UNUSED(s);
|
Q_ASSERT(s);
|
||||||
|
|
||||||
|
s = connection.connect(serviceName, IContextOwnAircraft::ObjectPath(), IContextOwnAircraft::InterfaceName(),
|
||||||
|
"changedAircraftPosition", this, SIGNAL(changedAircraftPosition(BlackMisc::Aviation::CAircraft, QString)));
|
||||||
|
Q_ASSERT(s);
|
||||||
|
Q_UNUSED(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
BlackMisc::Aviation::CAircraft CContextOwnAircraftProxy::getOwnAircraft() const
|
BlackMisc::Aviation::CAircraft CContextOwnAircraftProxy::getOwnAircraft() const
|
||||||
@@ -41,23 +46,23 @@ namespace BlackCore
|
|||||||
return this->m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAircraft>(QLatin1Literal("getOwnAircraft"));
|
return this->m_dBusInterface->callDBusRet<BlackMisc::Aviation::CAircraft>(QLatin1Literal("getOwnAircraft"));
|
||||||
}
|
}
|
||||||
|
|
||||||
BlackMisc::CStatusMessageList CContextOwnAircraftProxy::setOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft)
|
void CContextOwnAircraftProxy::updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator)
|
||||||
{
|
{
|
||||||
return this->m_dBusInterface->callDBusRet<BlackMisc::CStatusMessageList>(QLatin1Literal("setOwnAircraft"), aircraft);
|
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnAircraft"), aircraft, originator);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CContextOwnAircraftProxy::updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude)
|
void CContextOwnAircraftProxy::updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator)
|
||||||
{
|
{
|
||||||
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnPosition"), position, altitude);
|
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnPosition"), position, altitude, originator);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CContextOwnAircraftProxy::updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation)
|
void CContextOwnAircraftProxy::updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator)
|
||||||
{
|
{
|
||||||
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnSituation"), situation);
|
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnSituation"), situation, originator);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CContextOwnAircraftProxy::updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder)
|
void CContextOwnAircraftProxy::updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originator)
|
||||||
{
|
{
|
||||||
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnCockpit"), com1, com2, transponder);
|
this->m_dBusInterface->callDBus(QLatin1Literal("updateOwnCockpit"), com1, com2, transponder, originator);
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|||||||
@@ -40,16 +40,16 @@ namespace BlackCore
|
|||||||
public slots: // IContextOwnAircraft overrides
|
public slots: // IContextOwnAircraft overrides
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::setOwnAircraft()
|
//! \copydoc IContextOwnAircraft::setOwnAircraft()
|
||||||
virtual BlackMisc::CStatusMessageList setOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft) override;
|
virtual void updateOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnPosition()
|
//! \copydoc IContextOwnAircraft::updateOwnPosition()
|
||||||
virtual void updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude) override;
|
virtual void updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnSituation()
|
//! \copydoc IContextOwnAircraft::updateOwnSituation()
|
||||||
virtual void updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation) override;
|
virtual void updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation, const QString &originator) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::updateOwnCockpit()
|
//! \copydoc IContextOwnAircraft::updateOwnCockpit()
|
||||||
virtual void updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder) override;
|
virtual void updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder, const QString &originato4) override;
|
||||||
|
|
||||||
//! \copydoc IContextOwnAircraft::getOwnAircraft()
|
//! \copydoc IContextOwnAircraft::getOwnAircraft()
|
||||||
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const override;
|
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const override;
|
||||||
|
|||||||
@@ -164,7 +164,15 @@ namespace BlackCore
|
|||||||
// connect signal / slots when enabled
|
// connect signal / slots when enabled
|
||||||
QMetaObject::Connection con;
|
QMetaObject::Connection con;
|
||||||
con = QObject::connect(this->getIContextOwnAircraft(), &IContextOwnAircraft::changedAircraftSituation,
|
con = QObject::connect(this->getIContextOwnAircraft(), &IContextOwnAircraft::changedAircraftSituation,
|
||||||
[this](const BlackMisc::Aviation::CAircraftSituation & situation) { QStringList l; l << "changedAircraftSituation" << situation.toQString(); this->logSignal(this->getIContextApplication(), l);});
|
[this](const BlackMisc::Aviation::CAircraft & aircraft, const QString & originator) { QStringList l; l << "changedAircraftSituation" << aircraft.toQString() << originator; this->logSignal(this->getIContextApplication(), l);});
|
||||||
|
this->m_logSignalConnections.insert("ownaircraft", con);
|
||||||
|
|
||||||
|
con = QObject::connect(this->getIContextOwnAircraft(), &IContextOwnAircraft::changedAircraftCockpit,
|
||||||
|
[this](const BlackMisc::Aviation::CAircraft & aircraft, const QString & originator) { QStringList l; l << "changedAircraftCockpit" << aircraft.toQString() << originator; this->logSignal(this->getIContextApplication(), l);});
|
||||||
|
this->m_logSignalConnections.insert("ownaircraft", con);
|
||||||
|
|
||||||
|
con = QObject::connect(this->getIContextOwnAircraft(), &IContextOwnAircraft::changedAircraftPosition,
|
||||||
|
[this](const BlackMisc::Aviation::CAircraft & aircraft, const QString & originator) { QStringList l; l << "changedAircraftPosition" << aircraft.toQString() << originator; this->logSignal(this->getIContextApplication(), l);});
|
||||||
this->m_logSignalConnections.insert("ownaircraft", con);
|
this->m_logSignalConnections.insert("ownaircraft", con);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -319,6 +327,20 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
times.insert("Application", time.restart());
|
times.insert("Application", time.restart());
|
||||||
|
|
||||||
|
switch (config.getModeOwnAircraft())
|
||||||
|
{
|
||||||
|
case CRuntimeConfig::Local:
|
||||||
|
case CRuntimeConfig::LocalInDbusServer:
|
||||||
|
this->m_contextOwnAircraft = (new CContextOwnAircraft(config.getModeApplication(), this))->registerWithDBus(this->m_dbusServer);
|
||||||
|
break;
|
||||||
|
case CRuntimeConfig::Remote:
|
||||||
|
this->m_contextOwnAircraft = new BlackCore::CContextOwnAircraftProxy(BlackCore::CDBusServer::ServiceName, this->m_dbusConnection, config.getModeOwnAircraft(), this);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
qFatal("Always initialize own aircraft context");
|
||||||
|
}
|
||||||
|
times.insert("Own aircraft", time.restart());
|
||||||
|
|
||||||
switch (config.getModeAudio())
|
switch (config.getModeAudio())
|
||||||
{
|
{
|
||||||
case CRuntimeConfig::Local:
|
case CRuntimeConfig::Local:
|
||||||
@@ -361,6 +383,13 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
times.insert("Simulator", time.restart());
|
times.insert("Simulator", time.restart());
|
||||||
|
|
||||||
|
// checks --------------
|
||||||
|
// 1. own aircraft and simulator should reside in same location
|
||||||
|
Q_ASSERT(!this->m_contextSimulator || (this->m_contextOwnAircraft->usingLocalObjects() == this->m_contextSimulator->usingLocalObjects()));
|
||||||
|
|
||||||
|
// 2. own aircraft and network should reside in same location
|
||||||
|
Q_ASSERT(!this->m_contextNetwork || (this->m_contextOwnAircraft->usingLocalObjects() == this->m_contextNetwork->usingLocalObjects()));
|
||||||
|
|
||||||
// post inits, wiring things among context (e.g. signal slots)
|
// post inits, wiring things among context (e.g. signal slots)
|
||||||
this->initPostSetup();
|
this->initPostSetup();
|
||||||
qDebug() << "Init times:" << times;
|
qDebug() << "Init times:" << times;
|
||||||
@@ -422,6 +451,12 @@ namespace BlackCore
|
|||||||
this->getIContextApplication()->deleteLater();
|
this->getIContextApplication()->deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->getIContextOwnAircraft())
|
||||||
|
{
|
||||||
|
disconnect(this->getIContextOwnAircraft());
|
||||||
|
this->getIContextOwnAircraft()->deleteLater();
|
||||||
|
}
|
||||||
|
|
||||||
if (this->getIContextSimulator())
|
if (this->getIContextSimulator())
|
||||||
{
|
{
|
||||||
// TODO: disconnect from simulator
|
// TODO: disconnect from simulator
|
||||||
@@ -442,6 +477,7 @@ namespace BlackCore
|
|||||||
disconnect(this->getIContextAudio());
|
disconnect(this->getIContextAudio());
|
||||||
this->getIContextAudio()->deleteLater();
|
this->getIContextAudio()->deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->getIContextSettings())
|
if (this->getIContextSettings())
|
||||||
{
|
{
|
||||||
disconnect(this->getIContextSettings());
|
disconnect(this->getIContextSettings());
|
||||||
@@ -449,7 +485,7 @@ namespace BlackCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
// mark contexts as invalid
|
// mark contexts as invalid
|
||||||
// they will be deleted by the parent object (this runtime)
|
// objects are already scheduled for deletion
|
||||||
this->m_contextApplication = nullptr;
|
this->m_contextApplication = nullptr;
|
||||||
this->m_contextAudio = nullptr;
|
this->m_contextAudio = nullptr;
|
||||||
this->m_contextNetwork = nullptr;
|
this->m_contextNetwork = nullptr;
|
||||||
|
|||||||
Reference in New Issue
Block a user