GNU Radio's TEST Package
osmosdr::sink Class Referenceabstract

Takes a stream of complex samples. More...

#include <sink.h>

Inheritance diagram for osmosdr::sink:
sink_impl

Public Types

typedef std::shared_ptr< sinksptr
 

Public Member Functions

virtual size_t get_num_channels (void)=0
 
virtual osmosdr::meta_range_t get_sample_rates (void)=0
 
virtual double set_sample_rate (double rate)=0
 
virtual double get_sample_rate (void)=0
 
virtual osmosdr::freq_range_t get_freq_range (size_t chan=0)=0
 
virtual double set_center_freq (double freq, size_t chan=0)=0
 
virtual double get_center_freq (size_t chan=0)=0
 
virtual double set_freq_corr (double ppm, size_t chan=0)=0
 
virtual double get_freq_corr (size_t chan=0)=0
 
virtual std::vector< std::string > get_gain_names (size_t chan=0)=0
 
virtual osmosdr::gain_range_t get_gain_range (size_t chan=0)=0
 
virtual osmosdr::gain_range_t get_gain_range (const std::string &name, size_t chan=0)=0
 
virtual bool set_gain_mode (bool automatic, size_t chan=0)=0
 
virtual bool get_gain_mode (size_t chan=0)=0
 
virtual double set_gain (double gain, size_t chan=0)=0
 
virtual double set_gain (double gain, const std::string &name, size_t chan=0)=0
 
virtual double get_gain (size_t chan=0)=0
 
virtual double get_gain (const std::string &name, size_t chan=0)=0
 
virtual double set_if_gain (double gain, size_t chan=0)=0
 
virtual double set_bb_gain (double gain, size_t chan=0)=0
 
virtual std::vector< std::string > get_antennas (size_t chan=0)=0
 
virtual std::string set_antenna (const std::string &antenna, size_t chan=0)=0
 
virtual std::string get_antenna (size_t chan=0)=0
 
virtual void set_dc_offset (const std::complex< double > &offset, size_t chan=0)=0
 
virtual void set_iq_balance (const std::complex< double > &balance, size_t chan=0)=0
 
virtual double set_bandwidth (double bandwidth, size_t chan=0)=0
 
virtual double get_bandwidth (size_t chan=0)=0
 
virtual osmosdr::freq_range_t get_bandwidth_range (size_t chan=0)=0
 
virtual void set_time_source (const std::string &source, const size_t mboard=0)=0
 
virtual std::string get_time_source (const size_t mboard)=0
 
virtual std::vector< std::string > get_time_sources (const size_t mboard)=0
 
virtual void set_clock_source (const std::string &source, const size_t mboard=0)=0
 
virtual std::string get_clock_source (const size_t mboard)=0
 
virtual std::vector< std::string > get_clock_sources (const size_t mboard)=0
 
virtual double get_clock_rate (size_t mboard=0)=0
 
virtual void set_clock_rate (double rate, size_t mboard=0)=0
 
virtual ::osmosdr::time_spec_t get_time_now (size_t mboard=0)=0
 
virtual ::osmosdr::time_spec_t get_time_last_pps (size_t mboard=0)=0
 
virtual void set_time_now (const ::osmosdr::time_spec_t &time_spec, size_t mboard=0)=0
 
virtual void set_time_next_pps (const ::osmosdr::time_spec_t &time_spec)=0
 
virtual void set_time_unknown_pps (const ::osmosdr::time_spec_t &time_spec)=0
 

Static Public Member Functions

static sptr make (const std::string &args="")
 Return a shared_ptr to a new instance of sink. More...
 

Detailed Description

Takes a stream of complex samples.

This uses the preferred technique: subclassing gr::hier_block2.

Member Typedef Documentation

◆ sptr

typedef std::shared_ptr< sink > osmosdr::sink::sptr

Member Function Documentation

◆ get_antenna()

virtual std::string osmosdr::sink::get_antenna ( size_t  chan = 0)
pure virtual

Get the actual underlying radio hardware antenna setting.

Parameters
chanthe channel index 0 to N-1
Returns
the actual antenna's name

Implemented in sink_impl.

◆ get_antennas()

virtual std::vector< std::string > osmosdr::sink::get_antennas ( size_t  chan = 0)
pure virtual

Get the available antennas of the underlying radio hardware.

Parameters
chanthe channel index 0 to N-1
Returns
a vector of strings containing the names of available antennas

Implemented in sink_impl.

◆ get_bandwidth()

virtual double osmosdr::sink::get_bandwidth ( size_t  chan = 0)
pure virtual

Get the actual bandpass filter setting on the radio frontend.

Parameters
chanthe channel index 0 to N-1
Returns
the actual filter bandwidth in Hz

Implemented in sink_impl.

◆ get_bandwidth_range()

virtual osmosdr::freq_range_t osmosdr::sink::get_bandwidth_range ( size_t  chan = 0)
pure virtual

Get the possible bandpass filter settings on the radio frontend.

Parameters
chanthe channel index 0 to N-1
Returns
a range of bandwidths in Hz

Implemented in sink_impl.

◆ get_center_freq()

virtual double osmosdr::sink::get_center_freq ( size_t  chan = 0)
pure virtual

Get the center frequency the underlying radio hardware is tuned to. This is the actual frequency and may differ from the frequency set.

Parameters
chanthe channel index 0 to N-1
Returns
the frequency in Hz

Implemented in sink_impl.

◆ get_clock_rate()

virtual double osmosdr::sink::get_clock_rate ( size_t  mboard = 0)
pure virtual

Get the master clock rate.

Parameters
mboardthe motherboard index 0 to M-1
Returns
the clock rate in Hz

Implemented in sink_impl.

◆ get_clock_source()

virtual std::string osmosdr::sink::get_clock_source ( const size_t  mboard)
pure virtual

Get the currently set clock source.

Parameters
mboardwhich motherboard to get the config
Returns
the string representing the clock source

Implemented in sink_impl.

◆ get_clock_sources()

virtual std::vector<std::string> osmosdr::sink::get_clock_sources ( const size_t  mboard)
pure virtual

Get a list of possible clock sources.

Parameters
mboardwhich motherboard to get the list
Returns
a vector of strings for possible settings

Implemented in sink_impl.

◆ get_freq_corr()

virtual double osmosdr::sink::get_freq_corr ( size_t  chan = 0)
pure virtual

Get the frequency correction value.

Parameters
chanthe channel index 0 to N-1
Returns
correction value in parts per million

Implemented in sink_impl.

◆ get_freq_range()

virtual osmosdr::freq_range_t osmosdr::sink::get_freq_range ( size_t  chan = 0)
pure virtual

Get the tunable frequency range for the underlying radio hardware.

Parameters
chanthe channel index 0 to N-1
Returns
the frequency range in Hz

Implemented in sink_impl.

◆ get_gain() [1/2]

virtual double osmosdr::sink::get_gain ( const std::string &  name,
size_t  chan = 0 
)
pure virtual

Get the actual gain setting of a named stage.

Parameters
namethe name of the gain stage
chanthe channel index 0 to N-1
Returns
the actual gain in dB

Implemented in sink_impl.

◆ get_gain() [2/2]

virtual double osmosdr::sink::get_gain ( size_t  chan = 0)
pure virtual

Get the actual gain setting of the underlying radio hardware.

Parameters
chanthe channel index 0 to N-1
Returns
the actual gain in dB

Implemented in sink_impl.

◆ get_gain_mode()

virtual bool osmosdr::sink::get_gain_mode ( size_t  chan = 0)
pure virtual

Get the gain mode selected for the underlying radio hardware.

Parameters
chanthe channel index 0 to N-1
Returns
the actual gain mode (true means automatic gain mode)

Implemented in sink_impl.

◆ get_gain_names()

virtual std::vector<std::string> osmosdr::sink::get_gain_names ( size_t  chan = 0)
pure virtual

Get the gain stage names of the underlying radio hardware.

Parameters
chanthe channel index 0 to N-1
Returns
a vector of strings containing the names of gain stages

Implemented in sink_impl.

◆ get_gain_range() [1/2]

virtual osmosdr::gain_range_t osmosdr::sink::get_gain_range ( const std::string &  name,
size_t  chan = 0 
)
pure virtual

Get the settable gain range for a specific gain stage.

Parameters
namethe name of the gain stage
chanthe channel index 0 to N-1
Returns
the gain range in dB

Implemented in sink_impl.

◆ get_gain_range() [2/2]

virtual osmosdr::gain_range_t osmosdr::sink::get_gain_range ( size_t  chan = 0)
pure virtual

Get the settable overall gain range for the underlying radio hardware.

Parameters
chanthe channel index 0 to N-1
Returns
the gain range in dB

