Changed when m_updateTimer is started:

Now starts when connection is established, and stops when terminated.
Also added an extra check in update, as the session check is
not sufficient.
This commit is contained in:
Klaus Basan
2014-01-16 02:03:46 +01:00
parent 9470dc27ca
commit 34ef6e47ae

View File

@@ -120,7 +120,7 @@ namespace BlackCore
{ {
try try
{ {
if (m_net->IsValid() && m_net->IsSessionExists()) if (m_net->IsValid() && m_net->IsSessionExists() && isConnected())
{ {
if (this->m_loginMode == LoginAsObserver) if (this->m_loginMode == LoginAsObserver)
{ {
@@ -271,6 +271,10 @@ namespace BlackCore
info); info);
} }
m_net->ConnectAndLogon(); m_net->ConnectAndLogon();
if (! m_updateTimer.isActive())
{
m_updateTimer.start(c_updateIntervalMsec);
}
} }
catch (...) catch (...)
{ {
@@ -283,6 +287,7 @@ namespace BlackCore
{ {
try try
{ {
m_updateTimer.stop();
m_net->LogoffAndDisconnect(c_logoffTimeoutSec); m_net->LogoffAndDisconnect(c_logoffTimeoutSec);
} }
catch (...) { exceptionDispatcher(Q_FUNC_INFO); } catch (...) { exceptionDispatcher(Q_FUNC_INFO); }
@@ -291,33 +296,17 @@ namespace BlackCore
void CNetworkVatlib::setOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft) void CNetworkVatlib::setOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft)
{ {
m_ownAircraft = 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) void CNetworkVatlib::setOwnAircraftPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude)
{ {
m_ownAircraft.setPosition(position); m_ownAircraft.setPosition(position);
m_ownAircraft.setAltitude(altitude); m_ownAircraft.setAltitude(altitude);
if (! m_updateTimer.isActive())
{
m_updateTimer.start(c_updateIntervalMsec);
}
} }
void CNetworkVatlib::setOwnAircraftSituation(const BlackMisc::Aviation::CAircraftSituation &situation) void CNetworkVatlib::setOwnAircraftSituation(const BlackMisc::Aviation::CAircraftSituation &situation)
{ {
m_ownAircraft.setSituation(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, void CNetworkVatlib::setOwnAircraftAvionics(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2,