Move the levels to the overall MMDVM control message.
This commit is contained in:
parent
dcdfca39d7
commit
927f31cdfa
36
Conf.cpp
36
Conf.cpp
|
@ -110,6 +110,8 @@ m_modemYSFTXLevel(50.0F),
|
|||
m_modemP25TXLevel(50.0F),
|
||||
m_modemNXDNTXLevel(50.0F),
|
||||
m_modemPOCSAGTXLevel(50.0F),
|
||||
m_modemFMTXLevel(50.0F),
|
||||
m_modemFMRXLevel(50.0F),
|
||||
m_modemRSSIMappingFile(),
|
||||
m_modemTrace(false),
|
||||
m_modemDebug(false),
|
||||
|
@ -190,8 +192,6 @@ m_fmTimeoutLevel(80U),
|
|||
m_fmCTCSSFrequency(88.6F),
|
||||
m_fmCTCSSThreshold(100U),
|
||||
m_fmCTCSSLevel(5U),
|
||||
m_fmInputLevel(50U),
|
||||
m_fmOutputLevel(50U),
|
||||
m_fmKerchunkTime(0U),
|
||||
m_fmHangTime(7U),
|
||||
m_dstarNetworkEnabled(false),
|
||||
|
@ -480,9 +480,9 @@ bool CConf::read()
|
|||
else if (::strcmp(key, "RFLevel") == 0)
|
||||
m_modemRFLevel = float(::atof(value));
|
||||
else if (::strcmp(key, "RXLevel") == 0)
|
||||
m_modemRXLevel = float(::atof(value));
|
||||
m_modemFMRXLevel = m_modemRXLevel = float(::atof(value));
|
||||
else if (::strcmp(key, "TXLevel") == 0)
|
||||
m_modemCWIdTXLevel = m_modemDStarTXLevel = m_modemDMRTXLevel = m_modemYSFTXLevel = m_modemP25TXLevel = m_modemNXDNTXLevel = float(::atof(value));
|
||||
m_modemFMTXLevel = m_modemCWIdTXLevel = m_modemDStarTXLevel = m_modemDMRTXLevel = m_modemYSFTXLevel = m_modemP25TXLevel = m_modemNXDNTXLevel = float(::atof(value));
|
||||
else if (::strcmp(key, "CWIdTXLevel") == 0)
|
||||
m_modemCWIdTXLevel = float(::atof(value));
|
||||
else if (::strcmp(key, "D-StarTXLevel") == 0)
|
||||
|
@ -497,6 +497,10 @@ bool CConf::read()
|
|||
m_modemNXDNTXLevel = float(::atof(value));
|
||||
else if (::strcmp(key, "POCSAGTXLevel") == 0)
|
||||
m_modemPOCSAGTXLevel = float(::atof(value));
|
||||
else if (::strcmp(key, "FMTXLevel") == 0)
|
||||
m_modemFMTXLevel = float(::atof(value));
|
||||
else if (::strcmp(key, "FMRXLevel") == 0)
|
||||
m_modemFMRXLevel = float(::atof(value));
|
||||
else if (::strcmp(key, "RSSIMappingFile") == 0)
|
||||
m_modemRSSIMappingFile = value;
|
||||
else if (::strcmp(key, "Trace") == 0)
|
||||
|
@ -729,10 +733,6 @@ bool CConf::read()
|
|||
m_fmCTCSSThreshold = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "CTCSSLevel") == 0)
|
||||
m_fmCTCSSLevel = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "InputLevel") == 0)
|
||||
m_fmInputLevel = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "OutputLevel") == 0)
|
||||
m_fmOutputLevel = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "KerchunkTime") == 0)
|
||||
m_fmKerchunkTime = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "HangTime") == 0)
|
||||
|
@ -1164,6 +1164,16 @@ float CConf::getModemPOCSAGTXLevel() const
|
|||
return m_modemPOCSAGTXLevel;
|
||||
}
|
||||
|
||||
float CConf::getModemFMTXLevel() const
|
||||
{
|
||||
return m_modemFMTXLevel;
|
||||
}
|
||||
|
||||
float CConf::getModemFMRXLevel() const
|
||||
{
|
||||
return m_modemFMRXLevel;
|
||||
}
|
||||
|
||||
std::string CConf::getModemRSSIMappingFile () const
|
||||
{
|
||||
return m_modemRSSIMappingFile;
|
||||
|
@ -1564,16 +1574,6 @@ unsigned int CConf::getFMCTCSSLevel() const
|
|||
return m_fmCTCSSLevel;
|
||||
}
|
||||
|
||||
unsigned int CConf::getFMInputLevel() const
|
||||
{
|
||||
return m_fmInputLevel;
|
||||
}
|
||||
|
||||
unsigned int CConf::getFMOutputLevel() const
|
||||
{
|
||||
return m_fmOutputLevel;
|
||||
}
|
||||
|
||||
unsigned int CConf::getFMKerchunkTime() const
|
||||
{
|
||||
return m_fmKerchunkTime;
|
||||
|
|
8
Conf.h
8
Conf.h
|
@ -90,6 +90,8 @@ public:
|
|||
float getModemP25TXLevel() const;
|
||||
float getModemNXDNTXLevel() const;
|
||||
float getModemPOCSAGTXLevel() const;
|
||||
float getModemFMTXLevel() const;
|
||||
float getModemFMRXLevel() const;
|
||||
std::string getModemRSSIMappingFile() const;
|
||||
bool getModemTrace() const;
|
||||
bool getModemDebug() const;
|
||||
|
@ -188,8 +190,6 @@ public:
|
|||
float getFMCTCSSFrequency() const;
|
||||
unsigned int getFMCTCSSThreshold() const;
|
||||
unsigned int getFMCTCSSLevel() const;
|
||||
unsigned int getFMInputLevel() const;
|
||||
unsigned int getFMOutputLevel() const;
|
||||
unsigned int getFMKerchunkTime() const;
|
||||
unsigned int getFMHangTime() const;
|
||||
|
||||
|
@ -358,6 +358,8 @@ private:
|
|||
float m_modemP25TXLevel;
|
||||
float m_modemNXDNTXLevel;
|
||||
float m_modemPOCSAGTXLevel;
|
||||
float m_modemFMTXLevel;
|
||||
float m_modemFMRXLevel;
|
||||
std::string m_modemRSSIMappingFile;
|
||||
bool m_modemTrace;
|
||||
bool m_modemDebug;
|
||||
|
@ -447,8 +449,6 @@ private:
|
|||
float m_fmCTCSSFrequency;
|
||||
unsigned int m_fmCTCSSThreshold;
|
||||
unsigned int m_fmCTCSSLevel;
|
||||
unsigned int m_fmInputLevel;
|
||||
unsigned int m_fmOutputLevel;
|
||||
unsigned int m_fmKerchunkTime;
|
||||
unsigned int m_fmHangTime;
|
||||
|
||||
|
|
|
@ -65,6 +65,8 @@ RFLevel=100
|
|||
# P25TXLevel=50
|
||||
# NXDNTXLevel=50
|
||||
# POCSAGTXLevel=50
|
||||
# FMTXLevel=50
|
||||
# FMRXLevel=50
|
||||
RSSIMappingFile=RSSI.dat
|
||||
Trace=0
|
||||
Debug=0
|
||||
|
@ -158,8 +160,6 @@ TimeoutLevel=80
|
|||
CTCSSFrequency=88.4
|
||||
CTCSSThreshold=100
|
||||
CTCSSLevel=5
|
||||
InputLevel=50
|
||||
OutputLevel=50
|
||||
KerchunkTime=0
|
||||
HangTime=7
|
||||
|
||||
|
|
|
@ -626,8 +626,6 @@ int CMMDVMHost::run()
|
|||
float ctcssFrequency = m_conf.getFMCTCSSFrequency();
|
||||
unsigned int ctcssThreshold = m_conf.getFMCTCSSThreshold();
|
||||
unsigned int ctcssLevel = m_conf.getFMCTCSSLevel();
|
||||
unsigned int inputLevel = m_conf.getFMInputLevel();
|
||||
unsigned int outputLevel = m_conf.getFMOutputLevel();
|
||||
unsigned int kerchunkTime = m_conf.getFMKerchunkTime();
|
||||
unsigned int hangTime = m_conf.getFMHangTime();
|
||||
|
||||
|
@ -651,14 +649,12 @@ int CMMDVMHost::run()
|
|||
LogInfo(" CTCSS Frequency: %.1fHz", ctcssFrequency);
|
||||
LogInfo(" CTCSS Threshold: %u%%", ctcssThreshold);
|
||||
LogInfo(" CTCSS Level: %u%%", ctcssLevel);
|
||||
LogInfo(" Input Level: %u%%", inputLevel);
|
||||
LogInfo(" Output Level: %u%%", outputLevel);
|
||||
LogInfo(" Kerchunk Time: %us", kerchunkTime);
|
||||
LogInfo(" Hang Time: %us", hangTime);
|
||||
|
||||
m_modem->setFMCallsignParams(callsign, callsignSpeed, callsignFrequency, callsignTime, callsignHoldoff, callsignHighLevel, callsignLowLevel, callsignAtStart, callsignAtEnd);
|
||||
m_modem->setFMAckParams(ack, ackSpeed, ackFrequency, ackDelay, ackLevel);
|
||||
m_modem->setFMMiscParams(timeout, timeoutLevel, ctcssFrequency, ctcssThreshold, ctcssLevel, inputLevel, outputLevel, kerchunkTime, hangTime);
|
||||
m_modem->setFMMiscParams(timeout, timeoutLevel, ctcssFrequency, ctcssThreshold, ctcssLevel, kerchunkTime, hangTime);
|
||||
}
|
||||
|
||||
bool remoteControlEnabled = m_conf.getRemoteControlEnabled();
|
||||
|
@ -1211,6 +1207,8 @@ bool CMMDVMHost::createModem()
|
|||
float p25TXLevel = m_conf.getModemP25TXLevel();
|
||||
float nxdnTXLevel = m_conf.getModemNXDNTXLevel();
|
||||
float pocsagTXLevel = m_conf.getModemPOCSAGTXLevel();
|
||||
float fmTXLevel = m_conf.getModemFMTXLevel();
|
||||
float fmRXLevel = m_conf.getModemFMRXLevel();
|
||||
bool trace = m_conf.getModemTrace();
|
||||
bool debug = m_conf.getModemDebug();
|
||||
unsigned int colorCode = m_conf.getDMRColorCode();
|
||||
|
@ -1248,13 +1246,14 @@ bool CMMDVMHost::createModem()
|
|||
LogInfo(" P25 TX Level: %.1f%%", p25TXLevel);
|
||||
LogInfo(" NXDN TX Level: %.1f%%", nxdnTXLevel);
|
||||
LogInfo(" POCSAG TX Level: %.1f%%", pocsagTXLevel);
|
||||
LogInfo(" RX Frequency: %uHz (%uHz)", rxFrequency, rxFrequency + rxOffset);
|
||||
LogInfo(" FM TX Level: %.1f%%", fmTXLevel);
|
||||
LogInfo(" FM RX Level: %.1f%%", fmRXLevel);
|
||||
LogInfo(" TX Frequency: %uHz (%uHz)", txFrequency, txFrequency + txOffset);
|
||||
|
||||
m_modem = CModem::createModem(port, m_duplex, rxInvert, txInvert, pttInvert, txDelay, dmrDelay, trace, debug);
|
||||
m_modem->setSerialParams(protocol,address);
|
||||
m_modem->setModeParams(m_dstarEnabled, m_dmrEnabled, m_ysfEnabled, m_p25Enabled, m_nxdnEnabled, m_pocsagEnabled);
|
||||
m_modem->setLevels(rxLevel, cwIdTXLevel, dstarTXLevel, dmrTXLevel, ysfTXLevel, p25TXLevel, nxdnTXLevel, pocsagTXLevel);
|
||||
m_modem->setModeParams(m_dstarEnabled, m_dmrEnabled, m_ysfEnabled, m_p25Enabled, m_nxdnEnabled, m_pocsagEnabled, m_fmEnabled);
|
||||
m_modem->setLevels(rxLevel, cwIdTXLevel, dstarTXLevel, dmrTXLevel, ysfTXLevel, p25TXLevel, nxdnTXLevel, pocsagTXLevel, fmTXLevel, fmRXLevel);
|
||||
m_modem->setRFParams(rxFrequency, rxOffset, txFrequency, txOffset, txDCOffset, rxDCOffset, rfLevel, pocsagFrequency);
|
||||
m_modem->setDMRParams(colorCode);
|
||||
m_modem->setYSFParams(lowDeviation, txHang);
|
||||
|
|
39
Modem.cpp
39
Modem.cpp
|
@ -118,6 +118,8 @@ m_ysfTXLevel(0U),
|
|||
m_p25TXLevel(0U),
|
||||
m_nxdnTXLevel(0U),
|
||||
m_pocsagTXLevel(0U),
|
||||
m_fmTXLevel(0U),
|
||||
m_fmRXLevel(0U),
|
||||
m_trace(trace),
|
||||
m_debug(debug),
|
||||
m_rxFrequency(0U),
|
||||
|
@ -129,6 +131,7 @@ m_ysfEnabled(false),
|
|||
m_p25Enabled(false),
|
||||
m_nxdnEnabled(false),
|
||||
m_pocsagEnabled(false),
|
||||
m_fmEnabled(false),
|
||||
m_rxDCOffset(0),
|
||||
m_txDCOffset(0),
|
||||
m_serial(NULL),
|
||||
|
@ -198,7 +201,7 @@ void CModem::setRFParams(unsigned int rxFrequency, int rxOffset, unsigned int tx
|
|||
m_pocsagFrequency = pocsagFrequency + txOffset;
|
||||
}
|
||||
|
||||
void CModem::setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled, bool p25Enabled, bool nxdnEnabled, bool pocsagEnabled)
|
||||
void CModem::setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled, bool p25Enabled, bool nxdnEnabled, bool pocsagEnabled, bool fmEnabled)
|
||||
{
|
||||
m_dstarEnabled = dstarEnabled;
|
||||
m_dmrEnabled = dmrEnabled;
|
||||
|
@ -206,9 +209,10 @@ void CModem::setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled,
|
|||
m_p25Enabled = p25Enabled;
|
||||
m_nxdnEnabled = nxdnEnabled;
|
||||
m_pocsagEnabled = pocsagEnabled;
|
||||
m_fmEnabled = fmEnabled;
|
||||
}
|
||||
|
||||
void CModem::setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, float dmrTXLevel, float ysfTXLevel, float p25TXLevel, float nxdnTXLevel, float pocsagTXLevel)
|
||||
void CModem::setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, float dmrTXLevel, float ysfTXLevel, float p25TXLevel, float nxdnTXLevel, float pocsagTXLevel, float fmTXLevel, float fmRXLevel)
|
||||
{
|
||||
m_rxLevel = rxLevel;
|
||||
m_cwIdTXLevel = cwIdTXLevel;
|
||||
|
@ -218,6 +222,8 @@ void CModem::setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, flo
|
|||
m_p25TXLevel = p25TXLevel;
|
||||
m_nxdnTXLevel = nxdnTXLevel;
|
||||
m_pocsagTXLevel = pocsagTXLevel;
|
||||
m_fmTXLevel = fmTXLevel;
|
||||
m_fmRXLevel = fmRXLevel;
|
||||
}
|
||||
|
||||
void CModem::setDMRParams(unsigned int colorCode)
|
||||
|
@ -1444,7 +1450,7 @@ bool CModem::setConfig()
|
|||
|
||||
buffer[0U] = MMDVM_FRAME_START;
|
||||
|
||||
buffer[1U] = 21U;
|
||||
buffer[1U] = 23U;
|
||||
|
||||
buffer[2U] = MMDVM_SET_CONFIG;
|
||||
|
||||
|
@ -1475,6 +1481,8 @@ bool CModem::setConfig()
|
|||
buffer[4U] |= 0x10U;
|
||||
if (m_pocsagEnabled)
|
||||
buffer[4U] |= 0x20U;
|
||||
if (m_fmEnabled)
|
||||
buffer[4U] |= 0x40U;
|
||||
|
||||
buffer[5U] = m_txDelay / 10U; // In 10ms units
|
||||
|
||||
|
@ -1504,10 +1512,13 @@ bool CModem::setConfig()
|
|||
|
||||
buffer[20U] = (unsigned char)(m_pocsagTXLevel * 2.55F + 0.5F);
|
||||
|
||||
// CUtils::dump(1U, "Written", buffer, 21U);
|
||||
buffer[21U] = (unsigned char)(m_fmTXLevel * 2.55F + 0.5F);
|
||||
buffer[22U] = (unsigned char)(m_fmRXLevel * 2.55F + 0.5F);
|
||||
|
||||
int ret = m_serial->write(buffer, 21U);
|
||||
if (ret != 21)
|
||||
// CUtils::dump(1U, "Written", buffer, 23U);
|
||||
|
||||
int ret = m_serial->write(buffer, 23U);
|
||||
if (ret != 23)
|
||||
return false;
|
||||
|
||||
unsigned int count = 0U;
|
||||
|
@ -1931,14 +1942,14 @@ bool CModem::setFMAckParams(const std::string& ack, unsigned int ackSpeed, unsig
|
|||
return true;
|
||||
}
|
||||
|
||||
bool CModem::setFMMiscParams(unsigned int timeout, unsigned int timeoutLevel, float ctcssFrequency, unsigned int ctcssThreshold, unsigned int ctcssLevel, unsigned int inputLevel, unsigned int outputLevel, unsigned int kerchunkTime, unsigned int hangTime)
|
||||
bool CModem::setFMMiscParams(unsigned int timeout, unsigned int timeoutLevel, float ctcssFrequency, unsigned int ctcssThreshold, unsigned int ctcssLevel, unsigned int kerchunkTime, unsigned int hangTime)
|
||||
{
|
||||
assert(m_serial != NULL);
|
||||
|
||||
unsigned char buffer[20U];
|
||||
|
||||
buffer[0U] = MMDVM_FRAME_START;
|
||||
buffer[1U] = 12U;
|
||||
buffer[1U] = 10U;
|
||||
buffer[2U] = MMDVM_FM_PARAMS3;
|
||||
|
||||
buffer[3U] = timeout / 5U;
|
||||
|
@ -1948,15 +1959,13 @@ bool CModem::setFMMiscParams(unsigned int timeout, unsigned int timeoutLevel, fl
|
|||
buffer[6U] = ctcssThreshold;
|
||||
buffer[7U] = ctcssLevel;
|
||||
|
||||
buffer[8U] = inputLevel;
|
||||
buffer[9U] = outputLevel;
|
||||
buffer[10U] = kerchunkTime;
|
||||
buffer[11U] = hangTime;
|
||||
buffer[8U] = kerchunkTime;
|
||||
buffer[9U] = hangTime;
|
||||
|
||||
// CUtils::dump(1U, "Written", buffer, 12U);
|
||||
// CUtils::dump(1U, "Written", buffer, 10U);
|
||||
|
||||
int ret = m_serial->write(buffer, 12U);
|
||||
if (ret != 12)
|
||||
int ret = m_serial->write(buffer, 10U);
|
||||
if (ret != 10)
|
||||
return false;
|
||||
|
||||
unsigned int count = 0U;
|
||||
|
|
9
Modem.h
9
Modem.h
|
@ -39,15 +39,15 @@ public:
|
|||
|
||||
virtual void setSerialParams(const std::string& protocol, unsigned int address);
|
||||
virtual void setRFParams(unsigned int rxFrequency, int rxOffset, unsigned int txFrequency, int txOffset, int txDCOffset, int rxDCOffset, float rfLevel, unsigned int pocsagFrequency);
|
||||
virtual void setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled, bool p25Enabled, bool nxdnEnabled, bool pocsagEnabled);
|
||||
virtual void setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, float dmrTXLevel, float ysfTXLevel, float p25TXLevel, float nxdnTXLevel, float pocsagLevel);
|
||||
virtual void setModeParams(bool dstarEnabled, bool dmrEnabled, bool ysfEnabled, bool p25Enabled, bool nxdnEnabled, bool pocsagEnabled, bool fmEnabled);
|
||||
virtual void setLevels(float rxLevel, float cwIdTXLevel, float dstarTXLevel, float dmrTXLevel, float ysfTXLevel, float p25TXLevel, float nxdnTXLevel, float pocsagLevel, float fmTXLevel, float fmRXLevel);
|
||||
virtual void setDMRParams(unsigned int colorCode);
|
||||
virtual void setYSFParams(bool loDev, unsigned int txHang);
|
||||
virtual void setTransparentDataParams(unsigned int sendFrameType);
|
||||
|
||||
virtual bool setFMCallsignParams(const std::string& callsign, unsigned int callsignSpeed, unsigned int callsignFrequency, unsigned int callsignTime, unsigned int callsignHoldoff, unsigned int callsignHighLevel, unsigned int callsignLowLevel, bool callsignAtStart, bool callsignAtEnd);
|
||||
virtual bool setFMAckParams(const std::string& ack, unsigned int ackSpeed, unsigned int ackFrequency, unsigned int ackDelay, unsigned int ackLevel);
|
||||
virtual bool setFMMiscParams(unsigned int timeout, unsigned int timeoutLevel, float ctcssFrequency, unsigned int ctcssThreshold, unsigned int ctcssLevel, unsigned int inputLevel, unsigned int outputLevel, unsigned int kerchunkTime, unsigned int hangTime);
|
||||
virtual bool setFMMiscParams(unsigned int timeout, unsigned int timeoutLevel, float ctcssFrequency, unsigned int ctcssThreshold, unsigned int ctcssLevel, unsigned int kerchunkTime, unsigned int hangTime);
|
||||
|
||||
virtual bool open();
|
||||
|
||||
|
@ -131,6 +131,8 @@ private:
|
|||
float m_p25TXLevel;
|
||||
float m_nxdnTXLevel;
|
||||
float m_pocsagTXLevel;
|
||||
float m_fmTXLevel;
|
||||
float m_fmRXLevel;
|
||||
float m_rfLevel;
|
||||
bool m_trace;
|
||||
bool m_debug;
|
||||
|
@ -143,6 +145,7 @@ private:
|
|||
bool m_p25Enabled;
|
||||
bool m_nxdnEnabled;
|
||||
bool m_pocsagEnabled;
|
||||
bool m_fmEnabled;
|
||||
int m_rxDCOffset;
|
||||
int m_txDCOffset;
|
||||
CSerialController* m_serial;
|
||||
|
|
Loading…
Reference in a new issue