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

Interface class for the USRP Frontend. More...

#include <USRPFrontEnd.hxx>

Inheritance diagram for USRPFrontEnd:
Collaboration diagram for USRPFrontEnd:

Static Public Member Functions

static std::shared_ptr< USRPFrontEndgetInstance (const std::string &referredInterfaceName)
 Gets the singleton instance of USRPFrontEnd.
 

Protected Member Functions

 USRPFrontEnd (const std::string &referredInterfaceName)
 Constructs a USRPFrontEnd object.
 
- 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

std::string USRPAddress
 The address string used to connect to the USRP device.
 
- 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}
 

Additional Inherited Members

- 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 int32_t transmitSignals (const std::vector< const void * > &signals, int64_t bufferLength, double postfixDuration)=0
 
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.
 
void printStatus () override
 Print a status string to command line.
 
ExtraInfo buildExtraInfo () override
 Build an ExtraInfo object describing the current frontend status.
 
std::tuple< double, double, double > getChannelAndBandwidth () override
 Get the <contorlfreq-bandwidth-centerfreq> channel parameter.
 
int setChannelAndBandwidth (double control, double bw, double center) override
 Set the <contorlfreq-bandwidth-centerfreq> channel parameter.
 
int setChannelAndBandwidth (std::optional< double > control, std::optional< double > bw, std::optional< double > center) override
 Set the <contorlfreq-bandwidth-centerfreq> channel parameter, but with optional.
 
double getCarrierFrequency () override
 Get the RF carrier frequency.
 
void setCarrierFrequency (double carrierFrequency) override
 Get the RF carrier frequency.
 
double getControlChannelFrequency () override
 Get the control channel frequency of <contorlfreq-bandwidth-centerfreq> channel parameter.
 
void setControlChannelFrequency (double controlFrequency) override
 Get the control channel frequency of <contorlfreq-bandwidth-centerfreq> channel parameter.
 
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.
 
double getTxpower () override
 get the transmission power (Tx power)
 
void setTxpower (double txpower) override
 Set the Tx power (in dB)
 
double getRxGain () override
 Get the total Rx gain. However, currently only QCA9300 and SDR frontend support this method.
 
void setRxGain (double rxGain) override
 Set the total Rx gain. However, currently only QCA9300 and SDR frontend support this method.
 
void setRxGain (double rxGain, uint8_t channel) override
 Set the Rx gain for the specified channel. However, currently only QCA9300 and SDR frontend support this method.
 
uint16_t getChannelFlags () override
 Get the old ChannelFlags descriptor.
 
std::string getClockSource () override
 Get the current clock source.
 
void setClockSource (const std::string &clockSource) override
 Set the clock source.
 
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.
 
std::string getTimeSource () override
 Get the current time source.
 
void setTimeSource (const std::string &timeSource) override
 Set the time source.
 
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.
 
double getMasterClockRate () override
 Get the master clock rate.
 
void setMasterClockRate (double masterClockRate) override
 Set the master clock rate.
 
double getSDRFrontEndTime () override
 Get the current SDR hardware time.
 
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.
 
std::vector< std::string > getTxAntennas () override
 Get list of available Tx antennas.
 
void setTxAntennas (const std::vector< std::string > &txAnts) override
 Set antennas for all Tx chains.
 
std::vector< std::string > getRxAntennas () override
 Get list of available Rx antennas.
 
void setRxAntennas (const std::vector< std::string > &rxAnts) override
 Set antennas for all Rx chains.
 
double getFilterBandwidth () override
 Get the current filter bandwidth.
 
void setFilterBandwidth (double bw) override
 Set the filter bandwidth.
 
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
 
virtual bool isHardwareSupportedPreset (const std::string &presetName)=0
 Check if a preset configuration is supported by the hardware.
 
virtual void applyPreset (const std::string &presetName, bool skipChangeRate=false)=0
 Apply a preset configuration to the frontend hardware.
 
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 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 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
 

Detailed Description

Interface class for the USRP Frontend.

The USRPFrontEnd class provides an interface for USRP (Universal Software Radio Peripheral) devices. It inherits from AbstractSDRFrontEnd and serves as a base class for USRP-specific implementations. This class is designed to be extended by concrete implementations that interact with USRP hardware.

Definition at line 17 of file USRPFrontEnd.hxx.

Constructor & Destructor Documentation

◆ USRPFrontEnd()

USRPFrontEnd::USRPFrontEnd ( const std::string &  referredInterfaceName)
explicitprotected

Constructs a USRPFrontEnd object.

Parameters
referredInterfaceNameThe name of the interface to refer to.

Member Function Documentation

◆ getInstance()

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

Gets the singleton instance of USRPFrontEnd.

Parameters
referredInterfaceNameThe name of the interface to refer to.
Returns
A shared pointer to the USRPFrontEnd instance; returns nullptr if the name is invalid.

Member Data Documentation

◆ USRPAddress

std::string USRPFrontEnd::USRPAddress
protected

The address string used to connect to the USRP device.

Definition at line 33 of file USRPFrontEnd.hxx.


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