diff --git a/Conf.cpp b/Conf.cpp index fc6dad7..fae8b95 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -214,7 +214,7 @@ m_fmExtAudioBoost(1U), m_fmModeHang(10U), m_ax25Enabled(false), m_ax25RXTwist(6), -m_ax25TXTwist(6), +m_ax25TXDelay(300U), m_ax25Trace(false), m_dstarNetworkEnabled(false), m_dstarGatewayAddress(), @@ -508,7 +508,7 @@ bool CConf::read() else if (::strcmp(key, "PTTInvert") == 0) m_modemPTTInvert = ::atoi(value) == 1; else if (::strcmp(key, "TXDelay") == 0) - m_modemTXDelay = (unsigned int)::atoi(value); + m_ax25TXDelay = m_modemTXDelay = (unsigned int)::atoi(value); else if (::strcmp(key, "DMRDelay") == 0) m_modemDMRDelay = (unsigned int)::atoi(value); else if (::strcmp(key, "RXOffset") == 0) @@ -817,8 +817,8 @@ bool CConf::read() m_ax25Enabled = ::atoi(value) == 1; else if (::strcmp(key, "RXTwist") == 0) m_ax25RXTwist = ::atoi(value); - else if (::strcmp(key, "TXTwist") == 0) - m_ax25TXTwist = ::atoi(value); + else if (::strcmp(key, "TXDelay") == 0) + m_ax25TXDelay = (unsigned int)::atoi(value); else if (::strcmp(key, "Trace") == 0) m_ax25Trace = ::atoi(value) == 1; } else if (section == SECTION_DSTAR_NETWORK) { @@ -1777,9 +1777,9 @@ int CConf::getAX25RXTwist() const return m_ax25RXTwist; } -int CConf::getAX25TXTwist() const +unsigned int CConf::getAX25TXDelay() const { - return m_ax25TXTwist; + return m_ax25TXDelay; } bool CConf::getAX25Trace() const diff --git a/Conf.h b/Conf.h index 04c2be8..c87c730 100644 --- a/Conf.h +++ b/Conf.h @@ -176,7 +176,7 @@ public: // The AX.25 section bool getAX25Enabled() const; int getAX25RXTwist() const; - int getAX25TXTwist() const; + unsigned int getAX25TXDelay() const; bool getAX25Trace() const; // The FM Section @@ -506,7 +506,7 @@ private: bool m_ax25Enabled; int m_ax25RXTwist; - int m_ax25TXTwist; + unsigned int m_ax25TXDelay; bool m_ax25Trace; bool m_dstarNetworkEnabled; diff --git a/MMDVM.ini b/MMDVM.ini index 0ae670f..6cb0a9c 100644 --- a/MMDVM.ini +++ b/MMDVM.ini @@ -181,7 +181,7 @@ ExtAudioBoost=1 [AX.25] Enable=1 -TXTwist=6 +TXDelay=300 RXTwist=6 Trace=1 diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index 8e95fec..b8d94a2 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -636,13 +636,13 @@ int CMMDVMHost::run() } if (m_ax25Enabled) { - int rxTwist = m_conf.getAX25RXTwist(); - int txTwist = m_conf.getAX25TXTwist(); - bool trace = m_conf.getAX25Trace(); + int rxTwist = m_conf.getAX25RXTwist(); + unsigned int txDelay = m_conf.getAX25TXDelay(); + bool trace = m_conf.getAX25Trace(); LogInfo("AX.25 RF Parameters"); - LogInfo(" RXTwist: %d", rxTwist); - LogInfo(" TXTwist: %d", txTwist); + LogInfo(" RX Twist: %d", rxTwist); + LogInfo(" TX Delay: %ums", txDelay); LogInfo(" Trace: %s", trace ? "yes" : "no"); m_ax25 = new CAX25Control(m_ax25Network, trace); @@ -1293,7 +1293,7 @@ bool CMMDVMHost::createModem() int txDCOffset = m_conf.getModemTXDCOffset(); float rfLevel = m_conf.getModemRFLevel(); int rxTwist = m_conf.getAX25RXTwist(); - int txTwist = m_conf.getAX25TXTwist(); + unsigned int ax25TXDelay = m_conf.getAX25TXDelay(); LogInfo("Modem Parameters"); LogInfo(" Port: %s", port.c_str()); @@ -1335,7 +1335,7 @@ bool CMMDVMHost::createModem() m_modem->setYSFParams(lowDeviation, ysfTXHang); m_modem->setP25Params(p25TXHang); m_modem->setNXDNParams(nxdnTXHang); - m_modem->setAX25Params(rxTwist, txTwist); + m_modem->setAX25Params(rxTwist, ax25TXDelay); if (m_fmEnabled) { std::string callsign = m_conf.getFMCallsign(); diff --git a/Modem.cpp b/Modem.cpp index 3b412b9..9591b0f 100644 --- a/Modem.cpp +++ b/Modem.cpp @@ -193,7 +193,7 @@ m_error(false), m_mode(MODE_IDLE), m_hwType(HWT_UNKNOWN), m_ax25RXTwist(0), -m_ax25TXTwist(0), +m_ax25TXDelay(300U), m_fmCallsign(), m_fmCallsignSpeed(20U), m_fmCallsignFrequency(1000U), @@ -308,10 +308,10 @@ void CModem::setNXDNParams(unsigned int txHang) m_nxdnTXHang = txHang; } -void CModem::setAX25Params(int rxTwist, int txTwist) +void CModem::setAX25Params(int rxTwist, unsigned int txDelay) { m_ax25RXTwist = rxTwist; - m_ax25TXTwist = txTwist; + m_ax25TXDelay = txDelay; } void CModem::setTransparentDataParams(unsigned int sendFrameType) @@ -1831,7 +1831,7 @@ bool CModem::setConfig() buffer[25U] = (unsigned char)(m_ax25RXTwist + 128); - buffer[26U] = (unsigned char)(m_ax25TXTwist + 128); + buffer[26U] = m_ax25TXDelay / 10U; // In 10ms units // CUtils::dump(1U, "Written", buffer, 27U); diff --git a/Modem.h b/Modem.h index c794477..822d50f 100644 --- a/Modem.h +++ b/Modem.h @@ -53,7 +53,7 @@ public: virtual void setYSFParams(bool loDev, unsigned int txHang); virtual void setP25Params(unsigned int txHang); virtual void setNXDNParams(unsigned int txHang); - virtual void setAX25Params(int rxTwist, int txTwist); + virtual void setAX25Params(int rxTwist, unsigned int txDelay); virtual void setTransparentDataParams(unsigned int sendFrameType); virtual void setFMCallsignParams(const std::string& callsign, unsigned int callsignSpeed, unsigned int callsignFrequency, unsigned int callsignTime, unsigned int callsignHoldoff, float callsignHighLevel, float callsignLowLevel, bool callsignAtStart, bool callsignAtEnd, bool callsignAtLatch); @@ -215,7 +215,7 @@ private: unsigned char m_mode; HW_TYPE m_hwType; int m_ax25RXTwist; - int m_ax25TXTwist; + unsigned int m_ax25TXDelay; std::string m_fmCallsign; unsigned int m_fmCallsignSpeed; diff --git a/NullModem.h b/NullModem.h index a7ec68f..ec8757a 100644 --- a/NullModem.h +++ b/NullModem.h @@ -36,6 +36,7 @@ public: virtual void setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, float dmrTXLevel, float ysfTXLevel, float p25TXLevel, float nxdnTXLevel, float pocsagLevel, float fmTXLevel){}; virtual void setDMRParams(unsigned int colorCode){}; virtual void setYSFParams(bool loDev, unsigned int txHang){}; + virtual void setAX25Params(int rxTwist, unsigned int txDelay){}; virtual void setTransparentDataParams(unsigned int sendFrameType){}; virtual bool open(); diff --git a/Version.h b/Version.h index 4559871..dc5e793 100644 --- a/Version.h +++ b/Version.h @@ -19,6 +19,6 @@ #if !defined(VERSION_H) #define VERSION_H -const char* VERSION = "20200625"; +const char* VERSION = "20200627"; #endif