swift
simulatormsfs.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2020 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
4 #include "simulatormsfs.h"
5 
6 #include "../fsxcommon/simconnectsymbols.h"
7 
8 using namespace swift::misc;
9 using namespace swift::misc::aviation;
10 using namespace swift::misc::physical_quantities;
11 using namespace swift::misc::geo;
12 using namespace swift::misc::network;
13 using namespace swift::misc::simulation;
14 using namespace swift::misc::simulation::fscommon;
15 using namespace swift::core;
16 using namespace swift::simplugin::fsxcommon;
17 
18 namespace swift::simplugin::msfs
19 {
20  CSimulatorMsFs::CSimulatorMsFs(const CSimulatorPluginInfo &info, IOwnAircraftProvider *ownAircraftProvider,
21  IRemoteAircraftProvider *remoteAircraftProvider, IClientProvider *clientProvider,
22  QObject *parent)
23  : CSimulatorFsxCommon(info, ownAircraftProvider, remoteAircraftProvider, clientProvider, parent)
24  {
25  this->setDefaultModel({ "Airbus A320 Neo Asobo", CAircraftModel::TypeModelMatchingDefaultModel,
26  "Airbus A320 default model", CAircraftIcaoCode("A320", "L2J") });
27  }
28 
30  {
31  if (!loadAndResolveMSFSimConnect()) { return false; }
32  return CSimulatorFsxCommon::connectTo();
33  }
34 
36  const DataDefinitionOwnAircraft &simulatorOwnAircraft)
37  {
38  aircraftSituation.setAltitude(
39  CAltitude(simulatorOwnAircraft.altitudeCalibratedFt, CAltitude::MeanSeaLevel, CLengthUnit::ft()));
40  m_altitudeDelta = { simulatorOwnAircraft.altitudeFt - simulatorOwnAircraft.altitudeCalibratedFt,
41  CLengthUnit::ft() };
42  }
43 
45  {
46  if (!loadAndResolveMSFSimConnect()) { return; }
47  CSimulatorFsxCommonListener::startImpl();
48  }
49 
50 } // namespace swift::simplugin::msfs
Value object for ICAO classification.
Value object encapsulating information of an aircraft's situation.
void setAltitude(const CAltitude &altitude)
Set altitude.
Altitude as used in aviation, can be AGL or MSL altitude.
Definition: altitude.h:52
Direct in memory access to client (network client) data.
Direct threadsafe in memory access to own aircraft.
Direct thread safe in memory access to remote aircraft.
void setDefaultModel(const CAircraftModel &defaultModel)
Default model.
swift::misc::physical_quantities::CLength m_altitudeDelta
FS2020 effect of temperature on altitude.
virtual bool connectTo()
Connect to simulator.
virtual void setTrueAltitude(swift::misc::aviation::CAircraftSituation &aircraftSituation, const swift::simplugin::fsxcommon::DataDefinitionOwnAircraft &simulatorOwnAircraft)
Customization point for adjusting altitude to compensate for temperature effect.
virtual void startImpl()
Plugin specific implementation to start listener.
Backend services of the swift project, like dealing with the network or the simulators.
Definition: actionbind.cpp:7
Free functions in swift::misc.
double altitudeCalibratedFt
Altitude without temperature effect (ft, FS2020)