swift
ownaircraftproviderdummy.cpp
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 
5 
6 #include <QtGlobal>
7 
8 using namespace swift::misc::aviation;
9 using namespace swift::misc::physical_quantities;
10 
11 namespace swift::misc::simulation
12 {
13  CSimulatedAircraft COwnAircraftProviderDummy::getOwnAircraft() const
14  {
15  QReadLocker l(&m_lock);
16  return m_ownAircraft;
17  }
18 
19  CCallsign COwnAircraftProviderDummy::getOwnCallsign() const
20  {
21  QReadLocker l(&m_lock);
22  return m_ownAircraft.getCallsign();
23  }
24 
25  CComSystem COwnAircraftProviderDummy::getOwnComSystem(CComSystem::ComUnit unit) const
26  {
27  QReadLocker l(&m_lock);
28  return m_ownAircraft.getComSystem(unit);
29  }
30 
31  CTransponder COwnAircraftProviderDummy::getOwnTransponder() const
32  {
33  QReadLocker l(&m_lock);
34  return m_ownAircraft.getTransponder();
35  }
36 
37  geo::CCoordinateGeodetic COwnAircraftProviderDummy::getOwnAircraftPosition() const
38  {
39  QReadLocker l(&m_lock);
40  return m_ownAircraft.getPosition();
41  }
42 
43  CAircraftSituation COwnAircraftProviderDummy::getOwnAircraftSituation() const
44  {
45  QReadLocker l(&m_lock);
46  return m_ownAircraft.getSituation();
47  }
48 
49  CAircraftParts COwnAircraftProviderDummy::getOwnAircraftParts() const
50  {
51  QReadLocker l(&m_lock);
52  return m_ownAircraft.getParts();
53  }
54 
55  CAircraftModel COwnAircraftProviderDummy::getOwnAircraftModel() const
56  {
57  QReadLocker l(&m_lock);
58  return m_ownAircraft.getModel();
59  }
60 
61  CLength COwnAircraftProviderDummy::getDistanceToOwnAircraft(const geo::ICoordinateGeodetic &position) const
62  {
63  return getOwnAircraft().calculateGreatCircleDistance(position);
64  }
65 
66  bool COwnAircraftProviderDummy::updateCockpit(const aviation::CComSystem &com1, const aviation::CComSystem &com2,
67  const aviation::CTransponder &transponder,
68  const CIdentifier &originator)
69  {
70  QWriteLocker l(&m_lock);
71  m_ownAircraft.setCom1System(com1);
72  m_ownAircraft.setCom2System(com2);
73  m_ownAircraft.setTransponder(transponder);
74  Q_UNUSED(originator);
75  return true;
76  }
77 
78  bool COwnAircraftProviderDummy::updateActiveComFrequency(const physical_quantities::CFrequency &frequency,
79  CComSystem::ComUnit comUnit,
80  const swift::misc::CIdentifier &originator)
81  {
82  if (!CComSystem::isValidComFrequency(frequency)) { return false; }
83  QWriteLocker l(&m_lock);
84  CComSystem com = m_ownAircraft.getComSystem(comUnit);
85  com.setFrequencyActive(frequency);
86  m_ownAircraft.setComSystem(com, comUnit);
87  Q_UNUSED(originator);
88  return true;
89  }
90 
91  bool COwnAircraftProviderDummy::updateSelcal(const CSelcal &selcal, const swift::misc::CIdentifier &originator)
92  {
93  QWriteLocker l(&m_lock);
94  m_ownAircraft.setSelcal(selcal);
95  Q_UNUSED(originator);
96  return true;
97  }
98 
99  bool COwnAircraftProviderDummy::updateOwnModel(const CAircraftModel &model)
100  {
101  QWriteLocker l(&m_lock);
102  m_ownAircraft.setModel(model);
103  return true;
104  }
105 
106  bool COwnAircraftProviderDummy::updateOwnSituation(const CAircraftSituation &situation)
107  {
108  QWriteLocker l(&m_lock);
109  m_ownAircraft.setSituation(situation);
110  return true;
111  }
112 
113  bool COwnAircraftProviderDummy::updateOwnParts(const CAircraftParts &parts)
114  {
115  QWriteLocker l(&m_lock);
116  m_ownAircraft.setParts(parts);
117  return true;
118  }
119 
120  bool COwnAircraftProviderDummy::updateOwnCG(const CLength &cg)
121  {
122  QWriteLocker l(&m_lock);
123  return m_ownAircraft.setCG(cg);
124  }
125 
126  bool COwnAircraftProviderDummy::updateOwnCallsign(const CCallsign &callsign)
127  {
128  QWriteLocker l(&m_lock);
129  m_ownAircraft.setCallsign(callsign);
130  return true;
131  }
132 
133  bool COwnAircraftProviderDummy::updateOwnIcaoCodes(const CAircraftIcaoCode &aircraftIcaoCode,
134  const CAirlineIcaoCode &airlineIcaoCode)
135  {
136  QWriteLocker l(&m_lock);
137  m_ownAircraft.setIcaoCodes(aircraftIcaoCode, airlineIcaoCode);
138  return true;
139  }
140 
141  COwnAircraftProviderDummy *COwnAircraftProviderDummy::instance()
142  {
144  return dummy;
145  }
146 } // namespace swift::misc::simulation
Value object encapsulating information identifying a component of a modular distributed swift process...
Definition: identifier.h:29
Value object for ICAO classification.
Value object encapsulating information of aircraft's parts.
Definition: aircraftparts.h:26
Value object encapsulating information of an aircraft's situation.
Value object for ICAO classification.
Value object encapsulating information of a callsign.
Definition: callsign.h:30
COM system (aka "radio")
Definition: comsystem.h:37
static bool isValidComFrequency(const physical_quantities::CFrequency &f)
Valid COM frequency (either civil or military)
Definition: comsystem.cpp:110
void setFrequencyActive(const physical_quantities::CFrequency &frequency)
Set active frequency.
Definition: comsystem.cpp:37
Value object for SELCAL.
Definition: selcal.h:31
Geodetic coordinate, a position in 3D space relative to the reference geoid.
Physical unit length (length)
Definition: length.h:18
Aircraft model (used by another pilot, my models on disk)
Definition: aircraftmodel.h:71
Comprehensive information of an aircraft.