Hoernchen has submitted this change. (
https://gerrit.osmocom.org/c/osmo-trx/+/32949 )
Change subject: ms: cache frequency
......................................................................
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(-)
Approvals:
pespin: Looks good to me, but someone else must approve
Jenkins Builder: Verified
laforge: Looks good to me, approved
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
https://gerrit.osmocom.org/c/osmo-trx/+/32949
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-Change-Id: Ide9f45130955e1cc66610a50d6fc1cd79f30aca9
Gerrit-Change-Number: 32949
Gerrit-PatchSet: 4
Gerrit-Owner: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Reviewer: Hoernchen <ewild(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged