PicoScenes API Docs
 
Loading...
Searching...
No Matches
VirtualSDRFrontEnd Class Reference

Interface class for the Virtual SDR Frontend. More...

#include <VirtualSDRFrontEnd.hxx>

Inheritance diagram for VirtualSDRFrontEnd:
Collaboration diagram for VirtualSDRFrontEnd:

Public Member Functions

int32_t transmitSignals (const std::vector< const void * > &signals, int64_t bufferLength, double postfixDuration) override
 Simulates signal transmission (no actual operation).
 
ExtraInfo buildExtraInfo () override
 Builds extra information for the frontend (currently empty).
 
void printStatus () override
 Prints the status information of the virtual SDR to the log.
 
std::tuple< double, double, double > getChannelAndBandwidth () override
 Gets the channel, bandwidth, and center frequency (returns an empty tuple).
 
int setChannelAndBandwidth (double center, double bw, double control) override
 Sets the channel, bandwidth, and center frequency (no actual operation).
 
int setChannelAndBandwidth (std::optional< double > control, std::optional< double > bw, std::optional< double > center) override
 Optionally sets the channel, bandwidth, and center frequency (no actual operation).
 
bool isHardwareSupportedPreset (const std::string &presetName) override
 Checks if the hardware supports the specified preset mode.
 
void applyPreset (const std::string &presetName, bool skipChangeRate) override
 Applies the specified preset mode to the virtual SDR.
 
void setTxCarrierFrequencies (std::vector< double > carrierFreqsV) override
 Sets the transmit carrier frequencies for the virtual SDR (only sets the first channel).
 
void setRxCarrierFrequencies (std::vector< double > carrierFreqsV) override
 Sets the receive carrier frequencies for the virtual SDR (only sets the first channel).
 
std::vector< double > getTxCarrierFrequencies () override
 Gets the transmit carrier frequencies for the virtual SDR (returns a single frequency).
 
std::vector< double > getRxCarrierFrequencies () override
 Gets the receive carrier frequencies for the virtual SDR (returns a single frequency).
 
double getTxSamplingRate () override
 Gets the transmit sampling rate for the virtual SDR.
 
double getRxSamplingRate () override
 Gets the receive sampling rate for the virtual SDR.
 
void setTxSamplingRate (double txRate) override
 Sets the transmit sampling rate for the virtual SDR.
 
void setRxSamplingRate (double rxRate) override
 Sets the receive sampling rate for the virtual SDR.
 
double getControlChannelFrequency () override
 Gets the control channel frequency for the virtual SDR.
 
void setControlChannelFrequency (const double controlFrequencyV) override
 Sets the control channel frequency for the virtual SDR.
 
double getTxpower () override
 Gets the transmit power for the virtual SDR.
 
void setTxpower (const double txpowerV) override
 Sets the transmit power for the virtual SDR.
 
double getRxGain () override
 Gets the receive gain for the virtual SDR.
 
void setRxGain (const double rxGainV) override
 Sets the receive gain for the virtual SDR.
 
void setRxGain (const double rxGainV, uint8_t channel) override
 Sets the receive gain for a specific channel of the virtual SDR (only sets the global gain).
 
bool supportAGC () override
 Checks if the virtual SDR supports Automatic Gain Control (AGC).
 
void setAGC (bool enableAGC) override
 Sets the Automatic Gain Control (AGC) for the virtual SDR (no actual operation).
 
uint16_t getChannelFlags () override
 Gets the channel flags for the virtual SDR.
 
std::string getClockSource () override
 Gets the clock source for the virtual SDR.
 
void setClockSource (const std::string &clockSourceV) override
 Sets the clock source for the virtual SDR.
 
std::string getTimeSource () override
 Gets the time source for the virtual SDR.
 
void setTimeSource (const std::string &timeSourceV) override
 Sets the time source for the virtual SDR.
 
double getMasterClockRate () override
 Gets the master clock rate for the virtual SDR.
 
void setMasterClockRate (const double masterClockRateV) override
 Sets the master clock rate for the virtual SDR.
 
double getSDRFrontEndTime () override
 Gets the current time of the virtual SDR (uses system clock).
 
std::vector< std::string > getTxAntennas () override
 Gets the transmit antenna names for the virtual SDR.
 
void setTxAntennas (const std::vector< std::string > &txAnts) override
 Sets the transmit antenna names for the virtual SDR.
 
std::vector< std::string > getRxAntennas () override
 Gets the receive antenna names for the virtual SDR.
 
void setRxAntennas (const std::vector< std::string > &rxAnts) override
 Sets the receive antenna names for the virtual SDR.
 
double getFilterBandwidth () override
 Gets the filter bandwidth for the virtual SDR.
 
void setFilterBandwidth (const double bw) override
 Sets the filter bandwidth for the virtual SDR.
 
- Public Member Functions inherited from AbstractSDRFrontEnd
 AbstractSDRFrontEnd (const std::string &referredInterfaceName)
 Create AbstractSDRFrontEnd object according to the user-specified frontend name referredInterfaceName.
 
virtual CS16Vector generateSignal (const ModularPicoScenesTxFrame &frame, uint8_t numTxAntenna)=0
 Generate the baseband signal for ModularPicoScenesTxFrame frame with an optional numTxAntenna specifying the number of Tx antennas (or channels)
 
virtual std::vector< CS16Vector > generateMultiChannelSignals (const ModularPicoScenesTxFrame &frame, const uint8_t numTxAntenna)
 Generate the baseband signal via AbstractSDRFrontEnd::generateSignal, convert to SignalType type, and return in multi-channel format.
 
virtual void prebuildSignals (ModularPicoScenesTxFrame &frame, const uint8_t numTxAntenna)
 Generate the baseband signal via AbstractSDRFrontEnd::generateSignal and save the data into the prebuilt signals buffer of the Tx frame.
 
virtual int transmitSignalsFromFile (const std::string &signalSourceFile, uint64_t repeat)=0
 Transmits baseband signals from a .bbsignals file.
 
virtual int transmitSignalsContinuously (const std::vector< const void * > &multiChannelHeaders, int64_t numSignalsPerAntenna, bool burstStart, bool burstEnd)=0
 
int transmit (const ModularPicoScenesTxFrame &frame) override
 Transmit a ModularPicoScenesTxFrame frame via current frontend hardware.
 
virtual size_t transmitSignal (const CS16Vector &signals, const uint8_t numTxChannels, const double postfixDuration)
 
virtual size_t transmitSignal (const std::vector< CS16Vector > &multiChannelSignals, const double postfixDuration)
 
