mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 11:55:35 +08:00
Ref T698, added remote aircraft context to network class
This commit is contained in:
committed by
Mat Sutcliffe
parent
ab83d55d7c
commit
821e7e73c9
@@ -28,6 +28,7 @@
|
|||||||
#include "blackmisc/pq/speed.h"
|
#include "blackmisc/pq/speed.h"
|
||||||
#include "blackmisc/pq/units.h"
|
#include "blackmisc/pq/units.h"
|
||||||
#include "blackmisc/simulation/ownaircraftproviderdummy.h"
|
#include "blackmisc/simulation/ownaircraftproviderdummy.h"
|
||||||
|
#include "blackmisc/simulation/remoteaircraftproviderdummy.h"
|
||||||
#include "blackmisc/simulation/simulatedaircraft.h"
|
#include "blackmisc/simulation/simulatedaircraft.h"
|
||||||
#include "blackmisc/stringutils.h"
|
#include "blackmisc/stringutils.h"
|
||||||
|
|
||||||
@@ -55,7 +56,12 @@ namespace BlackSample
|
|||||||
: QObject(parent),
|
: QObject(parent),
|
||||||
COwnAircraftAware(COwnAircraftProviderDummy::instance()),
|
COwnAircraftAware(COwnAircraftProviderDummy::instance()),
|
||||||
CIdentifiable("samples:cmdClient"),
|
CIdentifiable("samples:cmdClient"),
|
||||||
m_net(new CNetworkVatlib(CClientProviderDummy::instance(), COwnAircraftProviderDummy::instance(), this))
|
m_net(
|
||||||
|
new CNetworkVatlib(
|
||||||
|
CClientProviderDummy::instance(),
|
||||||
|
COwnAircraftProviderDummy::instance(),
|
||||||
|
CRemoteAircraftProviderDummy::instance(),
|
||||||
|
this))
|
||||||
{
|
{
|
||||||
connect(m_net, &INetwork::atcPositionUpdate, this, &Client::atcPositionUpdate);
|
connect(m_net, &INetwork::atcPositionUpdate, this, &Client::atcPositionUpdate);
|
||||||
connect(m_net, &INetwork::atcDisconnected, this, &Client::atcDisconnected);
|
connect(m_net, &INetwork::atcDisconnected, this, &Client::atcDisconnected);
|
||||||
|
|||||||
@@ -67,7 +67,11 @@ namespace BlackCore
|
|||||||
CContextNetwork::registerHelp();
|
CContextNetwork::registerHelp();
|
||||||
|
|
||||||
// 1. Init by "network driver"
|
// 1. Init by "network driver"
|
||||||
m_network = new CNetworkVatlib(nullptr, this->getRuntime()->getCContextOwnAircraft(), this);
|
m_network = new CNetworkVatlib(
|
||||||
|
this,
|
||||||
|
this->getRuntime()->getCContextOwnAircraft(),
|
||||||
|
this,
|
||||||
|
this);
|
||||||
connect(m_network, &INetwork::connectionStatusChanged, this, &CContextNetwork::onFsdConnectionStatusChanged);
|
connect(m_network, &INetwork::connectionStatusChanged, this, &CContextNetwork::onFsdConnectionStatusChanged);
|
||||||
connect(m_network, &INetwork::kicked, this, &CContextNetwork::kicked);
|
connect(m_network, &INetwork::kicked, this, &CContextNetwork::kicked);
|
||||||
connect(m_network, &INetwork::textMessagesReceived, this, &CContextNetwork::textMessagesReceived);
|
connect(m_network, &INetwork::textMessagesReceived, this, &CContextNetwork::textMessagesReceived);
|
||||||
|
|||||||
@@ -7,13 +7,31 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "network.h"
|
#include "network.h"
|
||||||
|
#include "blackmisc/logmessage.h"
|
||||||
#include "blackmisc/range.h"
|
#include "blackmisc/range.h"
|
||||||
|
#include "blackconfig/buildconfig.h"
|
||||||
|
|
||||||
#include <QStringBuilder>
|
#include <QStringBuilder>
|
||||||
|
|
||||||
|
using namespace BlackConfig;
|
||||||
using namespace BlackMisc;
|
using namespace BlackMisc;
|
||||||
|
using namespace BlackMisc::Network;
|
||||||
|
using namespace BlackMisc::Simulation;
|
||||||
|
|
||||||
namespace BlackCore
|
namespace BlackCore
|
||||||
{
|
{
|
||||||
|
INetwork::INetwork(IClientProvider *clientProvider, IOwnAircraftProvider *ownAircraftProvider, IRemoteAircraftProvider *remoteAircraftProvider, QObject *parent) :
|
||||||
|
QObject(parent),
|
||||||
|
CClientAware(clientProvider),
|
||||||
|
COwnAircraftAware(ownAircraftProvider),
|
||||||
|
CRemoteAircraftAware(remoteAircraftProvider)
|
||||||
|
{
|
||||||
|
if (CBuildConfig::isLocalDeveloperDebugBuild())
|
||||||
|
{
|
||||||
|
CLogMessage("Enabled network statistics");
|
||||||
|
m_statistics = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
int INetwork::increaseStatisticsValue(const QString &identifier, const QString &appendix)
|
int INetwork::increaseStatisticsValue(const QString &identifier, const QString &appendix)
|
||||||
{
|
{
|
||||||
if (identifier.isEmpty() || !m_statistics) { return -1; }
|
if (identifier.isEmpty() || !m_statistics) { return -1; }
|
||||||
@@ -22,6 +40,11 @@ namespace BlackCore
|
|||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int INetwork::increaseStatisticsValue(const QString &identifier, int value)
|
||||||
|
{
|
||||||
|
return this->increaseStatisticsValue(identifier, QString::number(value));
|
||||||
|
}
|
||||||
|
|
||||||
QString INetwork::getNetworkStatisticsAsText(bool reset, const QString &separator)
|
QString INetwork::getNetworkStatisticsAsText(bool reset, const QString &separator)
|
||||||
{
|
{
|
||||||
QMap<int, QString> transformed;
|
QMap<int, QString> transformed;
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
#include "blackcoreexport.h"
|
#include "blackcoreexport.h"
|
||||||
#include "blackmisc/simulation/ownaircraftprovider.h"
|
#include "blackmisc/simulation/ownaircraftprovider.h"
|
||||||
|
#include "blackmisc/simulation/remoteaircraftprovider.h"
|
||||||
#include "blackmisc/simulation/simulationenvironmentprovider.h"
|
#include "blackmisc/simulation/simulationenvironmentprovider.h"
|
||||||
#include "blackmisc/simulation/simulatorplugininfo.h"
|
#include "blackmisc/simulation/simulatorplugininfo.h"
|
||||||
#include "blackmisc/simulation/simulatedaircraft.h"
|
#include "blackmisc/simulation/simulatedaircraft.h"
|
||||||
@@ -62,7 +63,9 @@ namespace BlackCore
|
|||||||
public BlackMisc::Network::IEcosystemProvider, // provide info about used ecosystem
|
public BlackMisc::Network::IEcosystemProvider, // provide info about used ecosystem
|
||||||
public BlackMisc::Network::CClientAware, // network can set client information
|
public BlackMisc::Network::CClientAware, // network can set client information
|
||||||
public BlackMisc::Simulation::COwnAircraftAware, // network vatlib consumes own aircraft data and sets ICAO/callsign data
|
public BlackMisc::Simulation::COwnAircraftAware, // network vatlib consumes own aircraft data and sets ICAO/callsign data
|
||||||
|
public BlackMisc::Simulation::CRemoteAircraftAware, // check if we really need to process network packets (e.g. parts)
|
||||||
public BlackMisc::Simulation::CSimulationEnvironmentAware // allows to consume ground elevations
|
public BlackMisc::Simulation::CSimulationEnvironmentAware // allows to consume ground elevations
|
||||||
|
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_INTERFACES(BlackMisc::Network::IEcosystemProvider)
|
Q_INTERFACES(BlackMisc::Network::IEcosystemProvider)
|
||||||
@@ -70,12 +73,10 @@ namespace BlackCore
|
|||||||
protected:
|
protected:
|
||||||
//! Constructor
|
//! Constructor
|
||||||
INetwork(
|
INetwork(
|
||||||
BlackMisc::Network::IClientProvider *clientProvider,
|
BlackMisc::Network::IClientProvider *clientProvider,
|
||||||
BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider,
|
BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider,
|
||||||
QObject *parent = nullptr) :
|
BlackMisc::Simulation::IRemoteAircraftProvider *remoteAircraftProvider,
|
||||||
QObject(parent),
|
QObject *parent = nullptr);
|
||||||
BlackMisc::Network::CClientAware(clientProvider),
|
|
||||||
BlackMisc::Simulation::COwnAircraftAware(ownAircraftProvider) {}
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//! Destructor
|
//! Destructor
|
||||||
@@ -110,8 +111,10 @@ namespace BlackCore
|
|||||||
bool isStatisticsEnabled() const { return m_statistics; }
|
bool isStatisticsEnabled() const { return m_statistics; }
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
//! Increase the statistics value for given identifier
|
//! Increase the statistics value for given identifier @{
|
||||||
int increaseStatisticsValue(const QString &identifier, const QString &appendix = {});
|
int increaseStatisticsValue(const QString &identifier, const QString &appendix = {});
|
||||||
|
int increaseStatisticsValue(const QString &identifier, int value);
|
||||||
|
//! @}
|
||||||
|
|
||||||
//! Clear the statistics
|
//! Clear the statistics
|
||||||
void clearStatistics() { m_callStatistics.clear(); }
|
void clearStatistics() { m_callStatistics.clear(); }
|
||||||
|
|||||||
@@ -83,9 +83,11 @@ namespace BlackCore
|
|||||||
return cats;
|
return cats;
|
||||||
}
|
}
|
||||||
|
|
||||||
CNetworkVatlib::CNetworkVatlib(IClientProvider *clientProvider,
|
CNetworkVatlib::CNetworkVatlib(IClientProvider *clientProvider,
|
||||||
IOwnAircraftProvider *ownAircraftProvider, QObject *parent)
|
IOwnAircraftProvider *ownAircraftProvider,
|
||||||
: INetwork(clientProvider, ownAircraftProvider, parent),
|
IRemoteAircraftProvider *remoteAircraftProvider,
|
||||||
|
QObject *parent)
|
||||||
|
: INetwork(clientProvider, ownAircraftProvider, remoteAircraftProvider, parent),
|
||||||
m_loginMode(LoginNormal),
|
m_loginMode(LoginNormal),
|
||||||
m_status(vatStatusDisconnected),
|
m_status(vatStatusDisconnected),
|
||||||
m_tokenBucket(10, CTime(5, CTimeUnit::s()), 1)
|
m_tokenBucket(10, CTime(5, CTimeUnit::s()), 1)
|
||||||
|
|||||||
@@ -64,10 +64,10 @@ namespace BlackCore
|
|||||||
static const BlackMisc::CLogCategoryList &getLogCategories();
|
static const BlackMisc::CLogCategoryList &getLogCategories();
|
||||||
|
|
||||||
//! Constructor
|
//! Constructor
|
||||||
CNetworkVatlib(
|
CNetworkVatlib(BlackMisc::Network::IClientProvider *clientProvider,
|
||||||
BlackMisc::Network::IClientProvider *clientProvider,
|
BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider,
|
||||||
BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider,
|
BlackMisc::Simulation::IRemoteAircraftProvider *remoteAircraftProvider,
|
||||||
QObject *parent = nullptr);
|
QObject *parent);
|
||||||
|
|
||||||
//! Destructor
|
//! Destructor
|
||||||
virtual ~CNetworkVatlib() override;
|
virtual ~CNetworkVatlib() override;
|
||||||
@@ -313,4 +313,5 @@ namespace BlackCore
|
|||||||
};
|
};
|
||||||
} //namespace
|
} //namespace
|
||||||
} //namespace
|
} //namespace
|
||||||
|
|
||||||
#endif // guard
|
#endif // guard
|
||||||
|
|||||||
@@ -17,6 +17,12 @@ namespace BlackMisc
|
|||||||
{
|
{
|
||||||
namespace Simulation
|
namespace Simulation
|
||||||
{
|
{
|
||||||
|
CRemoteAircraftProviderDummy *CRemoteAircraftProviderDummy::instance()
|
||||||
|
{
|
||||||
|
static CRemoteAircraftProviderDummy *dummy = new CRemoteAircraftProviderDummy();
|
||||||
|
return dummy;
|
||||||
|
}
|
||||||
|
|
||||||
CRemoteAircraftProviderDummy::CRemoteAircraftProviderDummy(QObject *parent) : CRemoteAircraftProvider(parent)
|
CRemoteAircraftProviderDummy::CRemoteAircraftProviderDummy(QObject *parent) : CRemoteAircraftProvider(parent)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,9 @@ namespace BlackMisc
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
//! Singleton
|
||||||
|
static CRemoteAircraftProviderDummy *instance();
|
||||||
|
|
||||||
//! Constructor
|
//! Constructor
|
||||||
CRemoteAircraftProviderDummy(QObject *parent = nullptr);
|
CRemoteAircraftProviderDummy(QObject *parent = nullptr);
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
#include "blackmisc/pq/time.h"
|
#include "blackmisc/pq/time.h"
|
||||||
#include "blackmisc/simulation/simulatedaircraft.h"
|
#include "blackmisc/simulation/simulatedaircraft.h"
|
||||||
#include "blackmisc/simulation/ownaircraftproviderdummy.h"
|
#include "blackmisc/simulation/ownaircraftproviderdummy.h"
|
||||||
|
#include "blackmisc/simulation/remoteaircraftproviderdummy.h"
|
||||||
#include "blackmisc/stringutils.h"
|
#include "blackmisc/stringutils.h"
|
||||||
#include "test.h"
|
#include "test.h"
|
||||||
|
|
||||||
@@ -69,7 +70,12 @@ namespace BlackCoreTest
|
|||||||
|
|
||||||
void CTestNetwork::initTestCase()
|
void CTestNetwork::initTestCase()
|
||||||
{
|
{
|
||||||
m_networkVatlib = new CNetworkVatlib(CClientProviderDummy::instance(), COwnAircraftProviderDummy::instance());
|
m_networkVatlib = new CNetworkVatlib(
|
||||||
|
CClientProviderDummy::instance(),
|
||||||
|
COwnAircraftProviderDummy::instance(),
|
||||||
|
CRemoteAircraftProviderDummy::instance(),
|
||||||
|
this
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CTestNetwork::networkTest(BlackCore::INetwork *net)
|
void CTestNetwork::networkTest(BlackCore::INetwork *net)
|
||||||
|
|||||||
Reference in New Issue
Block a user