Make sure dBm is not truncated when RSSI < 99
This commit is contained in:
parent
f5e3427cd8
commit
19d234a627
|
@ -1184,8 +1184,10 @@ void CDStarControl::sendAck()
|
||||||
|
|
||||||
char text[40U];
|
char text[40U];
|
||||||
if (m_ackMessage == DSTAR_ACK_RSSI && m_rssi != 0) {
|
if (m_ackMessage == DSTAR_ACK_RSSI && m_rssi != 0) {
|
||||||
if (status == LS_LINKED_DEXTRA || status == LS_LINKED_DPLUS || status == LS_LINKED_DCS || status == LS_LINKED_CCS || status == LS_LINKED_LOOPBACK)
|
if (status == LS_LINKED_DEXTRA || status == LS_LINKED_DPLUS || status == LS_LINKED_DCS || status == LS_LINKED_CCS || status == LS_LINKED_LOOPBACK) {
|
||||||
|
CUtils::removeChar(reflector, ' ');//remove space from reflector so all nicely fits onto 20 chars in case rssi < 99dBm
|
||||||
::sprintf(text, "%-8.8s %.1f%% -%udBm ", reflector, float(m_rfErrs * 100U) / float(m_rfBits), m_aveRSSI / m_rssiCount);
|
::sprintf(text, "%-8.8s %.1f%% -%udBm ", reflector, float(m_rfErrs * 100U) / float(m_rfBits), m_aveRSSI / m_rssiCount);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
::sprintf(text, "BER:%.1f%% -%udBm ", float(m_rfErrs * 100U) / float(m_rfBits), m_aveRSSI / m_rssiCount);
|
::sprintf(text, "BER:%.1f%% -%udBm ", float(m_rfErrs * 100U) / float(m_rfBits), m_aveRSSI / m_rssiCount);
|
||||||
}
|
}
|
||||||
|
@ -1248,8 +1250,10 @@ void CDStarControl::sendError()
|
||||||
|
|
||||||
char text[40U];
|
char text[40U];
|
||||||
if (m_ackMessage == DSTAR_ACK_RSSI && m_rssi != 0) {
|
if (m_ackMessage == DSTAR_ACK_RSSI && m_rssi != 0) {
|
||||||
if (status == LS_LINKED_DEXTRA || status == LS_LINKED_DPLUS || status == LS_LINKED_DCS || status == LS_LINKED_CCS || status == LS_LINKED_LOOPBACK)
|
if (status == LS_LINKED_DEXTRA || status == LS_LINKED_DPLUS || status == LS_LINKED_DCS || status == LS_LINKED_CCS || status == LS_LINKED_LOOPBACK) {
|
||||||
|
CUtils::removeChar(reflector, ' ');//remove space from reflector so all nicely fits onto 20 chars in case rssi < 99dBm
|
||||||
::sprintf(text, "%-8.8s %.1f%% -%udBm ", reflector, float(m_rfErrs * 100U) / float(m_rfBits), m_aveRSSI / m_rssiCount);
|
::sprintf(text, "%-8.8s %.1f%% -%udBm ", reflector, float(m_rfErrs * 100U) / float(m_rfBits), m_aveRSSI / m_rssiCount);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
::sprintf(text, "BER:%.1f%% -%udBm ", float(m_rfErrs * 100U) / float(m_rfBits), m_aveRSSI / m_rssiCount);
|
::sprintf(text, "BER:%.1f%% -%udBm ", float(m_rfErrs * 100U) / float(m_rfBits), m_aveRSSI / m_rssiCount);
|
||||||
}
|
}
|
||||||
|
|
14
Utils.cpp
14
Utils.cpp
|
@ -144,3 +144,17 @@ void CUtils::bitsToByteLE(const bool* bits, unsigned char& byte)
|
||||||
byte |= bits[6U] ? 0x40U : 0x00U;
|
byte |= bits[6U] ? 0x40U : 0x00U;
|
||||||
byte |= bits[7U] ? 0x80U : 0x00U;
|
byte |= bits[7U] ? 0x80U : 0x00U;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CUtils::removeChar(unsigned char * haystack, char needdle)
|
||||||
|
{
|
||||||
|
unsigned int i = 0;
|
||||||
|
unsigned int j = 0;
|
||||||
|
|
||||||
|
while (haystack[i] != '\0') {
|
||||||
|
if (haystack[i] != needdle)
|
||||||
|
haystack[j++] = haystack[i];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
haystack[j] = '\0';
|
||||||
|
}
|
2
Utils.h
2
Utils.h
|
@ -30,6 +30,8 @@ public:
|
||||||
static void bitsToByteBE(const bool* bits, unsigned char& byte);
|
static void bitsToByteBE(const bool* bits, unsigned char& byte);
|
||||||
static void bitsToByteLE(const bool* bits, unsigned char& byte);
|
static void bitsToByteLE(const bool* bits, unsigned char& byte);
|
||||||
|
|
||||||
|
static void removeChar(unsigned char * haystack, char needdle);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue