diff --git a/src/common/dmr/lc/csbk/CSBK_BROADCAST.cpp b/src/common/dmr/lc/csbk/CSBK_BROADCAST.cpp index 85fb9e8c..db4c1d89 100644 --- a/src/common/dmr/lc/csbk/CSBK_BROADCAST.cpp +++ b/src/common/dmr/lc/csbk/CSBK_BROADCAST.cpp @@ -106,11 +106,11 @@ void CSBK_BROADCAST::encode(uint8_t* data) case BroadcastAnncType::CHAN_FREQ: { uint32_t calcSpace = (uint32_t)(m_siteIdenEntry.chSpaceKhz() / 0.125); - float calcTxOffset = m_siteIdenEntry.txOffsetMhz() * 1000000; + float calcTxOffset = m_siteIdenEntry.txOffsetMhz() * 1000000.0; const uint32_t multiple = 100000; // calculate Rx frequency - uint32_t rxFrequency = (uint32_t)((m_siteIdenEntry.baseFrequency() + ((calcSpace * 125) * m_logicalCh1)) + calcTxOffset); + uint32_t rxFrequency = (uint32_t)((m_siteIdenEntry.baseFrequency() + ((calcSpace * 125) * m_logicalCh1)) + (uint32_t)calcTxOffset); // generate frequency in mhz uint32_t rxFreqMhz = rxFrequency + multiple / 2; diff --git a/src/common/p25/lc/tsbk/OSP_SNDCP_CH_ANN.cpp b/src/common/p25/lc/tsbk/OSP_SNDCP_CH_ANN.cpp index e17dcf9a..72acbb3b 100644 --- a/src/common/p25/lc/tsbk/OSP_SNDCP_CH_ANN.cpp +++ b/src/common/p25/lc/tsbk/OSP_SNDCP_CH_ANN.cpp @@ -52,10 +52,10 @@ void OSP_SNDCP_CH_ANN::encode(uint8_t* data, bool rawTSBK, bool noTrellis) ulong64_t tsbkValue = 0U; uint32_t calcSpace = (uint32_t)(m_siteIdenEntry.chSpaceKhz() / 0.125); - float calcTxOffset = m_siteIdenEntry.txOffsetMhz() * 1000000; + float calcTxOffset = m_siteIdenEntry.txOffsetMhz() * 1000000.0; uint32_t txFrequency = (uint32_t)((m_siteIdenEntry.baseFrequency() + ((calcSpace * 125) * m_siteData.channelNo()))); - uint32_t rxFrequency = (uint32_t)(txFrequency + calcTxOffset); + uint32_t rxFrequency = (uint32_t)(txFrequency + (uint32_t)calcTxOffset); uint32_t rootFreq = rxFrequency - m_siteIdenEntry.baseFrequency(); uint32_t rxChNo = rootFreq / (m_siteIdenEntry.chSpaceKhz() * 1000); diff --git a/src/common/p25/lc/tsbk/OSP_SNDCP_CH_GNT.cpp b/src/common/p25/lc/tsbk/OSP_SNDCP_CH_GNT.cpp index de249683..71c25ade 100644 --- a/src/common/p25/lc/tsbk/OSP_SNDCP_CH_GNT.cpp +++ b/src/common/p25/lc/tsbk/OSP_SNDCP_CH_GNT.cpp @@ -50,10 +50,10 @@ void OSP_SNDCP_CH_GNT::encode(uint8_t* data, bool rawTSBK, bool noTrellis) ulong64_t tsbkValue = 0U; uint32_t calcSpace = (uint32_t)(m_siteIdenEntry.chSpaceKhz() / 0.125); - float calcTxOffset = m_siteIdenEntry.txOffsetMhz() * 1000000; + float calcTxOffset = m_siteIdenEntry.txOffsetMhz() * 1000000.0; uint32_t txFrequency = (uint32_t)((m_siteIdenEntry.baseFrequency() + ((calcSpace * 125) * m_dataChannelNo))); - uint32_t rxFrequency = (uint32_t)(txFrequency + calcTxOffset); + uint32_t rxFrequency = (uint32_t)(txFrequency + (uint32_t)calcTxOffset); uint32_t rootFreq = rxFrequency - m_siteIdenEntry.baseFrequency(); uint32_t rxChNo = rootFreq / (m_siteIdenEntry.chSpaceKhz() * 1000); diff --git a/src/host/Host.Config.cpp b/src/host/Host.Config.cpp index 4c740618..5e51d8f5 100644 --- a/src/host/Host.Config.cpp +++ b/src/host/Host.Config.cpp @@ -167,10 +167,10 @@ bool Host::readParams() } uint32_t calcSpace = (uint32_t)(entry.chSpaceKhz() / 0.125); - float calcTxOffset = entry.txOffsetMhz() * 1000000; + float calcTxOffset = entry.txOffsetMhz() * 1000000.0; m_txFrequency = (uint32_t)((entry.baseFrequency() + ((calcSpace * 125) * m_channelNo))); - m_rxFrequency = (uint32_t)(m_txFrequency + calcTxOffset); + m_rxFrequency = (uint32_t)(m_txFrequency + (uint32_t)calcTxOffset); if (calcTxOffset < 0.0f && m_rxFrequency < entry.baseFrequency()) { ::LogWarning(LOG_HOST, "Channel Id %u Channel No $%04X has an invalid frequency. Rx Frequency (%u) is less then the base frequency (%u), this may result in incorrect trunking behavior.", m_channelId, m_channelNo, diff --git a/src/host/setup/HostSetup.cpp b/src/host/setup/HostSetup.cpp index 343d7a82..1099e51f 100644 --- a/src/host/setup/HostSetup.cpp +++ b/src/host/setup/HostSetup.cpp @@ -631,9 +631,9 @@ bool HostSetup::calculateRxTxFreq(bool consoleDisplay) } uint32_t calcSpace = (uint32_t)(entry.chSpaceKhz() / 0.125); - float calcTxOffset = entry.txOffsetMhz() * 1000000; + float calcTxOffset = entry.txOffsetMhz() * 1000000.0; - m_rxFrequency = (uint32_t)((entry.baseFrequency() + ((calcSpace * 125) * m_channelNo)) + calcTxOffset); + m_rxFrequency = (uint32_t)((entry.baseFrequency() + ((calcSpace * 125) * m_channelNo)) + (uint32_t)calcTxOffset); m_txFrequency = (uint32_t)((entry.baseFrequency() + ((calcSpace * 125) * m_channelNo))); } else { diff --git a/src/monitor/NodeStatusWnd.h b/src/monitor/NodeStatusWnd.h index c21a6a1e..e47c2634 100644 --- a/src/monitor/NodeStatusWnd.h +++ b/src/monitor/NodeStatusWnd.h @@ -250,18 +250,18 @@ private: m_chanNo.setText(__INT_STR(m_channelId) + "-" + __INT_STR(m_channelNo)); uint32_t calcSpace = (uint32_t)(entry.chSpaceKhz() / 0.125); - float calcTxOffset = entry.txOffsetMhz() * 1000000; + float calcTxOffset = entry.txOffsetMhz() * 1000000.0; - uint32_t rxFrequency = (uint32_t)((entry.baseFrequency() + ((calcSpace * 125) * m_channelNo)) + calcTxOffset); + uint32_t rxFrequency = (uint32_t)((entry.baseFrequency() + ((calcSpace * 125) * m_channelNo)) + (uint32_t)calcTxOffset); uint32_t txFrequency = (uint32_t)((entry.baseFrequency() + ((calcSpace * 125) * m_channelNo))); std::stringstream ss; - ss << std::fixed << std::setprecision(5) << (float)(txFrequency / 1000000.0f); + ss << std::fixed << std::setprecision(5) << (double)(txFrequency / 1000000.0); m_txFreq.setText(ss.str()); ss.str(std::string()); - ss << std::fixed << std::setprecision(5) << (float)(rxFrequency / 1000000.0f); + ss << std::fixed << std::setprecision(5) << (double)(rxFrequency / 1000000.0); m_rxFreq.setText(ss.str()); diff --git a/src/sysview/NodeStatusWnd.h b/src/sysview/NodeStatusWnd.h index 2762f664..24ff5172 100644 --- a/src/sysview/NodeStatusWnd.h +++ b/src/sysview/NodeStatusWnd.h @@ -80,18 +80,18 @@ public: m_chanNo.setText(__INT_STR(channelId) + "-" + __INT_STR(channelNo)); uint32_t calcSpace = (uint32_t)(entry.chSpaceKhz() / 0.125); - float calcTxOffset = entry.txOffsetMhz() * 1000000; + float calcTxOffset = entry.txOffsetMhz() * 1000000.0; - uint32_t rxFrequency = (uint32_t)((entry.baseFrequency() + ((calcSpace * 125) * channelNo)) + calcTxOffset); + uint32_t rxFrequency = (uint32_t)((entry.baseFrequency() + ((calcSpace * 125) * channelNo)) + (uint32_t)calcTxOffset); uint32_t txFrequency = (uint32_t)((entry.baseFrequency() + ((calcSpace * 125) * channelNo))); std::stringstream ss; - ss << std::fixed << std::setprecision(5) << (float)(txFrequency / 1000000.0f); + ss << std::fixed << std::setprecision(5) << (double)(txFrequency / 1000000.0); m_txFreq.setText(ss.str()); ss.str(std::string()); - ss << std::fixed << std::setprecision(5) << (float)(rxFrequency / 1000000.0f); + ss << std::fixed << std::setprecision(5) << (double)(rxFrequency / 1000000.0); m_rxFreq.setText(ss.str());