diff --git a/DGIdGateway/DGIdGateway.cpp b/DGIdGateway/DGIdGateway.cpp
index 69ac652..c6ad905 100644
--- a/DGIdGateway/DGIdGateway.cpp
+++ b/DGIdGateway/DGIdGateway.cpp
@@ -201,6 +201,8 @@ int CDGIdGateway::run()
return 1;
}
+ rptNetwork.link();
+
std::string fileName = m_conf.getYSFNetHosts();
CYSFReflectors* reflectors = new CYSFReflectors(fileName);
reflectors->load();
@@ -381,6 +383,7 @@ int CDGIdGateway::run()
LogMessage("Starting DGIdGateway-%s", VERSION);
DGID_STATUS state = DS_NOTLINKED;
+ unsigned int nPips = 0U;
for (;;) {
unsigned char buffer[200U];
@@ -411,7 +414,7 @@ int CDGIdGateway::run()
}
std::string desc = dgIdNetwork[dgId]->getDesc(dgId);
- LogDebug("DG-ID set to %u (%s) via RF", dgId, desc.c_str());
+ LogMessage("DG-ID set to %u (%s) via RF", dgId, desc.c_str());
currentDGId = dgId;
state = DS_NOTLINKED;
}
@@ -440,6 +443,10 @@ int CDGIdGateway::run()
if ((buffer[34U] & 0x01U) == 0x01U) {
if (m_gps != NULL)
m_gps->reset();
+ if (nPips > 0U) {
+ sendPips(nPips);
+ nPips = 0U;
+ }
}
}
}
@@ -462,7 +469,7 @@ int CDGIdGateway::run()
if (currentDGId == 0U) {
std::string desc = dgIdNetwork[i]->getDesc(i);
- LogDebug("DG-ID set to %u (%s) via Network", i, desc.c_str());
+ LogMessage("DG-ID set to %u (%s) via Network", i, desc.c_str());
currentDGId = i;
state = DS_LINKED;
}
@@ -493,20 +500,20 @@ int CDGIdGateway::run()
dgIdNetwork[currentDGId]->unlink();
}
- LogDebug("DG-ID set to 0 (None) via timeout");
+ LogMessage("DG-ID set to 0 (None) via timeout");
state = DS_NOTLINKED;
currentDGId = 0U;
inactivityTimer.stop();
- sendPips(2U);
+ nPips = 2U;
}
if (dgIdNetwork[currentDGId] != NULL) {
DGID_STATUS netState = dgIdNetwork[currentDGId]->getStatus();
if (state != DS_LINKED && netState == DS_LINKED)
- sendPips(1U);
+ nPips = 1U;
else if (state == DS_LINKED && netState != DS_LINKED)
- sendPips(3U);
+ nPips = 3U;
state = netState;
}
@@ -514,6 +521,7 @@ int CDGIdGateway::run()
CThread::sleep(5U);
}
+ rptNetwork.unlink();
rptNetwork.close();
if (m_gps != NULL) {
diff --git a/DGIdGateway/DGIdGateway.vcxproj b/DGIdGateway/DGIdGateway.vcxproj
index 401721a..1864ae7 100644
--- a/DGIdGateway/DGIdGateway.vcxproj
+++ b/DGIdGateway/DGIdGateway.vcxproj
@@ -86,7 +86,7 @@
Level3
true
- _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ _CRT_SECURE_NO_WARNINGS;HAVE_LOG_H;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
true
@@ -101,7 +101,7 @@
true
true
true
- _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ _CRT_SECURE_NO_WARNINGS;HAVE_LOG_H;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
true
@@ -116,7 +116,7 @@
Level3
true
- _CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ _CRT_SECURE_NO_WARNINGS;HAVE_LOG_H;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
true
@@ -131,7 +131,7 @@
true
true
true
- _CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ _CRT_SECURE_NO_WARNINGS;HAVE_LOG_H;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
true
diff --git a/DGIdGateway/FCSNetwork.cpp b/DGIdGateway/FCSNetwork.cpp
index ff94298..b8be3f7 100644
--- a/DGIdGateway/FCSNetwork.cpp
+++ b/DGIdGateway/FCSNetwork.cpp
@@ -147,6 +147,8 @@ void CFCSNetwork::unlink()
m_pingTimer.stop();
+ LogMessage("Unlinked from %s", m_print.c_str());
+
m_state = DS_NOTLINKED;
}
diff --git a/DGIdGateway/YSFNetwork.cpp b/DGIdGateway/YSFNetwork.cpp
index bf2ab17..9c1cd37 100644
--- a/DGIdGateway/YSFNetwork.cpp
+++ b/DGIdGateway/YSFNetwork.cpp
@@ -189,6 +189,8 @@ void CYSFNetwork::unlink()
m_socket.write(m_unlink, 14U, m_addr, m_addrLen);
+ LogMessage("Unlinked from %s", m_name.c_str());
+
m_state = DS_NOTLINKED;
}