14 using namespace swift::misc::aviation;
16 namespace swift::core::fsd
18 VisualPilotDataUpdate::VisualPilotDataUpdate() : MessageBase() {}
20 VisualPilotDataUpdate::VisualPilotDataUpdate(
const QString &sender,
double latitude,
double longitude,
21 double altitudeTrue,
double heightAgl,
double pitch,
double bank,
22 double heading,
double xVelocity,
double yVelocity,
double zVelocity,
23 double pitchRadPerSec,
double bankRadPerSec,
double headingRadPerSec,
25 :
MessageBase(sender, {}), m_latitude(latitude), m_longitude(longitude), m_altitudeTrue(altitudeTrue),
26 m_heightAgl(heightAgl), m_pitch(pitch), m_bank(bank), m_heading(heading), m_xVelocity(xVelocity),
27 m_yVelocity(yVelocity), m_zVelocity(zVelocity), m_pitchRadPerSec(pitchRadPerSec),
28 m_bankRadPerSec(bankRadPerSec), m_headingRadPerSec(headingRadPerSec), m_noseGearAngle(noseGearAngle)
38 tokens.push_back(QString::number(
m_latitude,
'f', 7));
39 tokens.push_back(QString::number(
m_longitude,
'f', 7));
41 tokens.push_back(QString::number(
m_heightAgl,
'f', 2));
42 tokens.push_back(QString::number(pbh));
43 tokens.push_back(QString::number(
m_xVelocity,
'f', 4));
44 tokens.push_back(QString::number(
m_yVelocity,
'f', 4));
45 tokens.push_back(QString::number(
m_zVelocity,
'f', 4));
55 if (tokens.size() < 12)
65 unpackPBH(tokens[5].toUInt(), pitch, bank, heading, unused);
68 tokens[0], tokens[1].toDouble(), tokens[2].toDouble(), tokens[3].toDouble(), tokens[4].toDouble(), pitch,
69 bank, heading, tokens[6].toDouble(), tokens[7].toDouble(), tokens[8].toDouble(), tokens[9].toDouble(),
70 tokens[11].toDouble(), tokens[10].toDouble(), tokens.value(12, QStringLiteral(
"0")).toDouble());
QString m_sender
message sender
Every 25th VisualPilotDataUpdate is actually one of these ("slowfast").
VisualPilotDataUpdate with velocity assumed to be zero.
Pilot data update broadcasted to pilots in range every 0.2 seconds.
double m_longitude
Properties.
double m_xVelocity
Properties.
double m_headingRadPerSec
Properties.
VisualPilotDataStopped toStopped() const
Return a stopped update with the same values.
double m_pitchRadPerSec
Properties.
static VisualPilotDataUpdate fromTokens(const QStringList &tokens)
Construct from tokens.
double m_zVelocity
Properties.
double m_altitudeTrue
Properties.
double m_yVelocity
Properties.
VisualPilotDataPeriodic toPeriodic() const
Return a periodic update with the same values.
double m_bankRadPerSec
Properties.
QStringList toTokens() const
Message converted to tokens.
double m_heading
Properties.
double m_pitch
Properties.
double m_noseGearAngle
Properties.
double m_latitude
Properties.
double m_heightAgl
Properties.
Class for emitting a log message.
Derived & debug()
Set the severity to debug.
Free functions in swift::misc.
void unpackPBH(quint32 pbh, double &pitch, double &bank, double &heading, bool &onGround)
Unpack pitch, bank, heading and onGround from 32 bit integer.
void packPBH(double pitch, double bank, double heading, bool onGround, quint32 &pbh)
Pack pitch, bank, heading and onGround into 32 bit integer.