refs #452 adjusted network vatlib signatures

This commit is contained in:
Klaus Basan
2015-09-23 19:40:03 +02:00
committed by Mathew Sutcliffe
parent 898b4fc935
commit 5fc0c66112
3 changed files with 38 additions and 30 deletions

View File

@@ -14,7 +14,7 @@
#include "blackcoreexport.h"
#include "blackmisc/simulation/simulatorplugininfo.h"
#include "blackmisc/aviation/aircraft.h"
#include "blackmisc/simulation/simulatedaircraft.h"
#include "blackmisc/pq/frequency.h"
#include "blackmisc/geo/coordinategeodetic.h"
#include "blackmisc/pq/length.h"
@@ -175,7 +175,7 @@ namespace BlackCore
* Set our own aircraft ICAO codes before connecting.
* \pre Network must be disconnected when calling this function.
*/
virtual void presetIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoData &icao) = 0;
virtual void presetIcaoCodes(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft) = 0;
/*!
* Select a login mode before connecting.
@@ -436,7 +436,7 @@ namespace BlackCore
* We received a reply to one of our queries.
* \sa sendIcaoCodesQuery
*/
void icaoCodesReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftIcaoData &icao);
void icaoCodesReplyReceived(const BlackMisc::Aviation::CCallsign &callsign, const QString aircraftIcaoDesignator, const QString &airlineIcaoDesignator, const QString &livery);
/*!
* We received a notification of the state of another aircraft on the network.

View File

@@ -294,15 +294,16 @@ namespace BlackCore
void CNetworkVatlib::presetCallsign(const BlackMisc::Aviation::CCallsign &callsign)
{
Q_ASSERT_X(isDisconnected(), "CNetworkVatlib", "Can't change callsign while still connected");
m_callsign = callsign;
m_ownCallsign = callsign;
updateOwnCallsign(callsign);
}
void CNetworkVatlib::presetIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoData &icao)
void CNetworkVatlib::presetIcaoCodes(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft)
{
Q_ASSERT_X(isDisconnected(), "CNetworkVatlib", "Can't change ICAO codes while still connected");
m_icaoCode = icao;
updateOwnIcaoData(icao);
m_ownAircraftIcaoCode = ownAircraft.getAircraftIcaoCode();
m_ownAirlineIcaoCode = ownAircraft.getAirlineIcaoCode();
updateOwnIcaoCodes(m_ownAircraftIcaoCode, m_ownAirlineIcaoCode);
}
void CNetworkVatlib::presetLoginMode(LoginMode mode)
@@ -317,8 +318,8 @@ namespace BlackCore
Q_ASSERT_X(isDisconnected(), "CNetworkVatlib", "Can't connect while still connected");
if (!m_net) { initializeSession(); }
QByteArray callsign = toFSD(m_loginMode == LoginAsObserver ?
m_callsign.getAsObserverCallsignString() :
m_callsign.asString());
m_ownCallsign.getAsObserverCallsignString() :
m_ownCallsign.asString());
QByteArray name = toFSD(m_server.getUser().getRealName());
if (this->m_loginMode == LoginAsObserver)
@@ -551,8 +552,8 @@ namespace BlackCore
void CNetworkVatlib::sendAircraftInfo(const BlackMisc::Aviation::CCallsign &callsign) // private
{
const QByteArray acTypeICAObytes = toFSD(m_icaoCode.getAircraftDesignator());
const QByteArray airlineICAObytes = toFSD(m_icaoCode.getAirlineDesignator());
const QByteArray acTypeICAObytes = toFSD(m_ownAircraftIcaoCode.getDesignator());
const QByteArray airlineICAObytes = toFSD(m_ownAirlineIcaoCode.getDesignator());
const QByteArray liverybytes; //! \todo VATLIB: send livery
VatAircraftInfo aircraftInfo {acTypeICAObytes, airlineICAObytes, liverybytes};
@@ -606,12 +607,15 @@ namespace BlackCore
{
Q_ASSERT_X(isConnected(), "CNetworkVatlib", "Can't send to server when disconnected");
CSimulatedAircraft myAircraft(getOwnAircraft());
CAircraftIcaoData icao = myAircraft.getIcaoInfo();
QString modelString = myAircraft.getModel().getModelString();
if (modelString.isEmpty()) { modelString = defaultModelString(); }
QStringList data { { "0" }, icao.getAirlineDesignator(), icao.getAircraftDesignator(),
{ "" }, { "" }, { "" }, { "" }, icao.getAircraftCombinedType(), modelString
QStringList data { { "0" },
myAircraft.getAirlineIcaoCodeDesignator(),
myAircraft.getAircraftIcaoCodeDesignator(),
{ "" }, { "" }, { "" }, { "" },
myAircraft.getAircraftIcaoCombinedType(),
modelString
};
sendCustomPacket(callsign, "FSIPIR", data);
}
@@ -620,12 +624,15 @@ namespace BlackCore
{
Q_ASSERT_X(isConnected(), "CNetworkVatlib", "Can't send to server when disconnected");
CSimulatedAircraft myAircraft(getOwnAircraft());
CAircraftIcaoData icao = myAircraft.getIcaoInfo();
QString modelString = myAircraft.getModel().getModelString();
if (modelString.isEmpty()) { modelString = defaultModelString(); }
QStringList data { { "0" }, icao.getAirlineDesignator(), icao.getAircraftDesignator(),
{ "" }, { "" }, { "" }, { "" }, icao.getAircraftCombinedType(), modelString
QStringList data { { "0" },
myAircraft.getAirlineIcaoCodeDesignator(),
myAircraft.getAircraftIcaoCodeDesignator(),
{ "" }, { "" }, { "" }, { "" },
myAircraft.getAircraftIcaoCombinedType(),
modelString
};
sendCustomPacket(callsign, "FSIPI", data);
}
@@ -1021,12 +1028,12 @@ namespace BlackCore
void CNetworkVatlib::onPilotInfoReceived(VatSessionID, const char *callsign, const VatAircraftInfo *aircraftInfo, void *cbvar)
{
BlackMisc::Aviation::CAircraftIcaoData icao;
icao.setAircraftDesignator(aircraftInfo->aircraftType);
icao.setAirlineDesignator(aircraftInfo->airline);
//! \todo use livery: aircraftInfo->livery;
emit cbvar_cast(cbvar)->icaoCodesReplyReceived(cbvar_cast(cbvar)->fromFSD(callsign), icao);
emit cbvar_cast(cbvar)->icaoCodesReplyReceived(
cbvar_cast(cbvar)->fromFSD(callsign),
QString(aircraftInfo->aircraftType).trimmed().toUpper(),
QString(aircraftInfo->airline).trimmed().toUpper(),
QString(aircraftInfo->livery).trimmed().toUpper()
);
}
void CNetworkVatlib::networkLogHandler(SeverityLevel /** severity **/, const char *message)

