mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 09:15:34 +08:00
refs #375, prepared flag to enable / disable sending interim positions
This commit is contained in:
@@ -160,6 +160,12 @@ namespace BlackCore
|
||||
//! Known FSD servers, available when data file was first read
|
||||
virtual BlackMisc::Network::CServerList getVatsimFsdServers() const = 0;
|
||||
|
||||
//! Is interim position sending enabled?
|
||||
virtual bool isInterimPositionSendingEnabled() const = 0;
|
||||
|
||||
//! Enable interim position sending
|
||||
virtual void enableInterimPositionSending(bool enable) = 0;
|
||||
|
||||
/*!
|
||||
* Connect to Network
|
||||
* \return messages gererated during connecting
|
||||
|
||||
@@ -231,6 +231,21 @@ namespace BlackCore
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return false;
|
||||
}
|
||||
|
||||
//! \copydoc IContextNetwork::isInterimPositionSendingEnabled
|
||||
virtual bool isInterimPositionSendingEnabled() const override
|
||||
{
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
return false;
|
||||
}
|
||||
|
||||
//! \copydoc IContextNetwork::enableInterimPositionSending
|
||||
virtual void enableInterimPositionSending(bool enable) override
|
||||
{
|
||||
Q_UNUSED(enable);
|
||||
logEmptyContextWarning(Q_FUNC_INFO);
|
||||
}
|
||||
|
||||
};
|
||||
} // namespace
|
||||
|
||||
|
||||
@@ -416,6 +416,20 @@ namespace BlackCore
|
||||
return c;
|
||||
}
|
||||
|
||||
bool CContextNetwork::isInterimPositionSendingEnabled() const
|
||||
{
|
||||
CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO;
|
||||
Q_ASSERT(this->m_network);
|
||||
return m_network->isInterimPositionSendingEnabled();
|
||||
}
|
||||
|
||||
void CContextNetwork::enableInterimPositionSending(bool enable)
|
||||
{
|
||||
CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << enable;
|
||||
Q_ASSERT(this->m_network);
|
||||
m_network->enableInterimPositionSending(enable);
|
||||
}
|
||||
|
||||
void CContextNetwork::testCreateDummyOnlineAtcStations(int number)
|
||||
{
|
||||
CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << number;
|
||||
|
||||
@@ -159,6 +159,12 @@ namespace BlackCore
|
||||
//! \copydoc IContextNetwork::updateAircraftModel
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const QString &originator) override;
|
||||
|
||||
//! \copydoc IContextNetwork::isInterimPositionSendingEnabled
|
||||
virtual bool isInterimPositionSendingEnabled() const override;
|
||||
|
||||
//! \copydoc IContextNetwork::enableInterimPositionSending
|
||||
virtual void enableInterimPositionSending(bool enable) override;
|
||||
|
||||
//! \copydoc IContextNetwork::testCreateDummyOnlineAtcStations
|
||||
virtual void testCreateDummyOnlineAtcStations(int number) override;
|
||||
|
||||
|
||||
@@ -73,10 +73,10 @@ namespace BlackCore
|
||||
"vatsimBookingsRead", this, SIGNAL(vatsimBookingsRead()));
|
||||
Q_ASSERT(s);
|
||||
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
|
||||
"changedRenderedAircraftModel", this, SIGNAL(changedRenderedAircraftModel(BlackMisc::Simulation::CSimulatedAircraft,QString)));
|
||||
"changedRenderedAircraftModel", this, SIGNAL(changedRenderedAircraftModel(BlackMisc::Simulation::CSimulatedAircraft, QString)));
|
||||
Q_ASSERT(s);
|
||||
s = connection.connect(serviceName, IContextNetwork::ObjectPath(), IContextNetwork::InterfaceName(),
|
||||
"changedAircraftEnabled", this, SIGNAL(changedAircraftEnabled(BlackMisc::Simulation::CSimulatedAircraft,QString)));
|
||||
"changedAircraftEnabled", this, SIGNAL(changedAircraftEnabled(BlackMisc::Simulation::CSimulatedAircraft, QString)));
|
||||
Q_ASSERT(s);
|
||||
Q_UNUSED(s);
|
||||
}
|
||||
@@ -104,7 +104,7 @@ namespace BlackCore
|
||||
Simulation::CSimulatedAircraft CContextNetworkProxy::getAircraftForCallsign(const CCallsign &callsign) const
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<BlackMisc::Simulation::CSimulatedAircraft>(QLatin1Literal("getAircraftForCallsign"), callsign);
|
||||
}
|
||||
}
|
||||
|
||||
BlackMisc::Network::CUserList CContextNetworkProxy::getUsers() const
|
||||
{
|
||||
@@ -171,6 +171,16 @@ namespace BlackCore
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("updateAircraftModel"), callsign, model, originator);
|
||||
}
|
||||
|
||||
bool CContextNetworkProxy::isInterimPositionSendingEnabled() const
|
||||
{
|
||||
return this->m_dBusInterface->callDBusRet<bool>(QLatin1Literal("isInterimPositionSendingEnabled"));
|
||||
}
|
||||
|
||||
void CContextNetworkProxy::enableInterimPositionSending(bool enable)
|
||||
{
|
||||
this->m_dBusInterface->callDBus(QLatin1Literal("enableInterimPositionSending"), enable);
|
||||
}
|
||||
|
||||
void CContextNetworkProxy::testCreateDummyOnlineAtcStations(int number)
|
||||
{
|
||||
this->m_dBusInterface->callDBus(QLatin1Literal("testCreateDummyOnlineAtcStations"), number);
|
||||
|
||||
@@ -131,6 +131,12 @@ namespace BlackCore
|
||||
//! \copydoc IContextNetwork::updateAircraftModel
|
||||
virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const QString &originator) override;
|
||||
|
||||
//! \copydoc IContextNetwork::isInterimPositionSendingEnabled
|
||||
virtual bool isInterimPositionSendingEnabled() const override;
|
||||
|
||||
//! \copydoc IContextNetwork::enableInterimPositionSending
|
||||
virtual void enableInterimPositionSending(bool enable) override;
|
||||
|
||||
//! \copydoc IContextNetwork::testCreateDummyOnlineAtcStations
|
||||
virtual void testCreateDummyOnlineAtcStations(int number) override;
|
||||
|
||||
|
||||
@@ -191,6 +191,12 @@ namespace BlackCore
|
||||
*/
|
||||
virtual void terminateConnection() = 0;
|
||||
|
||||
//! Is interim position sending enabled?
|
||||
virtual bool isInterimPositionSendingEnabled() const = 0;
|
||||
|
||||
//! Enable interim position sending
|
||||
virtual void enableInterimPositionSending(bool enable) = 0;
|
||||
|
||||
/*!
|
||||
* Send a ping message to a user with a specific callsign.
|
||||
* \pre Network must be connected when calling this function.
|
||||
|
||||
@@ -36,10 +36,10 @@ namespace BlackCore
|
||||
|
||||
CNetworkVatlib::CNetworkVatlib(Simulation::IOwnAircraftProvider *ownAircraft, QObject *parent)
|
||||
: INetwork(parent), COwnAircraftProviderSupport(ownAircraft),
|
||||
m_loginMode(LoginNormal),
|
||||
m_status(vatStatusIdle),
|
||||
m_fsdTextCodec(QTextCodec::codecForName("latin1")),
|
||||
m_tokenBucket(10, CTime(5, CTimeUnit::s()), 1)
|
||||
m_loginMode(LoginNormal),
|
||||
m_status(vatStatusIdle),
|
||||
m_fsdTextCodec(QTextCodec::codecForName("latin1")),
|
||||
m_tokenBucket(10, CTime(5, CTimeUnit::s()), 1)
|
||||
{
|
||||
connect(this, &CNetworkVatlib::terminate, this, &INetwork::terminateConnection, Qt::QueuedConnection);
|
||||
connect(this, &INetwork::customPacketReceived, this, &CNetworkVatlib::customPacketDispatcher);
|
||||
@@ -567,6 +567,16 @@ namespace BlackCore
|
||||
sendCustomPacket(callsign, "FSIPIR", data);
|
||||
}
|
||||
|
||||
void CNetworkVatlib::enableInterimPositionSending(bool enable)
|
||||
{
|
||||
m_sendInterimPositions = enable;
|
||||
}
|
||||
|
||||
bool CNetworkVatlib::isInterimPositionSendingEnabled() const
|
||||
{
|
||||
return m_sendInterimPositions;
|
||||
}
|
||||
|
||||
void CNetworkVatlib::broadcastAircraftConfig(const QJsonObject &config)
|
||||
{
|
||||
// Fixme: Use QJsonObject with std::initializer_list once 5.4 is baseline
|
||||
@@ -687,11 +697,11 @@ namespace BlackCore
|
||||
QJsonDocument doc = QJsonDocument::fromJson(json, &parserError);
|
||||
|
||||
if (parserError.error != QJsonParseError::NoError)
|
||||
CLogMessage(static_cast<CNetworkVatlib*>(nullptr)).warning("Failed to parse aircraft config packet: %1") << parserError.errorString();
|
||||
CLogMessage(static_cast<CNetworkVatlib *>(nullptr)).warning("Failed to parse aircraft config packet: %1") << parserError.errorString();
|
||||
|
||||
QJsonObject packet = doc.object();
|
||||
|
||||
if (packet == JsonPackets::aircraftConfigRequest() )
|
||||
if (packet == JsonPackets::aircraftConfigRequest())
|
||||
{
|
||||
cbvar_cast(cbvar)->replyToConfigQuery(cbvar_cast(cbvar)->fromFSD(callsign));
|
||||
return;
|
||||
|
||||
@@ -45,7 +45,6 @@ namespace BlackCore
|
||||
virtual bool isPendingConnection() const override { return m_status == vatStatusConnecting; }
|
||||
|
||||
// Network slots
|
||||
//! \copydoc INetwork::presetLoginMode
|
||||
virtual void presetLoginMode(LoginMode mode) override;
|
||||
virtual void presetServer(const BlackMisc::Network::CServer &server) override;
|
||||
virtual void presetCallsign(const BlackMisc::Aviation::CCallsign &callsign) override;
|
||||
@@ -61,14 +60,11 @@ namespace BlackCore
|
||||
const QString &aircraftDesignator, const QString &combinedType, const QString &modelString) override;
|
||||
virtual void sendFsipirCustomPacket(const BlackMisc::Aviation::CCallsign &callsign, const QString &airlineDesignator,
|
||||
const QString &aircraftDesignator, const QString &combinedType, const QString &modelString) override;
|
||||
|
||||
//! \copydoc INetwork::broadcastAircraftConfig
|
||||
virtual bool isInterimPositionSendingEnabled() const override;
|
||||
virtual void enableInterimPositionSending(bool enable) override;
|
||||
virtual void broadcastAircraftConfig(const QJsonObject &config) override;
|
||||
|
||||
//! \copydoc INetwork::sendAircraftConfigQuery
|
||||
virtual void sendAircraftConfigQuery(const BlackMisc::Aviation::CCallsign &callsign) override;
|
||||
|
||||
|
||||
// Text message slots
|
||||
virtual void sendTextMessages(const BlackMisc::Network::CTextMessageList &messages) override;
|
||||
|
||||
@@ -98,9 +94,7 @@ namespace BlackCore
|
||||
private: //shimlib callbacks
|
||||
static void onConnectionStatusChanged(VatSessionID, VatConnectionStatus oldStatus, VatConnectionStatus newStatus, void *cbvar);
|
||||
static void onTextMessageReceived(VatSessionID, const char *from, const char *to, const char *msg, void *cbvar);
|
||||
|
||||
static void onRadioMessageReceived(VatSessionID, const char *from, int freqCount, int *freqList, const char *message, void *cbvar);
|
||||
|
||||
static void onControllerDisconnected(VatSessionID, const char *callsign, void *cbvar);
|
||||
static void onInterimPilotPositionUpdate(VatSessionID, const char *callsign, const VatPilotPosition *position, void *cbvar);
|
||||
static void onAtcPositionUpdate(VatSessionID, const char *callsign, const VatAtcPosition *pos, void *cbvar);
|
||||
@@ -164,6 +158,7 @@ namespace BlackCore
|
||||
BlackMisc::Network::CServer m_server;
|
||||
BlackMisc::Aviation::CCallsign m_callsign; //!< "buffered callsign", as this must not change when connected
|
||||
BlackMisc::Aviation::CAircraftIcao m_icaoCode; //!< "buffered icao", as this must not change when connected
|
||||
bool m_sendInterimPositions = false; //!< send interim positions
|
||||
|
||||
QTimer m_processingTimer;
|
||||
QTimer m_updateTimer;
|
||||
|
||||
Reference in New Issue
Block a user