From 10323797733f8ba6d7f71154352fed67bf287275 Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Thu, 5 Jan 2017 00:36:21 +0100 Subject: [PATCH] [FSX] Inject weather via SimConnect instead of FSUIPC refs #851 --- src/plugins/simulator/fsx/simulatorfsx.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/plugins/simulator/fsx/simulatorfsx.cpp b/src/plugins/simulator/fsx/simulatorfsx.cpp index 667279b73..19b7f551d 100644 --- a/src/plugins/simulator/fsx/simulatorfsx.cpp +++ b/src/plugins/simulator/fsx/simulatorfsx.cpp @@ -54,7 +54,7 @@ namespace BlackSimPlugin m_realityBubbleTimer.setInterval(20 * 1000); connect(&m_realityBubbleTimer, &QTimer::timeout, this, &CSimulatorFsx::ps_addAircraftCurrentlyOutOfBubble); - m_useFsuipc = true; // Temporarily enabled until Simconnect Weather is implemented. + m_useFsuipc = false; // Temporarily enabled until Simconnect Weather is implemented. m_interpolator = new CInterpolatorLinear(remoteAircraftProvider, this); m_defaultModel = { @@ -1057,9 +1057,13 @@ namespace BlackSimPlugin void CSimulatorFsx::injectWeatherGrid(const Weather::CWeatherGrid &weatherGrid) { - if (!m_useFsuipc || !m_fsuipc) { return; } - if (!m_fsuipc->isConnected()) { return; } - m_fsuipc->write(weatherGrid); + // So far, there is only global weather + auto glob = weatherGrid.frontOrDefault(); + glob.setIdentifier("GLOB"); + QString metar = CSimConnectUtilities::convertToSimConnectMetar(glob); + SimConnect_WeatherSetModeCustom(m_hSimConnect); + SimConnect_WeatherSetModeGlobal(m_hSimConnect); + SimConnect_WeatherSetObservation(m_hSimConnect, 0, qPrintable(metar)); } bool CSimulatorFsx::requestDataForSimObject(const CSimConnectObject &simObject, SIMCONNECT_PERIOD period)