From 6d23b8e7927fa9a2f3f2ac8fb573ec2ee004c917 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Mon, 9 Oct 2017 09:38:13 +0100 Subject: [PATCH] Add extra logging. --- DMRGateway.cpp | 15 ++++++++++----- DMRGateway.h | 2 +- Log.cpp | 4 ++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/DMRGateway.cpp b/DMRGateway.cpp index a11776d..89d9144 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -882,7 +882,7 @@ bool CDMRGateway::createDMRNetwork1() } unsigned char config[400U]; - unsigned int len = getConfig(config); + unsigned int len = getConfig(m_dmr1Name, config); if (!location) ::memcpy(config + 30U, "0.00000000.000000", 17U); @@ -1009,7 +1009,7 @@ bool CDMRGateway::createDMRNetwork2() } unsigned char config[400U]; - unsigned int len = getConfig(config); + unsigned int len = getConfig(m_dmr2Name, config); if (!location) ::memcpy(config + 30U, "0.00000000.000000", 17U); @@ -1176,7 +1176,7 @@ bool CDMRGateway::linkXLX(unsigned int number) m_xlxNetwork = new CDMRNetwork(reflector->m_address, m_xlxPort, m_xlxLocal, m_xlxId, m_xlxPassword, "XLX", m_xlxDebug); unsigned char config[400U]; - unsigned int len = getConfig(config); + unsigned int len = getConfig("XLX", config); m_xlxNetwork->setConfig(config, len); @@ -1189,7 +1189,7 @@ bool CDMRGateway::linkXLX(unsigned int number) m_xlxNumber = number; m_xlxRoom = reflector->m_startup; - m_xlxReflector = 4000U; + m_xlxReflector = 4000U; LogMessage("XLX, Connecting to XLX%03u", m_xlxNumber); @@ -1263,17 +1263,20 @@ void CDMRGateway::writeXLXLink(unsigned int srcId, unsigned int dstId, CDMRNetwo } } -unsigned int CDMRGateway::getConfig(unsigned char* buffer) +unsigned int CDMRGateway::getConfig(const std::string& name, unsigned char* buffer) { assert(buffer != NULL); bool enabled = m_conf.getInfoEnabled(); if (!enabled) { + LogInfo("%s: Using original configuration message: %*s", name.c_str(), m_configLen, m_config); ::memcpy(buffer, m_config, m_configLen); return m_configLen; } + LogInfo("%s: Original configuration message: %*s", name.c_str(), m_configLen, m_config); + char latitude[20U]; float lat = m_conf.getInfoLatitude(); ::sprintf(latitude, "%08f", lat); @@ -1300,5 +1303,7 @@ unsigned int CDMRGateway::getConfig(unsigned char* buffer) rxFrequency, txFrequency, power, m_config + 28U, latitude, longitude, height, location.c_str(), description.c_str(), m_config[89U], url.c_str(), m_config + 214U, m_config + 254U); + LogInfo("%s: New configuration message: %s", name.c_str(), buffer); + return (unsigned int)::strlen((char*)buffer); } diff --git a/DMRGateway.h b/DMRGateway.h index 773d3f0..eedc4db 100644 --- a/DMRGateway.h +++ b/DMRGateway.h @@ -81,7 +81,7 @@ private: void unlinkXLX(); void writeXLXLink(unsigned int srcId, unsigned int dstId, CDMRNetwork* network); - unsigned int getConfig(unsigned char* buffer); + unsigned int getConfig(const std::string& name, unsigned char* buffer); }; #endif diff --git a/Log.cpp b/Log.cpp index fc37ebf..fbf77e2 100644 --- a/Log.cpp +++ b/Log.cpp @@ -93,7 +93,7 @@ void Log(unsigned int level, const char* fmt, ...) { assert(fmt != NULL); - char buffer[300U]; + char buffer[501U]; #if defined(_WIN32) || defined(_WIN64) SYSTEMTIME st; ::GetSystemTime(&st); @@ -111,7 +111,7 @@ void Log(unsigned int level, const char* fmt, ...) va_list vl; va_start(vl, fmt); - ::vsprintf(buffer + ::strlen(buffer), fmt, vl); + ::vsnprintf(buffer + ::strlen(buffer), 500, fmt, vl); va_end(vl);