swift
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 
14 #include "misc/aviation/altitude.h"
17 #include "misc/aviation/callsign.h"
19 #include "misc/aviation/heading.h"
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 
32 using namespace swift::misc;
33 using namespace swift::misc::aviation;
34 using namespace swift::misc::physical_quantities;
35 using namespace swift::misc::geo;
36 using namespace swift::misc::network;
37 using namespace swift::misc::test;
38 
39 namespace swift::sample
40 {
41  int CSamplesAviation::samples(QTextStream &out)
42  {
43  CHeading h1(180, CHeading::Magnetic, CAngleUnit::deg());
44  CHeading h2(180, CHeading::True, CAngleUnit::deg());
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 
69  CAtcStation station1 = CTestData::getFrankfurtTower();
70  CAtcStation station2(station1);
71  CAtcStation station3(station1);
72  station3.setController(CTestData::getRandomController());
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
81  CAtcStationList atcList = CTestData::getAtcStations();
82  atcList.push_back(CTestData::getAtcStations());
83  atcList = atcList.findBy(&CAtcStation::getCallsign, "eddm_twr", &CAtcStation::getFrequency,
84  CFrequency(118.7, CFrequencyUnit::MHz()));
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
CSequence sortedBy(K1 key1, Keys... keys) const
Return a copy sorted by some particular key(s).
Definition: sequence.h:594
CSequence findBy(Predicate p) const
Return a copy containing only those elements for which a given predicate returns true.
Definition: sequence.h:398
void push_back(const T &value)
Appends an element at the end of the sequence.
Definition: sequence.h:305
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:112
Value object encapsulating information about an ATC station.
Definition: atcstation.h:38
void setController(const network::CUser &controller)
Set controller.
Definition: atcstation.cpp:72
const CCallsign & getCallsign() const
Get callsign.
Definition: atcstation.h:84
QString getControllerRealName() const
Get controller name.
Definition: atcstation.h:108
const physical_quantities::CFrequency & getFrequency() const
Get frequency.
Definition: atcstation.h:135
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:64
Heading as used in aviation, can be true or magnetic heading.
Definition: heading.h:41
@ Magnetic
magnetic north
Definition: heading.h:56
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
Generate data for testing purposes.
Definition: testdata.h:45
Free functions in swift::misc.