radioDevice: Move tx_sps from derived into base class

All three derived classes use a tx_sps member, let's move this into
the base class.

Change-Id: I73b4aa2705c5049561e2d7b21301a0d2b3c96ced
This commit is contained in:
Harald Welte 2018-06-13 22:47:48 +02:00
parent cfb9dac70d
commit ce70ba529c
6 changed files with 18 additions and 17 deletions

View File

@ -40,13 +40,14 @@ constexpr double LMSDevice::masterClockRate;
#define LMS_MIN_BW_SUPPORTED 2.5e6 /* 2.5mHz, minimum supported by LMS */
#define LMS_CALIBRATE_BW_HZ OSMO_MAX(GSM_CARRIER_BW, LMS_MIN_BW_SUPPORTED)
LMSDevice::LMSDevice(size_t sps, size_t chans,
LMSDevice::LMSDevice(size_t tx_sps, size_t chans,
const std::vector<std::string>& tx_paths,
const std::vector<std::string>& rx_paths):
m_lms_dev(NULL), sps(sps), chans(chans)
m_lms_dev(NULL), chans(chans)
{
LOG(INFO) << "creating LMS device...";
this->tx_sps = tx_sps;
this->tx_paths = tx_paths;
this->rx_paths = rx_paths;
@ -135,8 +136,8 @@ int LMSDevice::open(const std::string &args, int ref, bool swap_channels)
goto out_close;
print_range("Sample Rate", &range_sr);
LOG(DEBUG) << "Setting sample rate to " << GSMRATE*sps << " " << sps;
if (LMS_SetSampleRate(m_lms_dev, GSMRATE*sps, 32) < 0)
LOG(DEBUG) << "Setting sample rate to " << GSMRATE*tx_sps << " " << tx_sps;
if (LMS_SetSampleRate(m_lms_dev, GSMRATE*tx_sps, 32) < 0)
goto out_close;
if (LMS_GetSampleRate(m_lms_dev, LMS_CH_RX, 0, &sr_host, &sr_rf))
@ -144,7 +145,7 @@ int LMSDevice::open(const std::string &args, int ref, bool swap_channels)
LOG(DEBUG) << "Sample Rate: Host=" << sr_host << " RF=" << sr_rf;
/* FIXME: make this device/model dependent, like UHDDevice:dev_param_map! */
ts_offset = static_cast<TIMESTAMP>(8.9e-5 * GSMRATE * sps); /* time * sample_rate */
ts_offset = static_cast<TIMESTAMP>(8.9e-5 * GSMRATE * tx_sps); /* time * sample_rate */
switch (ref) {
case REF_INTERNAL:
@ -362,7 +363,7 @@ int LMSDevice::get_ant_idx(const std::string & name, bool dir_tx, size_t chan)
bool LMSDevice::flush_recv(size_t num_pkts)
{
#define CHUNK 625
int len = CHUNK * sps;
int len = CHUNK * tx_sps;
short *buffer = new short[len * 2];
int rc;
lms_stream_meta_t rx_metadata = {};

View File

@ -46,7 +46,7 @@ private:
std::vector<uint32_t> m_last_tx_underruns;
std::vector<uint32_t> m_last_tx_overruns;
size_t sps, chans;
size_t chans;
double actualSampleRate; ///< the actual USRP sampling rate
unsigned long long samplesRead; ///< number of samples read from LMS
@ -65,7 +65,7 @@ private:
public:
/** Object constructor */
LMSDevice(size_t sps, size_t chans,
LMSDevice(size_t tx_sps, size_t chans,
const std::vector<std::string>& tx_paths,
const std::vector<std::string>& rx_paths);

View File

@ -165,6 +165,7 @@ class RadioDevice {
virtual double numberWritten()=0;
std::vector<std::string> tx_paths, rx_paths;
size_t tx_sps;
bool set_antennas() {
unsigned int i;

View File

@ -282,7 +282,7 @@ private:
enum TxWindowType tx_window;
enum uhd_dev_type dev_type;
size_t tx_sps, rx_sps, chans;
size_t rx_sps, chans;
double tx_rate, rx_rate;
double tx_gain_min, tx_gain_max;

View File

@ -58,12 +58,12 @@ const dboardConfigType dboardConfig = TXA_RXB;
const double USRPDevice::masterClockRate = 52.0e6;
USRPDevice::USRPDevice(size_t sps)
USRPDevice::USRPDevice(size_t tx_sps)
{
LOG(INFO) << "creating USRP device...";
this->sps = sps;
decimRate = (unsigned int) round(masterClockRate/((GSMRATE) * (double) sps));
this->tx_sps = tx_sps;
decimRate = (unsigned int) round(masterClockRate/((GSMRATE) * (double) tx_sps));
actualSampleRate = masterClockRate/decimRate;
rxGain = 0;
@ -73,9 +73,9 @@ USRPDevice::USRPDevice(size_t sps)
* split sample rate Tx/Rx - 4/1 sps we need to need to
* compensate for advance rather than delay.
*/
if (sps == 1)
if (tx_sps == 1)
pingOffset = 272;
else if (sps == 4)
else if (tx_sps == 4)
pingOffset = 269 - 7500;
else
pingOffset = 0;
@ -100,7 +100,7 @@ int USRPDevice::open(const std::string &, int, bool)
if (!skipRx) {
try {
m_uRx = usrp_standard_rx_sptr(usrp_standard_rx::make(
0, decimRate * sps, 1, -1,
0, decimRate * tx_sps, 1, -1,
usrp_standard_rx::FPGA_MODE_NORMAL,
1024, 16 * 8, rbf));
m_uRx->set_fpga_master_clock_freq(masterClockRate);

View File

@ -48,7 +48,6 @@ private:
usrp_subdev_spec rxSubdevSpec;
usrp_subdev_spec txSubdevSpec;
int sps;
double actualSampleRate; ///< the actual USRP sampling rate
unsigned int decimRate; ///< the USRP decimation rate
@ -96,7 +95,7 @@ private:
public:
/** Object constructor */
USRPDevice(size_t sps);
USRPDevice(size_t tx_sps);
/** Instantiate the USRP */
int open(const std::string &, int, bool);