mirror of
https://github.com/g4klx/MMDVM_HS.git
synced 2026-01-07 01:00:48 +01:00
Support for controlling RF power level
This commit is contained in:
parent
49e9377474
commit
97b4436796
|
|
@ -867,6 +867,7 @@ void CIO::printConf()
|
|||
DEBUG1("MMDVM_HS FW configuration:");
|
||||
DEBUG2I("TX freq (Hz):", TXfreq());
|
||||
DEBUG2I("RX freq (Hz):", RXfreq());
|
||||
DEBUG2("Power set:", m_power);
|
||||
DEBUG2("D-Star dev (Hz):", devDSTAR());
|
||||
DEBUG2("DMR +1 sym dev (Hz):", devDMR());
|
||||
DEBUG2("YSF_H +1 sym dev (Hz):", devYSF_H());
|
||||
|
|
|
|||
8
IO.cpp
8
IO.cpp
|
|
@ -266,17 +266,19 @@ bool CIO::hasRXOverflow()
|
|||
return m_rxBuffer.hasOverflowed();
|
||||
}
|
||||
|
||||
uint8_t CIO::setFreq(uint32_t frequency_rx, uint32_t frequency_tx)
|
||||
uint8_t CIO::setFreq(uint32_t frequency_rx, uint32_t frequency_tx, uint8_t rf_power)
|
||||
{
|
||||
// power level
|
||||
m_power = 0xFF;
|
||||
// Configure power level
|
||||
m_power = rf_power;
|
||||
|
||||
// Check frequency ranges
|
||||
if( !( ((frequency_rx >= VHF1_MIN)&&(frequency_rx < VHF1_MAX)) || ((frequency_tx >= VHF1_MIN)&&(frequency_tx < VHF1_MAX)) || \
|
||||
((frequency_rx >= UHF1_MIN)&&(frequency_rx < UHF1_MAX)) || ((frequency_tx >= UHF1_MIN)&&(frequency_tx < UHF1_MAX)) || \
|
||||
((frequency_rx >= VHF2_MIN)&&(frequency_rx < VHF2_MAX)) || ((frequency_tx >= VHF2_MIN)&&(frequency_tx < VHF2_MAX)) || \
|
||||
((frequency_rx >= UHF2_MIN)&&(frequency_rx < UHF2_MAX)) || ((frequency_tx >= UHF2_MIN)&&(frequency_tx < UHF2_MAX)) ) )
|
||||
return 4U;
|
||||
|
||||
// Configure frequency
|
||||
m_frequency_rx = frequency_rx;
|
||||
m_frequency_tx = frequency_tx;
|
||||
|
||||
|
|
|
|||
2
IO.h
2
IO.h
|
|
@ -91,7 +91,7 @@ public:
|
|||
void process(void);
|
||||
bool hasTXOverflow(void);
|
||||
bool hasRXOverflow(void);
|
||||
uint8_t setFreq(uint32_t frequency_rx, uint32_t frequency_tx);
|
||||
uint8_t setFreq(uint32_t frequency_rx, uint32_t frequency_tx, uint8_t rf_power);
|
||||
void setMode(MMDVM_STATE modemState);
|
||||
void setDecode(bool dcd);
|
||||
void setLoDevYSF(bool ysfLoDev);
|
||||
|
|
|
|||
|
|
@ -298,10 +298,19 @@ uint8_t CSerialPort::setMode(const uint8_t* data, uint8_t length)
|
|||
uint8_t CSerialPort::setFreq(const uint8_t* data, uint8_t length)
|
||||
{
|
||||
uint32_t freq_rx, freq_tx;
|
||||
uint8_t rf_power;
|
||||
|
||||
if (length < 9U)
|
||||
return 4U;
|
||||
|
||||
// Old MMDVMHost, set full power
|
||||
if (length == 9U)
|
||||
rf_power = 255U;
|
||||
|
||||
// New MMDVMHost, set power from MMDVM.ini
|
||||
if (length == 10U)
|
||||
rf_power = data[9];
|
||||
|
||||
freq_rx = data[1] * 1;
|
||||
freq_rx += data[2] * 256;
|
||||
freq_rx += data[3] * 65536;
|
||||
|
|
@ -312,7 +321,7 @@ uint8_t CSerialPort::setFreq(const uint8_t* data, uint8_t length)
|
|||
freq_tx += data[7] * 65536;
|
||||
freq_tx += data[8] * 16777216;
|
||||
|
||||
return io.setFreq(freq_rx, freq_tx);
|
||||
return io.setFreq(freq_rx, freq_tx, rf_power);
|
||||
}
|
||||
|
||||
void CSerialPort::setMode(MMDVM_STATE modemState)
|
||||
|
|
|
|||
Loading…
Reference in a new issue