swift
flightplan.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
4 #include "core/fsd/flightplan.h"
5 
6 #include "core/fsd/serializer.h"
7 #include "misc/logmessage.h"
8 
9 namespace swift::core::fsd
10 {
11  FlightPlan::FlightPlan() {}
12 
13  FlightPlan::FlightPlan(const QString &sender, const QString &receiver, FlightType flightType,
14  const QString &aircraftIcaoType, int trueCruisingSpeed, const QString &depAirport,
15  int estimatedDepTime, int actualDepTime, const QString &cruiseAlt,
16  const QString &destAirport, int hoursEnroute, int minutesEnroute, int fuelAvailHours,
17  int fuelAvailMinutes, const QString &altAirport, const QString &remarks,
18  const QString &route)
19  : MessageBase(sender, receiver), m_flightType(flightType), m_aircraftIcaoType(aircraftIcaoType),
20  m_trueCruisingSpeed(trueCruisingSpeed), m_depAirport(depAirport), m_estimatedDepTime(estimatedDepTime),
21  m_actualDepTime(actualDepTime), m_cruiseAlt(cruiseAlt), m_destAirport(destAirport),
22  m_hoursEnroute(hoursEnroute), m_minutesEnroute(minutesEnroute), m_fuelAvailHours(fuelAvailHours),
23  m_fuelAvailMinutes(fuelAvailMinutes), m_altAirport(altAirport), m_remarks(remarks), m_route(route)
24  {}
25 
26  QStringList FlightPlan::toTokens() const
27  {
28  auto tokens = QStringList {};
29  tokens.push_back(m_sender);
30  tokens.push_back(m_receiver);
31  tokens.push_back(toQString(m_flightType));
32  tokens.push_back(m_aircraftIcaoType);
33  tokens.push_back(QString::number(m_trueCruisingSpeed));
34  tokens.push_back(m_depAirport);
35  tokens.push_back(QString::number(m_estimatedDepTime));
36  tokens.push_back(QString::number(m_actualDepTime));
37  tokens.push_back(m_cruiseAlt);
38  tokens.push_back(m_destAirport);
39  tokens.push_back(QString::number(m_hoursEnroute));
40  tokens.push_back(QString::number(m_minutesEnroute));
41  tokens.push_back(QString::number(m_fuelAvailHours));
42  tokens.push_back(QString::number(m_fuelAvailMinutes));
43  tokens.push_back(m_altAirport);
44  tokens.push_back(m_remarks);
45  tokens.push_back(m_route);
46 
47  Q_ASSERT(tokens.size() == 17);
48  return tokens;
49  }
50 
51  FlightPlan FlightPlan::fromTokens(const QStringList &tokens)
52  {
53  if (tokens.size() < 17)
54  {
55  swift::misc::CLogMessage(static_cast<FlightPlan *>(nullptr)).debug(u"Wrong number of arguments.");
56  return {};
57  };
58  return FlightPlan(tokens[0], tokens[1], fromQString<FlightType>(tokens[2]), tokens[3], tokens[4].toInt(),
59  tokens[5], tokens[6].toInt(), tokens[7].toInt(), tokens[8], tokens[9], tokens[10].toInt(),
60  tokens[11].toInt(), tokens[12].toInt(), tokens[13].toInt(), tokens[14], tokens[15],
61  tokens[16]);
62  }
63 } // namespace swift::core::fsd
FSD Message: flightplan.
Definition: flightplan.h:16
QString m_aircraftIcaoType
Contains the full equipment string in FAA or ICAO format, depending on the server.
Definition: flightplan.h:38
QStringList toTokens() const
Message converted to tokens.
Definition: flightplan.cpp:26
int m_fuelAvailMinutes
Properties.
Definition: flightplan.h:48
int m_actualDepTime
Properties.
Definition: flightplan.h:42
static FlightPlan fromTokens(const QStringList &tokens)
Construct from tokens.
Definition: flightplan.cpp:51
QString m_remarks
Properties.
Definition: flightplan.h:50
int m_trueCruisingSpeed
Properties.
Definition: flightplan.h:39
QString m_depAirport
Properties.
Definition: flightplan.h:40
FlightType m_flightType
Properties.
Definition: flightplan.h:36
QString m_route
Properties.
Definition: flightplan.h:51
QString m_cruiseAlt
Properties.
Definition: flightplan.h:43
int m_minutesEnroute
Properties.
Definition: flightplan.h:46
int m_hoursEnroute
Properties.
Definition: flightplan.h:45
QString m_destAirport
Properties.
Definition: flightplan.h:44
int m_estimatedDepTime
Properties.
Definition: flightplan.h:41
QString m_altAirport
Properties.
Definition: flightplan.h:49
int m_fuelAvailHours
Properties.
Definition: flightplan.h:47
FSD message base class.
Definition: messagebase.h:58
QString m_receiver
message receiver
Definition: messagebase.h:89
QString m_sender
message sender
Definition: messagebase.h:88
Class for emitting a log message.
Definition: logmessage.h:27
Derived & debug()
Set the severity to debug.
FlightType
Flight types.
Definition: enums.h:90