PicoScenes API Docs
 
Loading...
Searching...
No Matches
SDRFrontEndConfigurations Class Referenceabstract

This class holds all the configuration (including the SDR hardware related settings) of SDR frontend. More...

#include <SDRFrontEndConfigurations.hxx>

Inheritance diagram for SDRFrontEndConfigurations:
Collaboration diagram for SDRFrontEndConfigurations:

Public Member Functions

virtual void initializeSDR ()=0
 
virtual const std::vector< size_t > & userSpecifiedTxChannels () const =0
 
virtual const std::vector< size_t > & userSpecifiedRxChannels () const =0
 
virtual void setTxCarrierFrequencies (std::vector< double > carrierFreqs)=0
 
virtual void setRxCarrierFrequencies (std::vector< double > carrierFreqs)=0
 
virtual std::vector< double > getTxCarrierFrequencies ()=0
 
virtual std::vector< double > getRxCarrierFrequencies ()=0
 
virtual void setTxSamplingRate (double txRate)=0
 
virtual void setRxSamplingRate (double rxRate)=0
 
virtual double getTxSamplingRate ()=0
 
virtual double getRxSamplingRate ()=0
 
virtual bool supportAGC ()=0
 
virtual void setAGC (bool enableAGC)=0
 
virtual std::string getTxAntenna ()=0
 Get the Tx antenna.
 
virtual std::string getRxAntenna ()=0
 Get the Rx antenna.
 
virtual void setTxAntenna (const std::string &txAnt)=0
 Set the Tx antenna.
 
virtual void setRxAntenna (const std::string &rxAnt)=0
 Set the Rx antenna.
 
virtual std::vector< std::string > getTxAntennas ()=0
 
virtual std::vector< std::string > getRxAntennas ()=0
 
virtual void setTxAntennas (const std::vector< std::string > &txAnts)=0
 Specify antenna for each Tx chain.
 
virtual void setRxAntennas (const std::vector< std::string > &rxAnts)=0
 Specify antenna for each Rx chain.
 
virtual double getFilterBandwidth ()=0
 get the hardware-frontend filter bandwidth
 
virtual void setFilterBandwidth (double bw)=0
 Set the hardware frontend filter bandwidth.
 
virtual std::string getClockSource ()=0
 Get the clock source.
 
virtual void setClockSource (const std::string &clockSource)=0
 Set the clock source. For USRP, it can be "external", "mimo", "internal".
 
virtual void setClockSources (const std::vector< std::string > &clockSources)=0
 Set multiple clock sources for different motherboards.
 
virtual std::vector< std::string > getClockSources ()=0
 Get the list of currently set clock sources.
 
virtual std::string getTimeSource ()=0
 Get the timing source.
 
virtual void setTimeSource (const std::string &timeSource)=0
 Set the timing source. For USRP, it can be "external", "mimo", "internal".
 
virtual void setTimeSources (const std::vector< std::string > &timeSources)=0
 Set multiple time sources for different motherboards.
 
virtual std::vector< std::string > getTimeSources ()=0
 Get the list of currently set time sources.
 
virtual double getMasterClockRate ()=0
 Get the USRP master clock rate (in Hz)
 
virtual void setMasterClockRate (double masterClockRate)=0
 Set the USRP master clock rate (in Hz)
 
virtual SDRFrontEndTransferType getTransferType () const =0
 
virtual void setTransferType (SDRFrontEndTransferType transferType)=0
 
virtual void setNumThreads4RxDecoding (uint8_t numThreads)=0
 
virtual double getRxBufferDuration () const =0
 
virtual void skipMPDUDecoding4HESUHighDopplerFrame (bool skipDataDecoding)=0
 
- Public Member Functions inherited from SDRFrontEndBasebandConfigurations
virtual ~SDRFrontEndBasebandConfigurations ()=default
 
virtual double getRxSensitivity ()=0
 Get the Rx sensitivity of SDR baseband implemntation.
 
