Ref T659, get network preset values from network vatlib

This commit is contained in:
Klaus Basan
2019-08-06 11:21:26 +02:00
committed by Mat Sutcliffe
parent 3b9f5bad46
commit cffab0954d
9 changed files with 56 additions and 13 deletions

View File

@@ -291,10 +291,10 @@ namespace BlackCore
//! Enable/disable support of gnd. flag
virtual bool updateAircraftSupportingGndFLag(const BlackMisc::Aviation::CCallsign &callsign, bool supportGndFlag) = 0;
//! Change model
//! Change model (for remote aircraft)
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) = 0;
//! Change network model
//! Change network model (for remote aircraft)
virtual bool updateAircraftNetworkModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) = 0;
//! Change fast position updates
@@ -333,6 +333,9 @@ namespace BlackCore
//! Statistics enable/disable
virtual bool setNetworkStatisticsEnable(bool enabled) = 0;
//! Network preset values
virtual QStringList getNetworkPresetValues() const = 0;
// ------------------------ testing ------------------------
//! Create dummy ATC stations for performance tests etc.

View File

@@ -136,6 +136,13 @@ namespace BlackCore
return statusMessageEmptyContext();
}
//! \copydoc IContextNetwork::getNetworkPresetValues
virtual QStringList getNetworkPresetValues() const override
{
logEmptyContextWarning(Q_FUNC_INFO);
return {};
}
//! \copydoc IContextNetwork::disconnectFromNetwork()
virtual BlackMisc::CStatusMessage disconnectFromNetwork() override
{

View File

@@ -847,6 +847,12 @@ namespace BlackCore
return m_airspace->testAddAltitudeOffset(callsign, offset);
}
QStringList CContextNetwork::getNetworkPresetValues() const
{
if (!m_network) { return {}; }
return m_network->getPresetValues();
}
CAtcStation CContextNetwork::getOnlineStationForCallsign(const CCallsign &callsign) const
{
if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsign; }

View File

@@ -105,9 +105,9 @@ namespace BlackCore
virtual BlackMisc::Aviation::CAircraftSituationChangeList remoteAircraftSituationChanges(const BlackMisc::Aviation::CCallsign &callsign) const override;
virtual int remoteAircraftSituationChangesCount(const BlackMisc::Aviation::CCallsign &callsign) const override;
virtual bool updateAircraftRendered(const BlackMisc::Aviation::CCallsign &callsign, bool rendered) override;
virtual int updateMultipleAircraftRendered(const BlackMisc::Aviation::CCallsignSet &callsigns, bool rendered) override;
virtual int updateMultipleAircraftEnabled(const BlackMisc::Aviation::CCallsignSet &callsigns, bool enabled) override;
virtual int updateAircraftGroundElevation(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Geo::CElevationPlane &elevation, BlackMisc::Aviation::CAircraftSituation::GndElevationInfo info) override;
virtual int updateMultipleAircraftRendered(const BlackMisc::Aviation::CCallsignSet &callsigns, bool rendered) override;
virtual int updateMultipleAircraftEnabled(const BlackMisc::Aviation::CCallsignSet &callsigns, bool enabled) override;
virtual int updateAircraftGroundElevation(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Geo::CElevationPlane &elevation, BlackMisc::Aviation::CAircraftSituation::GndElevationInfo info) override;
virtual void updateMarkAllAsNotRendered() override;
virtual BlackMisc::PhysicalQuantities::CLength getCGFromDB(const BlackMisc::Aviation::CCallsign &callsign) const override;
virtual BlackMisc::PhysicalQuantities::CLength getCGFromDB(const QString &modelString) const override;
@@ -171,12 +171,12 @@ namespace BlackCore
// plain vanilla passing to airspace monitor
virtual bool setAircraftEnabledFlag(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRendering) override;
virtual int reInitializeAllAircraft() override;
virtual int reInitializeAllAircraft() override;
virtual bool updateCG(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CLength &cg) override;
virtual bool updateCGAndModelString(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CLength &cg, const QString &modelString) override;
virtual BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const override;
virtual BlackMisc::Aviation::CCallsignSet getAircraftInRangeCallsigns() const override;
virtual int getAircraftInRangeCount() const override;
virtual int getAircraftInRangeCount() const override;
virtual bool isAircraftInRange(const BlackMisc::Aviation::CCallsign &callsign) const override;
virtual bool isVtolAircraft(const BlackMisc::Aviation::CCallsign &callsign) const override;
virtual BlackMisc::Simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override;
@@ -195,6 +195,7 @@ namespace BlackCore
virtual QString getNetworkStatistics(bool reset, const QString &separator) override;
virtual bool setNetworkStatisticsEnable(bool enabled) override;
virtual bool testAddAltitudeOffset(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CLength &offset = BlackMisc::PhysicalQuantities::CLength::null()) override;
virtual QStringList getNetworkPresetValues() const override;
//! @}
//! \ingroup clientprovider

View File