virtual int32_t transmitSignalInBatchedSingleBurst (const std::vector< std::vector< const void * > > &multipleSignals, const std::vector< int64_t > &signalLength, const std::vector< double > &postfixDurations, uint32_t repeat)=0
 
int transmitFramesInBatch (const std::vector< const ModularPicoScenesTxFrame * > &frames, const uint32_t repeat) override
 Transmit frames in batch with precise inter-frame timing.
 
template<int repeat = 1, typename... Frames, typename = std::enable_if_t<(std::is_same_v<std::remove_cvref_t<Frames>, ModularPicoScenesTxFrame*> && ...) || (std::is_same_v<std::remove_cvref_t<Frames>, ModularPicoScenesTxFrame> && ...) || ((std::is_same_v<std::remove_cvref_t<Frames>, std::shared_ptr<ModularPicoScenesTxFrame>> || std::is_same_v<std::remove_cvref_t<Frames>, std::unique_ptr<ModularPicoScenesTxFrame>>) && ...)>>
int transmitFramesInBatch (Frames &&... frames)
 
virtual std::optional< double > getCurrentNoiseFloor ()=0
 
virtual SDRFrontEndTxStatus getLastTxStatus () const =0
 
virtual void clearTxStatus ()=0
 
void setTxSignalDumpFilePath (const std::string &txSignalDumpFilePathV)
 
void setRxSignalDumpFilePath (const std::string &rxSignalDumpFilePathV)
 
void setRxSignalDumpDelayedStartDuration (const double delayedStartDuration)
 
void setSignalReplayFilePath (const std::string &signalReplayFilePath)
 
void setTxSignalReplayDelayMs (const std::optional< uint32_t > &txSignalReplayDelayMs)
 
ChannelBandwidthEnum getRxChannelBandwidthMode () override
 Get the current channel bandwidth mode for Rx.
 
void setRxChannelBandwidthMode (ChannelBandwidthEnum rxCbw) override
 Set the channel bandwidth mode for Rx.
 
void setTxIQMismatch (double iq_ratio_db, double iq_crosstalk_degree) override
 Set I/Q mismatch parameters for Tx.
 
void setRxIQMismatch (double iq_ratio_db, double iq_crosstalk_degree) override
 Set I/Q mismatch parameters for Rx.
 
double getTxIqRatioDB () override
 Get the I/Q ratio for Tx in dB.
 
double getTxIqCrossTalkDegree () override
 Get the I/Q crosstalk angle for Tx.
 
double getRxIqRatioDB () override
 Get the I/Q ratio for Rx in dB.
 
double getRxIqCrossTalkDegree () override
 Get the I/Q crosstalk angle for Rx.
 
double getRxSensitivity () override
 Get the receiver sensitivity.
 
void setRxSensitivity (const double rxSensitivityV) override
 Set the receiver sensitivity.
 
void setCarrierFrequencyOffset4TxEncoding (double carrierFrequencyOffset) override
 Set the carrier frequency offset for Tx encoding.
 
std::optional< double > getCarrierFrequencyOffset4TxEncoding () override
 Get the carrier frequency offset for Tx encoding.
 
void setSamplingFrequencyOffset4TxEncoding (double samplingFrequencyOffset) override
 Set the sampling frequency offset for Tx encoding.
 
std::optional< double > getSamplingFrequencyOffset4TxEncoding () override
 Get the sampling frequency offset for Tx encoding.
 
void setCarrierFrequencyOffset4RxDecoding (double rxCarrierFrequencyOffsetV) override
 Set the carrier frequency offset for Rx decoding.
 
std::optional< double > getCarrierFrequencyOffset4RxDecoding () override
 Get the carrier frequency offset for Rx decoding.
 
void setSamplingFrequencyOffset4RxDecoding (double samplingFrequencyOffset) override
 Set the sampling frequency offset for Rx decoding.
 
std::optional< double > getSamplingFrequencyOffset4RxDecoding () override
 Get the sampling frequency offset for Rx decoding.
 
double getSamplingRate () override
 Get the baseband sampling rate.
 
void setSamplingRate (double samplingRate) override
 set sampling rate (in Hz)
 
double getTxResampleRatio () override
 Get the Tx resampling ratio.
 
void setTxResampleRatio (double txResampleRatioV) override
 Set the Tx resampling ratio.
 
double getRxResampleRatio () override
 Get the Rx resampling ratio.
 
bool isRxResampleBypassFIR () override
 Check if FIR filter is bypassed in Rx resampling.
 
void setRxResampleBypassFIR (const bool bypass) override
 Set whether to bypass FIR filter in Rx resampling.
 
bool isTxSplitHighLow () override
 Check if high/low split is enabled for Tx.
 
void setTxSplitHighLow (const bool split) override
 Set whether to split high/low for Tx.
 
bool isRxMergeHighLow () override
 Check if high/low merge is enabled for Rx.
 
void setRxMergeHighLow (const bool merge) override
 Set whether to merge high/low for Rx.
 
void setRxResampleRatio (double rxResampleRatioV) override
 Set the Rx resampling ratio.
 
double getRxOfdmSymbolOffset () override
 Get the Rx OFDM symbol offset.
 
void setRxOfdmSymbolOffset (const double rxOfdmSymbolOffset) override
 Set the Rx OFDM symbol offset.
 
double getNumSamplesSavedBeforeStart () override
 Get the number of samples saved before start.
 
void getNumSamplesSavedBeforeStart (const double numSamplesSavedBeforeStartV) override
 Set the number of samples saved before start.
 
uint8_t getTxChainMask () override
 Get the Tx chain mask.
 
void setTxChainMask (const uint8_t txChainMask) override
 Set Tx chain mask. Setting Tx chain mask means to use only the selected Tx chain for signal transmission.
 
uint8_t getRxChainMask () override
 Get Rx chain mask.
 
void setRxChainMask (const uint8_t rxChainMask) override
 Set Rx chain mask. Setting Rx chain mask means to use only the selected Rx chains for signal reception.
 
const std::vector< size_t > & userSpecifiedTxChannels () const override
 Get the list of user-specified Tx channels.
 
std::vector< size_t > getTxChannels () override
 Get the numbers of the active Tx channels, starting from 0.
 
void setTxChannels (const std::vector< size_t > &txChannelsN) override
 This methods is fundamentally.
 
const std::vector< size_t > & userSpecifiedRxChannels () const override
 Get the list of user-specified Rx channels.
 
std::vector< size_t > getRxChannels () override
 Get the number of the active Rx channels, starting from 0.
 
void setRxChannels (const std::vector< size_t > &rxChannelsN) override
 Set the number of the active Rx channels, starting from 0.
 
bool isFullDuplexEnabled () override
 Check if full duplex mode is enabled.
 
void setFullDuplex (const bool enableFullDuplex) override
 Set full duplex mode.
 
SDRFrontEndTransferType getTransferType () const override
 Get the current transfer type.
 
void setTransferType (const SDRFrontEndTransferType transferTypeV) override
 Set the transfer type.
 
void setNumThreads4RxDecoding (const uint8_t numThreads) override
 Set the number of threads for Rx decoding.
 
double getCarrierFrequency () override
 Get the RF carrier frequency.
 
void setCarrierFrequency (double carrierFrequency) override
 Get the RF carrier frequency.
 
double getRxChannelBandwidth () override
 Get the 802.11 Channel Bandwidth parameter (20e6/40e6/80e6/160e6/320e6) of the Rx path.
 
void setRxChannelBandwidth (double rxcbw) override
 Set the Rx channel bandwidth parameter of the <contorlfreq-bandwidth-centerfreq> channel parameters.
 
void setClockSources (const std::vector< std::string > &clockSources) override
 Set clock sources for multiple motherboards.
 
std::vector< std::string > getClockSources () override
 Get list of current clock sources.
 
void setTimeSources (const std::vector< std::string > &timeSources) override
 Set time sources for multiple motherboards.
 
std::vector< std::string > getTimeSources () override
 Get list of current time sources.
 
std::string getTxAntenna () override
 Get the current Tx antenna.
 
void setTxAntenna (const std::string &txAnt) override
 Set the Tx antenna.
 
std::string getRxAntenna () override
 Get the current Rx antenna.
 
void setRxAntenna (const std::string &rxAnt) override
 Set the Rx antenna.
 
void setRxPipelineChannels (std::vector< std::vector< size_t > > PipelineChannels) override
 
std::vector< std::vector< size_t > > getRxPipelineChannels () override
 
void setPinelineConfig (std::vector< PipelineConfig > cfgs) override
 
std::vector< PipelineConfiggetPinelineConfig () override
 
- Public Member Functions inherited from AbstractFrontEnd
 AbstractFrontEnd (const std::string &referredInterfaceName)
 Create AbstractFrontEnd object according to the user-specified frontend name referredInterfaceName.
 
virtual int startTx ()
 Activate internal Tx service loop.
 
virtual int stopTx ()
 De-activate Tx service loop.
 
virtual bool isTxServiceStarted () const
 Returns whether Tx service is started.
 
virtual int pauseTx ()
 Pause Tx service loop.
 
virtual int resumeTx ()
 Resume Tx service loop.
 
virtual int transmitFramesInBatch (const std::vector< ModularPicoScenesTxFrame > &frames, const uint32_t repeat)
 
template<int repeat = 1, typename ... Frames, typename = std::enable_if_t<(std::is_same_v<std::remove_cvref_t<Frames>, ModularPicoScenesTxFrame *> &&...) || (std::is_same_v<std::remove_cvref_t<Frames>, ModularPicoScenesTxFrame> &&...) || ((std::is_same_v<std::remove_cvref_t<Frames>, std::shared_ptr<ModularPicoScenesTxFrame>> || std::is_same_v<std::remove_cvref_t<Frames>, std::unique_ptr<ModularPicoScenesTxFrame>>) &&...)>>
int transmitFramesInBatch (Frames &&... frames)
 
virtual int startRx ()=0
 Activiate the Rx service loop.
 
virtual int stopRx ()=0
 De-activate the Rx service loop, set rxServiceStarted to false.
 
virtual int pauseRx ()
 Pause the Rx service loop, set rxPaused to true.
 
virtual int resumeRx ()
 Resuase the paused Rx service loop, set rxPaused to false.
 
void registerRxHandle (const std::function< void(const ModularPicoScenesRxFrame &)> &rxHandle)
 Register a handler for the received ModularPicoScenesRxFrame frames.
 
const std::string & getReferredInterfaceName () const
 Get the user-specified frontend name.
 
void setReferredInterfaceName (const std::string &name)
 Set the user-specified frontend name.
 
const std::string & getPhyId () const
 Return the PhyId for NIC frontend. This is a undefined behavior for SDR frontend.
 
PicoScenesDeviceType getFrontEndType () const
 Return the PicoScenesDeviceType of this frontend.
 
PicoScenesDeviceSubtype getFrontEndSubtype () const
 Return the PicoScenesDeviceType subtype of this frontend.
 
const std::array< uint8_t, 6 > & getMacAddressPhy () const
 Return the MAC address of this frontend. For SDR frontend, this method should generate a pseudo-MAC address.
 
PicoScenesFrameTxParameters & getUserSpecifiedTxParameters ()
 
ModularPicoScenesTxFrame initializeTxFrame () override
 
virtual ~AbstractFrontEnd ()=default
 
- Public Member Functions inherited from FrontEndConfigurations
virtual ~FrontEndConfigurations ()=default
 
void setNumTxChannels (const uint8_t numTxChannels)
 Set the number of Tx channels, the active channels start from 0.
 
void setNumRxChannels (const uint8_t numRxChannels)
 Set the number of Rx channels, the active channels start from 0.
 
std::vector< size_t > getAllChannels ()
 
virtual void setSourceMACAddressFilter (const std::vector< std::array< uint8_t, 6 > > &addresses)
 Set the SOURCE addresses that will be blocked by the frontend.
 
virtual void setDestinationMACAddressFilter (const std::vector< std::array< uint8_t, 6 > > &addresses)
 Set the DESTINATION addresses that will be blocked by the frontend.
 
virtual uint16_t getAndIncreasePerFrontEndTxFrameSequenceNumber ()
 
- Public Member Functions inherited from SDRFrontEndConfigurations
virtual void initializeSDR ()=0
 Initialize the SDR hardware.
 
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.
 
- Public Member Functions inherited from SDRFrontEndBasebandConfigurations
virtual ~SDRFrontEndBasebandConfigurations ()=default
 
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.
 
- Public Member Functions inherited from SDRDeviceHardwareInformation
virtual std::vector< SDRMainBoardInfogetAllHardwareBoards (bool refresh=false)
 Get all hardware boards information.
 
virtual const SDRMainBoardInfogetHardwareBoardByIndex (size_t boardIndex, bool refresh=false)
 Get information for a specific board.
 