View File

@@ -48,7 +48,7 @@ namespace BlackCore
virtual void presetLoginMode(LoginMode mode) override;
virtual void presetServer(const BlackMisc::Network::CServer &server) override;
virtual void presetCallsign(const BlackMisc::Aviation::CCallsign &callsign) override;
virtual void presetIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoData &icao) override;
virtual void presetIcaoCodes(const BlackMisc::Simulation::CSimulatedAircraft &ownAircraft) override;
virtual void presetSimulatorInfo(const BlackMisc::Simulation::CSimulatorPluginInfo &simInfo) override;
virtual void initiateConnection() override;
virtual void terminateConnection() override;
@@ -170,12 +170,13 @@ namespace BlackCore
private:
QScopedPointer<PCSBClient, VatlibQScopedPointerDeleter> m_net;
LoginMode m_loginMode;
VatConnectionStatus m_status;
BlackMisc::Network::CServer m_server;
BlackMisc::Simulation::CSimulatorPluginInfo m_simulatorInfo;
BlackMisc::Aviation::CCallsign m_callsign; //!< "buffered callsign", as this must not change when connected
BlackMisc::Aviation::CAircraftIcaoData m_icaoCode; //!< "buffered icao", as this must not change when connected
LoginMode m_loginMode;
VatConnectionStatus m_status;
BlackMisc::Network::CServer m_server;
BlackMisc::Simulation::CSimulatorPluginInfo m_simulatorInfo;
BlackMisc::Aviation::CCallsign m_ownCallsign; //!< "buffered callsign", as this must not change when connected
BlackMisc::Aviation::CAircraftIcaoCode m_ownAircraftIcaoCode; //!< "buffered icao", as this must not change when connected
BlackMisc::Aviation::CAirlineIcaoCode m_ownAirlineIcaoCode; //!< "buffered icao", as this must not change when connected
QTimer m_processingTimer;
QTimer m_positionUpdateTimer;