@@ -318,6 +318,11 @@ namespace BlackCore
return m_dBusInterface->callDBusRet<bool>(QLatin1String("setNetworkStatisticsEnable"), enabled);
}
QStringList CContextNetworkProxy::getNetworkPresetValues() const
{
return m_dBusInterface->callDBusRet<QStringList>(QLatin1String("getNetworkPresetValues"));
}
void CContextNetworkProxy::testCreateDummyOnlineAtcStations(int number)
{
m_dBusInterface->callDBus(QLatin1String("testCreateDummyOnlineAtcStations"), number);

View File

@@ -129,6 +129,7 @@ namespace BlackCore
virtual void enableAircraftPartsHistory(bool enabled) override;
virtual QString getNetworkStatistics(bool reset, const QString &separator) override;
virtual bool setNetworkStatisticsEnable(bool enabled) override;
virtual QStringList getNetworkPresetValues() const override;
virtual void testCreateDummyOnlineAtcStations(int number) override;
virtual void testAddAircraftParts(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftParts &parts, bool incremental) override;
virtual void testReceivedTextMessages(const BlackMisc::Network::CTextMessageList &textMessages) override;

View File

@@ -32,7 +32,7 @@
#include "blackmisc/pq/time.h"
#include <QObject>
#include <QString>
#include <QStringList>
#include <QMap>
#include <QVector>
#include <QMetaEnum>
@@ -178,6 +178,11 @@ namespace BlackCore
*/
virtual const BlackMisc::Network::CServer &getPresetServer() const = 0;
/*!
* Get preset values.
*/
virtual QStringList getPresetValues() const = 0;
/*!
* Returns true if the current ConnectionStatus is in transition, e.g. connecting.
*/

View File

@@ -182,6 +182,19 @@ namespace BlackCore
return detailed ? vd : vs;
}
QStringList CNetworkVatlib::getPresetValues() const
{
const QStringList v =
{
m_ownModelString,
m_ownLivery,
m_ownAircraftIcaoCode.getDesignator(),
m_ownAirlineIcaoCode.getVDesignator(),
m_ownCallsign.asString()
};
return v;
}
void CNetworkVatlib::process()
{
if (!m_net) { return; }
@@ -1712,17 +1725,18 @@ namespace BlackCore
void CNetworkVatlib::onErrorReceived(VatFsdClient *, VatServerError error, const char *msg, const char *data, void *cbvar)
{
auto *self = cbvar_cast(cbvar);
const QString sn = self->m_server.getName();
switch (error)
{
case vatServerErrorCsInUs: CLogMessage(self).error(u"The requested callsign is already taken"); emit self->terminate(); break;
case vatServerErrorCallsignInvalid: CLogMessage(self).error(u"The requested callsign is not valid"); emit self->terminate(); break;
case vatServerErrorCidInvalid: CLogMessage(self).error(u"Wrong user ID or password, inactive account"); emit self->terminate(); break;
case vatServerErrorRevision: CLogMessage(self).error(u"This server does not support our protocol version"); emit self->terminate(); break;
case vatServerErrorCidInvalid: CLogMessage(self).error(u"Wrong user ID or password, inactive account. Server: '%1'") << sn; emit self->terminate(); break;
case vatServerErrorRevision: CLogMessage(self).error(u"This server '%1' does not support our protocol version") << sn; emit self->terminate(); break;
case vatServerErrorLevel: CLogMessage(self).error(u"You are not authorized to use the requested pilot rating"); emit self->terminate(); break;
case vatServerErrorServFull: CLogMessage(self).error(u"The server is full"); emit self->terminate(); break;
case vatServerErrorServFull: CLogMessage(self).error(u"The server '%1' is full") << sn; emit self->terminate(); break;
case vatServerErrorCsSuspended: CLogMessage(self).error(u"Your user account is suspended"); emit self->terminate(); break;
case vatServerErrorInvPos: CLogMessage(self).error(u"You are not authorized to use the requested rating"); emit self->terminate(); break;
case vatServerErrorUnAuth: CLogMessage(self).error(u"This software is not authorized for use on this network %1") << self->m_server.getName(); emit self->terminate(); break;
case vatServerErrorUnAuth: CLogMessage(self).error(u"This software is not authorized for use on this network '%1'") << sn; emit self->terminate(); break;
case vatServerErrorNone: CLogMessage(self).info(u"OK"); break;
case vatServerErrorSyntax: CLogMessage(self).info(u"Malformed packet: Syntax error: %1") << self->fromFSD(data); break;

View File

@@ -78,8 +78,9 @@ namespace BlackCore
//! \name Network functions
//! @{
virtual bool isConnected() const override { return m_status == vatStatusConnected; }
virtual const BlackMisc::Network::CServer &getPresetServer() const override { return m_server; }
virtual bool isPendingConnection() const override { return m_status == vatStatusConnecting; }
virtual const BlackMisc::Network::CServer &getPresetServer() const override { return m_server; }
virtual QStringList getPresetValues() const override;
virtual void presetLoginMode(LoginMode mode) override;
virtual void presetServer(const BlackMisc::Network::CServer &server) override;
virtual void presetCallsign(const BlackMisc::Aviation::CCallsign &callsign) override;