diff options
author | Thomas Tsou <tom@tsou.cc> | 2013-04-08 14:41:11 -0400 |
---|---|---|
committer | Alexander Chemeris <Alexander.Chemeris@gmail.com> | 2013-06-24 01:46:34 +0400 |
commit | 03669856b74bd1e82a3986a5e05154fec88942ac (patch) | |
tree | 9b551232c252925a767c684a0e2eef2cac1ffe7c /Transceiver52M/radioInterface.h | |
parent | 5d0e392b216c3c4e3d6d701650cb13e50e19c35a (diff) |
Transceiver52M: Set resampling option automatically based on device
Remove the built time resampling selection and link both options.
Move the normal push/pullBuffer() calls back to the base class and
overload them in the inherited resampling class.
USRP2/N2xx devices are the only devices that require resampling so
return that resampling is necessary on the device open(), which is
the point at which the device type will be known.
Signed-off-by: Thomas Tsou <tom@tsou.cc>
Diffstat (limited to 'Transceiver52M/radioInterface.h')
-rw-r--r-- | Transceiver52M/radioInterface.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/Transceiver52M/radioInterface.h b/Transceiver52M/radioInterface.h index 216cf3e..94d8917 100644 --- a/Transceiver52M/radioInterface.h +++ b/Transceiver52M/radioInterface.h @@ -31,7 +31,7 @@ static const unsigned gSlotLen = 148; ///< number of symbols per slot, not /** class to interface the transceiver with the USRP */ class RadioInterface { -private: +protected: Thread mAlignRadioServiceLoopThread; ///< thread that synchronizes transmit and receive sections @@ -63,6 +63,8 @@ private: int mNumARFCNs; signalVector *finalVec, *finalVec9; +private: + /** format samples to USRP */ int radioifyVector(signalVector &wVector, float *floatVector, @@ -73,10 +75,10 @@ private: int unRadioifyVector(float *floatVector, signalVector &wVector); /** push GSM bursts into the transmit buffer */ - void pushBuffer(void); + virtual void pushBuffer(void); /** pull GSM bursts from the receive buffer */ - void pullBuffer(void); + virtual void pullBuffer(void); public: @@ -154,3 +156,18 @@ protected: /** synchronization thread loop */ void *AlignRadioServiceLoopAdapter(RadioInterface*); #endif + +class RadioInterfaceResamp : public RadioInterface { + +private: + + void pushBuffer(); + void pullBuffer(); + +public: + + RadioInterfaceResamp(RadioDevice* wRadio = NULL, + int receiveOffset = 3, + int wSPS = SAMPSPERSYM, + GSM::Time wStartTime = GSM::Time(0)); +}; |