Add height AGL and nose gear angle in VisualPilotDataUpdate

This commit is contained in:
Mat Sutcliffe
2022-01-13 17:37:52 +00:00
parent bb70bcc79d
commit 6d66066d6a
4 changed files with 27 additions and 14 deletions

View File

@@ -20,13 +20,14 @@ namespace BlackCore::Fsd
VisualPilotDataUpdate::VisualPilotDataUpdate() : MessageBase()
{ }
VisualPilotDataUpdate::VisualPilotDataUpdate(const QString &sender, double latitude, double longitude, double altitudeTrue,
VisualPilotDataUpdate::VisualPilotDataUpdate(const QString &sender, double latitude, double longitude, double altitudeTrue, double heightAgl,
double pitch, double bank, double heading, double xVelocity, double yVelocity, double zVelocity,
double pitchRadPerSec, double bankRadPerSec, double headingRadPerSec)
double pitchRadPerSec, double bankRadPerSec, double headingRadPerSec, double noseGearAngle)
: MessageBase(sender, {}),
m_latitude(latitude),
m_longitude(longitude),
m_altitudeTrue(altitudeTrue),
m_heightAgl(heightAgl),
m_pitch(pitch),
m_bank(bank),
m_heading(heading),
@@ -35,7 +36,8 @@ namespace BlackCore::Fsd
m_zVelocity(zVelocity),
m_pitchRadPerSec(pitchRadPerSec),
m_bankRadPerSec(bankRadPerSec),
m_headingRadPerSec(headingRadPerSec)
m_headingRadPerSec(headingRadPerSec),
m_noseGearAngle(noseGearAngle)
{ }
QStringList VisualPilotDataUpdate::toTokens() const
@@ -48,6 +50,7 @@ namespace BlackCore::Fsd
tokens.push_back(QString::number(m_latitude, 'f', 7));
tokens.push_back(QString::number(m_longitude, 'f', 7));
tokens.push_back(QString::number(m_altitudeTrue, 'f', 2));
tokens.push_back(QString::number(m_heightAgl, 'f', 2));
tokens.push_back(QString::number(pbh));
tokens.push_back(QString::number(m_xVelocity, 'f', 4));
tokens.push_back(QString::number(m_yVelocity, 'f', 4));
@@ -55,12 +58,13 @@ namespace BlackCore::Fsd
tokens.push_back(QString::number(m_pitchRadPerSec, 'f', 4));
tokens.push_back(QString::number(m_headingRadPerSec, 'f', 4));
tokens.push_back(QString::number(m_bankRadPerSec, 'f', 4));
tokens.push_back(QString::number(m_noseGearAngle, 'f', 2));
return tokens;
}
VisualPilotDataUpdate VisualPilotDataUpdate::fromTokens(const QStringList &tokens)
{
if (tokens.size() < 11)
if (tokens.size() < 12)
{
CLogMessage(static_cast<VisualPilotDataUpdate *>(nullptr)).debug(u"Wrong number of arguments.");
return {};
@@ -70,10 +74,10 @@ namespace BlackCore::Fsd
double bank = 0.0;
double heading = 0.0;
bool unused = false; //! \todo check if needed?
unpackPBH(tokens[4].toUInt(), pitch, bank, heading, unused);
unpackPBH(tokens[5].toUInt(), pitch, bank, heading, unused);
return VisualPilotDataUpdate(tokens[0], tokens[1].toDouble(), tokens[2].toDouble(), tokens[3].toDouble(),
pitch, bank, heading, tokens[5].toDouble(), tokens[6].toDouble(), tokens[7].toDouble(),
tokens[8].toDouble(), tokens[10].toDouble(), tokens[9].toDouble());
return VisualPilotDataUpdate(tokens[0], tokens[1].toDouble(), tokens[2].toDouble(), tokens[3].toDouble(), tokens[4].toDouble(),
pitch, bank, heading, tokens[6].toDouble(), tokens[7].toDouble(), tokens[8].toDouble(), tokens[9].toDouble(),
tokens[11].toDouble(), tokens[10].toDouble(), tokens.value(12, QStringLiteral("0")).toDouble());
}
}