mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 20:15:35 +08:00
Ref T409, network vatlib, remove "colon"/send special string if there is no model string
This commit is contained in:
@@ -469,9 +469,9 @@ namespace BlackCore
|
|||||||
void CNetworkVatlib::presetIcaoCodes(const CSimulatedAircraft &ownAircraft)
|
void CNetworkVatlib::presetIcaoCodes(const CSimulatedAircraft &ownAircraft)
|
||||||
{
|
{
|
||||||
Q_ASSERT_X(isDisconnected(), Q_FUNC_INFO, "Can't change ICAO codes while still connected");
|
Q_ASSERT_X(isDisconnected(), Q_FUNC_INFO, "Can't change ICAO codes while still connected");
|
||||||
m_ownAircraftIcaoCode = ownAircraft.getAircraftIcaoCode();
|
m_ownAircraftIcaoCode = ownAircraft.getAircraftIcaoCode();
|
||||||
m_ownAirlineIcaoCode = ownAircraft.getAirlineIcaoCode();
|
m_ownAirlineIcaoCode = ownAircraft.getAirlineIcaoCode();
|
||||||
m_ownLiveryDescription = ownAircraft.getLivery().getDescription();
|
m_ownLiveryDescription = removeColon(ownAircraft.getModel().getSwiftLiveryString());
|
||||||
updateOwnIcaoCodes(m_ownAircraftIcaoCode, m_ownAirlineIcaoCode);
|
updateOwnIcaoCodes(m_ownAircraftIcaoCode, m_ownAirlineIcaoCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -740,9 +740,9 @@ namespace BlackCore
|
|||||||
|
|
||||||
void CNetworkVatlib::sendAircraftInfo(const CCallsign &callsign) // private
|
void CNetworkVatlib::sendAircraftInfo(const CCallsign &callsign) // private
|
||||||
{
|
{
|
||||||
const QByteArray acTypeICAObytes = toFSD(m_ownAircraftIcaoCode.getDesignator());
|
const QByteArray acTypeICAObytes = toFSDnoColon(m_ownAircraftIcaoCode.getDesignator());
|
||||||
const QByteArray airlineICAObytes = toFSD(m_ownAirlineIcaoCode.getDesignator());
|
const QByteArray airlineICAObytes = toFSDnoColon(m_ownAirlineIcaoCode.getDesignator());
|
||||||
const QByteArray liverybytes = toFSD(m_ownLiveryDescription);
|
const QByteArray liverybytes = toFSDnoColon(m_ownLiveryDescription);
|
||||||
|
|
||||||
VatAircraftInfo aircraftInfo {acTypeICAObytes, airlineICAObytes, liverybytes};
|
VatAircraftInfo aircraftInfo {acTypeICAObytes, airlineICAObytes, liverybytes};
|
||||||
Vat_SendAircraftInfo(m_net.data(), toFSD(callsign), &aircraftInfo);
|
Vat_SendAircraftInfo(m_net.data(), toFSD(callsign), &aircraftInfo);
|
||||||
@@ -822,15 +822,13 @@ namespace BlackCore
|
|||||||
{
|
{
|
||||||
Q_ASSERT_X(isConnected(), Q_FUNC_INFO, "Can't send to server when disconnected");
|
Q_ASSERT_X(isConnected(), Q_FUNC_INFO, "Can't send to server when disconnected");
|
||||||
const CSimulatedAircraft myAircraft(getOwnAircraft());
|
const CSimulatedAircraft myAircraft(getOwnAircraft());
|
||||||
QString modelString = myAircraft.getModel().getModelString();
|
const QString modelString = myAircraft.hasModelString() ? myAircraft.getModelString() : noModelString();
|
||||||
if (modelString.isEmpty()) { modelString = defaultModelString(); }
|
|
||||||
|
|
||||||
const QStringList data { { "0" },
|
const QStringList data { { "0" },
|
||||||
myAircraft.getAirlineIcaoCodeDesignator(),
|
myAircraft.getAirlineIcaoCodeDesignator(),
|
||||||
myAircraft.getAircraftIcaoCodeDesignator(),
|
myAircraft.getAircraftIcaoCodeDesignator(),
|
||||||
{ "" }, { "" }, { "" }, { "" },
|
{ "" }, { "" }, { "" }, { "" },
|
||||||
myAircraft.getAircraftIcaoCombinedType(),
|
myAircraft.getAircraftIcaoCombinedType(),
|
||||||
modelString
|
removeColon(modelString)
|
||||||
};
|
};
|
||||||
sendCustomPacket(callsign, "FSIPIR", data);
|
sendCustomPacket(callsign, "FSIPIR", data);
|
||||||
}
|
}
|
||||||
@@ -846,7 +844,7 @@ namespace BlackCore
|
|||||||
data[1] = myAircraft.getAirlineIcaoCodeDesignator();
|
data[1] = myAircraft.getAirlineIcaoCodeDesignator();
|
||||||
data[2] = myAircraft.getAircraftIcaoCodeDesignator();
|
data[2] = myAircraft.getAircraftIcaoCodeDesignator();
|
||||||
data[7] = myAircraft.getAircraftIcaoCombinedType();
|
data[7] = myAircraft.getAircraftIcaoCombinedType();
|
||||||
data[8] = myAircraft.hasModelString() ? myAircraft.getModel().getModelString() : defaultModelString();
|
data[8] = removeColon(myAircraft.hasModelString() ? myAircraft.getModelString() : noModelString());
|
||||||
this->sendCustomPacket(callsign, "FSIPI", data);
|
this->sendCustomPacket(callsign, "FSIPI", data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1326,6 +1324,12 @@ namespace BlackCore
|
|||||||
return this->averageOffsetTimeMs(callsign, maxLastValues, count);
|
return this->averageOffsetTimeMs(callsign, maxLastValues, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString CNetworkVatlib::removeColon(const QString &candidate)
|
||||||
|
{
|
||||||
|
QString r = candidate;
|
||||||
|
return r.remove(':');
|
||||||
|
}
|
||||||
|
|
||||||
void CNetworkVatlib::onInfoQueryRequestReceived(VatFsdClient *, const char *callsignString, VatClientQueryType type, const char *, void *cbvar)
|
void CNetworkVatlib::onInfoQueryRequestReceived(VatFsdClient *, const char *callsignString, VatClientQueryType type, const char *, void *cbvar)
|
||||||
{
|
{
|
||||||
QPointer<CNetworkVatlib> self(cbvar_cast(cbvar));
|
QPointer<CNetworkVatlib> self(cbvar_cast(cbvar));
|
||||||
|
|||||||
@@ -192,12 +192,20 @@ namespace BlackCore
|
|||||||
static void networkLogHandler(VatSeverityLevel severity, const char *context, const char *message);
|
static void networkLogHandler(VatSeverityLevel severity, const char *context, const char *message);
|
||||||
void sendCustomPacket(const BlackMisc::Aviation::CCallsign &callsign, const QString &packetId, const QStringList &data);
|
void sendCustomPacket(const BlackMisc::Aviation::CCallsign &callsign, const QString &packetId, const QStringList &data);
|
||||||
|
|
||||||
|
//! Default model string
|
||||||
static const QString &defaultModelString()
|
static const QString &defaultModelString()
|
||||||
{
|
{
|
||||||
static const QString dm("Cessna Skyhawk 172SP");
|
static const QString dm("Cessna Skyhawk 172SP");
|
||||||
return dm;
|
return dm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//! Send if no model string is available
|
||||||
|
static const QString &noModelString()
|
||||||
|
{
|
||||||
|
static const QString noms("swift empty string");
|
||||||
|
return noms;
|
||||||
|
}
|
||||||
|
|
||||||
struct JsonPackets
|
struct JsonPackets
|
||||||
{
|
{
|
||||||
static const QJsonObject &aircraftConfigRequest();
|
static const QJsonObject &aircraftConfigRequest();
|
||||||
@@ -246,6 +254,9 @@ namespace BlackCore
|
|||||||
//! Average offset time in ms
|
//! Average offset time in ms
|
||||||
qint64 averageOffsetTimeMs(const BlackMisc::Aviation::CCallsign &callsign, int maxLastValues = MaxOffseTimes) const;
|
qint64 averageOffsetTimeMs(const BlackMisc::Aviation::CCallsign &callsign, int maxLastValues = MaxOffseTimes) const;
|
||||||
|
|
||||||
|
//! Remove colon
|
||||||
|
static QString removeColon(const QString &candidate);
|
||||||
|
|
||||||
//! Deletion policy for QScopedPointer
|
//! Deletion policy for QScopedPointer
|
||||||
struct VatFsdClientDeleter
|
struct VatFsdClientDeleter
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user