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() : MessageBase() {}
15 
16  AtcDataUpdate::AtcDataUpdate(const QString &sender, int frequencykHz, CFacilityType facility, int visibleRange,
17  AtcRating rating, double latitude, double longitude, int elevation)
18  : MessageBase(sender, {}), m_frequencykHz(frequencykHz), m_facility(facility), m_visibleRange(visibleRange),
19  m_rating(rating), m_latitude(latitude), m_longitude(longitude), m_elevation(elevation)
20  {}
21 
22  QStringList AtcDataUpdate::toTokens() const
23  {
24  QStringList tokens;
25  tokens.push_back(m_sender);
26  tokens.push_back(QString::number(m_frequencykHz - 100000));
27  tokens.push_back(toQString(m_facility));
28  tokens.push_back(QString::number(m_visibleRange));
29  tokens.push_back(toQString(m_rating));
30  tokens.push_back(QString::number(m_latitude, 'f', 5));
31  tokens.push_back(QString::number(m_longitude, 'f', 5));
32  tokens.push_back(QString::number(m_elevation));
33  return tokens;
34  }
35 
36  AtcDataUpdate AtcDataUpdate::fromTokens(const QStringList &tokens)
37  {
38  if (tokens.size() < 7)
39  {
40  CLogMessage(static_cast<AtcDataUpdate *>(nullptr)).warning(u"Wrong number of arguments.");
41  return {};
42  }
43 
44  AtcDataUpdate packet(tokens[0], tokens[1].toInt() + 100000, fromQString<CFacilityType>(tokens[2]),
45  tokens[3].toInt(), fromQString<AtcRating>(tokens[4]), tokens[5].toDouble(),
46  tokens[6].toDouble(), tokens[7].toInt());
47  return packet;
48  }
49 } // 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.