Add the extra AX.25 parameters.
This commit is contained in:
parent
d0878bbf7e
commit
fe77cbd68c
4 changed files with 56 additions and 6 deletions
34
Conf.cpp
34
Conf.cpp
|
@ -113,6 +113,7 @@ m_modemP25TXLevel(50.0F),
|
||||||
m_modemNXDNTXLevel(50.0F),
|
m_modemNXDNTXLevel(50.0F),
|
||||||
m_modemPOCSAGTXLevel(50.0F),
|
m_modemPOCSAGTXLevel(50.0F),
|
||||||
m_modemFMTXLevel(50.0F),
|
m_modemFMTXLevel(50.0F),
|
||||||
|
m_modemAX25TXLevel(50.0F),
|
||||||
m_modemRSSIMappingFile(),
|
m_modemRSSIMappingFile(),
|
||||||
m_modemTrace(false),
|
m_modemTrace(false),
|
||||||
m_modemDebug(false),
|
m_modemDebug(false),
|
||||||
|
@ -208,6 +209,9 @@ m_fmRFAudioBoost(1U),
|
||||||
m_fmMaxDevLevel(90.0F),
|
m_fmMaxDevLevel(90.0F),
|
||||||
m_fmExtAudioBoost(1U),
|
m_fmExtAudioBoost(1U),
|
||||||
m_ax25Enabled(false),
|
m_ax25Enabled(false),
|
||||||
|
m_ax25RXTwist(6),
|
||||||
|
m_ax25TXTwist(6),
|
||||||
|
m_ax25Digipeat(true),
|
||||||
m_ax25Trace(false),
|
m_ax25Trace(false),
|
||||||
m_dstarNetworkEnabled(false),
|
m_dstarNetworkEnabled(false),
|
||||||
m_dstarGatewayAddress(),
|
m_dstarGatewayAddress(),
|
||||||
|
@ -508,7 +512,7 @@ bool CConf::read()
|
||||||
else if (::strcmp(key, "RXLevel") == 0)
|
else if (::strcmp(key, "RXLevel") == 0)
|
||||||
m_modemRXLevel = float(::atof(value));
|
m_modemRXLevel = float(::atof(value));
|
||||||
else if (::strcmp(key, "TXLevel") == 0)
|
else if (::strcmp(key, "TXLevel") == 0)
|
||||||
m_modemFMTXLevel = m_modemCWIdTXLevel = m_modemDStarTXLevel = m_modemDMRTXLevel = m_modemYSFTXLevel = m_modemP25TXLevel = m_modemNXDNTXLevel = float(::atof(value));
|
m_modemAX25TXLevel = m_modemFMTXLevel = m_modemCWIdTXLevel = m_modemDStarTXLevel = m_modemDMRTXLevel = m_modemYSFTXLevel = m_modemP25TXLevel = m_modemNXDNTXLevel = float(::atof(value));
|
||||||
else if (::strcmp(key, "CWIdTXLevel") == 0)
|
else if (::strcmp(key, "CWIdTXLevel") == 0)
|
||||||
m_modemCWIdTXLevel = float(::atof(value));
|
m_modemCWIdTXLevel = float(::atof(value));
|
||||||
else if (::strcmp(key, "D-StarTXLevel") == 0)
|
else if (::strcmp(key, "D-StarTXLevel") == 0)
|
||||||
|
@ -525,6 +529,8 @@ bool CConf::read()
|
||||||
m_modemPOCSAGTXLevel = float(::atof(value));
|
m_modemPOCSAGTXLevel = float(::atof(value));
|
||||||
else if (::strcmp(key, "FMTXLevel") == 0)
|
else if (::strcmp(key, "FMTXLevel") == 0)
|
||||||
m_modemFMTXLevel = float(::atof(value));
|
m_modemFMTXLevel = float(::atof(value));
|
||||||
|
else if (::strcmp(key, "AX25TXLevel") == 0)
|
||||||
|
m_modemAX25TXLevel = float(::atof(value));
|
||||||
else if (::strcmp(key, "RSSIMappingFile") == 0)
|
else if (::strcmp(key, "RSSIMappingFile") == 0)
|
||||||
m_modemRSSIMappingFile = value;
|
m_modemRSSIMappingFile = value;
|
||||||
else if (::strcmp(key, "Trace") == 0)
|
else if (::strcmp(key, "Trace") == 0)
|
||||||
|
@ -792,6 +798,12 @@ bool CConf::read()
|
||||||
} else if (section == SECTION_AX25) {
|
} else if (section == SECTION_AX25) {
|
||||||
if (::strcmp(key, "Enable") == 0)
|
if (::strcmp(key, "Enable") == 0)
|
||||||
m_ax25Enabled = ::atoi(value) == 1;
|
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, "Digipeat") == 0)
|
||||||
|
m_ax25Digipeat = ::atoi(value) == 1;
|
||||||
else if (::strcmp(key, "Trace") == 0)
|
else if (::strcmp(key, "Trace") == 0)
|
||||||
m_ax25Trace = ::atoi(value) == 1;
|
m_ax25Trace = ::atoi(value) == 1;
|
||||||
} else if (section == SECTION_DSTAR_NETWORK) {
|
} else if (section == SECTION_DSTAR_NETWORK) {
|
||||||
|
@ -1241,6 +1253,11 @@ float CConf::getModemFMTXLevel() const
|
||||||
return m_modemFMTXLevel;
|
return m_modemFMTXLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float CConf::getModemAX25TXLevel() const
|
||||||
|
{
|
||||||
|
return m_modemAX25TXLevel;
|
||||||
|
}
|
||||||
|
|
||||||
std::string CConf::getModemRSSIMappingFile () const
|
std::string CConf::getModemRSSIMappingFile () const
|
||||||
{
|
{
|
||||||
return m_modemRSSIMappingFile;
|
return m_modemRSSIMappingFile;
|
||||||
|
@ -1716,6 +1733,21 @@ bool CConf::getAX25Enabled() const
|
||||||
return m_ax25Enabled;
|
return m_ax25Enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CConf::getAX25RXTwist() const
|
||||||
|
{
|
||||||
|
return m_ax25RXTwist;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CConf::getAX25TXTwist() const
|
||||||
|
{
|
||||||
|
return m_ax25TXTwist;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CConf::getAX25Digipeat() const
|
||||||
|
{
|
||||||
|
return m_ax25Digipeat;
|
||||||
|
}
|
||||||
|
|
||||||
bool CConf::getAX25Trace() const
|
bool CConf::getAX25Trace() const
|
||||||
{
|
{
|
||||||
return m_ax25Trace;
|
return m_ax25Trace;
|
||||||
|
|
8
Conf.h
8
Conf.h
|
@ -91,6 +91,7 @@ public:
|
||||||
float getModemNXDNTXLevel() const;
|
float getModemNXDNTXLevel() const;
|
||||||
float getModemPOCSAGTXLevel() const;
|
float getModemPOCSAGTXLevel() const;
|
||||||
float getModemFMTXLevel() const;
|
float getModemFMTXLevel() const;
|
||||||
|
float getModemAX25TXLevel() const;
|
||||||
std::string getModemRSSIMappingFile() const;
|
std::string getModemRSSIMappingFile() const;
|
||||||
bool getModemTrace() const;
|
bool getModemTrace() const;
|
||||||
bool getModemDebug() const;
|
bool getModemDebug() const;
|
||||||
|
@ -173,6 +174,9 @@ public:
|
||||||
|
|
||||||
// The AX.25 section
|
// The AX.25 section
|
||||||
bool getAX25Enabled() const;
|
bool getAX25Enabled() const;
|
||||||
|
int getAX25RXTwist() const;
|
||||||
|
int getAX25TXTwist() const;
|
||||||
|
bool getAX25Digipeat() const;
|
||||||
bool getAX25Trace() const;
|
bool getAX25Trace() const;
|
||||||
|
|
||||||
// The FM Section
|
// The FM Section
|
||||||
|
@ -383,6 +387,7 @@ private:
|
||||||
float m_modemNXDNTXLevel;
|
float m_modemNXDNTXLevel;
|
||||||
float m_modemPOCSAGTXLevel;
|
float m_modemPOCSAGTXLevel;
|
||||||
float m_modemFMTXLevel;
|
float m_modemFMTXLevel;
|
||||||
|
float m_modemAX25TXLevel;
|
||||||
std::string m_modemRSSIMappingFile;
|
std::string m_modemRSSIMappingFile;
|
||||||
bool m_modemTrace;
|
bool m_modemTrace;
|
||||||
bool m_modemDebug;
|
bool m_modemDebug;
|
||||||
|
@ -456,6 +461,9 @@ private:
|
||||||
unsigned int m_pocsagFrequency;
|
unsigned int m_pocsagFrequency;
|
||||||
|
|
||||||
bool m_ax25Enabled;
|
bool m_ax25Enabled;
|
||||||
|
int m_ax25RXTwist;
|
||||||
|
int m_ax25TXTwist;
|
||||||
|
bool m_ax25Digipeat;
|
||||||
bool m_ax25Trace;
|
bool m_ax25Trace;
|
||||||
|
|
||||||
bool m_fmEnabled;
|
bool m_fmEnabled;
|
||||||
|
|
|
@ -626,13 +626,18 @@ int CMMDVMHost::run()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_ax25Enabled) {
|
if (m_ax25Enabled) {
|
||||||
bool trace = m_conf.getAX25Trace();
|
int rxTwist = m_conf.getAX25RXTwist();
|
||||||
|
int txTwist = m_conf.getAX25TXTwist();
|
||||||
|
bool digipeat = m_conf.getAX25Digipeat();
|
||||||
|
bool trace = m_conf.getAX25Trace();
|
||||||
|
|
||||||
LogInfo("AX.25 RF Parameters");
|
LogInfo("AX.25 RF Parameters");
|
||||||
LogInfo(" RXOnly: yes");
|
LogInfo(" RXTwist: %d", rxTwist);
|
||||||
|
LogInfo(" TXTwist: %d", txTwist);
|
||||||
|
LogInfo(" Digipeat: %s", digipeat ? "yes" : "no");
|
||||||
LogInfo(" Trace: %s", trace ? "yes" : "no");
|
LogInfo(" Trace: %s", trace ? "yes" : "no");
|
||||||
|
|
||||||
m_ax25 = new CAX25Control(m_ax25Network, trace);
|
m_ax25 = new CAX25Control(m_ax25Network, digipeat, trace);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool remoteControlEnabled = m_conf.getRemoteControlEnabled();
|
bool remoteControlEnabled = m_conf.getRemoteControlEnabled();
|
||||||
|
@ -1201,6 +1206,7 @@ bool CMMDVMHost::createModem()
|
||||||
float nxdnTXLevel = m_conf.getModemNXDNTXLevel();
|
float nxdnTXLevel = m_conf.getModemNXDNTXLevel();
|
||||||
float pocsagTXLevel = m_conf.getModemPOCSAGTXLevel();
|
float pocsagTXLevel = m_conf.getModemPOCSAGTXLevel();
|
||||||
float fmTXLevel = m_conf.getModemFMTXLevel();
|
float fmTXLevel = m_conf.getModemFMTXLevel();
|
||||||
|
float ax25TXLevel = m_conf.getModemAX25TXLevel();
|
||||||
bool trace = m_conf.getModemTrace();
|
bool trace = m_conf.getModemTrace();
|
||||||
bool debug = m_conf.getModemDebug();
|
bool debug = m_conf.getModemDebug();
|
||||||
unsigned int colorCode = m_conf.getDMRColorCode();
|
unsigned int colorCode = m_conf.getDMRColorCode();
|
||||||
|
@ -1216,6 +1222,8 @@ bool CMMDVMHost::createModem()
|
||||||
int rxDCOffset = m_conf.getModemRXDCOffset();
|
int rxDCOffset = m_conf.getModemRXDCOffset();
|
||||||
int txDCOffset = m_conf.getModemTXDCOffset();
|
int txDCOffset = m_conf.getModemTXDCOffset();
|
||||||
float rfLevel = m_conf.getModemRFLevel();
|
float rfLevel = m_conf.getModemRFLevel();
|
||||||
|
int rxTwist = m_conf.getAX25RXTwist();
|
||||||
|
int txTwist = m_conf.getAX25TXTwist();
|
||||||
|
|
||||||
LogInfo("Modem Parameters");
|
LogInfo("Modem Parameters");
|
||||||
LogInfo(" Port: %s", port.c_str());
|
LogInfo(" Port: %s", port.c_str());
|
||||||
|
@ -1241,17 +1249,19 @@ bool CMMDVMHost::createModem()
|
||||||
LogInfo(" NXDN TX Level: %.1f%%", nxdnTXLevel);
|
LogInfo(" NXDN TX Level: %.1f%%", nxdnTXLevel);
|
||||||
LogInfo(" POCSAG TX Level: %.1f%%", pocsagTXLevel);
|
LogInfo(" POCSAG TX Level: %.1f%%", pocsagTXLevel);
|
||||||
LogInfo(" FM TX Level: %.1f%%", fmTXLevel);
|
LogInfo(" FM TX Level: %.1f%%", fmTXLevel);
|
||||||
|
LogInfo(" AX.25 TX Level: %.1f%%", ax25TXLevel);
|
||||||
LogInfo(" TX Frequency: %uHz (%uHz)", txFrequency, txFrequency + txOffset);
|
LogInfo(" TX Frequency: %uHz (%uHz)", txFrequency, txFrequency + txOffset);
|
||||||
|
|
||||||
m_modem = CModem::createModem(port, m_duplex, rxInvert, txInvert, pttInvert, txDelay, dmrDelay, trace, debug);
|
m_modem = CModem::createModem(port, m_duplex, rxInvert, txInvert, pttInvert, txDelay, dmrDelay, trace, debug);
|
||||||
m_modem->setSerialParams(protocol,address);
|
m_modem->setSerialParams(protocol,address);
|
||||||
m_modem->setModeParams(m_dstarEnabled, m_dmrEnabled, m_ysfEnabled, m_p25Enabled, m_nxdnEnabled, m_pocsagEnabled, m_fmEnabled, m_ax25Enabled);
|
m_modem->setModeParams(m_dstarEnabled, m_dmrEnabled, m_ysfEnabled, m_p25Enabled, m_nxdnEnabled, m_pocsagEnabled, m_fmEnabled, m_ax25Enabled);
|
||||||
m_modem->setLevels(rxLevel, cwIdTXLevel, dstarTXLevel, dmrTXLevel, ysfTXLevel, p25TXLevel, nxdnTXLevel, pocsagTXLevel, fmTXLevel);
|
m_modem->setLevels(rxLevel, cwIdTXLevel, dstarTXLevel, dmrTXLevel, ysfTXLevel, p25TXLevel, nxdnTXLevel, pocsagTXLevel, fmTXLevel, ax25TXLevel);
|
||||||
m_modem->setRFParams(rxFrequency, rxOffset, txFrequency, txOffset, txDCOffset, rxDCOffset, rfLevel, pocsagFrequency);
|
m_modem->setRFParams(rxFrequency, rxOffset, txFrequency, txOffset, txDCOffset, rxDCOffset, rfLevel, pocsagFrequency);
|
||||||
m_modem->setDMRParams(colorCode);
|
m_modem->setDMRParams(colorCode);
|
||||||
m_modem->setYSFParams(lowDeviation, ysfTXHang);
|
m_modem->setYSFParams(lowDeviation, ysfTXHang);
|
||||||
m_modem->setP25Params(p25TXHang);
|
m_modem->setP25Params(p25TXHang);
|
||||||
m_modem->setNXDNParams(nxdnTXHang);
|
m_modem->setNXDNParams(nxdnTXHang);
|
||||||
|
m_modem->setAX25Params(rxTwist, txTwist);
|
||||||
|
|
||||||
if (m_fmEnabled) {
|
if (m_fmEnabled) {
|
||||||
std::string callsign = m_conf.getFMCallsign();
|
std::string callsign = m_conf.getFMCallsign();
|
||||||
|
|
|
@ -19,6 +19,6 @@
|
||||||
#if !defined(VERSION_H)
|
#if !defined(VERSION_H)
|
||||||
#define VERSION_H
|
#define VERSION_H
|
||||||
|
|
||||||
const char* VERSION = "20200619";
|
const char* VERSION = "20200620";
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue