1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-09-28 15:56:33 -04:00

PlutoSDR input: completed settings

This commit is contained in:
f4exb 2017-09-04 17:52:54 +02:00
parent 541dd0a95b
commit 1261ab2bc0
2 changed files with 88 additions and 1 deletions

View File

@ -32,6 +32,15 @@ void PlutoSDRInputSettings::resetToDefaults()
m_LOppmTenths = 0;
m_log2Decim = 0;
m_devSampleRate = 1536 * 1000;
m_rateGovernor = RATEGOV_NORMAL;
m_dcBlock = false;
m_iqCorrection = false;
m_lpfBW = 1500000.0f;
m_lpfFIREnable = false;
m_lpfFIRBW = 500000.0f;
m_gain = 40;
m_antennaPath = RFPATH_A_BAL;
m_gainMode = GAIN_MANUAL;
}
QByteArray PlutoSDRInputSettings::serialize() const
@ -41,7 +50,16 @@ QByteArray PlutoSDRInputSettings::serialize() const
s.writeS32(1, m_LOppmTenths);
s.writeU32(4, m_log2Decim);
s.writeS32(5, m_fcPos);
s.writeS32(6, m_rateGovernor);
s.writeBool(7, m_dcBlock);
s.writeBool(8, m_iqCorrection);
s.writeFloat(9, m_lpfBW);
s.writeBool(10, m_lpfFIREnable);
s.writeFloat(11, m_lpfFIRBW);
s.writeU64(12, m_devSampleRate);
s.writeU32(13, m_gain);
s.writeS32(14, (int) m_antennaPath);
s.writeS32(15, (int) m_gainMode);
return s.final();
}
@ -63,8 +81,36 @@ bool PlutoSDRInputSettings::deserialize(const QByteArray& data)
d.readS32(1, &m_LOppmTenths, 0);
d.readU32(4, &m_log2Decim, 0);
d.readS32(5, &intval, 0);
m_fcPos = (fcPos_t) intval;
if ((intval < 0) || (intval > 2)) {
m_fcPos = FC_POS_INFRA;
} else {
m_fcPos = (fcPos_t) intval;
}
d.readS32(6, &intval, 0);
if ((intval >= 0) && (intval < (int) RATEGOV_END)) {
m_rateGovernor = (RateGovernor) intval;
} else {
m_rateGovernor = RATEGOV_NORMAL;
}
d.readBool(7, &m_dcBlock, false);
d.readBool(8, &m_iqCorrection, false);
d.readFloat(9, &m_lpfBW, 1500000.0f);
d.readBool(10, &m_lpfFIREnable, false);
d.readFloat(11, &m_lpfFIRBW, 500000.0f);
d.readU64(12, &m_devSampleRate, 1536000U);
d.readU32(13, &m_gain, 40);
d.readS32(14, &intval, 0);
if ((intval >= 0) && (intval < (int) RFPATH_END)) {
m_antennaPath = (RFPath) intval;
} else {
m_antennaPath = RFPATH_A_BAL;
}
d.readS32(15, &intval, 0);
if ((intval >= 0) && (intval < (int) GAIN_END)) {
m_gainMode = (GainMode) intval;
} else {
m_gainMode = GAIN_MANUAL;
}
return true;
}

View File

@ -26,11 +26,52 @@ struct PlutoSDRInputSettings {
FC_POS_CENTER
} fcPos_t;
enum RFPath
{
RFPATH_A_BAL = 0,
RFPATH_B_BAL,
RFPATH_C_BAL,
RFPATH_A_NEG,
RFPATH_A_POS,
RFPATH_B_NEG,
RFPATH_B_POS,
RFPATH_C_NEG,
RFPATH_C_POS,
RFPATH_TX1MON,
RFPATH_TX2MON,
RFPATH_TX3MON,
RFPATH_END
};
typedef enum {
GAIN_MANUAL,
GAIN_AGC_SLOW,
GAIN_AGC_FAST,
GAIN_HYBRID,
GAIN_END
} GainMode;
typedef enum {
RATEGOV_NORMAL,
RATEGOV_HIGHOSR,
RATEGOV_END
} RateGovernor;
quint64 m_centerFrequency;
fcPos_t m_fcPos;
qint32 m_LOppmTenths;
quint32 m_log2Decim;
quint64 m_devSampleRate;
RateGovernor m_rateGovernor;
bool m_dcBlock;
bool m_iqCorrection;
float m_lpfBW; //!< analog lowpass filter bandwidth (Hz)
bool m_lpfFIREnable; //!< enable digital lowpass FIR filter
float m_lpfFIRBW; //!< digital lowpass FIR filter bandwidth (Hz)
uint32_t m_gain; //!< "hardware" gain
RFPath m_antennaPath;
GainMode m_gainMode;
PlutoSDRInputSettings();
void resetToDefaults();