virtual size_t getHardwareBoardCount (bool refresh=false)
 Get total number of hardware boards.
 
virtual const SDRMainBoardInfogetHardwareBoardInfo (bool refresh=false)
 Get main hardware board information.
 
virtual const std::vector< uint8_t > & getHardwareSupportedTxChannels (bool refresh=false)
 Get supported Tx channels.
 
virtual const std::vector< uint8_t > & getHardwareSupportedRxChannels (bool refresh=false)
 Get supported Rx channels.
 
virtual const std::vector< std::string > & getHardwareSupportedTxAntennas (uint8_t channel, bool refresh=false)
 Get supported Tx antennas for a specific channel.
 
virtual const std::vector< std::string > & getHardwareSupportedRxAntennas (uint8_t channel, bool refresh=false)
 Get supported Rx antennas for a specific channel.
 
virtual const std::vector< std::vector< std::string > > & getHardwareSupportedTxAntennas (bool refresh=false)
 Get all supported Tx antennas.
 
virtual const std::vector< std::vector< std::string > > & getHardwareSupportedRxAntennas (bool refresh=false)
 Get all supported Rx antennas.
 
virtual const std::pair< double, double > & getHardwareTxGainRange (uint8_t channel, bool refresh=false)
 Get Tx gain range for a specific channel.
 
virtual const std::pair< double, double > & getHardwareRxGainRange (uint8_t channel, bool refresh=false)
 Get Rx gain range for a specific channel.
 
virtual const std::vector< std::pair< double, double > > & getHardwareTxGainRanges (bool refresh=false)
 Get all Tx gain ranges.
 
virtual const std::vector< std::pair< double, double > > & getHardwareRxGainRanges (bool refresh=false)
 Get all Rx gain ranges.
 
virtual const std::pair< double, double > & getHardwareTxFrequencyRange (uint8_t channel, bool refresh=false)
 Get Tx frequency range for a specific channel.
 
virtual const std::pair< double, double > & getHardwareRxFrequencyRange (uint8_t channel, bool refresh=false)
 Get Rx frequency range for a specific channel.
 
virtual const std::vector< std::pair< double, double > > & getHardwareTxFrequencyRanges (bool refresh=false)
 Get all Tx frequency ranges.
 
virtual const std::vector< std::pair< double, double > > & getHardwareRxFrequencyRanges (bool refresh=false)
 Get all Rx frequency ranges.
 
virtual const std::pair< double, double > & getHardwareTxSamplingRateRange (uint8_t channel, bool refresh=false)
 Get Tx sampling rate range for a specific channel.
 
virtual const std::pair< double, double > & getHardwareRxSamplingRateRange (uint8_t channel, bool refresh=false)
 Get Rx sampling rate range for a specific channel.
 
virtual const std::vector< std::pair< double, double > > & getHardwareTxSamplingRateRanges (bool refresh=false)
 Get all Tx sampling rate ranges.
 
virtual const std::vector< std::pair< double, double > > & getHardwareRxSamplingRateRanges (bool refresh=false)
 Get all Rx sampling rate ranges.
 
virtual const std::vector< double > & getHardwareSupportedMasterClockRates (bool refresh=false)
 Get supported master clock rates.
 
virtual const std::vector< std::string > & getHardwareSupportedClockAndTimeSources (bool refresh=false)
 Get supported clock and time sources.
 
virtual const std::vector< std::string > & getHardwareSupportedSensors (uint8_t channel, bool refresh=false)
 Get supported sensors for a specific channel.
 
virtual const std::vector< std::vector< std::string > > & getAllHardwareSupportedSensors (bool refresh=false)
 Get all supported sensors.
 
virtual const std::vector< double > & getHardwareTemperatures (bool refresh=false)
 Get temperature readings.
 
virtual bool getHardwareAGCSupport (uint8_t channel, bool refresh=false)
 Get AGC support for a specific channel.
 
virtual const std::vector< bool > & getHardwareAGCSupport (bool refresh=false)
 Get AGC support for all channels.
 
virtual const std::shared_ptr< SDRFrontEndProfile > & getHardwareFrontEndProfile (uint8_t channel, bool refresh=false)
 Get frontend profile for a specific channel.
 
virtual const std::vector< std::shared_ptr< SDRFrontEndProfile > > & getHardwareFrontEndProfiles (bool refresh=false)
 Get all frontend profiles.
 
virtual const SDRDaughterboardProfilegetHardwareDaughterboardProfile (size_t index, bool refresh=false)
 Get daughterboard profile at specific index.
 
virtual const std::vector< SDRDaughterboardProfile > & getHardwareDaughterboardProfiles (bool refresh=false)
 Get all daughterboard profiles.
 
virtual void refreshAllHardwareInfo ()
 Refresh all hardware information.
 
std::string hardwareInformationSheet ()
 Generate a formatted information sheet about the hardware.
 
virtual ~SDRDeviceHardwareInformation ()=default
 

Static Public Member Functions

static std::shared_ptr< VirtualSDRFrontEndgetInstance (const std::string &referredInterfaceName)
 Gets the instance of VirtualSDRFrontEnd.
 

Protected Member Functions

 VirtualSDRFrontEnd (const std::string &referredInterfaceName)
 Constructor (protected, get instance via getInstance).
 
- Protected Member Functions inherited from AbstractSDRFrontEnd
void refreshHardwareInfoForSupportedChannels () override
 Refresh supported channels information.
 
void refreshHardwareInfoForBoards () override
 Refresh boards information.
 
void refreshHardwareInfoForSupportedAntennas () override
 Refresh supported antennas information.
 
void refreshHardwareInfoForGainRanges () override
 Refresh gain ranges information.
 
void refreshHardwareInfoForFrequencyRanges () override
 Refresh frequency ranges information.
 
void refreshHardwareInfoForSamplingRateRanges () override
 Refresh sampling rate ranges information.
 
void refreshHardwareInfoForMasterClockRates () override
 Refresh master clock rates information.
 
void refreshHardwareInfoForClockAndTimeSources () override
 Refresh clock and time sources information.
 
void refreshHardwareInfoForSensors () override
 Refresh sensors information.
 
void refreshHardwareInfoForTemperatures () override
 Refresh temperature readings.
 
void refreshHardwareInfoForAGCSupport () override
 Refresh AGC support information.
 
void refreshHardwareInfoForFrontEndProfiles () override
 Refresh frontend profiles information.
 
