diff --git a/CASTInfo.cpp b/CASTInfo.cpp index 76d8949..1b9f8c2 100644 --- a/CASTInfo.cpp +++ b/CASTInfo.cpp @@ -103,7 +103,7 @@ void CCASTInfo::clearDMRInt(unsigned int slotNo) void CCASTInfo::writeFusionInt(const char* source, const char* dest, unsigned char dgid, const char* type, const char* origin) { if (m_modem != NULL) - m_modem->writeYSFInfo(source, dest, type, origin); + m_modem->writeYSFInfo(source, dest, dgid, type, origin); } void CCASTInfo::clearFusionInt() diff --git a/HD44780.cpp b/HD44780.cpp index 7a02d41..3e4e638 100644 --- a/HD44780.cpp +++ b/HD44780.cpp @@ -772,7 +772,7 @@ void CHD44780::writeFusionInt(const char* source, const char* dest, unsigned cha ::lcdPosition(m_fd, 0, 1); ::lcdPrintf(m_fd, "%.*s", m_cols, m_buffer1); - ::sprintf(m_buffer1, "%.10s", dest); + ::sprintf(m_buffer1, "DG-ID %u", dgid); ::lcdPosition(m_fd, 0, 2); ::lcdPrintf(m_fd, "%.*s", m_cols, m_buffer1); } else if (m_rows == 4U && m_cols == 20U) { @@ -781,31 +781,31 @@ void CHD44780::writeFusionInt(const char* source, const char* dest, unsigned cha ::lcdPosition(m_fd, 0, 1); ::lcdPrintf(m_fd, "%.*s", m_cols, m_buffer1); - ::sprintf(m_buffer1, "%.10s", dest); + ::sprintf(m_buffer1, "DG-ID %u", dgid); ::lcdPosition(m_fd, 0, 2); ::lcdPrintf(m_fd, "%.*s", m_cols, m_buffer1); } else if (m_rows == 2 && m_cols == 40U) { char m_buffer1[40U]; - ::sprintf(m_buffer1, "%.10s > %.10s", source, dest); + ::sprintf(m_buffer1, "%.10s > DG-ID %u", source, dgid); ::lcdPosition(m_fd, 0, 1); ::lcdPrintf(m_fd, "%.*s", m_cols, m_buffer1); } m_dmr = false; - m_rssiCount1 = 0U; + m_rssiCount1 = 0U; } void CHD44780::writeFusionRSSIInt(unsigned char rssi) { - if (m_rssiCount1 == 0U && m_rows > 2) { + if (m_rssiCount1 == 0U && m_rows > 2) { ::lcdPosition(m_fd, 0, 3); ::lcdPrintf(m_fd, "-%3udBm", rssi); - } + } - m_rssiCount1++; - if (m_rssiCount1 >= YSF_RSSI_COUNT) - m_rssiCount1 = 0U; + m_rssiCount1++; + if (m_rssiCount1 >= YSF_RSSI_COUNT) + m_rssiCount1 = 0U; } void CHD44780::clearFusionInt() @@ -813,7 +813,6 @@ void CHD44780::clearFusionInt() #ifdef ADAFRUIT_DISPLAY adafruitLCDColour(AC_PURPLE); #endif - m_clockDisplayTimer.stop(); // Stop the clock display if (m_rows == 2U && m_cols == 16U) { diff --git a/LCDproc.cpp b/LCDproc.cpp index 84c2712..c043813 100644 --- a/LCDproc.cpp +++ b/LCDproc.cpp @@ -426,10 +426,10 @@ void CLCDproc::writeFusionInt(const char* source, const char* dest, unsigned cha socketPrintf(m_socketfd, "widget_set YSF Mode 1 1 \"System Fusion\""); if (m_rows == 2U) { - socketPrintf(m_socketfd, "widget_set YSF Line2 1 2 15 2 h 3 \"%.10s > %s%u\"", source, dest); + socketPrintf(m_socketfd, "widget_set YSF Line2 1 2 15 2 h 3 \"%.10s > DG-ID %u\"", source, dgid); } else { socketPrintf(m_socketfd, "widget_set YSF Line2 1 2 15 2 h 3 \"%.10s >\"", source); - socketPrintf(m_socketfd, "widget_set YSF Line3 1 3 15 3 h 3 \"%s%u\"", dest); + socketPrintf(m_socketfd, "widget_set YSF Line3 1 3 15 3 h 3 \"DG-ID %u\"", dgid); socketPrintf(m_socketfd, "output 64"); // Set LED3 color red } @@ -439,13 +439,12 @@ void CLCDproc::writeFusionInt(const char* source, const char* dest, unsigned cha void CLCDproc::writeFusionRSSIInt(unsigned char rssi) { - if (m_rssiCount1 == 0U) { + if (m_rssiCount1 == 0U) socketPrintf(m_socketfd, "widget_set YSF Line4 1 4 %u 4 h 3 \"-%3udBm\"", m_cols - 1, rssi); - } m_rssiCount1++; - if (m_rssiCount1 >= YSF_RSSI_COUNT) - m_rssiCount1 = 0U; + if (m_rssiCount1 >= YSF_RSSI_COUNT) + m_rssiCount1 = 0U; } void CLCDproc::clearFusionInt() diff --git a/Modem.cpp b/Modem.cpp index 75c65dc..07e589a 100644 --- a/Modem.cpp +++ b/Modem.cpp @@ -21,3 +21,4 @@ IModem::~IModem() { } + diff --git a/Modem.h b/Modem.h index bbddc4d..dcad798 100644 --- a/Modem.h +++ b/Modem.h @@ -88,7 +88,7 @@ public: virtual bool writeDStarInfo(const char* my1, const char* my2, const char* your, const char* type, const char* reflector) = 0; virtual bool writeDMRInfo(unsigned int slotNo, const std::string& src, bool group, const std::string& dst, const char* type) = 0; - virtual bool writeYSFInfo(const char* source, const char* dest, const char* type, const char* origin) = 0; + virtual bool writeYSFInfo(const char* source, const char* dest, unsigned char dgid, const char* type, const char* origin) = 0; virtual bool writeP25Info(const char* source, bool group, unsigned int dest, const char* type) = 0; virtual bool writeNXDNInfo(const char* source, bool group, unsigned int dest, const char* type) = 0; virtual bool writePOCSAGInfo(unsigned int ric, const std::string& message) = 0; diff --git a/Nextion.cpp b/Nextion.cpp index 649d64b..44f12ad 100644 --- a/Nextion.cpp +++ b/Nextion.cpp @@ -625,9 +625,10 @@ void CNextion::writeFusionInt(const char* source, const char* dest, unsigned cha sendCommand(text); sendCommandAction(82U); - ::sprintf(text, "t1.txt=\"%.10s\"", dest); + ::sprintf(text, "t1.txt=\"DG-ID %u\"", dgid); sendCommand(text); sendCommandAction(83U); + if (::strcmp(origin, " ") != 0) { ::sprintf(text, "t2.txt=\"at %.10s\"", origin); sendCommand(text); diff --git a/NullModem.h b/NullModem.h index a99424a..5332751 100644 --- a/NullModem.h +++ b/NullModem.h @@ -90,7 +90,7 @@ public: virtual bool writeConfig() { return true; }; virtual bool writeDStarInfo(const char* my1, const char* my2, const char* your, const char* type, const char* reflector) { return true; }; virtual bool writeDMRInfo(unsigned int slotNo, const std::string& src, bool group, const std::string& dst, const char* type) { return true; }; - virtual bool writeYSFInfo(const char* source, const char* dest, const char* type, const char* origin) { return true; }; + virtual bool writeYSFInfo(const char* source, const char* dest, unsigned char dgid, const char* type, const char* origin) { return true; }; virtual bool writeP25Info(const char* source, bool group, unsigned int dest, const char* type) { return true; }; virtual bool writeNXDNInfo(const char* source, bool group, unsigned int dest, const char* type) { return true; }; virtual bool writePOCSAGInfo(unsigned int ric, const std::string& message) { return true; }; diff --git a/OLED.cpp b/OLED.cpp index 02afc2d..575eda3 100644 --- a/OLED.cpp +++ b/OLED.cpp @@ -436,7 +436,6 @@ void COLED::clearDMRInt(unsigned int slotNo) void COLED::writeFusionInt(const char* source, const char* dest, const char* type, const char* origin) { - m_mode = MODE_YSF; m_display.clearDisplay(); @@ -446,11 +445,11 @@ void COLED::writeFusionInt(const char* source, const char* dest, const char* typ m_display.printf("%s %.10s", type, source); m_display.setCursor(0,OLED_LINE5); - m_display.printf(" %.10s", dest); + m_display.printf(" DG-ID %u", dgid); OLED_statusbar(); - m_display.display(); + m_display.display(); } void COLED::clearFusionInt() diff --git a/SerialModem.cpp b/SerialModem.cpp index cc0416d..370d5aa 100644 --- a/SerialModem.cpp +++ b/SerialModem.cpp @@ -1516,7 +1516,7 @@ bool CSerialModem::writeDMRInfo(unsigned int slotNo, const std::string& src, boo return m_serial->write(buffer, 47U) != 47; } -bool CSerialModem::writeYSFInfo(const char* source, const char* dest, const char* type, const char* origin) +bool CSerialModem::writeYSFInfo(const char* source, const char* dest, unsigned char dgid, const char* type, const char* origin) { assert(m_serial != NULL); assert(source != NULL); @@ -1524,10 +1524,10 @@ bool CSerialModem::writeYSFInfo(const char* source, const char* dest, const char assert(type != NULL); assert(origin != NULL); - unsigned char buffer[50U]; + unsigned char buffer[40U]; buffer[0U] = MMDVM_FRAME_START; - buffer[1U] = 35U; + buffer[1U] = 36U; buffer[2U] = MMDVM_QSO_INFO; buffer[3U] = MODE_YSF; @@ -1539,7 +1539,9 @@ bool CSerialModem::writeYSFInfo(const char* source, const char* dest, const char ::memcpy(buffer + 25U, origin, YSF_CALLSIGN_LENGTH); - return m_serial->write(buffer, 35U) != 35; + buffer[35U] = dgid; + + return m_serial->write(buffer, 36U) != 36; } bool CSerialModem::writeP25Info(const char* source, bool group, unsigned int dest, const char* type) diff --git a/SerialModem.h b/SerialModem.h index 223774b..551eb0a 100644 --- a/SerialModem.h +++ b/SerialModem.h @@ -108,7 +108,7 @@ public: virtual bool writeDStarInfo(const char* my1, const char* my2, const char* your, const char* type, const char* reflector); virtual bool writeDMRInfo(unsigned int slotNo, const std::string& src, bool group, const std::string& dst, const char* type); - virtual bool writeYSFInfo(const char* source, const char* dest, const char* type, const char* origin); + virtual bool writeYSFInfo(const char* source, const char* dest, unsigned char dgid, const char* type, const char* origin); virtual bool writeP25Info(const char* source, bool group, unsigned int dest, const char* type); virtual bool writeNXDNInfo(const char* source, bool group, unsigned int dest, const char* type); virtual bool writePOCSAGInfo(unsigned int ric, const std::string& message); diff --git a/TFTSerial.cpp b/TFTSerial.cpp index a59051c..dab532e 100644 --- a/TFTSerial.cpp +++ b/TFTSerial.cpp @@ -316,7 +316,7 @@ void CTFTSerial::writeFusionInt(const char* source, const char* dest, unsigned c gotoPosPixel(5U, 70U); displayText(text); - ::sprintf(text, " %.10s", dest); + ::sprintf(text, " DG-ID %u", dgid); gotoPosPixel(5U, 90U); displayText(text); diff --git a/TFTSurenoo.cpp b/TFTSurenoo.cpp index 62c0fac..fc61ca9 100644 --- a/TFTSurenoo.cpp +++ b/TFTSurenoo.cpp @@ -283,7 +283,7 @@ void CTFTSurenoo::writeFusionInt(const char* source, const char* dest, unsigned ::snprintf(m_temp, sizeof(m_temp), "%s %s", type, source); setStatusLine(statusLineNo(0), m_temp); - ::snprintf(m_temp, sizeof(m_temp), "%s", dest); + ::snprintf(m_temp, sizeof(m_temp), "DG-ID %u", dgid); setStatusLine(statusLineNo(1), m_temp); if (::strcmp(origin, " ") != 0) diff --git a/YSFControl.cpp b/YSFControl.cpp index a296aca..408b819 100644 --- a/YSFControl.cpp +++ b/YSFControl.cpp @@ -212,7 +212,7 @@ bool CYSFControl::processVWData(bool valid, unsigned char *data) if (m_selfOnly) { bool ret = checkCallsign(m_rfSource); if (!ret) { - LogMessage("YSF, invalid access attempt from %10.10s (DG-ID: %u)", m_rfSource, dgid); + LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid); m_rfState = RS_RF_REJECTED; return false; } @@ -238,7 +238,7 @@ bool CYSFControl::processVWData(bool valid, unsigned char *data) openFile(); #endif m_display->writeFusion((char*)m_rfSource, (char*)m_rfDest, dgid, "R", " "); - LogMessage("YSF, received RF header from %10.10s to %10.10s (DG-ID: %u)", m_rfSource, m_rfDest, dgid); + LogMessage("YSF, received RF header from %10.10s to DG-ID %u", m_rfSource, dgid); CSync::addYSFSync(data + 2U); @@ -299,9 +299,9 @@ bool CYSFControl::processVWData(bool valid, unsigned char *data) m_rfFrames++; if (m_rssi != 0U) - LogMessage("YSF, received RF end of transmission from %10.10s to %10.10s (DG-ID: %u), %.1f seconds, BER: %.1f%%, RSSI: -%u/-%u/-%u dBm", m_rfSource, m_rfDest, dgid, float(m_rfFrames) / 10.0F, float(m_rfErrs * 100U) / float(m_rfBits), m_minRSSI, m_maxRSSI, m_aveRSSI / m_rssiCount); + LogMessage("YSF, received RF end of transmission from %10.10s to DG-ID %u, %.1f seconds, BER: %.1f%%, RSSI: -%u/-%u/-%u dBm", m_rfSource, dgid, float(m_rfFrames) / 10.0F, float(m_rfErrs * 100U) / float(m_rfBits), m_minRSSI, m_maxRSSI, m_aveRSSI / m_rssiCount); else - LogMessage("YSF, received RF end of transmission from %10.10s to %10.10s (DG-ID: %u), %.1f seconds, BER: %.1f%%", m_rfSource, m_rfDest, dgid, float(m_rfFrames) / 10.0F, float(m_rfErrs * 100U) / float(m_rfBits)); + LogMessage("YSF, received RF end of transmission from %10.10s to DG-ID %u, %.1f seconds, BER: %.1f%%", m_rfSource, dgid, float(m_rfFrames) / 10.0F, float(m_rfErrs * 100U) / float(m_rfBits)); writeEndRF(); } @@ -374,7 +374,7 @@ bool CYSFControl::processDNData(bool valid, unsigned char *data) if (m_selfOnly) { bool ret = checkCallsign(m_rfSource); if (!ret) { - LogMessage("YSF, invalid access attempt from %10.10s (DG-ID: %u)", m_rfSource, dgid); + LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid); m_rfState = RS_RF_REJECTED; return false; } @@ -400,7 +400,7 @@ bool CYSFControl::processDNData(bool valid, unsigned char *data) openFile(); #endif m_display->writeFusion((char*)m_rfSource, (char*)m_rfDest, dgid, "R", " "); - LogMessage("YSF, received RF header from %10.10s to %10.10s (DG-ID: %u)", m_rfSource, m_rfDest, dgid); + LogMessage("YSF, received RF header from %10.10s to DG-ID %u", m_rfSource, dgid); CSync::addYSFSync(data + 2U); @@ -461,9 +461,9 @@ bool CYSFControl::processDNData(bool valid, unsigned char *data) m_rfFrames++; if (m_rssi != 0U) - LogMessage("YSF, received RF end of transmission from %10.10s to %10.10s (DG-ID: %u), %.1f seconds, BER: %.1f%%, RSSI: -%u/-%u/-%u dBm", m_rfSource, m_rfDest, dgid, float(m_rfFrames) / 10.0F, float(m_rfErrs * 100U) / float(m_rfBits), m_minRSSI, m_maxRSSI, m_aveRSSI / m_rssiCount); + LogMessage("YSF, received RF end of transmission from %10.10s to DG-ID %u, %.1f seconds, BER: %.1f%%, RSSI: -%u/-%u/-%u dBm", m_rfSource, dgid, float(m_rfFrames) / 10.0F, float(m_rfErrs * 100U) / float(m_rfBits), m_minRSSI, m_maxRSSI, m_aveRSSI / m_rssiCount); else - LogMessage("YSF, received RF end of transmission from %10.10s to %10.10s (DG-ID: %u), %.1f seconds, BER: %.1f%%", m_rfSource, m_rfDest, dgid, float(m_rfFrames) / 10.0F, float(m_rfErrs * 100U) / float(m_rfBits)); + LogMessage("YSF, received RF end of transmission from %10.10s to DG-ID %u, %.1f seconds, BER: %.1f%%", m_rfSource, dgid, float(m_rfFrames) / 10.0F, float(m_rfErrs * 100U) / float(m_rfBits)); writeEndRF(); } @@ -570,7 +570,7 @@ bool CYSFControl::processDNData(bool valid, unsigned char *data) if (m_selfOnly) { bool ret = checkCallsign(m_rfSource); if (!ret) { - LogMessage("YSF, invalid access attempt from %10.10s (DG-ID: %u)", m_rfSource, dgid); + LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid); m_rfState = RS_RF_REJECTED; return false; } @@ -626,7 +626,7 @@ bool CYSFControl::processDNData(bool valid, unsigned char *data) writeFile(buffer + 2U); #endif m_display->writeFusion((char*)m_rfSource, (char*)m_rfDest, dgid, "R", " "); - LogMessage("YSF, received RF late entry from %10.10s to %10.10s (DG-ID: %u)", m_rfSource, m_rfDest, dgid); + LogMessage("YSF, received RF late entry from %10.10s to DG-ID %u", m_rfSource, dgid); CSync::addYSFSync(data + 2U); @@ -676,7 +676,7 @@ bool CYSFControl::processFRData(bool valid, unsigned char *data) if (m_selfOnly) { bool ret = checkCallsign(m_rfSource); if (!ret) { - LogMessage("YSF, invalid access attempt from %10.10s (DG-ID: %u)", m_rfSource, dgid); + LogMessage("YSF, invalid access attempt from %10.10s to DG-ID %u", m_rfSource, dgid); m_rfState = RS_RF_REJECTED; return false; } @@ -699,7 +699,7 @@ bool CYSFControl::processFRData(bool valid, unsigned char *data) openFile(); #endif m_display->writeFusion((char*)m_rfSource, (char*)m_rfDest, dgid, "R", " "); - LogMessage("YSF, received RF header from %10.10s to %10.10s (DG-ID: %u)", m_rfSource, m_rfDest, dgid); + LogMessage("YSF, received RF header from %10.10s to DG-ID %u", m_rfSource, dgid); CSync::addYSFSync(data + 2U); @@ -759,9 +759,9 @@ bool CYSFControl::processFRData(bool valid, unsigned char *data) m_rfFrames++; if (m_rssi != 0U) - LogMessage("YSF, received RF end of transmission from %10.10s to %10.10s (DG-ID: %u), %.1f seconds, RSSI: -%u/-%u/-%u dBm", m_rfSource, m_rfDest, dgid, float(m_rfFrames) / 10.0F, m_minRSSI, m_maxRSSI, m_aveRSSI / m_rssiCount); + LogMessage("YSF, received RF end of transmission from %10.10s to DG-ID %u, %.1f seconds, RSSI: -%u/-%u/-%u dBm", m_rfSource, dgid, float(m_rfFrames) / 10.0F, m_minRSSI, m_maxRSSI, m_aveRSSI / m_rssiCount); else - LogMessage("YSF, received RF end of transmission from %10.10s to %10.10s (DG-ID: %u), %.1f seconds", m_rfSource, m_rfDest, dgid, float(m_rfFrames) / 10.0F); + LogMessage("YSF, received RF end of transmission from %10.10s to DG-ID %u, %.1f seconds", m_rfSource, dgid, float(m_rfFrames) / 10.0F); writeEndRF(); } @@ -904,7 +904,7 @@ void CYSFControl::writeNetwork() if (::memcmp(m_netSource, " ", 10U) != 0 && ::memcmp(m_netDest, " ", 10U) != 0) { m_display->writeFusion((char*)m_netSource, (char*)m_netDest, dgid, "N", (char*)(data + 4U)); - LogMessage("YSF, received network data from %10.10s to %10.10s (DG-ID: %u) at %10.10s", m_netSource, m_netDest, dgid, data + 4U); + LogMessage("YSF, received network data from %10.10s to DG-ID %u at %10.10s", m_netSource, dgid, data + 4U); } m_netTimeoutTimer.start(); @@ -1016,7 +1016,7 @@ void CYSFControl::writeNetwork() m_netN = n; if (end) { - LogMessage("YSF, received network end of transmission from %10.10s to %10.10s (DG-ID: %u), %.1f seconds, %u%% packet loss, BER: %.1f%%", m_netSource, m_netDest, dgid, float(m_netFrames) / 10.0F, (m_netLost * 100U) / m_netFrames, float(m_netErrs * 100U) / float(m_netBits)); + LogMessage("YSF, received network end of transmission from %10.10s to DG-ID %u, %.1f seconds, %u%% packet loss, BER: %.1f%%", m_netSource, dgid, float(m_netFrames) / 10.0F, (m_netLost * 100U) / m_netFrames, float(m_netErrs * 100U) / float(m_netBits)); writeEndNet(); } } @@ -1159,7 +1159,7 @@ void CYSFControl::processNetCallsigns(const unsigned char* data, unsigned char d if (::memcmp(m_netSource, " ", 10U) != 0 && ::memcmp(m_netDest, " ", 10U) != 0) { m_display->writeFusion((char*)m_netSource, (char*)m_netDest, dgid, "N", (char*)(data + 4U)); - LogMessage("YSF, received network data from %10.10s to %10.10s (DG-ID: %u) at %10.10s", m_netSource, m_netDest, dgid, data + 4U); + LogMessage("YSF, received network data from %10.10s to DG-ID %u at %10.10s", m_netSource, dgid, data + 4U); } } }