swift
Loading...
Searching...
No Matches
samplesjson.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3
6
7#include "samplesjson.h"
8
9#include <stdio.h>
10
11#include <QDateTime>
12#include <QDebug>
13#include <QJsonDocument>
14#include <QJsonObject>
15#include <QTextStream>
16#include <QtDebug>
17
29#include "misc/network/user.h"
30#include "misc/pq/angle.h"
31#include "misc/pq/frequency.h"
32#include "misc/pq/length.h"
33#include "misc/pq/speed.h"
34#include "misc/pq/units.h"
36#include "misc/stringutils.h"
37#include "misc/test/testdata.h"
38
39using namespace swift::misc;
40using namespace swift::misc::aviation;
41using namespace swift::misc::simulation;
42using namespace swift::misc::physical_quantities;
43using namespace swift::misc::geo;
44using namespace swift::misc::network;
45using namespace swift::misc::test;
46
47namespace swift::sample
48{
50 {
51 QTextStream cin(stdin);
52 CLength l(123.456, CLengthUnit::NM());
53 QJsonObject json = l.toJson();
54 l = CLength(); // convert back
55 l.convertFromJson(json);
56 qDebug() << json << l;
57 qDebug() << "-------";
59 json = station.toJson();
60 QJsonDocument doc(json);
61 qDebug().noquote() << doc.toJson(QJsonDocument::Indented);
62 qDebug() << "-------";
63
64 station = CAtcStation();
65 station.convertFromJson(json);
66 qDebug() << station;
67 qDebug() << "------- Enter -----";
68 cin.readLine();
69
70 CSimulatedAircraft aircraft(CCallsign("DAMBZ"), CUser("123456", "Joe Pilot"),
72 aircraft.setCom1System(CComSystem::getCom1System(122.8, 118.75));
73 aircraft.setCom2System(CComSystem::getCom2System(123.8, 124.00));
74 aircraft.setTransponder(CTransponder::getStandardTransponder(7000, CTransponder::ModeC));
76
77 json = aircraft.toJson();
78 doc = QJsonDocument(json);
79 qDebug() << doc.toJson(QJsonDocument::Indented);
80 qDebug() << "-------";
81
82 aircraft = CSimulatedAircraft();
83 aircraft.convertFromJson(json);
84 qDebug() << aircraft;
85 qDebug() << "------- Enter -----";
86 cin.readLine();
87
89 json = stations.toJson();
90 doc.setObject(json);
91 qDebug() << doc.toJson(QJsonDocument::Indented);
92 qDebug() << "------- Enter -----";
93 cin.readLine();
94
95 stations.clear();
96 stations.convertFromJson(json);
97 qDebug() << stations;
98 qDebug() << "------- Enter -----";
99 cin.readLine();
100
101 // testing escaping special characters
102 CUser specialCharacters("123456", "With quote \"", "With double quote\"\"", "foobar");
103 json = specialCharacters.toJson();
104 doc.setObject(json);
105 qDebug() << doc.toJson(QJsonDocument::Indented);
106
107 qDebug() << "------- Enter ---------------------------------";
108 cin.readLine();
109
110 return 0;
111 }
112} // namespace swift::sample
QJsonObject toJson() const
Cast to JSON object.
void convertFromJson(const QJsonObject &json)
Assign from JSON object.
void clear()
Removes all elements in the sequence.
Definition sequence.h:288
Value object for ICAO classification.
Value object encapsulating information about an ATC station.
Definition atcstation.h:38
Value object for a list of ATC stations.
Value object encapsulating information of a callsign.
Definition callsign.h:30
static CComSystem getCom1System(double activeFrequencyMHz, double standbyFrequencyMHz=-1)
COM1 unit.
Definition comsystem.cpp:70
static CComSystem getCom2System(double activeFrequencyMHz, double standbyFrequencyMHz=-1)
COM2 unit.
Definition comsystem.cpp:84
static CTransponder getStandardTransponder(qint32 transponderCode, TransponderMode mode)
Transponder unit.
void convertFromJson(const QJsonObject &json)
Assign from JSON object.
Definition mixinjson.h:153
QJsonObject toJson() const
Cast to JSON object.
Definition mixinjson.h:132
Value object encapsulating information of a user.
Definition user.h:28
Physical unit length (length).
Definition length.h:18
static CLengthUnit NM()
Nautical miles NM.
Definition units.h:148
QJsonObject toJson() const
Cast to JSON object.
void convertFromJson(const QJsonObject &json)
Assign from JSON object.
Comprehensive information of an aircraft.
void setCom1System(const aviation::CComSystem &comSystem)
Set COM1 system.
void setTransponder(const aviation::CTransponder &transponder)
Set transponder.
void setCom2System(const aviation::CComSystem &comSystem)
Set COM2 system.
bool setIcaoCodes(const aviation::CAircraftIcaoCode &aircraftIcaoCode, const aviation::CAirlineIcaoCode &airlineIcaoCode)
Set ICAO info.
static const swift::misc::aviation::CAircraftSituation & getAircraftSituationAboveMunichTower()
Aircraft situation (Munich).
static const swift::misc::aviation::CAtcStation & getMunichTower()
Munich tower.
static const swift::misc::aviation::CAtcStationList & getAtcStations()
Tower stations.
static const swift::misc::aviation::CAircraftIcaoCode & getDBAircraftIcaoB737()
B737 ICAO code (as from DB).
static int samples()
Run the samples.
Generate data for testing purposes.
Definition testdata.h:45
Free functions in swift::misc.
void setObject(const QJsonObject &object)
QByteArray toJson(QJsonDocument::JsonFormat format) const const
QString readLine(qint64 maxlen)