Implemented in sink_impl.

◆ get_num_channels()

virtual size_t osmosdr::sink::get_num_channels ( void  )
pure virtual

Get the number of channels the underlying radio hardware offers.

Returns
the number of available channels

Implemented in sink_impl.

◆ get_sample_rate()

virtual double osmosdr::sink::get_sample_rate ( void  )
pure virtual

Get the sample rate for the underlying radio hardware. This is the actual sample rate and may differ from the rate set.

Returns
the actual rate in Sps

Implemented in sink_impl.

◆ get_sample_rates()

virtual osmosdr::meta_range_t osmosdr::sink::get_sample_rates ( void  )
pure virtual

Get the possible sample rates for the underlying radio hardware.

Returns
a range of rates in Sps

Implemented in sink_impl.

◆ get_time_last_pps()

virtual ::osmosdr::time_spec_t osmosdr::sink::get_time_last_pps ( size_t  mboard = 0)
pure virtual

Get the time when the last pps pulse occured.

Parameters
mboardthe motherboard index 0 to M-1
Returns
the current device time

Implemented in sink_impl.

◆ get_time_now()

virtual ::osmosdr::time_spec_t osmosdr::sink::get_time_now ( size_t  mboard = 0)
pure virtual

Get the current time registers.

Parameters
mboardthe motherboard index 0 to M-1
Returns
the current device time

Implemented in sink_impl.

◆ get_time_source()

virtual std::string osmosdr::sink::get_time_source ( const size_t  mboard)
pure virtual

Get the currently set time source.

Parameters
mboardwhich motherboard to get the config
Returns
the string representing the time source

Implemented in sink_impl.

◆ get_time_sources()

virtual std::vector<std::string> osmosdr::sink::get_time_sources ( const size_t  mboard)
pure virtual

Get a list of possible time sources.

Parameters
mboardwhich motherboard to get the list
Returns
a vector of strings for possible settings

Implemented in sink_impl.

◆ make()

static sptr osmosdr::sink::make ( const std::string &  args = "")
static

Return a shared_ptr to a new instance of sink.

To avoid accidental use of raw pointers, sink's constructor is private. osmosdr::sink::make is the public interface for creating new instances.

Parameters
argsthe address to identify the hardware
Returns
a new osmosdr sink block object

◆ set_antenna()

virtual std::string osmosdr::sink::set_antenna ( const std::string &  antenna,
size_t  chan = 0 
)
pure virtual

Select the active antenna of the underlying radio hardware.

Parameters
antennaname of the antenna to be selected
chanthe channel index 0 to N-1
Returns
the actual antenna's name

Implemented in sink_impl.

◆ set_bandwidth()

virtual double osmosdr::sink::set_bandwidth ( double  bandwidth,
size_t  chan = 0 
)
pure virtual

Set the bandpass filter on the radio frontend.

Parameters
bandwidththe filter bandwidth in Hz, set to 0 for automatic selection
chanthe channel index 0 to N-1
Returns
the actual filter bandwidth in Hz

Implemented in sink_impl.

◆ set_bb_gain()

virtual double osmosdr::sink::set_bb_gain ( double  gain,
size_t  chan = 0 
)
pure virtual

Set the BB gain for the underlying radio hardware. This function will automatically distribute the desired gain value over available BB gain stages in an appropriate way and return the actual value.

Parameters
gainthe gain in dB
chanthe channel index 0 to N-1
Returns
the actual gain in dB

Implemented in sink_impl.

◆ set_center_freq()

virtual double osmosdr::sink::set_center_freq ( double  freq,
size_t  chan = 0 
)
pure virtual

Tune the underlying radio hardware to the desired center frequency. This also will select the appropriate RF bandpass.

Parameters
freqthe desired frequency in Hz
chanthe channel index 0 to N-1
Returns
the actual frequency in Hz

Implemented in sink_impl.

◆ set_clock_rate()

virtual void osmosdr::sink::set_clock_rate ( double  rate,
size_t  mboard = 0 
)
pure virtual

Set the master clock rate.

Parameters
ratethe new rate in Hz
mboardthe motherboard index 0 to M-1

Implemented in sink_impl.

◆ set_clock_source()

virtual void osmosdr::sink::set_clock_source ( const std::string &  source,
const size_t  mboard = 0 
)
pure virtual

Set the clock source for the device. This sets the source for a 10 Mhz reference clock. Typical options for source: internal, external, MIMO.

