aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/Transceiver.cpp
diff options
context:
space:
mode:
authorTom Tsou <tom.tsou@ettus.com>2016-07-01 03:46:46 -0700
committerTom Tsou <tom.tsou@ettus.com>2016-07-01 03:50:02 -0700
commit64464e6c34d3e508669b25d0c1af98895065b131 (patch)
tree6bbe09a000bbfb0e18abaa5f5007ec9f9b6a6387 /Transceiver52M/Transceiver.cpp
parente88710881b3287b4f9901df8824836ac01ef3799 (diff)
egprs: Enable 8-PSK burst detection when EDGE is enabled
The command line EDGE option will enable 8-PSK burst detection on any slot where a normal burst is expected. The burst search order is 8-PSK first followed by GMSK. EDGE will force 4 SPS sampling on Tx and Rx. Along with twice the search correlation from 8-PSK and GMSK, EDGE will increase CPU utilization. Whether the increase is notable or not is dependent on the particular machine. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
Diffstat (limited to 'Transceiver52M/Transceiver.cpp')
-rw-r--r--Transceiver52M/Transceiver.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp
index aafeaba..a1d0f49 100644
--- a/Transceiver52M/Transceiver.cpp
+++ b/Transceiver52M/Transceiver.cpp
@@ -130,7 +130,7 @@ Transceiver::Transceiver(int wBasePort,
mClockSocket(wBasePort, wTRXAddress, mBasePort + 100),
mTransmitLatency(wTransmitLatency), mRadioInterface(wRadioInterface),
rssiOffset(wRssiOffset),
- mSPSTx(tx_sps), mSPSRx(rx_sps), mChans(chans), mOn(false),
+ mSPSTx(tx_sps), mSPSRx(rx_sps), mChans(chans), mEdge(false), mOn(false),
mTxFreq(0.0), mRxFreq(0.0), mTSC(0), mMaxExpectedDelayAB(0), mMaxExpectedDelayNB(0),
mWriteBurstToDiskMask(0)
{
@@ -169,7 +169,7 @@ Transceiver::~Transceiver()
* are still expected to report clock indications through control channel
* activity.
*/
-bool Transceiver::init(int filler, size_t rtsc, unsigned rach_delay)
+bool Transceiver::init(int filler, size_t rtsc, unsigned rach_delay, bool edge)
{
int d_srcport, d_dstport, c_srcport, c_dstport;
@@ -183,6 +183,8 @@ bool Transceiver::init(int filler, size_t rtsc, unsigned rach_delay)
return false;
}
+ mEdge = edge;
+
mDataSockets.resize(mChans);
mCtrlSockets.resize(mChans);
mControlServiceLoopThreads.resize(mChans);
@@ -620,6 +622,10 @@ SoftVector *Transceiver::pullRadioVector(GSM::Time &wTime, double &RSSI, bool &i
GSM::Time time = radio_burst->getTime();
CorrType type = expectedCorrType(time, chan);
+ /* Enable 8-PSK burst detection if EDGE is enabled */
+ if (mEdge && (type == TSC))
+ type = EDGE;
+
/* Debug: dump bursts to disk */
/* bits 0-7 - chan 0 timeslots
* bits 8-15 - chan 1 timeslots */