- Protected Member Functions inherited from SDRDeviceHardwareInformation
virtual void refreshHardwareInfoForConnectionProfile ()
 Refresh connection profile information.
 

Protected Attributes

double carrierFrequency = 2412e6
 Carrier frequency (Hz).
 
double txSamplingRate = 20e6
 Transmit sampling rate (Hz).
 
double rxSamplingRate = 20e6
 Receive sampling rate (Hz).
 
double controlFrequency = 2412e6
 Control channel frequency (Hz).
 
double txpower = 10
 Transmit power (dBm or linear unit, context-dependent).
 
double rxGain = 30
 Receive gain (dB).
 
uint16_t channelFlags {}
 Channel flags (define channel mode, etc.).
 
std::string clockSource
 Clock source ("internal", "external", etc.).
 
std::string timeSource
 Time source ("internal", "gpsdo", etc.).
 
std::optional< double > rxCarrierFrequencyOffset = std::nullopt
 Receive carrier frequency offset (Hz).
 
ChannelBandwidthEnum rxCBW = ChannelBandwidthEnum::CBW_20
 Receive channel bandwidth mode.
 
double masterClockRate = 100e6
 Master clock rate (Hz).
 
std::vector< std::string > txAntennas {"TX/RX"}
 List of transmit antenna names.
 
std::vector< std::string > rxAntennas {"RX2"}
 List of receive antenna names.
 
double filterBandwidth = 40e6
 Hardware filter bandwidth (Hz).
 
- Protected Attributes inherited from AbstractSDRFrontEnd
std::optional< uint32_t > txSignalReplayDelay_ms
 
std::optional< std::string > txSignalDumpFilePath
 
std::optional< std::string > rxSignalDumpFilePath
 
std::optional< double > rxSignalDumpDelayedStartDuration
 
std::optional< std::string > rxSignalReplayFilePath
 
bool fullDuplex {false}
 
uint8_t numDecodingThreads {1}
 
SDRFrontEndTransferType transferType {SDRFrontEndTransferType::CS16}
 
std::vector< size_t > txChannels {}
 
std::vector< size_t > rxChannels {}
 
std::vector< std::vector< size_t > > rxPipelineChannels {}
 
std::vector< PipelineConfigrxPipelineConfigs {}
 
ChannelBandwidthEnum rxCBW {ChannelBandwidthEnum::CBW_20}
 
double rxResampleRatio {1.0}
 
bool rxResampleBypassFIR {false}
 
bool mergeHighLow {false}
 
double rxOFDMSymbolOffset {0.75}
 
double numSamplesSavedBeforeStart {5}
 
double rxSensitivity {10}
 
double rxIQMismatchRatioDb {0}
 
double rxIQMismatchRatioDegree {0}
 
std::optional< double > rxCarrierFrequencyOffset {}
 
std::optional< double > rxSamplingFrequencyOffset {}
 
- Protected Attributes inherited from AbstractFrontEnd
std::string referredInterfaceName
 the user specified frontend name
 
std::string phyId
 phyId
 
std::array< uint8_t, 6 > macAddress_PHY {0, 0, 0, 0, 0, 0}
 macAddress of the frontend
 
PicoScenesDeviceType frontEndType = PicoScenesDeviceType::Unknown
 frontend type
 
PicoScenesDeviceSubtype frontEndSubtype = PicoScenesDeviceSubtype::Unknown
 frontend subtype
 
bool txServiceStarted = false
 indicate whether Tx service is running
 
PicoScenesFrameTxParameters userSpecifiedTxParameters
 user-specified Tx parameters
 
std::mutex txPauseMutex
 
std::condition_variable txPauseCV
 
bool txPaused = false
 indicate whether Tx serivce is paused
 
std::function< void(const ModularPicoScenesRxFrame &)> rxHandle = nullptr
 The Rx frame handler.
 
bool rxPaused = false
 indicate whether Rx service loop is paused
 
bool rxServiceStarted = false
 indicate whether Rx service loop is running
 
- Protected Attributes inherited from FrontEndConfigurations
std::vector< std::array< uint8_t, 6 > > sourceAddressFilterList
 the source addresses to be filtered
 
std::vector< std::array< uint8_t, 6 > > destinationAddressFilterList
 the destination addressed to be filtered
 
uint16_t currentTxSequenceNumber {0}
 current Tx sequence number
 
- Protected Attributes inherited from SDRDeviceHardwareInformation
SDRMainBoardInfo boardInfo
 
bool boardInfoChanged {true}
 
std::vector< uint8_t > supportedTxChannels {}
 
std::vector< uint8_t > supportedRxChannels {}
 
bool supportedChannelsChanged {true}
 
std::vector< SDRDaughterboardProfiledaughterboardProfiles {}
 
std::vector< std::shared_ptr< SDRFrontEndProfile > > frontendProfiles {}
 
bool frontendProfilesChanged {true}
 
std::vector< std::vector< std::string > > supportedTxAntennas {}
 
std::vector< std::vector< std::string > > supportedRxAntennas {}
 
bool supportedAntennasChanged {true}
 
bool supportedAntennasMapChanged {true}
 
std::vector< std::pair< double, double > > txGainRanges {}
 
std::vector< std::pair< double, double > > rxGainRanges {}
 
bool gainRangesChanged {true}
 
bool gainRangesMapChanged {true}
 
std::vector< std::pair< double, double > > txFrequencyRanges {}
 
std::vector< std::pair< double, double > > rxFrequencyRanges {}
 
bool frequencyRangesChanged {true}
 
bool frequencyRangesMapChanged {true}
 
std::vector< std::pair< double, double > > txSamplingRateRanges {}
 
std::vector< std::pair< double, double > > rxSamplingRateRanges {}
 
bool samplingRateRangesChanged {true}
 
bool samplingRateRangesMapChanged {true}
 
std::vector< double > supportedMasterClockRates {}
 
bool masterClockRatesChanged {true}
 
std::vector< std::string > supportedClockAndTimeSources {}
 
bool clockAndTimeSourcesChanged {true}
 
std::vector< std::vector< std::string > > supportedSensors {}
 
bool sensorsChanged {true}
 
bool sensorsMapChanged {true}
 
std::vector< double > temperatureReadings {}
 
bool temperaturesChanged {true}
 
std::vector< bool > agcSupport {}
 
bool agcSupportChanged {true}
 
bool agcSupportMapChanged {true}
 

Detailed Description

Interface class for the Virtual SDR Frontend.

The VirtualSDRFrontEnd class provides an interface for a simulated SDR hardware. It inherits from AbstractSDRFrontEnd and provides default, no-op, or simulated implementations for many SDR operations. It is primarily used for testing and development purposes, or for running PicoScenes without physical SDR hardware.

Definition at line 20 of file VirtualSDRFrontEnd.hxx.

Constructor & Destructor Documentation

◆ VirtualSDRFrontEnd()

VirtualSDRFrontEnd::VirtualSDRFrontEnd ( const std::string &  referredInterfaceName)
inlineexplicitprotected

Constructor (protected, get instance via getInstance).

Parameters
referredInterfaceNameUser-specified interface name.

Definition at line 405 of file VirtualSDRFrontEnd.hxx.

Member Function Documentation

◆ applyPreset()

void VirtualSDRFrontEnd::applyPreset ( const std::string &  presetName,
bool  skipChangeRate 
)
inlineoverridevirtual

Applies the specified preset mode to the virtual SDR.

Parameters
presetNameThe name of the preset mode to apply.
skipChangeRateIf true, skips changing the sampling rate.
Exceptions
std::invalid_argumentIf the preset name is invalid (although this won't happen in this implementation).

Implements FrontEndConfigurations.

Definition at line 103 of file VirtualSDRFrontEnd.hxx.

References isHardwareSupportedPreset(), AbstractSDRFrontEnd::setRxChannelBandwidthMode(), AbstractSDRFrontEnd::setRxResampleRatio(), setRxSamplingRate(), AbstractSDRFrontEnd::setTxResampleRatio(), setTxSamplingRate(), and AbstractFrontEnd::userSpecifiedTxParameters.

◆ buildExtraInfo()

ExtraInfo VirtualSDRFrontEnd::buildExtraInfo ( )
inlineoverridevirtual

Builds extra information for the frontend (currently empty).

Returns
Returns an empty ExtraInfo object.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 45 of file VirtualSDRFrontEnd.hxx.

◆ getChannelAndBandwidth()

std::tuple< double, double, double > VirtualSDRFrontEnd::getChannelAndBandwidth ( )
inlineoverridevirtual

Gets the channel, bandwidth, and center frequency (returns an empty tuple).

Returns
Returns a tuple containing three 0.0 values.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 62 of file VirtualSDRFrontEnd.hxx.

◆ getChannelFlags()

uint16_t VirtualSDRFrontEnd::getChannelFlags ( )
inlineoverridevirtual

Gets the channel flags for the virtual SDR.

Returns
The channel flags.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 275 of file VirtualSDRFrontEnd.hxx.

References channelFlags.

Referenced by printStatus().

◆ getClockSource()

std::string VirtualSDRFrontEnd::getClockSource ( )
inlineoverridevirtual

Gets the clock source for the virtual SDR.

Returns
The clock source string.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 283 of file VirtualSDRFrontEnd.hxx.

References clockSource.

◆ getControlChannelFrequency()

double VirtualSDRFrontEnd::getControlChannelFrequency ( )
inlineoverridevirtual

Gets the control channel frequency for the virtual SDR.

Returns
The control channel frequency.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 202 of file VirtualSDRFrontEnd.hxx.

References controlFrequency.

◆ getFilterBandwidth()

double VirtualSDRFrontEnd::getFilterBandwidth ( )
inlineoverridevirtual

Gets the filter bandwidth for the virtual SDR.

Returns
The filter bandwidth.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 372 of file VirtualSDRFrontEnd.hxx.

References filterBandwidth.

◆ getInstance()

static std::shared_ptr< VirtualSDRFrontEnd > VirtualSDRFrontEnd::getInstance ( const std::string &  referredInterfaceName)
static

Gets the instance of VirtualSDRFrontEnd.

Parameters
referredInterfaceNameUser-specified interface name, must start with "virtualsdr".
Returns
A shared pointer to the VirtualSDRFrontEnd instance; returns nullptr if the name is invalid.

◆ getMasterClockRate()

double VirtualSDRFrontEnd::getMasterClockRate ( )
inlineoverridevirtual

Gets the master clock rate for the virtual SDR.

Returns
The master clock rate.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 315 of file VirtualSDRFrontEnd.hxx.

References masterClockRate.

◆ getRxAntennas()

std::vector< std::string > VirtualSDRFrontEnd::getRxAntennas ( )
inlineoverridevirtual

Gets the receive antenna names for the virtual SDR.

Returns
Vector containing the receive antenna names.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 356 of file VirtualSDRFrontEnd.hxx.

References rxAntennas.

◆ getRxCarrierFrequencies()

std::vector< double > VirtualSDRFrontEnd::getRxCarrierFrequencies ( )
inlineoverridevirtual

Gets the receive carrier frequencies for the virtual SDR (returns a single frequency).

Returns
Vector containing the current carrier frequency.

Implements SDRFrontEndConfigurations.

Definition at line 162 of file VirtualSDRFrontEnd.hxx.

References carrierFrequency.

Referenced by printStatus().

◆ getRxGain()

double VirtualSDRFrontEnd::getRxGain ( )
inlineoverridevirtual

Gets the receive gain for the virtual SDR.

Returns
The receive gain.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 234 of file VirtualSDRFrontEnd.hxx.

References rxGain.

◆ getRxSamplingRate()

double VirtualSDRFrontEnd::getRxSamplingRate ( )
inlineoverridevirtual

Gets the receive sampling rate for the virtual SDR.

Returns
The receive sampling rate.

Implements SDRFrontEndConfigurations.

Definition at line 178 of file VirtualSDRFrontEnd.hxx.

References rxSamplingRate.

◆ getSDRFrontEndTime()

double VirtualSDRFrontEnd::getSDRFrontEndTime ( )
inlineoverridevirtual

Gets the current time of the virtual SDR (uses system clock).

Returns
The current system timestamp.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 331 of file VirtualSDRFrontEnd.hxx.

◆ getTimeSource()

std::string VirtualSDRFrontEnd::getTimeSource ( )
inlineoverridevirtual

Gets the time source for the virtual SDR.

Returns
The time source string.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 299 of file VirtualSDRFrontEnd.hxx.

References timeSource.

◆ getTxAntennas()

std::vector< std::string > VirtualSDRFrontEnd::getTxAntennas ( )
inlineoverridevirtual

Gets the transmit antenna names for the virtual SDR.

Returns
Vector containing the transmit antenna names.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 340 of file VirtualSDRFrontEnd.hxx.

References txAntennas.

◆ getTxCarrierFrequencies()

std::vector< double > VirtualSDRFrontEnd::getTxCarrierFrequencies ( )
inlineoverridevirtual

Gets the transmit carrier frequencies for the virtual SDR (returns a single frequency).

Returns
Vector containing the current carrier frequency.

Implements SDRFrontEndConfigurations.

Definition at line 154 of file VirtualSDRFrontEnd.hxx.

References carrierFrequency.

◆ getTxpower()

double VirtualSDRFrontEnd::getTxpower ( )
inlineoverridevirtual

Gets the transmit power for the virtual SDR.

Returns
The transmit power.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 218 of file VirtualSDRFrontEnd.hxx.

References txpower.

Referenced by printStatus().

◆ getTxSamplingRate()

double VirtualSDRFrontEnd::getTxSamplingRate ( )
inlineoverridevirtual

Gets the transmit sampling rate for the virtual SDR.

Returns
The transmit sampling rate.

Implements SDRFrontEndConfigurations.

Definition at line 170 of file VirtualSDRFrontEnd.hxx.

References txSamplingRate.

◆ isHardwareSupportedPreset()

bool VirtualSDRFrontEnd::isHardwareSupportedPreset ( const std::string &  presetName)
inlineoverridevirtual

Checks if the hardware supports the specified preset mode.

Parameters
presetNameThe name of the preset mode.
Returns
Always returns true, as the virtual SDR supports all presets.

Implements FrontEndConfigurations.

Definition at line 92 of file VirtualSDRFrontEnd.hxx.

Referenced by applyPreset().

◆ printStatus()

void VirtualSDRFrontEnd::printStatus ( )
inlineoverridevirtual

◆ setAGC()

void VirtualSDRFrontEnd::setAGC ( bool  enableAGC)
inlineoverridevirtual

Sets the Automatic Gain Control (AGC) for the virtual SDR (no actual operation).

Parameters
enableAGCWhether to enable AGC.

Implements SDRFrontEndConfigurations.

Definition at line 267 of file VirtualSDRFrontEnd.hxx.

◆ setChannelAndBandwidth() [1/2]

int VirtualSDRFrontEnd::setChannelAndBandwidth ( double  center,
double  bw,
double  control 
)
inlineoverridevirtual

Sets the channel, bandwidth, and center frequency (no actual operation).

Parameters
centerCenter frequency.
bwBandwidth.
controlControl frequency.
Returns
Always returns 0.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 74 of file VirtualSDRFrontEnd.hxx.

◆ setChannelAndBandwidth() [2/2]

int VirtualSDRFrontEnd::setChannelAndBandwidth ( std::optional< double >  control,
std::optional< double >  bw,
std::optional< double >  center 
)
inlineoverridevirtual

Optionally sets the channel, bandwidth, and center frequency (no actual operation).

Parameters
controlOptional control frequency.
bwOptional bandwidth.
centerOptional center frequency.
Returns
Always returns 0.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 83 of file VirtualSDRFrontEnd.hxx.

◆ setClockSource()

void VirtualSDRFrontEnd::setClockSource ( const std::string &  clockSourceV)
inlineoverridevirtual

Sets the clock source for the virtual SDR.

Parameters
clockSourceVThe new clock source string.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 291 of file VirtualSDRFrontEnd.hxx.

References clockSource.

◆ setControlChannelFrequency()

void VirtualSDRFrontEnd::setControlChannelFrequency ( const double  controlFrequencyV)
inlineoverridevirtual

Sets the control channel frequency for the virtual SDR.

Parameters
controlFrequencyVThe new control channel frequency.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 210 of file VirtualSDRFrontEnd.hxx.

References controlFrequency.

◆ setFilterBandwidth()

void VirtualSDRFrontEnd::setFilterBandwidth ( const double  bw)
inlineoverridevirtual

Sets the filter bandwidth for the virtual SDR.

Parameters
bwThe new filter bandwidth.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 380 of file VirtualSDRFrontEnd.hxx.

References filterBandwidth.

◆ setMasterClockRate()

void VirtualSDRFrontEnd::setMasterClockRate ( const double  masterClockRateV)
inlineoverridevirtual

Sets the master clock rate for the virtual SDR.

Parameters
masterClockRateVThe new master clock rate.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 323 of file VirtualSDRFrontEnd.hxx.

References masterClockRate.

◆ setRxAntennas()

void VirtualSDRFrontEnd::setRxAntennas ( const std::vector< std::string > &  rxAnts)
inlineoverridevirtual

Sets the receive antenna names for the virtual SDR.

Parameters
rxAntsVector containing the receive antenna names.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 364 of file VirtualSDRFrontEnd.hxx.

References rxAntennas.

◆ setRxCarrierFrequencies()

void VirtualSDRFrontEnd::setRxCarrierFrequencies ( std::vector< double >  carrierFreqsV)
inlineoverridevirtual

Sets the receive carrier frequencies for the virtual SDR (only sets the first channel).

Parameters
carrierFreqsVVector containing carrier frequencies for each channel.

Implements SDRFrontEndConfigurations.

Definition at line 144 of file VirtualSDRFrontEnd.hxx.

References carrierFrequency.

◆ setRxGain() [1/2]

void VirtualSDRFrontEnd::setRxGain ( const double  rxGainV)
inlineoverridevirtual

Sets the receive gain for the virtual SDR.

Parameters
rxGainVThe new receive gain.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 242 of file VirtualSDRFrontEnd.hxx.

References rxGain.

◆ setRxGain() [2/2]

void VirtualSDRFrontEnd::setRxGain ( const double  rxGainV,
uint8_t  channel 
)
inlineoverridevirtual

Sets the receive gain for a specific channel of the virtual SDR (only sets the global gain).

Parameters
rxGainVThe new receive gain.
channelChannel index (ignored).

Reimplemented from AbstractSDRFrontEnd.

Definition at line 251 of file VirtualSDRFrontEnd.hxx.

References rxGain.

◆ setRxSamplingRate()

void VirtualSDRFrontEnd::setRxSamplingRate ( double  rxRate)
inlineoverridevirtual

Sets the receive sampling rate for the virtual SDR.

Parameters
rxRateThe new receive sampling rate.

Implements SDRFrontEndConfigurations.

Definition at line 194 of file VirtualSDRFrontEnd.hxx.

References rxSamplingRate.

Referenced by applyPreset().

◆ setTimeSource()

void VirtualSDRFrontEnd::setTimeSource ( const std::string &  timeSourceV)
inlineoverridevirtual

Sets the time source for the virtual SDR.

Parameters
timeSourceVThe new time source string.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 307 of file VirtualSDRFrontEnd.hxx.

References timeSource.

◆ setTxAntennas()

void VirtualSDRFrontEnd::setTxAntennas ( const std::vector< std::string > &  txAnts)
inlineoverridevirtual

Sets the transmit antenna names for the virtual SDR.

Parameters
txAntsVector containing the transmit antenna names.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 348 of file VirtualSDRFrontEnd.hxx.

References txAntennas.

◆ setTxCarrierFrequencies()

void VirtualSDRFrontEnd::setTxCarrierFrequencies ( std::vector< double >  carrierFreqsV)
inlineoverridevirtual

Sets the transmit carrier frequencies for the virtual SDR (only sets the first channel).

Parameters
carrierFreqsVVector containing carrier frequencies for each channel.

Implements SDRFrontEndConfigurations.

Definition at line 134 of file VirtualSDRFrontEnd.hxx.

References carrierFrequency.

◆ setTxpower()

void VirtualSDRFrontEnd::setTxpower ( const double  txpowerV)
inlineoverridevirtual

Sets the transmit power for the virtual SDR.

Parameters
txpowerVThe new transmit power.

Reimplemented from AbstractSDRFrontEnd.

Definition at line 226 of file VirtualSDRFrontEnd.hxx.

References txpower.

◆ setTxSamplingRate()

void VirtualSDRFrontEnd::setTxSamplingRate ( double  txRate)
inlineoverridevirtual

Sets the transmit sampling rate for the virtual SDR.

Parameters
txRateThe new transmit sampling rate.

Implements SDRFrontEndConfigurations.

Definition at line 186 of file VirtualSDRFrontEnd.hxx.

References txSamplingRate.

Referenced by applyPreset().

◆ supportAGC()

bool VirtualSDRFrontEnd::supportAGC ( )
inlineoverridevirtual

Checks if the virtual SDR supports Automatic Gain Control (AGC).

Returns
Always returns false.

Implements SDRFrontEndConfigurations.

Definition at line 259 of file VirtualSDRFrontEnd.hxx.

◆ transmitSignals()

int32_t VirtualSDRFrontEnd::transmitSignals ( const std::vector< const void * > &  signals,
int64_t  bufferLength,
double  postfixDuration 
)
inlineoverridevirtual

Simulates signal transmission (no actual operation).

Parameters
signalsVector of pointers to signal buffers for each channel.
bufferLengthNumber of signal samples per channel.
postfixDurationAdditional time to wait after transmission (in seconds).
Returns
Always returns 0.

Implements AbstractSDRFrontEnd.

Definition at line 36 of file VirtualSDRFrontEnd.hxx.

Member Data Documentation

◆ carrierFrequency

double VirtualSDRFrontEnd::carrierFrequency = 2412e6
protected

◆ channelFlags

uint16_t VirtualSDRFrontEnd::channelFlags {}
protected

Channel flags (define channel mode, etc.).

Definition at line 391 of file VirtualSDRFrontEnd.hxx.

Referenced by getChannelFlags().

◆ clockSource

std::string VirtualSDRFrontEnd::clockSource
protected

Clock source ("internal", "external", etc.).

Definition at line 392 of file VirtualSDRFrontEnd.hxx.

Referenced by getClockSource(), and setClockSource().

◆ controlFrequency

double VirtualSDRFrontEnd::controlFrequency = 2412e6
protected

Control channel frequency (Hz).

Definition at line 388 of file VirtualSDRFrontEnd.hxx.

Referenced by getControlChannelFrequency(), and setControlChannelFrequency().

◆ filterBandwidth

double VirtualSDRFrontEnd::filterBandwidth = 40e6
protected

Hardware filter bandwidth (Hz).

Definition at line 399 of file VirtualSDRFrontEnd.hxx.

Referenced by getFilterBandwidth(), and setFilterBandwidth().

◆ masterClockRate

double VirtualSDRFrontEnd::masterClockRate = 100e6
protected

Master clock rate (Hz).

Definition at line 396 of file VirtualSDRFrontEnd.hxx.

Referenced by getMasterClockRate(), and setMasterClockRate().

◆ rxAntennas

std::vector<std::string> VirtualSDRFrontEnd::rxAntennas {"RX2"}
protected

List of receive antenna names.

Definition at line 398 of file VirtualSDRFrontEnd.hxx.

Referenced by getRxAntennas(), and setRxAntennas().

◆ rxCarrierFrequencyOffset

std::optional<double> VirtualSDRFrontEnd::rxCarrierFrequencyOffset = std::nullopt
protected

Receive carrier frequency offset (Hz).

Definition at line 394 of file VirtualSDRFrontEnd.hxx.

◆ rxCBW

ChannelBandwidthEnum VirtualSDRFrontEnd::rxCBW = ChannelBandwidthEnum::CBW_20
protected

Receive channel bandwidth mode.

Definition at line 395 of file VirtualSDRFrontEnd.hxx.

◆ rxGain

double VirtualSDRFrontEnd::rxGain = 30
protected

Receive gain (dB).

Definition at line 390 of file VirtualSDRFrontEnd.hxx.

Referenced by getRxGain(), setRxGain(), and setRxGain().

◆ rxSamplingRate

double VirtualSDRFrontEnd::rxSamplingRate = 20e6
protected

Receive sampling rate (Hz).

Definition at line 387 of file VirtualSDRFrontEnd.hxx.

Referenced by getRxSamplingRate(), and setRxSamplingRate().

◆ timeSource

std::string VirtualSDRFrontEnd::timeSource
protected

Time source ("internal", "gpsdo", etc.).

Definition at line 393 of file VirtualSDRFrontEnd.hxx.

Referenced by getTimeSource(), and setTimeSource().

◆ txAntennas

std::vector<std::string> VirtualSDRFrontEnd::txAntennas {"TX/RX"}
protected

List of transmit antenna names.

Definition at line 397 of file VirtualSDRFrontEnd.hxx.

Referenced by getTxAntennas(), and setTxAntennas().

◆ txpower

double VirtualSDRFrontEnd::txpower = 10
protected

Transmit power (dBm or linear unit, context-dependent).

Definition at line 389 of file VirtualSDRFrontEnd.hxx.

Referenced by getTxpower(), and setTxpower().

◆ txSamplingRate

double VirtualSDRFrontEnd::txSamplingRate = 20e6
protected

Transmit sampling rate (Hz).

Definition at line 386 of file VirtualSDRFrontEnd.hxx.

Referenced by getTxSamplingRate(), and setTxSamplingRate().


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