Hoernchen submitted this change.

View Change


Approvals: pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified laforge: Looks good to me, approved
ms: cache frequency

Don't waste time setting the same frequency again.

Change-Id: Ide9f45130955e1cc66610a50d6fc1cd79f30aca9
---
M Transceiver52M/ms/bladerf_specific.h
M Transceiver52M/ms/uhd_specific.h
2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/Transceiver52M/ms/bladerf_specific.h b/Transceiver52M/ms/bladerf_specific.h
index ba5c7f1..3dc4777 100644
--- a/Transceiver52M/ms/bladerf_specific.h
+++ b/Transceiver52M/ms/bladerf_specific.h
@@ -198,6 +198,7 @@

float rxgain, txgain;
static std::atomic<bool> stop_lower_threads_flag;
+ double rxfreq_cache, txfreq_cache;

struct ms_trx_config {
int tx_freq;
@@ -222,7 +223,9 @@
{
close_device();
}
- blade_hw() : rxFullScale(2047), txFullScale(2047), rxtxdelay(-60), rxgain(30), txgain(30)
+ blade_hw()
+ : rxFullScale(2047), txFullScale(2047), rxtxdelay(-60), rxgain(30), txgain(30), rxfreq_cache(0),
+ txfreq_cache(0)
{
}

@@ -320,15 +323,21 @@

bool tuneTx(double freq, size_t chan = 0)
{
+ if (txfreq_cache == freq)
+ return true;
msleep(15);
blade_check(bladerf_set_frequency, dev, BLADERF_CHANNEL_TX(0), (bladerf_frequency)freq);
+ txfreq_cache = freq;
msleep(15);
return true;
};
bool tuneRx(double freq, size_t chan = 0)
{
+ if (rxfreq_cache == freq)
+ return true;
msleep(15);
blade_check(bladerf_set_frequency, dev, BLADERF_CHANNEL_RX(0), (bladerf_frequency)freq);
+ rxfreq_cache = freq;
msleep(15);
return true;
};
diff --git a/Transceiver52M/ms/uhd_specific.h b/Transceiver52M/ms/uhd_specific.h
index c8361e9..5723fd4 100644
--- a/Transceiver52M/ms/uhd_specific.h
+++ b/Transceiver52M/ms/uhd_specific.h
@@ -78,12 +78,13 @@
const int rxtxdelay;
float rxgain, txgain;
static std::atomic<bool> stop_lower_threads_flag;
+ double rxfreq_cache, txfreq_cache;

virtual ~uhd_hw()
{
delete[] one_pkt_buf;
}
- uhd_hw() : rxFullScale(32767), txFullScale(32767 * 0.3), rxtxdelay(-67)
+ uhd_hw() : rxFullScale(32767), txFullScale(32767 * 0.3), rxtxdelay(-67), rxfreq_cache(0), txfreq_cache(0)
{
}

@@ -93,15 +94,21 @@

bool tuneTx(double freq, size_t chan = 0)
{
+ if (txfreq_cache == freq)
+ return true;
msleep(25);
dev->set_tx_freq(freq, chan);
+ txfreq_cache = freq;
msleep(25);
return true;
};
bool tuneRx(double freq, size_t chan = 0)
{
+ if (rxfreq_cache == freq)
+ return true;
msleep(25);
dev->set_rx_freq(freq, chan);
+ rxfreq_cache = freq;
msleep(25);
return true;
};

To view, visit change 32949. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: Ide9f45130955e1cc66610a50d6fc1cd79f30aca9
Gerrit-Change-Number: 32949
Gerrit-PatchSet: 4
Gerrit-Owner: Hoernchen <ewild@sysmocom.de>
Gerrit-Reviewer: Hoernchen <ewild@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>
Gerrit-MessageType: merged