Parameters
sourcea string representing the clock source
mboardwhich motherboard to set the config

Implemented in sink_impl.

◆ set_dc_offset()

virtual void osmosdr::sink::set_dc_offset ( const std::complex< double > &  offset,
size_t  chan = 0 
)
pure virtual

Set the TX frontend DC offset value. The value is complex to control both I and Q.

Parameters
offsetthe dc offset (1.0 is full-scale)
chanthe channel index 0 to N-1

Implemented in sink_impl.

◆ set_freq_corr()

virtual double osmosdr::sink::set_freq_corr ( double  ppm,
size_t  chan = 0 
)
pure virtual

Set the frequency correction value in parts per million.

Parameters
ppmthe desired correction value in parts per million
chanthe channel index 0 to N-1
Returns
correction value in parts per million

Implemented in sink_impl.

◆ set_gain() [1/2]

virtual double osmosdr::sink::set_gain ( double  gain,
const std::string &  name,
size_t  chan = 0 
)
pure virtual

Set the named gain on the underlying radio hardware.

Parameters
gainthe gain in dB
namethe name of the gain stage
chanthe channel index 0 to N-1
Returns
the actual gain in dB

Implemented in sink_impl.

◆ set_gain() [2/2]

virtual double osmosdr::sink::set_gain ( double  gain,
size_t  chan = 0 
)
pure virtual

Set the gain for the underlying radio hardware. This function will automatically distribute the desired gain value over available gain stages in an appropriate way and return the actual value.

Parameters
gainthe gain in dB
chanthe channel index 0 to N-1
Returns
the actual gain in dB

Implemented in sink_impl.

◆ set_gain_mode()

virtual bool osmosdr::sink::set_gain_mode ( bool  automatic,
size_t  chan = 0 
)
pure virtual

Set the gain mode for the underlying radio hardware. This might be supported only for certain hardware types.

Parameters
automaticthe gain mode (true means automatic gain mode)
chanthe channel index 0 to N-1
Returns
the actual gain mode

Implemented in sink_impl.

◆ set_if_gain()

virtual double osmosdr::sink::set_if_gain ( double  gain,
size_t  chan = 0 
)
pure virtual

Set the IF gain for the underlying radio hardware. This function will automatically distribute the desired gain value over available IF gain stages in an appropriate way and return the actual value.

Parameters
gainthe gain in dB
chanthe channel index 0 to N-1
Returns
the actual gain in dB

Implemented in sink_impl.

◆ set_iq_balance()

virtual void osmosdr::sink::set_iq_balance ( const std::complex< double > &  balance,
size_t  chan = 0 
)
pure virtual

Set the TX frontend IQ balance correction. Use this to adjust the magnitude and phase of I and Q.

Parameters
balancethe complex correction value
chanthe channel index 0 to N-1

Implemented in sink_impl.

◆ set_sample_rate()

virtual double osmosdr::sink::set_sample_rate ( double  rate)
pure virtual

Set the sample rate for the underlying radio hardware. This also will select the appropriate IF bandpass, if applicable.

Parameters
ratea new rate in Sps

Implemented in sink_impl.

◆ set_time_next_pps()

virtual void osmosdr::sink::set_time_next_pps ( const ::osmosdr::time_spec_t time_spec)
pure virtual

Set the time registers at the next pps.

Parameters
time_specthe new time

Implemented in sink_impl.

◆ set_time_now()

virtual void osmosdr::sink::set_time_now ( const ::osmosdr::time_spec_t time_spec,
size_t  mboard = 0 
)
pure virtual

Sets the time registers immediately.

Parameters
time_specthe new time
mboardthe motherboard index 0 to M-1

Implemented in sink_impl.

◆ set_time_source()

virtual void osmosdr::sink::set_time_source ( const std::string &  source,
const size_t  mboard = 0 
)
pure virtual

Set the time source for the device. This sets the method of time synchronization, typically a pulse per second or an encoded time. Typical options for source: external, MIMO.

Parameters
sourcea string representing the time source
mboardwhich motherboard to set the config

Implemented in sink_impl.

◆ set_time_unknown_pps()

virtual void osmosdr::sink::set_time_unknown_pps ( const ::osmosdr::time_spec_t time_spec)
pure virtual

Sync the time registers with an unknown pps edge.

Parameters
time_specthe new time

Implemented in sink_impl.


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