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:
parent
cfb9dac70d
commit
ce70ba529c
|
@ -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 = {};
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue