swift
atcdataupdate.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 
5 
6 #include "core/fsd/serializer.h"
7 #include "misc/logmessage.h"
8 
9 using namespace swift::misc;
10 using namespace swift::misc::network;
11 
12 namespace swift::core::fsd
13 {
14  AtcDataUpdate::AtcDataUpdate(const QString &sender, int frequencykHz, CFacilityType facility, int visibleRange,
15  AtcRating rating, double latitude, double longitude, int elevation)
16  : MessageBase(sender, {}), m_frequencykHz(frequencykHz), m_facility(facility), m_visibleRange(visibleRange),
17  m_rating(rating), m_latitude(latitude), m_longitude(longitude), m_elevation(elevation)
18  {}
19 
21  {
22  QStringList tokens;
23  tokens.push_back(m_sender);
24  tokens.push_back(QString::number(m_frequencykHz - 100000));
25  tokens.push_back(toQString(m_facility));
27  tokens.push_back(toQString(m_rating));
28  tokens.push_back(QString::number(m_latitude, 'f', 5));
29  tokens.push_back(QString::number(m_longitude, 'f', 5));
31  return tokens;
32  }
33 
35  {
36  if (tokens.size() < 7)
37  {
38  CLogMessage(static_cast<AtcDataUpdate *>(nullptr)).warning(u"Wrong number of arguments.");
39  return {};
40  }
41 
42  AtcDataUpdate packet(tokens[0], tokens[1].toInt() + 100000, fromQString<CFacilityType>(tokens[2]),
43  tokens[3].toInt(), fromQString<AtcRating>(tokens[4]), tokens[5].toDouble(),
44  tokens[6].toDouble(), tokens[7].toInt());
45  return packet;
46  }
47 } // namespace swift::core::fsd
FSD Message: ATC data update.
Definition: atcdataupdate.h:19
QStringList toTokens() const
Message converted to tokens.
swift::misc::network::CFacilityType m_facility
Properties.
Definition: atcdataupdate.h:36
static AtcDataUpdate fromTokens(const QStringList &tokens)
Construct from tokens.
AtcRating m_rating
Properties.
Definition: atcdataupdate.h:38
FSD message base class.
Definition: messagebase.h:58
QString m_sender
message sender
Definition: messagebase.h:88
Class for emitting a log message.
Definition: logmessage.h:27
Derived & warning(const char16_t(&format)[N])
Set the severity to warning, providing a format string.
Value object encapsulating the ATC facility type, e.g. TWR, DEP, APP.
Definition: facilitytype.h:18
AtcRating
ATC ratings.
Definition: enums.h:15
Free functions in swift::misc.
void push_back(QList< T >::parameter_type value)
qsizetype size() const const
QString number(double n, char format, int precision)