A class representing an abstract front end for SoapySDR devices. More...
#include <SoapySDRAbstractFrontEnd.hxx>
Static Public Member Functions | |
static std::shared_ptr< SoapySDRAbstractFrontEnd > | getInstance (const std::string &referredInterfaceName) |
Gets an instance of SoapySDRAbstractFrontEnd. | |
Protected Member Functions | |
SoapySDRAbstractFrontEnd (const std::string &referredInterfaceName) | |
Constructs a SoapySDRAbstractFrontEnd object. | |
![]() | |
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. | |
![]() | |
virtual void | refreshHardwareInfoForConnectionProfile () |
Refresh connection profile information. | |
Additional Inherited Members | |
![]() | |
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< PipelineConfig > | getPinelineConfig () override |
![]() | |
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 |
![]() | |
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 () |
![]() | |
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. | |
![]() | |
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. | |
![]() | |
virtual std::vector< SDRMainBoardInfo > | getAllHardwareBoards (bool refresh=false) |
Get all hardware boards information. | |
virtual const SDRMainBoardInfo & | getHardwareBoardByIndex (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 SDRMainBoardInfo & | getHardwareBoardInfo (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 SDRDaughterboardProfile & | getHardwareDaughterboardProfile (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 |
![]() | |
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< PipelineConfig > | rxPipelineConfigs {} |
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 {} |
![]() | |
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 | |
![]() | |
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 | |
![]() | |
SDRMainBoardInfo | boardInfo |
bool | boardInfoChanged {true} |
std::vector< uint8_t > | supportedTxChannels {} |
std::vector< uint8_t > | supportedRxChannels {} |
bool | supportedChannelsChanged {true} |
std::vector< SDRDaughterboardProfile > | daughterboardProfiles {} |
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} |
A class representing an abstract front end for SoapySDR devices.
This class provides a virtual interface for SoapySDR front ends, allowing for the creation and management of SDR devices using the SoapySDR library.
Definition at line 16 of file SoapySDRAbstractFrontEnd.hxx.
|
explicitprotected |
Constructs a SoapySDRAbstractFrontEnd object.
This constructor initializes the SoapySDRAbstractFrontEnd with the specified interface name.
referredInterfaceName | The name of the interface to refer to. |
|
static |
Gets an instance of SoapySDRAbstractFrontEnd.
This method returns a shared pointer to a SoapySDRAbstractFrontEnd instance corresponding to the specified interface name.
referredInterfaceName | The name of the interface to refer to. |