aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2019-09-13 17:29:21 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2019-09-13 17:50:10 +0200
commit62845241a2494b7e12407c96f10ddfbebf76cbde (patch)
treeac46872876e3d82f34058b56c6493ec47d1144dd /Transceiver52M
parent2ab921812e8cb89b8dbce6aab97bca60e632cf31 (diff)
radioInterfaceMulti: Override setTxGain() to avoid chan!=0 calls
Diffstat (limited to 'Transceiver52M')
-rw-r--r--Transceiver52M/radioInterface.cpp7
-rw-r--r--Transceiver52M/radioInterface.h4
-rw-r--r--Transceiver52M/radioInterfaceMulti.cpp9
3 files changed, 19 insertions, 1 deletions
diff --git a/Transceiver52M/radioInterface.cpp b/Transceiver52M/radioInterface.cpp
index 9c7c044..6e49a75 100644
--- a/Transceiver52M/radioInterface.cpp
+++ b/Transceiver52M/radioInterface.cpp
@@ -112,7 +112,7 @@ int RadioInterface::setPowerAttenuation(int atten, size_t chan)
if (atten < 0.0)
atten = 0.0;
- rfGain = mDevice->setTxGain(mDevice->maxTxGain() - (double) atten, chan);
+ rfGain = setTxGain(mDevice->maxTxGain() - (double) atten, chan);
digAtten = (double) atten - mDevice->maxTxGain() + rfGain;
if (digAtten < 1.0)
@@ -307,6 +307,11 @@ double RadioInterface::setRxGain(double dB, size_t chan)
return mDevice->setRxGain(dB, chan);
}
+double RadioInterface::setTxGain(double dB, size_t chan)
+{
+ return mDevice->setTxGain(dB, chan);
+}
+
/* Receive a timestamped chunk from the device */
int RadioInterface::pullBuffer()
{
diff --git a/Transceiver52M/radioInterface.h b/Transceiver52M/radioInterface.h
index 945624a..83e00b9 100644
--- a/Transceiver52M/radioInterface.h
+++ b/Transceiver52M/radioInterface.h
@@ -134,6 +134,9 @@ protected:
/** drive synchronization of Tx/Rx of USRP */
void alignRadio();
+ /** set transmit gain */
+ virtual double setTxGain(double dB, size_t chan = 0);
+
friend void *AlignRadioServiceLoopAdapter(RadioInterface*);
};
@@ -157,6 +160,7 @@ class RadioInterfaceMulti : public RadioInterface {
private:
bool pushBuffer();
int pullBuffer();
+ virtual double setTxGain(double dB, size_t chan);
signalVector *outerSendBuffer;
signalVector *outerRecvBuffer;
diff --git a/Transceiver52M/radioInterfaceMulti.cpp b/Transceiver52M/radioInterfaceMulti.cpp
index c41ec22..4022d3a 100644
--- a/Transceiver52M/radioInterfaceMulti.cpp
+++ b/Transceiver52M/radioInterfaceMulti.cpp
@@ -405,3 +405,12 @@ double RadioInterfaceMulti::setRxGain(double db, size_t chan)
else
return mDevice->getRxGain();
}
+
+double RadioInterfaceMulti::setTxGain(double dB, size_t chan)
+{
+ if (chan == 0)
+ return mDevice->setTxGain(dB);
+ else
+ return mDevice->getTxGain();
+
+}