swift
Loading...
Searching...
No Matches
samplesaviation.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3
6
7#include "samplesaviation.h"
8
9#include <QDateTime>
10#include <QString>
11#include <QTextStream>
12
24#include "misc/network/user.h"
25#include "misc/pq/frequency.h"
26#include "misc/pq/length.h"
27#include "misc/pq/units.h"
28#include "misc/range.h"
29#include "misc/stringutils.h"
30#include "misc/test/testdata.h"
31
32using namespace swift::misc;
33using namespace swift::misc::aviation;
34using namespace swift::misc::physical_quantities;
35using namespace swift::misc::geo;
36using namespace swift::misc::network;
37using namespace swift::misc::test;
38
39namespace swift::sample
40{
42 {
45
46 out << h1 << Qt::endl;
47 out << h1 << " " << h2 << " " << (h1 == h2) << " " << (h1 != h2) << " " << (h1 == h1) << Qt::endl;
48
49 // COM system
51 out << c1 << Qt::endl;
52 c1.setActiveUnicom();
53 out << c1 << Qt::endl;
54
55 // NAV system
57 out << nav1 << Qt::endl;
58
59 // Transponder tests
61 CTransponder tr2("4532", CTransponder::ModeMil3);
62 out << tr1 << " " << tr2 << Qt::endl;
63
64 // Callsign and ATC station
65 CCallsign callsign1("d-ambz");
66 CCallsign callsign2("DAmbz");
67 out << callsign1 << " " << callsign2 << " " << (callsign1 == callsign2) << Qt::endl;
68
70 CAtcStation station2(station1);
71 CAtcStation station3(station1);
73
74 out << station1 << " " << station2 << " " << (station1.getCallsign() == station2.getCallsign()) << Qt::endl;
75
76 // User parsing
77 CUser user("12345", "Joe KING KGLC");
78 out << user.getRealName() << user.getHomeBase() << Qt::endl;
79
80 // ATC List
83 atcList = atcList.findBy(&CAtcStation::getCallsign, "eddm_twr", &CAtcStation::getFrequency,
86 out << atcList << Qt::endl;
87 out << "-----------------------------------------------" << Qt::endl;
88
89 // flight plan
90 CAltitude alt("FL110");
91 CAltitude altMsl(alt);
92 altMsl.toMeanSeaLevel();
93
94 out << alt << " " << altMsl << Qt::endl;
95 CAirportIcaoCode frankfurt("eddf");
96 out << frankfurt << Qt::endl;
97 out << "-----------------------------------------------" << Qt::endl;
98
99 return 0;
100 }
101} // namespace swift::sample
static CAngleUnit deg()
Degrees.
Definition units.h:276
static CFrequencyUnit MHz()
Megahertz.
Definition units.h:380
CSequence sortedBy(K1 key1, Keys... keys) const
Return a copy sorted by some particular key(s).
Definition sequence.h:621
CSequence findBy(Predicate p) const
Return a copy containing only those elements for which a given predicate returns true.
Definition sequence.h:407
void push_back(const T &value)
Appends an element at the end of the sequence.
Definition sequence.h:308
Value object encapsulating information of airport ICAO data.
Altitude as used in aviation, can be AGL or MSL altitude.
Definition altitude.h:52
bool toMeanSeaLevel()
Flightlevel to MSL.
Definition altitude.cpp:136
Value object encapsulating information about an ATC station.
Definition atcstation.h:38
void setController(const network::CUser &controller)
Set controller.
const physical_quantities::CFrequency & getFrequency() const
Get frequency.
Definition atcstation.h:135
const CCallsign & getCallsign() const
Get callsign.
Definition atcstation.h:84
QString getControllerRealName() const
Get controller name.
Definition atcstation.h:108
Value object for a list of ATC stations.
Value object encapsulating information of a callsign.
Definition callsign.h:30
COM system (aka "radio").
Definition comsystem.h:37
static CComSystem getCom1System(double activeFrequencyMHz, double standbyFrequencyMHz=-1)
COM1 unit.
Definition comsystem.cpp:70
Heading as used in aviation, can be true or magnetic heading.
Definition heading.h:41
NAV system (radio navigation).
Definition navsystem.h:20
static CNavSystem getNav1System(double activeFrequencyMHz, double standbyFrequencyMHz=-1)
NAV1 unit.
Definition navsystem.h:74
@ StateStandby
not a real mode, more a state
Definition transponder.h:33
Value object encapsulating information of a user.
Definition user.h:28
const QString & getRealName() const
Get full name.
Definition user.h:59
const aviation::CAirportIcaoCode & getHomeBase() const
Homebase.
Definition user.h:134
static const swift::misc::aviation::CAtcStation & getFrankfurtTower()
Frankfurt tower.
static const swift::misc::aviation::CAtcStationList & getAtcStations()
Tower stations.
static const swift::misc::network::CUser & getRandomController()
Get a random controller user.
static int samples(QTextStream &out)
Run the samples.
Generate data for testing purposes.
Definition testdata.h:45
Free functions in swift::misc.
QTextStream & endl(QTextStream &stream)