mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-26 10:45:37 +08:00
Ref T261, added toFullJson in parts
* needed, since the "is full" attribute needs to be added * fixed usage in network vatlib
This commit is contained in:
committed by
Roland Winklmeier
parent
5bf21c2937
commit
ab0c34b16a
@@ -679,7 +679,7 @@ namespace BlackCore
|
|||||||
void CNetworkVatlib::replyToConfigQuery(const CCallsign &callsign)
|
void CNetworkVatlib::replyToConfigQuery(const CCallsign &callsign)
|
||||||
{
|
{
|
||||||
QJsonObject config = this->getOwnAircraftParts().toJson();
|
QJsonObject config = this->getOwnAircraftParts().toJson();
|
||||||
config.insert("is_full_data", true);
|
config.insert(CAircraftParts::attributeNameIsFullJson(), true);
|
||||||
QString data = QJsonDocument(QJsonObject { { "config", config } }).toJson(QJsonDocument::Compact);
|
QString data = QJsonDocument(QJsonObject { { "config", config } }).toJson(QJsonDocument::Compact);
|
||||||
data = convertToUnicodeEscaped(data);
|
data = convertToUnicodeEscaped(data);
|
||||||
Vat_SendAircraftConfig(m_net.data(), toFSD(callsign), toFSD(data));
|
Vat_SendAircraftConfig(m_net.data(), toFSD(callsign), toFSD(data));
|
||||||
|
|||||||
@@ -50,8 +50,16 @@ namespace BlackMisc
|
|||||||
QJsonObject CAircraftParts::toIncrementalJson() const
|
QJsonObject CAircraftParts::toIncrementalJson() const
|
||||||
{
|
{
|
||||||
QJsonObject json = this->toJson();
|
QJsonObject json = this->toJson();
|
||||||
json.remove("is_full_data");
|
json.remove(attributeNameIsFullJson());
|
||||||
json.insert("is_full_data", QJsonValue(false));
|
json.insert(attributeNameIsFullJson(), QJsonValue(false));
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
QJsonObject CAircraftParts::toFullJson() const
|
||||||
|
{
|
||||||
|
QJsonObject json = this->toJson();
|
||||||
|
json.remove(attributeNameIsFullJson());
|
||||||
|
json.insert(attributeNameIsFullJson(), QJsonValue(true));
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,10 +83,9 @@ namespace BlackMisc
|
|||||||
QString *details = CBuildConfig::isLocalDeveloperDebugBuild() ? &parts.m_guessingDetails : nullptr;
|
QString *details = CBuildConfig::isLocalDeveloperDebugBuild() ? &parts.m_guessingDetails : nullptr;
|
||||||
|
|
||||||
const bool vtol = model.isVtol();
|
const bool vtol = model.isVtol();
|
||||||
CSpeed guessedLiftOffGs = CSpeed::null();
|
CSpeed guessedVRotate = CSpeed::null();
|
||||||
CLength guessedCG = model.getCG();
|
CLength guessedCG = model.getCG();
|
||||||
model.getAircraftIcaoCode().guessModelParameters(guessedCG, guessedLiftOffGs);
|
model.getAircraftIcaoCode().guessModelParameters(guessedCG, guessedVRotate);
|
||||||
// const QChar engineType = model.getAircraftIcaoCode().getEngineTypeChar();
|
|
||||||
|
|
||||||
// set some reasonable values
|
// set some reasonable values
|
||||||
const bool isOnGround = situation.isOnGround();
|
const bool isOnGround = situation.isOnGround();
|
||||||
@@ -101,7 +108,7 @@ namespace BlackMisc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CSpeed slowSpeed = guessedLiftOffGs * 0.30;
|
const CSpeed slowSpeed = guessedVRotate * 0.30;
|
||||||
if (situation.getGroundSpeed() < slowSpeed)
|
if (situation.getGroundSpeed() < slowSpeed)
|
||||||
{
|
{
|
||||||
if (details) { *details += QStringLiteral("slow speed <") % slowSpeed.valueRoundedWithUnit(1) % QStringLiteral(" on ground"); }
|
if (details) { *details += QStringLiteral("slow speed <") % slowSpeed.valueRoundedWithUnit(1) % QStringLiteral(" on ground"); }
|
||||||
@@ -142,7 +149,7 @@ namespace BlackMisc
|
|||||||
else if (aGroundFt < nearGround2Ft)
|
else if (aGroundFt < nearGround2Ft)
|
||||||
{
|
{
|
||||||
if (details) { details->prepend(QStringLiteral("2nd layer: ")); }
|
if (details) { details->prepend(QStringLiteral("2nd layer: ")); }
|
||||||
const bool gearDown = !isLikelyTakeOffOrClimbing && (situation.getGroundSpeed() < guessedLiftOffGs || isLikelyLanding);
|
const bool gearDown = !isLikelyTakeOffOrClimbing && (situation.getGroundSpeed() < guessedVRotate || isLikelyLanding);
|
||||||
parts.setGearDown(gearDown);
|
parts.setGearDown(gearDown);
|
||||||
parts.setFlapsPercent(10);
|
parts.setFlapsPercent(10);
|
||||||
}
|
}
|
||||||
@@ -167,9 +174,9 @@ namespace BlackMisc
|
|||||||
{
|
{
|
||||||
if (!vtol)
|
if (!vtol)
|
||||||
{
|
{
|
||||||
const bool gearDown = situation.getGroundSpeed() < guessedLiftOffGs;
|
const bool gearDown = situation.getGroundSpeed() < guessedVRotate;
|
||||||
parts.setGearDown(gearDown);
|
parts.setGearDown(gearDown);
|
||||||
if (details) { *details = QStringLiteral("not on ground elv., gs < ") + guessedLiftOffGs.valueRoundedWithUnit(1); }
|
if (details) { *details = QStringLiteral("not on ground elv., gs < ") + guessedVRotate.valueRoundedWithUnit(1); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -194,6 +201,12 @@ namespace BlackMisc
|
|||||||
return notset;
|
return notset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const QString &CAircraftParts::attributeNameIsFullJson()
|
||||||
|
{
|
||||||
|
static const QString a("is_full_data");
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
|
||||||
CVariant CAircraftParts::propertyByIndex(const BlackMisc::CPropertyIndex &index) const
|
CVariant CAircraftParts::propertyByIndex(const BlackMisc::CPropertyIndex &index) const
|
||||||
{
|
{
|
||||||
if (index.isMyself()) { return CVariant::from(*this); }
|
if (index.isMyself()) { return CVariant::from(*this); }
|
||||||
|
|||||||
@@ -158,8 +158,13 @@ namespace BlackMisc
|
|||||||
QString convertToQString(bool i18n = false) const;
|
QString convertToQString(bool i18n = false) const;
|
||||||
|
|
||||||
//! Incremental JSON object
|
//! Incremental JSON object
|
||||||
|
//! \remark same as toJson, but sets \c is_full_data to \c false
|
||||||
QJsonObject toIncrementalJson() const;
|
QJsonObject toIncrementalJson() const;
|
||||||
|
|
||||||
|
//! Full JSON Object
|
||||||
|
//! \remark same as toJson, but sets \c is_full_data to \c true
|
||||||
|
QJsonObject toFullJson() const;
|
||||||
|
|
||||||
//! NULL parts object?
|
//! NULL parts object?
|
||||||
bool isNull() const;
|
bool isNull() const;
|
||||||
|
|
||||||
@@ -172,6 +177,9 @@ namespace BlackMisc
|
|||||||
//! Convert to QString
|
//! Convert to QString
|
||||||
static const QString &partsDetailsToString(PartsDetails details);
|
static const QString &partsDetailsToString(PartsDetails details);
|
||||||
|
|
||||||
|
//! Attribute name
|
||||||
|
static const QString &attributeNameIsFullJson();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CAircraftLights m_lights;
|
CAircraftLights m_lights;
|
||||||
CAircraftEngineList m_engines;
|
CAircraftEngineList m_engines;
|
||||||
|
|||||||
@@ -271,7 +271,7 @@ namespace BlackMisc
|
|||||||
void CRemoteAircraftProvider::storeAircraftParts(const CCallsign &callsign, const QJsonObject &jsonObject, int currentOffset)
|
void CRemoteAircraftProvider::storeAircraftParts(const CCallsign &callsign, const QJsonObject &jsonObject, int currentOffset)
|
||||||
{
|
{
|
||||||
const CSimulatedAircraft remoteAircraft(this->getAircraftInRangeForCallsign(callsign));
|
const CSimulatedAircraft remoteAircraft(this->getAircraftInRangeForCallsign(callsign));
|
||||||
const bool isFull = jsonObject.value("is_full_data").toBool();
|
const bool isFull = jsonObject.value(CAircraftParts::attributeNameIsFullJson()).toBool();
|
||||||
|
|
||||||
// If we are not yet synchronized, we throw away any incremental packet
|
// If we are not yet synchronized, we throw away any incremental packet
|
||||||
if (!remoteAircraft.hasValidCallsign()) { return; }
|
if (!remoteAircraft.hasValidCallsign()) { return; }
|
||||||
|
|||||||
Reference in New Issue
Block a user