diff --git a/src/blackcore/network_vatlib.cpp b/src/blackcore/network_vatlib.cpp index 30ccbd3d4..34d2c98e0 100644 --- a/src/blackcore/network_vatlib.cpp +++ b/src/blackcore/network_vatlib.cpp @@ -120,7 +120,7 @@ namespace BlackCore { try { - if (m_net->IsValid() && m_net->IsSessionExists()) + if (m_net->IsValid() && m_net->IsSessionExists() && isConnected()) { if (this->m_loginMode == LoginAsObserver) { @@ -271,6 +271,10 @@ namespace BlackCore info); } m_net->ConnectAndLogon(); + if (! m_updateTimer.isActive()) + { + m_updateTimer.start(c_updateIntervalMsec); + } } catch (...) { @@ -283,6 +287,7 @@ namespace BlackCore { try { + m_updateTimer.stop(); m_net->LogoffAndDisconnect(c_logoffTimeoutSec); } catch (...) { exceptionDispatcher(Q_FUNC_INFO); } @@ -291,33 +296,17 @@ namespace BlackCore void CNetworkVatlib::setOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft) { m_ownAircraft = aircraft; - - if (! m_updateTimer.isActive()) - { - m_updateTimer.start(c_updateIntervalMsec); - } - } void CNetworkVatlib::setOwnAircraftPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude) { m_ownAircraft.setPosition(position); m_ownAircraft.setAltitude(altitude); - - if (! m_updateTimer.isActive()) - { - m_updateTimer.start(c_updateIntervalMsec); - } } void CNetworkVatlib::setOwnAircraftSituation(const BlackMisc::Aviation::CAircraftSituation &situation) { m_ownAircraft.setSituation(situation); - - if (! m_updateTimer.isActive()) - { - m_updateTimer.start(c_updateIntervalMsec); - } } void CNetworkVatlib::setOwnAircraftAvionics(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2,