diff --git a/das-dn/hostadsbf/hostadsbf.cpp b/das-dn/hostadsbf/hostadsbf.cpp index 4e96aef1..a95ec5dc 100644 --- a/das-dn/hostadsbf/hostadsbf.cpp +++ b/das-dn/hostadsbf/hostadsbf.cpp @@ -893,6 +893,7 @@ BOOLEAN CHostADSBFProcess::OnPreCreate(int id) m_turbine = NULL; m_bRouteAdded = FALSE; + m_connect_count = 0; m_apdu_t0_begin = 10; SetLocalAmsNetId(AmsNetId(m_localNetId)); #if 0 @@ -982,6 +983,7 @@ BOOLEAN CHostADSBFProcess::OnTimer(void) if (ret != 0) return TRUE; } m_bRouteAdded = TRUE; + m_connect_count = 0; //添加成功 vLog(LOG_DEBUG, "%s start to connect(%s:%d)\n", m_pidName.c_str(), m_remoteIp.c_str(), m_remotePort); m_turbine = new AdsDevice{m_remoteIp, AmsNetId(m_remoteNetId), m_remotePort}; @@ -999,7 +1001,12 @@ BOOLEAN CHostADSBFProcess::OnTimer(void) if (!m_turbine->IsConnected()) { vLog(LOG_DEBUG, "%s device not connected.\n", m_pidName.c_str()); - m_bRouteAdded = FALSE; + m_connect_count++; + if (m_connect_count >= 10) + { + m_connect_count = 10; + m_bRouteAdded = FALSE; + } delete m_turbine; m_turbine = NULL; return TRUE; diff --git a/das-dn/hostadsbf/hostadsbf.h b/das-dn/hostadsbf/hostadsbf.h index 8e225fbe..b3c033ed 100644 --- a/das-dn/hostadsbf/hostadsbf.h +++ b/das-dn/hostadsbf/hostadsbf.h @@ -48,6 +48,7 @@ private: AdsDevice *m_turbine; BOOLEAN m_bRouteAdded; //路由是否添加成功 + DWORD m_connect_count; DWORD m_apdu_t0_begin; int m_total_length;