aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/radioInterface.cpp
diff options
context:
space:
mode:
authorThomas Tsou <tom@tsou.cc>2013-11-15 14:15:47 -0500
committerThomas Tsou <tom@tsou.cc>2013-11-15 23:35:07 -0500
commitcb269a32ddb3db9e8d7a8e48d5c007116348fb07 (patch)
tree91534eb5414a3a905e57e3e67cd0a2fba506e769 /Transceiver52M/radioInterface.cpp
parent1882099d1562a4575b447ef90ad021ff2e6be10a (diff)
Transceiver52M: Use independent power scaling varables for each channel
Simply vectorize the existing power state variable. Signed-off-by: Thomas Tsou <tom@tsou.cc>
Diffstat (limited to 'Transceiver52M/radioInterface.cpp')
-rw-r--r--Transceiver52M/radioInterface.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/Transceiver52M/radioInterface.cpp b/Transceiver52M/radioInterface.cpp
index ff9f493..5bddb5c 100644
--- a/Transceiver52M/radioInterface.cpp
+++ b/Transceiver52M/radioInterface.cpp
@@ -38,8 +38,7 @@ RadioInterface::RadioInterface(RadioDevice *wRadio,
int wReceiveOffset, GSM::Time wStartTime)
: mRadio(wRadio), mSPSTx(sps), mSPSRx(1), mChans(chans), mMIMO(diversity),
sendCursor(0), recvCursor(0), underrun(false), overrun(false),
- receiveOffset(wReceiveOffset), mOn(false), powerScaling(1.0),
- loadTest(false)
+ receiveOffset(wReceiveOffset), mOn(false), loadTest(false)
{
mClock.set(wStartTime);
}
@@ -63,6 +62,7 @@ bool RadioInterface::init(int type)
convertSendBuffer.resize(mChans);
convertRecvBuffer.resize(mChans);
mReceiveFIFO.resize(mChans);
+ powerScaling.resize(mChans);
for (size_t i = 0; i < mChans; i++) {
sendBuffer[i] = new signalVector(CHUNK * mSPSTx);
@@ -120,9 +120,9 @@ void RadioInterface::setPowerAttenuation(double atten, size_t chan)
digAtten = atten - mRadio->maxTxGain() + rfGain;
if (digAtten < 1.0)
- powerScaling = 1.0;
+ powerScaling[chan] = 1.0;
else
- powerScaling = 1.0/sqrt(pow(10, (digAtten/10.0)));
+ powerScaling[chan] = 1.0 / sqrt(pow(10, digAtten / 10.0));
}
int RadioInterface::radioifyVector(signalVector &wVector,
@@ -255,7 +255,6 @@ bool RadioInterface::driveReceiveRadio()
*burst->getVector(n));
}
-
if (mReceiveFIFO[i].size() < 32)
mReceiveFIFO[i].write(burst);
else
@@ -363,7 +362,7 @@ void RadioInterface::pushBuffer()
for (size_t i = 0; i < mChans; i++) {
convert_float_short(convertSendBuffer[i],
(float *) sendBuffer[i]->begin(),
- powerScaling, 2 * sendCursor);
+ powerScaling[i], 2 * sendCursor);
}
/* Send the all samples in the send buffer */