diff options
Diffstat (limited to 'Transceiver52M/radioInterface.h')
-rw-r--r-- | Transceiver52M/radioInterface.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/Transceiver52M/radioInterface.h b/Transceiver52M/radioInterface.h index 1f225a2..b63cc4c 100644 --- a/Transceiver52M/radioInterface.h +++ b/Transceiver52M/radioInterface.h @@ -22,6 +22,8 @@ #include "radioClock.h" #include "radioBuffer.h" #include "Resampler.h" +#include "Channelizer.h" +#include "Synthesis.h" static const unsigned gSlotLen = 148; ///< number of symbols per slot, not counting guard periods @@ -101,7 +103,7 @@ public: RadioClock* getClock(void) { return &mClock;}; /** set transmit frequency */ - bool tuneTx(double freq, size_t chan = 0); + virtual bool tuneTx(double freq, size_t chan = 0); /** set receive frequency */ virtual bool tuneRx(double freq, size_t chan = 0); @@ -164,6 +166,34 @@ public: void close(); }; +class RadioInterfaceMulti : public RadioInterface { +private: + bool pushBuffer(); + void pullBuffer(); + + signalVector *outerSendBuffer; + signalVector *outerRecvBuffer; + std::vector<signalVector *> history; + std::vector<bool> active; + + Resampler *dnsampler; + Resampler *upsampler; + Channelizer *channelizer; + Synthesis *synthesis; + +public: + RadioInterfaceMulti(RadioDevice* radio, size_t tx_sps, + size_t rx_sps, size_t chans = 1); + ~RadioInterfaceMulti(); + + bool init(int type); + void close(); + + bool tuneTx(double freq, size_t chan); + bool tuneRx(double freq, size_t chan); + double setRxGain(double dB, size_t chan); +}; + class RadioInterfaceDiversity : public RadioInterface { public: RadioInterfaceDiversity(RadioDevice* wRadio, |