virtual void setRxSensitivity (double rxSensitivity)=0
 Set Rx sensitivity.
 
virtual bool isRxResampleBypassFIR ()=0
 
virtual void setRxResampleBypassFIR (bool bypass)=0
 
virtual bool isTxSplitHighLow ()=0
 
virtual void setTxSplitHighLow (bool split)=0
 
virtual bool isRxMergeHighLow ()=0
 
virtual void setRxMergeHighLow (bool merge)=0
 
virtual std::optional< double > getCarrierFrequencyOffset4TxEncoding ()=0
 Get the current carrier frequency offset (CFO) value for the baseband signal generation.
 
virtual void setCarrierFrequencyOffset4TxEncoding (double carrierFrequencyOffset)=0
 Set the current carrier frequency offset (CFO) value for the baseband signal generation.
 
virtual std::optional< double > getSamplingFrequencyOffset4TxEncoding ()=0
 Get the current sampilng frequency offset (SFO) value for the baseband signal generation.
 
virtual void setSamplingFrequencyOffset4TxEncoding (double samplingFrequencyOffset)=0
 Set the current sampling frequency offset (SFO) value for the baseband signal generation.
 
virtual std::optional< double > getCarrierFrequencyOffset4RxDecoding ()=0
 Check if user specifies the Rx path CFO; if specified, return the Rx path CFO.
 
virtual void setCarrierFrequencyOffset4RxDecoding (double carrierFrequencyOffset)=0
 Set the CFO value for baseband decoding.
 
virtual std::optional< double > getSamplingFrequencyOffset4RxDecoding ()=0
 Get the user-specified Rx path SFO, default is 0.
 
virtual void setSamplingFrequencyOffset4RxDecoding (double samplingFrequencyOffset)=0
 Set the user-specified Rx path SFO,.
 
virtual double getTxResampleRatio ()=0
 Get the user-specified Tx signal resample ratio.
 
virtual void setTxResampleRatio (double txResampleRatio)=0
 Set Tx signal resample ratio.
 
virtual double getRxResampleRatio ()=0
 Get the user-specified Rx resampling ratio.
 
virtual void setRxResampleRatio (double rxResampleRatio)=0
 Set the Rx signal rasample ratio.
 
virtual double getSDRFrontEndTime ()=0
 Obtain the SDR hardware time.
 
virtual ChannelBandwidthEnum getRxChannelBandwidthMode ()=0
 Get the current CBW value of Wi-Fi baseband decoder.
 
virtual void setRxChannelBandwidthMode (ChannelBandwidthEnum rxCbw)=0
 Set the CBW value for Wi-Fi baseband decoder, invoked by "--rx-cbw" option.
 
virtual void setTxIQMismatch (double iq_ratio_db, double iq_crosstalk_degree)=0
 Set Tx I/Q mismatch.
 
virtual void setRxIQMismatch (double iq_ratio_db, double iq_crosstalk_degree)=0
 Set Rx I/Q mismatch.
 
virtual double getTxIqRatioDB ()=0
 Get the I/Q mismatch ratio of the user-specified Tx I/Q mismatch.
 
virtual double getTxIqCrossTalkDegree ()=0
 Get the I/Q mismatch angle of the user-specified Tx I/Q mismatch.
 
virtual double getRxIqRatioDB ()=0
 Get the I/Q mismatch ratio of the user-specified Rx I/Q mismatch.
 
virtual double getRxIqCrossTalkDegree ()=0
 Get the I/Q mismatch degree of the user-specified Tx I/Q mismatch.
 
virtual bool isFullDuplexEnabled ()=0
 Check whether the Frontend is in Tx/Rx loopback mode.
 
virtual void setFullDuplex (bool enableFullduplex)=0
 Set the Frontend is in Tx/Rx loopback mode, in this mode Tx and Rx are open simultaneously, so that Rx end can receive the transmitted signal by Tx path.
 
virtual double getRxOfdmSymbolOffset ()=0
 Get the user-specified Rx OFDM symbol offset value.
 
virtual void setRxOfdmSymbolOffset (double rxOfdmSymbolOffset)=0
 Set Rx OFDM symbol offset, default is 0.
 
virtual double getNumSamplesSavedBeforeStart ()=0
 
virtual void getNumSamplesSavedBeforeStart (double numSamplesSavedBeforeStart)=0
 
virtual bool isReturnBasebandSignals () const =0
 
virtual bool useConventionalPacketDetector () const =0
 

Detailed Description

This class holds all the configuration (including the SDR hardware related settings) of SDR frontend.

Definition at line 258 of file SDRFrontEndConfigurations.hxx.

Member Function Documentation

◆ getClockSource()

virtual std::string SDRFrontEndConfigurations::getClockSource ( )
pure virtual

Get the clock source.

See also
setClockSource

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getClockSources()

virtual std::vector< std::string > SDRFrontEndConfigurations::getClockSources ( )
pure virtual

Get the list of currently set clock sources.

Returns
Vector of clock sources, one per motherboard

Implemented in AbstractSDRFrontEnd.

◆ getFilterBandwidth()

virtual double SDRFrontEndConfigurations::getFilterBandwidth ( )
pure virtual

get the hardware-frontend filter bandwidth

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getMasterClockRate()

virtual double SDRFrontEndConfigurations::getMasterClockRate ( )
pure virtual

Get the USRP master clock rate (in Hz)

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getRxAntenna()

virtual std::string SDRFrontEndConfigurations::getRxAntenna ( )
pure virtual

Get the Rx antenna.

Implemented in AbstractSDRFrontEnd.

◆ getRxAntennas()

virtual std::vector< std::string > SDRFrontEndConfigurations::getRxAntennas ( )
pure virtual

◆ getRxBufferDuration()

virtual double SDRFrontEndConfigurations::getRxBufferDuration ( ) const
pure virtual

◆ getRxCarrierFrequencies()

virtual std::vector< double > SDRFrontEndConfigurations::getRxCarrierFrequencies ( )
pure virtual

◆ getRxSamplingRate()

virtual double SDRFrontEndConfigurations::getRxSamplingRate ( )
pure virtual

◆ getTimeSource()

virtual std::string SDRFrontEndConfigurations::getTimeSource ( )
pure virtual

Get the timing source.

See also
setTimeSource
Returns

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getTimeSources()

virtual std::vector< std::string > SDRFrontEndConfigurations::getTimeSources ( )
pure virtual

Get the list of currently set time sources.

Returns
Vector of time sources, one per motherboard

Implemented in AbstractSDRFrontEnd.

◆ getTransferType()

virtual SDRFrontEndTransferType SDRFrontEndConfigurations::getTransferType ( ) const
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ getTxAntenna()

virtual std::string SDRFrontEndConfigurations::getTxAntenna ( )
pure virtual

Get the Tx antenna.

Implemented in AbstractSDRFrontEnd.

◆ getTxAntennas()

virtual std::vector< std::string > SDRFrontEndConfigurations::getTxAntennas ( )
pure virtual

◆ getTxCarrierFrequencies()

virtual std::vector< double > SDRFrontEndConfigurations::getTxCarrierFrequencies ( )
pure virtual

◆ getTxSamplingRate()

virtual double SDRFrontEndConfigurations::getTxSamplingRate ( )
pure virtual

◆ initializeSDR()

virtual void SDRFrontEndConfigurations::initializeSDR ( )
pure virtual

◆ setAGC()

virtual void SDRFrontEndConfigurations::setAGC ( bool  enableAGC)
pure virtual

Implemented in VirtualSDRFrontEnd.

◆ setClockSource()

virtual void SDRFrontEndConfigurations::setClockSource ( const std::string &  clockSource)
pure virtual

Set the clock source. For USRP, it can be "external", "mimo", "internal".

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ setClockSources()

virtual void SDRFrontEndConfigurations::setClockSources ( const std::vector< std::string > &  clockSources)
pure virtual

Set multiple clock sources for different motherboards.

Parameters
clockSourcesList of clock sources, one per motherboard

Implemented in AbstractSDRFrontEnd.

◆ setFilterBandwidth()

virtual void SDRFrontEndConfigurations::setFilterBandwidth ( double  bw)
pure virtual

Set the hardware frontend filter bandwidth.

Parameters
bw

Implemented in VirtualSDRFrontEnd, and AbstractSDRFrontEnd.

◆ setMasterClockRate()

virtual void SDRFrontEndConfigurations::setMasterClockRate ( double  masterClockRate)
pure virtual

Set the USRP master clock rate (in Hz)

Parameters
masterClockRate

Implemented in VirtualSDRFrontEnd, and AbstractSDRFrontEnd.

◆ setNumThreads4RxDecoding()

virtual void SDRFrontEndConfigurations::setNumThreads4RxDecoding ( uint8_t  numThreads)
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ setRxAntenna()

virtual void SDRFrontEndConfigurations::setRxAntenna ( const std::string &  rxAnt)
pure virtual

Set the Rx antenna.

Implemented in AbstractSDRFrontEnd.

◆ setRxAntennas()

virtual void SDRFrontEndConfigurations::setRxAntennas ( const std::vector< std::string > &  rxAnts)
pure virtual

Specify antenna for each Rx chain.

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ setRxCarrierFrequencies()

virtual void SDRFrontEndConfigurations::setRxCarrierFrequencies ( std::vector< double >  carrierFreqs)
pure virtual

◆ setRxSamplingRate()

virtual void SDRFrontEndConfigurations::setRxSamplingRate ( double  rxRate)
pure virtual

◆ setTimeSource()

virtual void SDRFrontEndConfigurations::setTimeSource ( const std::string &  timeSource)
pure virtual

Set the timing source. For USRP, it can be "external", "mimo", "internal".

Parameters
timeSource

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ setTimeSources()

virtual void SDRFrontEndConfigurations::setTimeSources ( const std::vector< std::string > &  timeSources)
pure virtual

Set multiple time sources for different motherboards.

Parameters
timeSourcesList of time sources, one per motherboard

Implemented in AbstractSDRFrontEnd.

◆ setTransferType()

virtual void SDRFrontEndConfigurations::setTransferType ( SDRFrontEndTransferType  transferType)
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ setTxAntenna()

virtual void SDRFrontEndConfigurations::setTxAntenna ( const std::string &  txAnt)
pure virtual

Set the Tx antenna.

Parameters
txAnt

Implemented in AbstractSDRFrontEnd.

◆ setTxAntennas()

virtual void SDRFrontEndConfigurations::setTxAntennas ( const std::vector< std::string > &  txAnts)
pure virtual

Specify antenna for each Tx chain.

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ setTxCarrierFrequencies()

virtual void SDRFrontEndConfigurations::setTxCarrierFrequencies ( std::vector< double >  carrierFreqs)
pure virtual

◆ setTxSamplingRate()

virtual void SDRFrontEndConfigurations::setTxSamplingRate ( double  txRate)
pure virtual

◆ skipMPDUDecoding4HESUHighDopplerFrame()

virtual void SDRFrontEndConfigurations::skipMPDUDecoding4HESUHighDopplerFrame ( bool  skipDataDecoding)
pure virtual

◆ supportAGC()

virtual bool SDRFrontEndConfigurations::supportAGC ( )
pure virtual

Implemented in VirtualSDRFrontEnd.

◆ userSpecifiedRxChannels()

virtual const std::vector< size_t > & SDRFrontEndConfigurations::userSpecifiedRxChannels ( ) const
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ userSpecifiedTxChannels()

virtual const std::vector< size_t > & SDRFrontEndConfigurations::userSpecifiedTxChannels ( ) const
pure virtual

Implemented in AbstractSDRFrontEnd.


The documentation for this class was generated from the following file: