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

Configuration class for SDR frontend hardware settings. More...

#include <SDRFrontEndConfigurations.hxx>

Inheritance diagram for SDRFrontEndConfigurations:
Collaboration diagram for SDRFrontEndConfigurations:

Public Member Functions

virtual void initializeSDR ()=0
 Initialize the SDR hardware.
 
virtual const std::vector< size_t > & userSpecifiedTxChannels () const =0
 Get the list of user-specified Tx channels.
 
virtual const std::vector< size_t > & userSpecifiedRxChannels () const =0
 Get the list of user-specified Rx channels.
 
virtual void setTxCarrierFrequencies (std::vector< double > carrierFreqs)=0
 Set carrier frequencies for Tx channels.
 
virtual void setRxCarrierFrequencies (std::vector< double > carrierFreqs)=0
 Set carrier frequencies for Rx channels.
 
virtual std::vector< double > getTxCarrierFrequencies ()=0
 Get carrier frequencies for Tx channels.
 
virtual std::vector< double > getRxCarrierFrequencies ()=0
 Get carrier frequencies for Rx channels.
 
virtual void setTxSamplingRate (double txRate)=0
 Set the Tx sampling rate.
 
virtual void setRxSamplingRate (double rxRate)=0
 Set the Rx sampling rate.
 
virtual double getTxSamplingRate ()=0
 Get the current Tx sampling rate.
 
virtual double getRxSamplingRate ()=0
 Get the current Rx sampling rate.
 
virtual bool supportAGC ()=0
 Check if AGC is supported.
 
virtual void setAGC (bool enableAGC)=0
 Enable or disable AGC.
 
virtual std::string getTxAntenna ()=0
 Get the current Tx antenna.
 
virtual std::string getRxAntenna ()=0
 Get the current 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
 Get list of available Tx antennas.
 
virtual std::vector< std::string > getRxAntennas ()=0
 Get list of available Rx antennas.
 
virtual void setTxAntennas (const std::vector< std::string > &txAnts)=0
 Set antennas for all Tx chains.
 
virtual void setRxAntennas (const std::vector< std::string > &rxAnts)=0
 Set antennas for all Rx chains.
 
virtual double getFilterBandwidth ()=0
 Get the current filter bandwidth.
 
virtual void setFilterBandwidth (double bw)=0
 Set the filter bandwidth.
 
virtual std::string getClockSource ()=0
 Get the current clock source.
 
virtual void setClockSource (const std::string &clockSource)=0
 Set the clock source.
 
virtual void setClockSources (const std::vector< std::string > &clockSources)=0
 Set clock sources for multiple motherboards.
 
virtual std::vector< std::string > getClockSources ()=0
 Get list of current clock sources.
 
virtual std::string getTimeSource ()=0
 Get the current time source.
 
virtual void setTimeSource (const std::string &timeSource)=0
 Set the time source.
 
virtual void setTimeSources (const std::vector< std::string > &timeSources)=0
 Set time sources for multiple motherboards.
 
virtual std::vector< std::string > getTimeSources ()=0
 Get list of current time sources.
 
virtual double getMasterClockRate ()=0
 Get the master clock rate.
 
virtual void setMasterClockRate (double masterClockRate)=0
 Set the master clock rate.
 
virtual SDRFrontEndTransferType getTransferType () const =0
 Get the current transfer type.
 
virtual void setTransferType (SDRFrontEndTransferType transferType)=0
 Set the transfer type.
 
virtual void setNumThreads4RxDecoding (uint8_t numThreads)=0
 Set the number of threads for Rx decoding.
 
virtual double getRxBufferDuration () const =0
 Get the Rx buffer duration.
 
virtual void skipMPDUDecoding4HESUHighDopplerFrame (bool skipDataDecoding)=0
 Set whether to skip MPDU decoding for HE-SU high Doppler frames.
 
virtual void setRxPipelineChannels (std::vector< std::vector< size_t > > PipelineChannels)=0
 
virtual std::vector< std::vector< size_t > > getRxPipelineChannels ()=0
 
virtual void setPinelineConfig (std::vector< PipelineConfig > cfgs)=0
 
virtual std::vector< PipelineConfiggetPinelineConfig ()=0
 
- Public Member Functions inherited from SDRFrontEndBasebandConfigurations
virtual ~SDRFrontEndBasebandConfigurations ()=default
 
virtual double getRxSensitivity ()=0
 Get the receiver sensitivity.
 
virtual void setRxSensitivity (double rxSensitivity)=0
 Set the receiver sensitivity.
 
virtual bool isRxResampleBypassFIR ()=0
 Check if FIR filter is bypassed in Rx resampling.
 
virtual void setRxResampleBypassFIR (bool bypass)=0
 Set whether to bypass FIR filter in Rx resampling.
 
virtual bool isTxSplitHighLow ()=0
 Check if high/low split is enabled for Tx.
 
virtual void setTxSplitHighLow (bool split)=0
 Set whether to split high/low for Tx.
 
virtual bool isRxMergeHighLow ()=0
 Check if high/low merge is enabled for Rx.
 
virtual void setRxMergeHighLow (bool merge)=0
 Set whether to merge high/low for Rx.
 
virtual std::optional< double > getCarrierFrequencyOffset4TxEncoding ()=0
 Get the carrier frequency offset for Tx encoding.
 
virtual void setCarrierFrequencyOffset4TxEncoding (double carrierFrequencyOffset)=0
 Set the carrier frequency offset for Tx encoding.
 
virtual std::optional< double > getSamplingFrequencyOffset4TxEncoding ()=0
 Get the sampling frequency offset for Tx encoding.
 
virtual void setSamplingFrequencyOffset4TxEncoding (double samplingFrequencyOffset)=0
 Set the sampling frequency offset for Tx encoding.
 
virtual std::optional< double > getCarrierFrequencyOffset4RxDecoding ()=0
 Get the carrier frequency offset for Rx decoding.
 
virtual void setCarrierFrequencyOffset4RxDecoding (double carrierFrequencyOffset)=0
 Set the carrier frequency offset for Rx decoding.
 
virtual std::optional< double > getSamplingFrequencyOffset4RxDecoding ()=0
 Get the sampling frequency offset for Rx decoding.
 
virtual void setSamplingFrequencyOffset4RxDecoding (double samplingFrequencyOffset)=0
 Set the sampling frequency offset for Rx decoding.
 
virtual double getTxResampleRatio ()=0
 Get the Tx resampling ratio.
 
virtual void setTxResampleRatio (double txResampleRatio)=0
 Set the Tx resampling ratio.
 
virtual double getRxResampleRatio ()=0
 Get the Rx resampling ratio.
 
virtual void setRxResampleRatio (double rxResampleRatio)=0
 Set the Rx resampling ratio.
 
virtual double getSDRFrontEndTime ()=0
 Get the current SDR hardware time.
 
virtual ChannelBandwidthEnum getRxChannelBandwidthMode ()=0
 Get the current channel bandwidth mode for Rx.
 
virtual void setRxChannelBandwidthMode (ChannelBandwidthEnum rxCbw)=0
 Set the channel bandwidth mode for Rx.
 
virtual void setTxIQMismatch (double iq_ratio_db, double iq_crosstalk_degree)=0
 Set I/Q mismatch parameters for Tx.
 
virtual void setRxIQMismatch (double iq_ratio_db, double iq_crosstalk_degree)=0
 Set I/Q mismatch parameters for Rx.
 
virtual double getTxIqRatioDB ()=0
 Get the I/Q ratio for Tx in dB.
 
virtual double getTxIqCrossTalkDegree ()=0
 Get the I/Q crosstalk angle for Tx.
 
virtual double getRxIqRatioDB ()=0
 Get the I/Q ratio for Rx in dB.
 
virtual double getRxIqCrossTalkDegree ()=0
 Get the I/Q crosstalk angle for Rx.
 
virtual bool isFullDuplexEnabled ()=0
 Check if full duplex mode is enabled.
 
virtual void setFullDuplex (bool enableFullduplex)=0
 Set full duplex mode.
 
virtual double getRxOfdmSymbolOffset ()=0
 Get the Rx OFDM symbol offset.
 
virtual void setRxOfdmSymbolOffset (double rxOfdmSymbolOffset)=0
 Set the Rx OFDM symbol offset.
 
virtual double getNumSamplesSavedBeforeStart ()=0
 Get the number of samples saved before start.
 
virtual void getNumSamplesSavedBeforeStart (double numSamplesSavedBeforeStart)=0
 Set the number of samples saved before start.
 
virtual bool isReturnBasebandSignals () const =0
 Check if baseband signals should be returned.
 
virtual bool useConventionalPacketDetector () const =0
 Check if conventional packet detector should be used.
 

Detailed Description

Configuration class for SDR frontend hardware settings.

This class extends SDRFrontEndBasebandConfigurations to provide additional configuration options specific to SDR hardware, such as carrier frequencies, sampling rates, gain settings, and hardware-specific parameters.

Definition at line 369 of file SDRFrontEndConfigurations.hxx.

Member Function Documentation

◆ getClockSource()

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

Get the current clock source.

Returns
std::string Name of current clock source

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getClockSources()

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

Get list of current clock sources.

Returns
std::vector<std::string> List of current clock source names

Implemented in AbstractSDRFrontEnd.

◆ getFilterBandwidth()

virtual double SDRFrontEndConfigurations::getFilterBandwidth ( )
pure virtual

Get the current filter bandwidth.

Returns
double Current filter bandwidth in Hz

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getMasterClockRate()

virtual double SDRFrontEndConfigurations::getMasterClockRate ( )
pure virtual

Get the master clock rate.

Returns
double Current master clock rate in Hz

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getPinelineConfig()

virtual std::vector< PipelineConfig > SDRFrontEndConfigurations::getPinelineConfig ( )
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ getRxAntenna()

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

Get the current Rx antenna.

Returns
std::string Name of current Rx antenna

Implemented in AbstractSDRFrontEnd.

◆ getRxAntennas()

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

Get list of available Rx antennas.

Returns
std::vector<std::string> List of available Rx antenna names

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getRxBufferDuration()

virtual double SDRFrontEndConfigurations::getRxBufferDuration ( ) const
pure virtual

Get the Rx buffer duration.

Returns
double Current Rx buffer duration

◆ getRxCarrierFrequencies()

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

Get carrier frequencies for Rx channels.

Returns
std::vector<double> Vector of current Rx carrier frequencies

Implemented in VirtualSDRFrontEnd.

Referenced by AbstractSDRFrontEnd::getCarrierFrequency().

◆ getRxPipelineChannels()

virtual std::vector< std::vector< size_t > > SDRFrontEndConfigurations::getRxPipelineChannels ( )
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ getRxSamplingRate()

virtual double SDRFrontEndConfigurations::getRxSamplingRate ( )
pure virtual

Get the current Rx sampling rate.

Returns
double Current Rx sampling rate in Hz

Implemented in VirtualSDRFrontEnd.

Referenced by AbstractSDRFrontEnd::getSamplingRate().

◆ getTimeSource()

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

Get the current time source.

Returns
std::string Name of current time source

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getTimeSources()

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

Get list of current time sources.

Returns
std::vector<std::string> List of current time source names

Implemented in AbstractSDRFrontEnd.

◆ getTransferType()

virtual SDRFrontEndTransferType SDRFrontEndConfigurations::getTransferType ( ) const
pure virtual

Get the current transfer type.

Returns
SDRFrontEndTransferType Current transfer type

Implemented in AbstractSDRFrontEnd.

◆ getTxAntenna()

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

Get the current Tx antenna.

Returns
std::string Name of current Tx antenna

Implemented in AbstractSDRFrontEnd.

◆ getTxAntennas()

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

Get list of available Tx antennas.

Returns
std::vector<std::string> List of available Tx antenna names

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ getTxCarrierFrequencies()

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

Get carrier frequencies for Tx channels.

Returns
std::vector<double> Vector of current Tx carrier frequencies

Implemented in VirtualSDRFrontEnd.

Referenced by AbstractSDRFrontEnd::getCarrierFrequency().

◆ getTxSamplingRate()

virtual double SDRFrontEndConfigurations::getTxSamplingRate ( )
pure virtual

Get the current Tx sampling rate.

Returns
double Current Tx sampling rate in Hz

Implemented in VirtualSDRFrontEnd.

Referenced by AbstractSDRFrontEnd::getSamplingRate(), AbstractSDRFrontEnd::transmit(), and AbstractSDRFrontEnd::transmitFramesInBatch().

◆ initializeSDR()

virtual void SDRFrontEndConfigurations::initializeSDR ( )
pure virtual

Initialize the SDR hardware.

◆ setAGC()

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

Enable or disable AGC.

Parameters
enableAGCTrue to enable AGC, false to disable

Implemented in VirtualSDRFrontEnd.

◆ setClockSource()

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

Set the clock source.

Parameters
clockSourceName of desired clock source

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ setClockSources()

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

Set clock sources for multiple motherboards.

Parameters
clockSourcesVector of clock source names for each motherboard

Implemented in AbstractSDRFrontEnd.

◆ setFilterBandwidth()

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

Set the filter bandwidth.

Parameters
bwDesired filter bandwidth in Hz

Implemented in VirtualSDRFrontEnd, and AbstractSDRFrontEnd.

◆ setMasterClockRate()

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

Set the master clock rate.

Parameters
masterClockRateDesired master clock rate in Hz

Implemented in VirtualSDRFrontEnd, and AbstractSDRFrontEnd.

◆ setNumThreads4RxDecoding()

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

Set the number of threads for Rx decoding.

Parameters
numThreadsNumber of threads to use

Implemented in AbstractSDRFrontEnd.

◆ setPinelineConfig()

virtual void SDRFrontEndConfigurations::setPinelineConfig ( std::vector< PipelineConfig cfgs)
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ setRxAntenna()

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

Set the Rx antenna.

Parameters
rxAntName of desired Rx antenna

Implemented in AbstractSDRFrontEnd.

◆ setRxAntennas()

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

Set antennas for all Rx chains.

Parameters
rxAntsVector of antenna names for each Rx chain

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ setRxCarrierFrequencies()

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

Set carrier frequencies for Rx channels.

Parameters
carrierFreqsVector of carrier frequencies for each Rx channel

Implemented in VirtualSDRFrontEnd.

Referenced by AbstractSDRFrontEnd::setCarrierFrequency().

◆ setRxPipelineChannels()

virtual void SDRFrontEndConfigurations::setRxPipelineChannels ( std::vector< std::vector< size_t > >  PipelineChannels)
pure virtual

Implemented in AbstractSDRFrontEnd.

◆ setRxSamplingRate()

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

Set the Rx sampling rate.

Parameters
rxRateDesired Rx sampling rate in Hz

Implemented in VirtualSDRFrontEnd.

Referenced by AbstractSDRFrontEnd::setSamplingRate().

◆ setTimeSource()

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

Set the time source.

Parameters
timeSourceName of desired time source

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ setTimeSources()

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

Set time sources for multiple motherboards.

Parameters
timeSourcesVector of time source names for each motherboard

Implemented in AbstractSDRFrontEnd.

◆ setTransferType()

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

Set the transfer type.

Parameters
transferTypeDesired transfer type

Implemented in AbstractSDRFrontEnd.

◆ setTxAntenna()

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

Set the Tx antenna.

Parameters
txAntName of desired Tx antenna

Implemented in AbstractSDRFrontEnd.

◆ setTxAntennas()

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

Set antennas for all Tx chains.

Parameters
txAntsVector of antenna names for each Tx chain

Implemented in AbstractSDRFrontEnd, and VirtualSDRFrontEnd.

◆ setTxCarrierFrequencies()

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

Set carrier frequencies for Tx channels.

Parameters
carrierFreqsVector of carrier frequencies for each Tx channel

Implemented in VirtualSDRFrontEnd.

Referenced by AbstractSDRFrontEnd::setCarrierFrequency().

◆ setTxSamplingRate()

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

Set the Tx sampling rate.

Parameters
txRateDesired Tx sampling rate in Hz

Implemented in VirtualSDRFrontEnd.

Referenced by AbstractSDRFrontEnd::setSamplingRate().

◆ skipMPDUDecoding4HESUHighDopplerFrame()

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

Set whether to skip MPDU decoding for HE-SU high Doppler frames.

Parameters
skipDataDecodingTrue to skip decoding, false otherwise

◆ supportAGC()

virtual bool SDRFrontEndConfigurations::supportAGC ( )
pure virtual

Check if AGC is supported.

Returns
bool True if AGC is supported, false otherwise

Implemented in VirtualSDRFrontEnd.

◆ userSpecifiedRxChannels()

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

Get the list of user-specified Rx channels.

Returns
const std::vector<size_t>& List of Rx channel indices

Implemented in AbstractSDRFrontEnd.

◆ userSpecifiedTxChannels()

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

Get the list of user-specified Tx channels.

Returns
const std::vector<size_t>& List of Tx channel indices

Implemented in AbstractSDRFrontEnd.


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