diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-09-13 17:29:21 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-09-13 17:50:10 +0200 |
commit | 62845241a2494b7e12407c96f10ddfbebf76cbde (patch) | |
tree | ac46872876e3d82f34058b56c6493ec47d1144dd | |
parent | 2ab921812e8cb89b8dbce6aab97bca60e632cf31 (diff) |
radioInterfaceMulti: Override setTxGain() to avoid chan!=0 calls
Change-Id: I7e67f660c3b0b009db59b405de603f6058021802
-rw-r--r-- | Transceiver52M/radioInterface.cpp | 7 | ||||
-rw-r--r-- | Transceiver52M/radioInterface.h | 4 | ||||
-rw-r--r-- | Transceiver52M/radioInterfaceMulti.cpp | 9 |
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(); + +} |