mirror of https://github.com/g4klx/MMDVM.git
Remove the FM RX level.
This commit is contained in:
parent
33f88344c3
commit
e5c25f55fe
28
IO.cpp
28
IO.cpp
|
@ -80,7 +80,6 @@ m_ysfTXLevel(128 * 128),
|
||||||
m_p25TXLevel(128 * 128),
|
m_p25TXLevel(128 * 128),
|
||||||
m_nxdnTXLevel(128 * 128),
|
m_nxdnTXLevel(128 * 128),
|
||||||
m_pocsagTXLevel(128 * 128),
|
m_pocsagTXLevel(128 * 128),
|
||||||
m_fmRXLevel(128 * 128),
|
|
||||||
m_fmTXLevel(128 * 128),
|
m_fmTXLevel(128 * 128),
|
||||||
m_rxDCOffset(DC_OFFSET),
|
m_rxDCOffset(DC_OFFSET),
|
||||||
m_txDCOffset(DC_OFFSET),
|
m_txDCOffset(DC_OFFSET),
|
||||||
|
@ -358,19 +357,11 @@ void CIO::process()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_fmEnable) {
|
if (m_fmEnable) {
|
||||||
q15_t FMVals[RX_BLOCK_SIZE];
|
|
||||||
#if defined(USE_DCBLOCKER)
|
#if defined(USE_DCBLOCKER)
|
||||||
for (uint16_t i = 0U; i < RX_BLOCK_SIZE; i++) {
|
fm.samples(dcSamples, RX_BLOCK_SIZE);
|
||||||
q31_t res1 = dcSamples[i] * m_fmRXLevel;
|
|
||||||
FMVals[i] = q15_t(__SSAT((res1 >> 15), 16));
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
for (uint16_t i = 0U; i < RX_BLOCK_SIZE; i++) {
|
fm.samples(samples, RX_BLOCK_SIZE);
|
||||||
q31_t res1 = samples[i] * m_fmRXLevel;
|
|
||||||
FMVals[i] = q15_t(__SSAT((res1 >> 15), 16));
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
fm.samples(FMVals, RX_BLOCK_SIZE);
|
|
||||||
}
|
}
|
||||||
} else if (m_modemState == STATE_DSTAR) {
|
} else if (m_modemState == STATE_DSTAR) {
|
||||||
if (m_dstarEnable) {
|
if (m_dstarEnable) {
|
||||||
|
@ -431,19 +422,11 @@ void CIO::process()
|
||||||
nxdnRX.samples(NXDNVals, rssi, RX_BLOCK_SIZE);
|
nxdnRX.samples(NXDNVals, rssi, RX_BLOCK_SIZE);
|
||||||
}
|
}
|
||||||
} else if (m_modemState == STATE_FM) {
|
} else if (m_modemState == STATE_FM) {
|
||||||
q15_t FMVals[RX_BLOCK_SIZE];
|
|
||||||
#if defined(USE_DCBLOCKER)
|
#if defined(USE_DCBLOCKER)
|
||||||
for (uint16_t i = 0U; i < RX_BLOCK_SIZE; i++) {
|
fm.samples(dcSamples, RX_BLOCK_SIZE);
|
||||||
q31_t res1 = dcSamples[i] * m_fmRXLevel;
|
|
||||||
FMVals[i] = q15_t(__SSAT((res1 >> 15), 16));
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
for (uint16_t i = 0U; i < RX_BLOCK_SIZE; i++) {
|
fm.samples(samples, RX_BLOCK_SIZE);
|
||||||
q31_t res1 = samples[i] * m_fmRXLevel;
|
|
||||||
FMVals[i] = q15_t(__SSAT((res1 >> 15), 16));
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
fm.samples(FMVals, RX_BLOCK_SIZE);
|
|
||||||
} else if (m_modemState == STATE_DSTARCAL) {
|
} else if (m_modemState == STATE_DSTARCAL) {
|
||||||
q15_t GMSKVals[RX_BLOCK_SIZE];
|
q15_t GMSKVals[RX_BLOCK_SIZE];
|
||||||
::arm_fir_fast_q15(&m_gaussianFilter, samples, GMSKVals, RX_BLOCK_SIZE);
|
::arm_fir_fast_q15(&m_gaussianFilter, samples, GMSKVals, RX_BLOCK_SIZE);
|
||||||
|
@ -544,7 +527,7 @@ void CIO::setMode()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void CIO::setParameters(bool rxInvert, bool txInvert, bool pttInvert, uint8_t rxLevel, uint8_t cwIdTXLevel, uint8_t dstarTXLevel, uint8_t dmrTXLevel, uint8_t ysfTXLevel, uint8_t p25TXLevel, uint8_t nxdnTXLevel, uint8_t pocsagTXLevel, uint8_t fmRXLevel, uint8_t fmTXLevel, int16_t txDCOffset, int16_t rxDCOffset)
|
void CIO::setParameters(bool rxInvert, bool txInvert, bool pttInvert, uint8_t rxLevel, uint8_t cwIdTXLevel, uint8_t dstarTXLevel, uint8_t dmrTXLevel, uint8_t ysfTXLevel, uint8_t p25TXLevel, uint8_t nxdnTXLevel, uint8_t pocsagTXLevel, uint8_t fmTXLevel, int16_t txDCOffset, int16_t rxDCOffset)
|
||||||
{
|
{
|
||||||
m_pttInvert = pttInvert;
|
m_pttInvert = pttInvert;
|
||||||
|
|
||||||
|
@ -556,7 +539,6 @@ void CIO::setParameters(bool rxInvert, bool txInvert, bool pttInvert, uint8_t rx
|
||||||
m_p25TXLevel = q15_t(p25TXLevel * 128);
|
m_p25TXLevel = q15_t(p25TXLevel * 128);
|
||||||
m_nxdnTXLevel = q15_t(nxdnTXLevel * 128);
|
m_nxdnTXLevel = q15_t(nxdnTXLevel * 128);
|
||||||
m_pocsagTXLevel = q15_t(pocsagTXLevel * 128);
|
m_pocsagTXLevel = q15_t(pocsagTXLevel * 128);
|
||||||
m_fmRXLevel = q15_t(fmRXLevel * 128);
|
|
||||||
m_fmTXLevel = q15_t(fmTXLevel * 128);
|
m_fmTXLevel = q15_t(fmTXLevel * 128);
|
||||||
|
|
||||||
m_rxDCOffset = DC_OFFSET + rxDCOffset;
|
m_rxDCOffset = DC_OFFSET + rxDCOffset;
|
||||||
|
|
3
IO.h
3
IO.h
|
@ -42,7 +42,7 @@ public:
|
||||||
|
|
||||||
void interrupt();
|
void interrupt();
|
||||||
|
|
||||||
void setParameters(bool rxInvert, bool txInvert, bool pttInvert, uint8_t rxLevel, uint8_t cwIdTXLevel, uint8_t dstarTXLevel, uint8_t dmrTXLevel, uint8_t ysfTXLevel, uint8_t p25TXLevel, uint8_t nxdnTXLevel, uint8_t pocsagTXLevel, uint8_t fmRXLevel, uint8_t fmTXLevel, int16_t txDCOffset, int16_t rxDCOffset);
|
void setParameters(bool rxInvert, bool txInvert, bool pttInvert, uint8_t rxLevel, uint8_t cwIdTXLevel, uint8_t dstarTXLevel, uint8_t dmrTXLevel, uint8_t ysfTXLevel, uint8_t p25TXLevel, uint8_t nxdnTXLevel, uint8_t pocsagTXLevel, uint8_t fmTXLevel, int16_t txDCOffset, int16_t rxDCOffset);
|
||||||
|
|
||||||
void getOverflow(bool& adcOverflow, bool& dacOverflow);
|
void getOverflow(bool& adcOverflow, bool& dacOverflow);
|
||||||
|
|
||||||
|
@ -86,7 +86,6 @@ private:
|
||||||
q15_t m_p25TXLevel;
|
q15_t m_p25TXLevel;
|
||||||
q15_t m_nxdnTXLevel;
|
q15_t m_nxdnTXLevel;
|
||||||
q15_t m_pocsagTXLevel;
|
q15_t m_pocsagTXLevel;
|
||||||
q15_t m_fmRXLevel;
|
|
||||||
q15_t m_fmTXLevel;
|
q15_t m_fmTXLevel;
|
||||||
|
|
||||||
uint16_t m_rxDCOffset;
|
uint16_t m_rxDCOffset;
|
||||||
|
|
|
@ -262,7 +262,7 @@ void CSerialPort::getVersion()
|
||||||
|
|
||||||
uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
|
uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
|
||||||
{
|
{
|
||||||
if (length < 20U)
|
if (length < 19U)
|
||||||
return 4U;
|
return 4U;
|
||||||
|
|
||||||
bool rxInvert = (data[0U] & 0x01U) == 0x01U;
|
bool rxInvert = (data[0U] & 0x01U) == 0x01U;
|
||||||
|
@ -328,7 +328,6 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
|
||||||
uint8_t pocsagTXLevel = data[17U];
|
uint8_t pocsagTXLevel = data[17U];
|
||||||
|
|
||||||
uint8_t fmTXLevel = data[18U];
|
uint8_t fmTXLevel = data[18U];
|
||||||
uint8_t fmRXLevel = data[19U];
|
|
||||||
|
|
||||||
m_modemState = modemState;
|
m_modemState = modemState;
|
||||||
|
|
||||||
|
@ -356,7 +355,7 @@ uint8_t CSerialPort::setConfig(const uint8_t* data, uint8_t length)
|
||||||
|
|
||||||
ysfTX.setParams(ysfLoDev, ysfTXHang);
|
ysfTX.setParams(ysfLoDev, ysfTXHang);
|
||||||
|
|
||||||
io.setParameters(rxInvert, txInvert, pttInvert, rxLevel, cwIdTXLevel, dstarTXLevel, dmrTXLevel, ysfTXLevel, p25TXLevel, nxdnTXLevel, pocsagTXLevel, fmTXLevel, fmRXLevel, txDCOffset, rxDCOffset);
|
io.setParameters(rxInvert, txInvert, pttInvert, rxLevel, cwIdTXLevel, dstarTXLevel, dmrTXLevel, ysfTXLevel, p25TXLevel, nxdnTXLevel, pocsagTXLevel, fmTXLevel, txDCOffset, rxDCOffset);
|
||||||
|
|
||||||
io.start();
|
io.start();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue