diff --git a/DMRSlot.cpp b/DMRSlot.cpp
index 81337ca..1366d78 100644
--- a/DMRSlot.cpp
+++ b/DMRSlot.cpp
@@ -128,6 +128,7 @@ CDMRSlot::~CDMRSlot()
delete[] m_rfEmbeddedData;
delete[] m_netEmbeddedData;
delete[] m_lastFrame;
+ delete[] m_rfTalkerAlias;
}
bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
@@ -333,7 +334,9 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
LogMessage("DMR Slot %u, received RF end of voice transmission, %.1f seconds, BER: %.1f%%, RSSI: -%u/-%u/-%u dBm", m_slotNo, float(m_rfFrames) / 16.667F, float(m_rfErrs * 100U) / float(m_rfBits), m_minRSSI, m_maxRSSI, m_aveRSSI / m_rssiCount);
else
LogMessage("DMR Slot %u, received RF end of voice transmission, %.1f seconds, BER: %.1f%%", m_slotNo, float(m_rfFrames) / 16.667F, float(m_rfErrs * 100U) / float(m_rfBits));
- m_display->writeDMRTA(m_slotNo,NULL," ");
+
+ m_display->writeDMRTA(m_slotNo, NULL, " ");
+
if (m_rfTimeout) {
writeEndRF();
return false;
@@ -619,9 +622,11 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_network->writeTalkerAlias(m_rfLC->getSrcId(), 0U, data);
if (!(m_rfTalkerId & TALKER_ID_HEADER)) {
- if (m_rfTalkerId==TALKER_ID_NONE) memset(m_rfTalkerAlias,0,32U);
+ if (m_rfTalkerId == TALKER_ID_NONE)
+ ::memset(m_rfTalkerAlias, '\0', 32U);
::memcpy(m_rfTalkerAlias, data, 6U);
- m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"R");
+ m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "R");
+
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Header", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -636,9 +641,11 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_network->writeTalkerAlias(m_rfLC->getSrcId(), 1U, data);
if (!(m_rfTalkerId & TALKER_ID_BLOCK1)) {
- if (m_rfTalkerId==TALKER_ID_NONE) memset(m_rfTalkerAlias,0,32U);
- ::memcpy(m_rfTalkerAlias+6U, data, 7U);
- m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"R");
+ if (m_rfTalkerId == TALKER_ID_NONE)
+ ::memset(m_rfTalkerAlias, '\0', 32U);
+ ::memcpy(m_rfTalkerAlias + 6U, data, 7U);
+ m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "R");
+
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 1", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -653,10 +660,11 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_network->writeTalkerAlias(m_rfLC->getSrcId(), 2U, data);
if (!(m_rfTalkerId & TALKER_ID_BLOCK2)) {
- if (m_rfTalkerId==TALKER_ID_NONE) memset(m_rfTalkerAlias,0,32U);
- m_rfTalkerId |= TALKER_ID_BLOCK2;
- ::memcpy(m_rfTalkerAlias+6U+7U, data, 7U);
- m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"R");
+ if (m_rfTalkerId == TALKER_ID_NONE)
+ ::memset(m_rfTalkerAlias, 0, 32U);
+ ::memcpy(m_rfTalkerAlias + 6U + 7U, data, 7U);
+ m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "R");
+
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 2", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -671,9 +679,11 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_network->writeTalkerAlias(m_rfLC->getSrcId(), 3U, data);
if (!(m_rfTalkerId & TALKER_ID_BLOCK3)) {
- if (m_rfTalkerId==TALKER_ID_NONE) ::memset(m_rfTalkerAlias,0,32U);
- ::memcpy(m_rfTalkerAlias+6U+7U+7U, data, 7U);
- m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"R");
+ if (m_rfTalkerId == TALKER_ID_NONE)
+ ::memset(m_rfTalkerAlias, '\0', 32U);
+ ::memcpy(m_rfTalkerAlias + 6U + 7U + 7U, data, 7U);
+ m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "R");
+
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 3", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -1186,7 +1196,7 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
// We've received the voice header and terminator haven't we?
m_netFrames += 2U;
LogMessage("DMR Slot %u, received network end of voice transmission, %.1f seconds, %u%% packet loss, BER: %.1f%%", m_slotNo, float(m_netFrames) / 16.667F, (m_netLost * 100U) / m_netFrames, float(m_netErrs * 100U) / float(m_netBits));
- m_display->writeDMRTA(m_slotNo,NULL," ");
+ m_display->writeDMRTA(m_slotNo, NULL, " ");
writeEndNet();
} else if (dataType == DT_DATA_HEADER) {
if (m_netState == RS_NET_DATA)
@@ -1398,9 +1408,11 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
break;
case FLCO_TALKER_ALIAS_HEADER:
if (!(m_netTalkerId & TALKER_ID_HEADER)) {
- if (!m_netTalkerId) memset(m_rfTalkerAlias,0,32U);
- ::memcpy(m_rfTalkerAlias, data+2U, 7U);
- m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"N");
+ if (!m_netTalkerId)
+ ::memset(m_rfTalkerAlias, '\0', 32U);
+ ::memcpy(m_rfTalkerAlias, data + 2U, 7U);
+ m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "N");
+
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Header", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -1411,9 +1423,11 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
break;
case FLCO_TALKER_ALIAS_BLOCK1:
if (!(m_netTalkerId & TALKER_ID_BLOCK1)) {
- if (!m_netTalkerId) memset(m_rfTalkerAlias,0,32U);
- ::memcpy(m_rfTalkerAlias+7U, data+2U, 7U);
- m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"N");
+ if (!m_netTalkerId)
+ ::memset(m_rfTalkerAlias, '\0', 32U);
+ ::memcpy(m_rfTalkerAlias + 7U, data + 2U, 7U);
+ m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "N");
+
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 1", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -1424,9 +1438,11 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
break;
case FLCO_TALKER_ALIAS_BLOCK2:
if (!(m_netTalkerId & TALKER_ID_BLOCK2)) {
- if (!m_netTalkerId) ::memset(m_rfTalkerAlias,0,32U);
- ::memcpy(m_rfTalkerAlias+7U+7U, data+2U, 7U);
- m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"N");
+ if (!m_netTalkerId)
+ ::memset(m_rfTalkerAlias, '\0', 32U);
+ ::memcpy(m_rfTalkerAlias + 7U + 7U, data + 2U, 7U);
+ m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "N");
+
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 2", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -1437,9 +1453,11 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
break;
case FLCO_TALKER_ALIAS_BLOCK3:
if (!(m_netTalkerId & TALKER_ID_BLOCK3)) {
- if (!m_netTalkerId) memset(m_rfTalkerAlias,0,32U);
- ::memcpy(m_rfTalkerAlias+7U+7U+7U, data+2U, 7U);
- m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias,"N");
+ if (!m_netTalkerId)
+ ::memset(m_rfTalkerAlias, '\0', 32U);
+ ::memcpy(m_rfTalkerAlias + 7U + 7U + 7U, data+2U, 7U);
+ m_display->writeDMRTA(m_slotNo, m_rfTalkerAlias, "N");
+
if (m_dumpTAData) {
::sprintf(text, "DMR Slot %u, Embedded Talker Alias Block 3", m_slotNo);
CUtils::dump(2U, text, data, 9U);
@@ -1619,51 +1637,51 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
void CDMRSlot::logGPSposition(const unsigned char* data)
{
- signed long longitudeI,latitudeI;
- unsigned int errorI;
- float longitude,latitude;
- char errorS[30];
+ unsigned int errorI = (data[2U] & 0x0E) >> 1U;
- errorI=((data[2U]&0x0E) >> 1U);
+ char errorS[30];
switch (errorI) {
- case 0U:
- ::sprintf(errorS, "< 2m");
- break;
- case 1U:
- ::sprintf(errorS, "< 20m");
- break;
- case 2U:
- ::sprintf(errorS, "< 200m");
- break;
- case 3U:
- ::sprintf(errorS, "< 2km");
- break;
- case 4U:
- ::sprintf(errorS, "< 20km");
- break;
- case 5U:
- ::sprintf(errorS, "< 200km");
- break;
- case 6U:
- ::sprintf(errorS, "> 200km");
- break;
- default:
- ::sprintf(errorS, "not known or position invalid");
- break;
+ case 0U:
+ ::strcpy(errorS, "< 2m");
+ break;
+ case 1U:
+ ::strcpy(errorS, "< 20m");
+ break;
+ case 2U:
+ ::strcpy(errorS, "< 200m");
+ break;
+ case 3U:
+ ::strcpy(errorS, "< 2km");
+ break;
+ case 4U:
+ ::strcpy(errorS, "< 20km");
+ break;
+ case 5U:
+ ::strcpy(errorS, "< 200km");
+ break;
+ case 6U:
+ ::strcpy(errorS, "> 200km");
+ break;
+ default:
+ ::strcpy(errorS, "not known or position invalid");
+ break;
}
- longitudeI=(data[3U]<<16U)+(data[4U]<<8U)+(data[5U]);
- if ((data[2]&0x01U)==0x01U) longitudeI=-longitudeI;
+ long longitudeI = (data[3U] << 16) + (data[4U] << 8) + data[5U];
+ if ((data[2U] & 0x01U) == 0x01U)
+ longitudeI = -longitudeI;
- latitudeI=((data[6U]&0x7FU)<<16U)+(data[7U]<<8U)+(data[8U]);
- if ((data[6U]&0x80U)==0x80U) latitudeI=-latitudeI;
+ long latitudeI = ((data[6U] & 0x7FU) << 16) + (data[7U] << 8) + data[8U];
+ if ((data[6U] & 0x80U) == 0x80U)
+ latitudeI = -latitudeI;
- longitude=(float)360/33554432; // 360/2^25 steps
- latitude=(float)180/16777216; // 180/2^24 steps
+ float longitude = 360.0F / 33554432.0F; // 360/2^25 steps
+ float latitude = 180.0F / 16777216.0F; // 180/2^24 steps
- longitude*=longitudeI;
- latitude*=latitudeI;
- LogMessage("GPS position [%08f,%09f] (Position error %s)",latitude,longitude,errorS);
+ longitude *= longitudeI;
+ latitude *= latitudeI;
+
+ LogMessage("GPS position [%08f,%09f] (Position error %s)",latitude,longitude,errorS);
}
void CDMRSlot::clock()
diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp
index 0979ad0..89d2a3e 100644
--- a/MMDVMHost.cpp
+++ b/MMDVMHost.cpp
@@ -1107,10 +1107,18 @@ void CMMDVMHost::createDisplay()
if (displayClock)
LogInfo(" Display UTC: %s", utc ? "yes" : "no");
LogInfo(" Idle Brightness: %u", idleBrightness);
- if (screenLayout==0)
- LogInfo(" Screen Layout: Default (G4KLX)");
- else
- LogInfo(" Screen Layout: %u (ON7LDS)", screenLayout);
+
+ switch (screenLayout) {
+ case 0U:
+ LogInfo(" Screen Layout: G4KLX (Default)");
+ break;
+ case 2U:
+ LogInfo(" Screen Layout: ON7LDS");
+ break;
+ default:
+ LogInfo(" Screen Layout: %u (Unknown)", screenLayout);
+ break;
+ }
if (port == "modem") {
ISerialPort* serial = new CModemSerialPort(m_modem);
diff --git a/MMDVMHost.vcxproj b/MMDVMHost.vcxproj
index caf9d63..5d575e0 100644
--- a/MMDVMHost.vcxproj
+++ b/MMDVMHost.vcxproj
@@ -189,7 +189,7 @@
-
+
@@ -259,7 +259,7 @@
-
+
diff --git a/MMDVMHost.vcxproj.filters b/MMDVMHost.vcxproj.filters
index 9128703..6373a8c 100644
--- a/MMDVMHost.vcxproj.filters
+++ b/MMDVMHost.vcxproj.filters
@@ -221,7 +221,7 @@
Header Files
-
+
Header Files
@@ -415,7 +415,7 @@
Source Files
-
+
Source Files
diff --git a/Makefile b/Makefile
index 7b7c26e..f963f70 100644
--- a/Makefile
+++ b/Makefile
@@ -9,9 +9,9 @@ LDFLAGS = -g
OBJECTS = \
AMBEFEC.o BCH.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedData.o DMRFullLC.o DMRLookup.o DMRLC.o \
DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o \
- Golay24128.o Hamming.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o Network.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o P25LowSpeedData.o \
- P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o TFTSerial.o Thread.o \
- Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
+ Golay24128.o Hamming.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o NetworkInfo.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o \
+ P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o \
+ TFTSerial.o Thread.o Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
all: MMDVMHost
diff --git a/Makefile.Pi b/Makefile.Pi
index 3ac85ad..f7b91cc 100644
--- a/Makefile.Pi
+++ b/Makefile.Pi
@@ -9,9 +9,9 @@ LDFLAGS = -g -L/usr/local/lib
OBJECTS = \
AMBEFEC.o BCH.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedData.o DMRFullLC.o DMRLookup.o DMRLC.o \
DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o \
- Golay24128.o Hamming.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o P25LowSpeedData.o \
- P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o TFTSerial.o Thread.o \
- Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
+ Golay24128.o Hamming.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o NetworkInfo.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o \
+ P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o \
+ TFTSerial.o Thread.o Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
all: MMDVMHost
diff --git a/Makefile.Pi.Adafruit b/Makefile.Pi.Adafruit
index 816f5ad..13caba4 100644
--- a/Makefile.Pi.Adafruit
+++ b/Makefile.Pi.Adafruit
@@ -9,9 +9,9 @@ LDFLAGS = -g -L/usr/local/lib
OBJECTS = \
AMBEFEC.o BCH.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedData.o DMRFullLC.o DMRLookup.o DMRLC.o \
DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o \
- Golay24128.o Hamming.o HD44780.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o \
- P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o \
- TFTSerial.o Thread.o Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
+ Golay24128.o Hamming.o HD44780.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o NetworkInfo.o Nextion.o NullDisplay.o P25Audio.o P25Control.o \
+ P25Data.o P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o \
+ Sync.o TFTSerial.o Thread.o Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
all: MMDVMHost
diff --git a/Makefile.Pi.HD44780 b/Makefile.Pi.HD44780
index 13b5688..3720b25 100644
--- a/Makefile.Pi.HD44780
+++ b/Makefile.Pi.HD44780
@@ -9,9 +9,9 @@ LDFLAGS = -g -L/usr/local/lib
OBJECTS = \
AMBEFEC.o BCH.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedData.o DMRFullLC.o DMRLookup.o DMRLC.o \
DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o \
- Golay24128.o Hamming.o HD44780.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o P25LowSpeedData.o \
- P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o TFTSerial.o Thread.o \
- Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
+ Golay24128.o Hamming.o HD44780.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o NetworkInfo.o Nextion.o NullDisplay.o P25Audio.o P25Control.o \
+ P25Data.o P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o \
+ Sync.o TFTSerial.o Thread.o Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
all: MMDVMHost
diff --git a/Makefile.Pi.OLED b/Makefile.Pi.OLED
index 000de85..bb03e91 100644
--- a/Makefile.Pi.OLED
+++ b/Makefile.Pi.OLED
@@ -9,9 +9,9 @@ LDFLAGS = -g -L/usr/local/lib
OBJECTS = \
AMBEFEC.o BCH.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedData.o DMRFullLC.o DMRLookup.o DMRLC.o \
DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o \
- Golay24128.o Hamming.o OLED.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o P25LowSpeedData.o \
- P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o TFTSerial.o Thread.o \
- Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
+ Golay24128.o Hamming.o OLED.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o NetworkInfo.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o \
+ P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o \
+ TFTSerial.o Thread.o Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
all: MMDVMHost
diff --git a/Makefile.Pi.PCF8574 b/Makefile.Pi.PCF8574
index 9164dab..b9104f4 100644
--- a/Makefile.Pi.PCF8574
+++ b/Makefile.Pi.PCF8574
@@ -9,9 +9,9 @@ LDFLAGS = -g -L/usr/local/lib
OBJECTS = \
AMBEFEC.o BCH.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedData.o DMRFullLC.o DMRLookup.o DMRLC.o \
DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o \
- Golay24128.o Hamming.o HD44780.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o P25LowSpeedData.o \
- P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o TFTSerial.o Thread.o \
- Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
+ Golay24128.o Hamming.o HD44780.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o NetworkInfo.o Nextion.o NullDisplay.o P25Audio.o P25Control.o \
+ P25Data.o P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o \
+ Sync.o TFTSerial.o Thread.o Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
all: MMDVMHost
diff --git a/Makefile.Solaris b/Makefile.Solaris
index 7136c1a..dbfc33f 100644
--- a/Makefile.Solaris
+++ b/Makefile.Solaris
@@ -9,9 +9,9 @@ LDFLAGS = -g
OBJECTS = \
AMBEFEC.o BCH.o BPTC19696.o Conf.o CRC.o Display.o DMRControl.o DMRCSBK.o DMRData.o DMRDataHeader.o DMREMB.o DMREmbeddedData.o DMRFullLC.o DMRLookup.o DMRLC.o \
DMRNetwork.o DMRShortLC.o DMRSlot.o DMRSlotType.o DMRAccessControl.o DMRTrellis.o DStarControl.o DStarHeader.o DStarNetwork.o DStarSlowData.o Golay2087.o \
- Golay24128.o Hamming.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o P25LowSpeedData.o \
- P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o TFTSerial.o Thread.o \
- Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
+ Golay24128.o Hamming.o LCDproc.o Log.o MMDVMHost.o Modem.o ModemSerialPort.o Mutex.o NetworkInfo.o Nextion.o NullDisplay.o P25Audio.o P25Control.o P25Data.o \
+ P25LowSpeedData.o P25Network.o P25NID.o P25Utils.o QR1676.o RS129.o RS241213.o RSSIInterpolator.o SerialController.o SerialPort.o SHA256.o StopWatch.o Sync.o \
+ TFTSerial.o Thread.o Timer.o UDPSocket.o UMP.o Utils.o YSFControl.o YSFConvolution.o YSFFICH.o YSFNetwork.o YSFPayload.o
all: MMDVMHost
diff --git a/Network.cpp b/Network.cpp
deleted file mode 100644
index 084492c..0000000
--- a/Network.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (C) 2017 by Lieven De Samblanx ON7LDS
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "Network.h"
-#include "Log.h"
-
-#include
-#include
-#include
-#include
-#include
-
-#include
-#if !defined(_WIN32) && !defined(_WIN64)
-#include
-#include
-#include
-#include
-#else
-#include
-#include
-#pragma comment(lib, "iphlpapi.lib")
-#ifndef NO_ERROR
-#define NO_ERROR 0
-#endif
-#ifndef ERROR_BUFFER_OVERFLOW
-#define ERROR_BUFFER_OVERFLOW 111
-#endif
-#ifndef ERROR_INSUFFICIENT_BUFFER
-#define ERROR_INSUFFICIENT_BUFFER 122
-#endif
-#endif
-
-void CNetworkInfo::getNetworkInterface(unsigned char* info)
-{
- LogInfo("Interfaces Info");
- ::strcpy((char*)info, "(address unknown)");
-
-
-#if !defined(_WIN32) && !defined(_WIN64)
-
-#define IFLISTSIZ 25
-
- struct ifaddrs *ifaddr, *ifa;
- int family, s, n, ifnr;
- char host[NI_MAXHOST];
- char interfacelist[IFLISTSIZ][50+INET6_ADDRSTRLEN];
- char *dflt, *p;
- FILE *f;
- char line[100U];
-
- dflt=NULL;
- f = fopen("/proc/net/route" , "r");
- while(fgets(line , 100U , f)) {
- dflt = strtok(line , " \t");
- p = strtok(NULL , " \t");
- if(dflt!=NULL && p!=NULL) {
- if(strcmp(p , "00000000") == 0) { break; }
- }
- }
- fclose(f);
-
-
- for(n=0;nifa_next, n++) {
- if (ifa->ifa_addr == NULL) continue;
- family = ifa->ifa_addr->sa_family;
- if (family == AF_INET || family == AF_INET6) {
- s = getnameinfo(ifa->ifa_addr,(family == AF_INET) ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6), host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
- if (s != 0) {
- LogError("getnameinfo() failed: %s\n", gai_strerror(s));
- continue;
- }
- if (family == AF_INET) {
- sprintf(interfacelist[ifnr], "%s: %s", ifa->ifa_name,host);
- LogInfo(" IPv4: %s", interfacelist[ifnr] );
- } else {
- sprintf(interfacelist[ifnr], "%s: %s", ifa->ifa_name,host);
- LogInfo(" IPv6: %s", interfacelist[ifnr] );
- }
- ifnr++;
- }
- }
- freeifaddrs(ifaddr);
-
- LogInfo(" Default interface is : %s" , dflt);
-
- for(n=0;n<(ifnr);n++) {
- p=strchr(interfacelist[n],'%');
- if (p!=NULL) *p=0;
- if(strstr(interfacelist[n], dflt) != 0) {
- ::strcpy((char*)info,interfacelist[n]);
- break;
- }
- }
- LogInfo(" IP to show: %s", info );
- }
-#else
- PMIB_IPFORWARDTABLE pIpForwardTable;
- DWORD dwSize = 0;
- DWORD dwRetVal = 0;
- int i, ifnr;
-
- pIpForwardTable = (MIB_IPFORWARDTABLE *)malloc(sizeof(MIB_IPFORWARDTABLE));
- if (pIpForwardTable == NULL) {
- LogError("Error allocating memory");
- return;
- }
- if (GetIpForwardTable(pIpForwardTable, &dwSize, 0) == ERROR_INSUFFICIENT_BUFFER) {
- free(pIpForwardTable);
- pIpForwardTable = (MIB_IPFORWARDTABLE *)malloc(dwSize);
- if (pIpForwardTable == NULL) {
- LogError("Error allocating memory");
- return;
- }
- }
- if ((dwRetVal = GetIpForwardTable(pIpForwardTable, &dwSize, 0)) == NO_ERROR) {
- for (i = 0; i < (int)pIpForwardTable->dwNumEntries; i++) {
- if (pIpForwardTable->table[i].dwForwardDest == 0) break;
- }
- ifnr = pIpForwardTable->table[i].dwForwardIfIndex;
- free(pIpForwardTable);
-
- PIP_ADAPTER_INFO pAdapterInfo;
- pAdapterInfo = (IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));
- ULONG buflen = sizeof(IP_ADAPTER_INFO);
-
- if (GetAdaptersInfo(pAdapterInfo, &buflen) == ERROR_BUFFER_OVERFLOW) {
- free(pAdapterInfo);
- pAdapterInfo = (IP_ADAPTER_INFO *)malloc(buflen);
- if (pAdapterInfo == NULL) {
- LogError("Error allocating memory");
- return;
- }
- }
- if (GetAdaptersInfo(pAdapterInfo, &buflen) == NO_ERROR) {
- PIP_ADAPTER_INFO pAdapter = pAdapterInfo;
- while (pAdapter) {
- LogInfo(" IP : %s", pAdapter->IpAddressList.IpAddress.String);
- if (pAdapter->Index == ifnr) {
- ::strcpy((char*)info, pAdapter->IpAddressList.IpAddress.String);
- }
- pAdapter = pAdapter->Next;
- }
- LogInfo(" IP to show: %s", info);
-
- }
- else {
- LogError("Call to GetAdaptersInfo failed.");
- }
- return;
- }
- else {
- LogError("GetIpForwardTable failed.");
- free(pIpForwardTable);
- return;
- }
-#endif
-}
diff --git a/NetworkInfo.cpp b/NetworkInfo.cpp
new file mode 100644
index 0000000..615bef1
--- /dev/null
+++ b/NetworkInfo.cpp
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2017 by Lieven De Samblanx ON7LDS
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include "NetworkInfo.h"
+#include "Log.h"
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+#if !defined(_WIN32) && !defined(_WIN64)
+#include
+#include
+#include
+#include
+#else
+#include
+#include
+#pragma comment(lib, "iphlpapi.lib")
+#ifndef NO_ERROR
+#define NO_ERROR 0
+#endif
+#ifndef ERROR_BUFFER_OVERFLOW
+#define ERROR_BUFFER_OVERFLOW 111
+#endif
+#ifndef ERROR_INSUFFICIENT_BUFFER
+#define ERROR_INSUFFICIENT_BUFFER 122
+#endif
+#endif
+
+CNetworkInfo::CNetworkInfo()
+{
+}
+
+CNetworkInfo::~CNetworkInfo()
+{
+}
+
+void CNetworkInfo::getNetworkInterface(unsigned char* info)
+{
+ LogInfo("Interfaces Info");
+
+ ::strcpy((char*)info, "(address unknown)");
+
+#if !defined(_WIN32) && !defined(_WIN64)
+ const unsigned int IFLISTSIZ = 25U;
+
+ FILE* fp = ::fopen("/proc/net/route" , "r");
+ if (fp == NULL) {
+ LogError("Unabled to open /proc/route");
+ return;
+ }
+
+ char line[100U];
+ while (::fgets(line, 100U, fp)) {
+ char* dflt = strtok(line , " \t");
+ char* p = strtok(NULL , " \t");
+
+ if (dflt != NULL && p != NULL) {
+ if (::strcmp(p , "00000000") == 0)
+ break;
+ }
+ }
+
+ ::fclose(fp);
+
+ char interfacelist[IFLISTSIZ][50+INET6_ADDRSTRLEN];
+ for (unsigned int n = 0U; n < IFLISTSIZ; n++)
+ interfacelist[n][0] = 0;
+
+ struct ifaddrs* ifaddr;
+ if (::getifaddrs(&ifaddr) == -1) {
+ LogError("getifaddrs failure");
+ return;
+ }
+
+ unsigned int ifnr = 0U;
+ for (struct ifaddrs* ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) {
+ if (ifa->ifa_addr == NULL)
+ continue;
+
+ int family = ifa->ifa_addr->sa_family;
+ if (family == AF_INET || family == AF_INET6) {
+ char host[NI_MAXHOST];
+ int s = ::getnameinfo(ifa->ifa_addr, family == AF_INET ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6), host, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
+ if (s != 0) {
+ LogError("getnameinfo() failed: %s\n", gai_strerror(s));
+ continue;
+ }
+
+ if (family == AF_INET) {
+ ::sprintf(interfacelist[ifnr], "%s: %s", ifa->ifa_name, host);
+ LogInfo(" IPv4: %s", interfacelist[ifnr]);
+ } else {
+ ::sprintf(interfacelist[ifnr], "%s: %s", ifa->ifa_name, host);
+ LogInfo(" IPv6: %s", interfacelist[ifnr]);
+ }
+
+ ifnr++;
+ }
+ }
+
+ ::freeifaddrs(ifaddr);
+
+ LogInfo(" Default interface is : %s" , dflt);
+
+ for (unsigned int n = 0U; n < ifnr; n++) {
+ char* p = ::strchr(interfacelist[n], '%');
+ if (p != NULL)
+ *p = 0;
+
+ if (::strstr(interfacelist[n], dflt) != 0) {
+ ::strcpy((char*)info, interfacelist[n]);
+ break;
+ }
+ }
+
+ LogInfo(" IP to show: %s", info );
+#else
+ PMIB_IPFORWARDTABLE pIpForwardTable = (MIB_IPFORWARDTABLE *)::malloc(sizeof(MIB_IPFORWARDTABLE));
+ if (pIpForwardTable == NULL) {
+ LogError("Error allocating memory");
+ return;
+ }
+
+ DWORD dwSize = 0U;
+ if (::GetIpForwardTable(pIpForwardTable, &dwSize, 0) == ERROR_INSUFFICIENT_BUFFER) {
+ ::free(pIpForwardTable);
+ pIpForwardTable = (MIB_IPFORWARDTABLE *)::malloc(dwSize);
+ if (pIpForwardTable == NULL) {
+ LogError("Error allocating memory");
+ return;
+ }
+ }
+
+ DWORD ret = ::GetIpForwardTable(pIpForwardTable, &dwSize, 0);
+ if (ret != NO_ERROR) {
+ ::free(pIpForwardTable);
+ LogError("GetIpForwardTable failed.");
+ return;
+ }
+
+ DWORD found = 999U;
+ for (DWORD i = 0U; i < pIpForwardTable->dwNumEntries; i++) {
+ if (pIpForwardTable->table[i].dwForwardDest == 0U) {
+ found = i;
+ break;
+ }
+ }
+
+ if (found == 999U) {
+ ::free(pIpForwardTable);
+ LogError("Unable to find the default destination in the routing table.");
+ return;
+ }
+
+ DWORD ifnr = pIpForwardTable->table[found].dwForwardIfIndex;
+ ::free(pIpForwardTable);
+
+ PIP_ADAPTER_INFO pAdapterInfo = (IP_ADAPTER_INFO *)::malloc(sizeof(IP_ADAPTER_INFO));
+ if (pAdapterInfo == NULL) {
+ LogError("Error allocating memory");
+ return;
+ }
+
+ ULONG buflen = sizeof(IP_ADAPTER_INFO);
+ if (::GetAdaptersInfo(pAdapterInfo, &buflen) == ERROR_BUFFER_OVERFLOW) {
+ ::free(pAdapterInfo);
+ pAdapterInfo = (IP_ADAPTER_INFO *)::malloc(buflen);
+ if (pAdapterInfo == NULL) {
+ LogError("Error allocating memory");
+ return;
+ }
+ }
+
+ if (::GetAdaptersInfo(pAdapterInfo, &buflen) != NO_ERROR) {
+ ::free(pAdapterInfo);
+ LogError("Call to GetAdaptersInfo failed.");
+ return;
+ }
+
+ PIP_ADAPTER_INFO pAdapter = pAdapterInfo;
+ while (pAdapter != NULL) {
+ LogInfo(" IP : %s", pAdapter->IpAddressList.IpAddress.String);
+ if (pAdapter->Index == ifnr)
+ ::strcpy((char*)info, pAdapter->IpAddressList.IpAddress.String);
+
+ pAdapter = pAdapter->Next;
+ }
+
+ ::free(pAdapterInfo);
+
+ LogInfo(" IP to show: %s", info);
+#endif
+}
diff --git a/Network.h b/NetworkInfo.h
similarity index 90%
rename from Network.h
rename to NetworkInfo.h
index 0d639b6..2febcde 100644
--- a/Network.h
+++ b/NetworkInfo.h
@@ -16,16 +16,17 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#if !defined(NETWORK_H)
-#define NETWORK_H
-
+#if !defined(NETWORKINFO_H)
+#define NETWORKINFO_H
class CNetworkInfo {
public:
+ CNetworkInfo();
+ ~CNetworkInfo();
void getNetworkInterface(unsigned char* info);
-
+private:
};
#endif
diff --git a/Nextion.cpp b/Nextion.cpp
index f4a3f63..8ada02f 100644
--- a/Nextion.cpp
+++ b/Nextion.cpp
@@ -16,9 +16,9 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include "NetworkInfo.h"
#include "Nextion.h"
#include "Log.h"
-#include "Network.h"
#include
#include
@@ -243,16 +243,18 @@ void CNextion::writeDMRInt(unsigned int slotNo, const std::string& src, bool gro
sendCommand("page DMR");
if (slotNo == 1U) {
- if (m_screenLayout==2U) {
+ if (m_screenLayout == 2U) {
sendCommand("t2.pco=0");
sendCommand("t2.font=4");
}
+
sendCommand("t2.txt=\"2 Listening\"");
} else {
- if (m_screenLayout==2U) {
+ if (m_screenLayout == 2U) {
sendCommand("t0.pco=0");
sendCommand("t0.font=4");
}
+
sendCommand("t0.txt=\"1 Listening\"");
}
}
@@ -263,20 +265,24 @@ void CNextion::writeDMRInt(unsigned int slotNo, const std::string& src, bool gro
if (slotNo == 1U) {
::sprintf(text, "t0.txt=\"1 %s %s\"", type, src.c_str());
- if (m_screenLayout==2U) {
+
+ if (m_screenLayout == 2U) {
sendCommand("t0.pco=0");
sendCommand("t0.font=4");
}
+
sendCommand(text);
::sprintf(text, "t1.txt=\"%s%s\"", group ? "TG" : "", dst.c_str());
sendCommand(text);
} else {
::sprintf(text, "t2.txt=\"2 %s %s\"", type, src.c_str());
- if (m_screenLayout==2U) {
+
+ if (m_screenLayout == 2U) {
sendCommand("t2.pco=0");
sendCommand("t2.font=4");
}
+
sendCommand(text);
::sprintf(text, "t3.txt=\"%s%s\"", group ? "TG" : "", dst.c_str());
@@ -339,40 +345,49 @@ void CNextion::writeDMRRSSIInt(unsigned int slotNo, unsigned char rssi)
}
}
-
-void CNextion::writeDMRTAInt(unsigned int slotNo, unsigned char* talkerAlias, const char* type)
+void CNextion::writeDMRTAInt(unsigned int slotNo, unsigned char* talkerAlias, const char* type)
{
- char text[40U];
+ if (m_screenLayout < 2U)
+ return;
- if (m_screenLayout<2U) return;
-
- if (type[0]==' ') {
- if (slotNo == 1U) {
- sendCommand("t0.pco=33808");
- } else {
- sendCommand("t2.pco=33808");
- }
- return;
+ if (type[0] == ' ') {
+ if (slotNo == 1U)
+ sendCommand("t0.pco=33808");
+ else
+ sendCommand("t2.pco=33808");
+ return;
}
- if (slotNo == 1U) {
- ::sprintf(text, "t0.txt=\"1 %s %s\"",type,talkerAlias);
- if (m_screenLayout==2U) {
- if (::strlen((char*)talkerAlias)>(16U-4U)) sendCommand("t0.font=3");
- if (::strlen((char*)talkerAlias)>(20U-4U)) sendCommand("t0.font=2");
- if (::strlen((char*)talkerAlias)>(24U-4U)) sendCommand("t0.font=1");
- }
- sendCommand("t0.pco=1024");
- sendCommand(text);
- } else {
- ::sprintf(text, "t2.txt=\"2 %s %s\"",type,talkerAlias);
- if (m_screenLayout==2U) {
- if (::strlen((char*)talkerAlias)>(16U-4U)) sendCommand("t2.font=3");
- if (::strlen((char*)talkerAlias)>(20U-4U)) sendCommand("t2.font=2");
- if (::strlen((char*)talkerAlias)>(24U-4U)) sendCommand("t2.font=1");
- }
- sendCommand("t2.pco=1024");
- sendCommand(text);
+ if (slotNo == 1U) {
+ char text[40U];
+ ::sprintf(text, "t0.txt=\"1 %s %s\"", type, talkerAlias);
+
+ if (m_screenLayout == 2U) {
+ if (::strlen((char*)talkerAlias) > (16U-4U))
+ sendCommand("t0.font=3");
+ if (::strlen((char*)talkerAlias) > (20U-4U))
+ sendCommand("t0.font=2");
+ if (::strlen((char*)talkerAlias) > (24U-4U))
+ sendCommand("t0.font=1");
+ }
+
+ sendCommand("t0.pco=1024");
+ sendCommand(text);
+ } else {
+ char text[40U];
+ ::sprintf(text, "t2.txt=\"2 %s %s\"", type, talkerAlias);
+
+ if (m_screenLayout == 2U) {
+ if (::strlen((char*)talkerAlias) > (16U-4U))
+ sendCommand("t2.font=3");
+ if (::strlen((char*)talkerAlias) > (20U-4U))
+ sendCommand("t2.font=2");
+ if (::strlen((char*)talkerAlias) > (24U-4U))
+ sendCommand("t2.font=1");
+ }
+
+ sendCommand("t2.pco=1024");
+ sendCommand(text);
}
}
@@ -423,19 +438,23 @@ void CNextion::clearDMRInt(unsigned int slotNo)
{
if (slotNo == 1U) {
sendCommand("t0.txt=\"1 Listening\"");
- if (m_screenLayout==2U) {
+
+ if (m_screenLayout == 2U) {
sendCommand("t0.pco=0");
sendCommand("t0.font=4");
}
+
sendCommand("t1.txt=\"\"");
sendCommand("t4.txt=\"\"");
sendCommand("t6.txt=\"\"");
} else {
sendCommand("t2.txt=\"2 Listening\"");
- if (m_screenLayout==2U) {
+
+ if (m_screenLayout == 2U) {
sendCommand("t2.pco=0");
sendCommand("t2.font=4");
}
+
sendCommand("t3.txt=\"\"");
sendCommand("t5.txt=\"\"");
sendCommand("t7.txt=\"\"");